Gentoo Archives: gentoo-commits

From: Lars Wendler <polynomial-c@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-vcs/git/
Date: Wed, 29 Apr 2020 08:39:09
Message-Id: 1588149533.6177833229b03609d2a0073c4839a208dec18f5c.polynomial-c@gentoo
1 commit: 6177833229b03609d2a0073c4839a208dec18f5c
2 Author: Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
3 AuthorDate: Wed Apr 29 08:38:35 2020 +0000
4 Commit: Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
5 CommitDate: Wed Apr 29 08:38:53 2020 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=61778332
7
8 dev-vcs/git: Security cleanup
9
10 Bug: https://bugs.gentoo.org/718710
11 Package-Manager: Portage-2.3.99, Repoman-2.3.22
12 Signed-off-by: Lars Wendler <polynomial-c <AT> gentoo.org>
13
14 dev-vcs/git/Manifest | 27 --
15 dev-vcs/git/git-2.23.1-r1.ebuild | 725 --------------------------------------
16 dev-vcs/git/git-2.23.2.ebuild | 725 --------------------------------------
17 dev-vcs/git/git-2.24.1.ebuild | 728 ---------------------------------------
18 dev-vcs/git/git-2.24.2.ebuild | 728 ---------------------------------------
19 dev-vcs/git/git-2.25.1.ebuild | 728 ---------------------------------------
20 dev-vcs/git/git-2.25.2.ebuild | 728 ---------------------------------------
21 dev-vcs/git/git-2.25.3.ebuild | 728 ---------------------------------------
22 dev-vcs/git/git-2.26.0.ebuild | 728 ---------------------------------------
23 dev-vcs/git/git-2.26.1.ebuild | 728 ---------------------------------------
24 10 files changed, 6573 deletions(-)
25
26 diff --git a/dev-vcs/git/Manifest b/dev-vcs/git/Manifest
27 index 90ef5cb6cfc..dc5ca43f1c9 100644
28 --- a/dev-vcs/git/Manifest
29 +++ b/dev-vcs/git/Manifest
30 @@ -1,39 +1,12 @@
31 -DIST git-2.23.1.tar.xz 5713672 BLAKE2B 50db7bafbadcefbc5a56db478ea0464d289c45190a0454e0b8f3d99d48e6251071482df0240ee1ee8a1f733c91e9e46d34794bca8ca70d3c4ecc3b5da6d5d529 SHA512 708f8b9a7c65c1c9d3117b1b7ee9383044b66fe8a5c168a52ba561985670f659d514aa34988ea8ba85c127da6a23c39c511919a6d661bffc9cf782e30fd62373
32 -DIST git-2.23.2.tar.xz 5714372 BLAKE2B 591f3a46720c249a7325b3a39cd5fe788c47c977fb8f052092b5db18b75fc81d6a9c44923368f881ae02573e172ed8be74f0c10c0f7f205acc011ab602930f3f SHA512 5e0e78ba06ffae8b11fe730a3666a43813b65b9c7e188b4795b1fc6db701993bf39efd392b0ee8bc10b97873bb015cc21635e23d979b5a9d903c119516b01489
33 DIST git-2.23.3.tar.xz 5716108 BLAKE2B 9d0e63e075d8e64bf2772bdd3e49e9907ae093bcfe6a73a003c3bb8a61f557cce154ef8011aa7d068eaca49f8f14c027d935d7ef2fcbc21eb511f803dfbf4a00 SHA512 29b1344fed72c588e9a04d3fb493f2f91490f61853d48644a2d36c23c3251cf1fd549c256def25865e9f33b50135cdfa5108814105d9fcf360d6d1938487d2bf
34 -DIST git-2.24.1.tar.xz 5772304 BLAKE2B 45e49325221cd0407968b4e2ff7bcab7ea021863119ae29fec5c7a9ff10461b5af0ea05f587647c7d4965c38e25f1140f194be72ff5f1bea8851c0485effbfa2 SHA512 010c13d4023c142876d0e075a394b74bef422944d8ca602325d0b2b47bf28b1d534283c7f295751113c83fdfcc0c91f97090e8f906560d44b04a94607fd8fcf7
35 -DIST git-2.24.2.tar.xz 5772460 BLAKE2B 626ca95a675f4f1ae7ad49c7054ad85e0b14fde9230c4e9fc0408a028ea7c4b34243e73bb3364fd5ae4d25a3565ea54a090220e4ed3fe7fd05ea772ff09be6f3 SHA512 2860f9b09ccc1f17398fd5a122d37e3c9fc22a7921ff82f30c28fa58bc609e63f84bbb0a28849ad96680652911fbb1971bcd321b7fc9ff13a96bb27b23f726cc
36 DIST git-2.24.3.tar.xz 5774192 BLAKE2B a8bea56f85a12863565325984a303ac2d964e0371de5252252a736a376a22cc1695da15b46d35bdec8a36c2ebd7ba7040727265acee37892350aad08209ed15f SHA512 b2fbafd0faa06a304e960f78696f5c033eb5330b18af28c0d169af86aa836dada0c3cf349993b1c9a6129d0c42788167a393f9db9be981610318dca5743b2c87
37 -DIST git-2.25.1.tar.xz 5875548 BLAKE2B 582da3d4ac996d7b9ce6cf505661496ab1a2cd061f058745350498121956b33d79739b567fb5fea0b4e298303261256034aa0b8da0b842feab04ae67a7d5b142 SHA512 15241143acfd8542d85d2709ac3c80dbd6e8d5234438f70c4f33cc71a2bdec3e32938df7f6351e2746d570b021d3bd0b70474ea4beec0c51d1fc45f9c287b344
38 -DIST git-2.25.2.tar.xz 5877576 BLAKE2B c07bb888eb05a9f3cc91f207bc5151fd7eeb8137e151353dada0637bc879da5a594097649c9a49ecfe173a550d19ecba5eba47638e2f1a7f07467818a763c82e SHA512 5f24bb060165a7397286588cfa32a3e77a98059058363699f7873a2efbb77419dc8985a9b8ae05166035e24db586c379b55c7049a5b6a436c554a7f621a51a23
39 -DIST git-2.25.3.tar.xz 5878708 BLAKE2B b9e9ed205856a2d5cca57a539ab420e597e8de46624f1411f725c914cfd9f23c7129502b8511acef7eda0f2cd2322928843e54416df8b6f5a45a7b71a8a52a5a SHA512 1ea2f0727baa29200f33469463c3b6db04a2e228e83ff552faa47fefe31063d92966d7502b2f13546c36cfc2756d42d71a26e41141c0fb972af9d6760f3aa471
40 DIST git-2.25.4.tar.xz 5880976 BLAKE2B a3ac79918ba174a93844d9518a2f1c6970abe2cd31acea260742d3c03a31a03131f53603a3bd3e525a60f8ebcfbbaa3b92228e2486717ca2d389a978e39bd5ec SHA512 ca2ecc561d06dbb393fe47d445f0d69423d114766d9bcc125ef1d6d37e350ad903c456540cea420c1a51635b750cde3901e4196f29ce95b315fda11270173450
41 -DIST git-2.26.0.tar.xz 6005104 BLAKE2B c112e51c32f36860e61e81fd3b540cf4eb3d126d28dd533472d6cafdb55f813df48df31ad06a3317224ea2b2b3a9ac3e02ca37d2364167878c7e2fc5fcc2e45e SHA512 bf8a832211782a9446d041a54da254f2586b894375191fb1a6dc7a6594856ca43230fa1ea804b54daceb68caa8d20c02bdbdbf7b2fa1761ce05a11a26b122a9b
42 -DIST git-2.26.1.tar.xz 6006104 BLAKE2B a94075d995a6fe1682dd20a09c5deefbdf4859a809734d59da83df5e7d0d6e9a287313fd579c289e9e13208c74c9cf68919804dea037bdabed92087d17e5e7ee SHA512 1defa0d94e26e474abd47ec8a0c43c05152e10a5aca5f1aee7480ef0db9f5abd03275fefb7c4e0ee816199c87c0b2a13c164c5f7aa5ff36cafdacf27b3573785
43 DIST git-2.26.2.tar.xz 6007864 BLAKE2B efce003a95e24dbb6e14feebd35874c9ed1a5c06d7f0722d4dfefae830613b64b81faa41d5952400fa382b385d15d48829f8ee3b4d065e134bd38fa0e10bf570 SHA512 5d92d07b171c5cd6e89a29c1211c73c1c900cd51c74d690aebfb4a3d0e93b541b09b42b6d6a1a82f5c3d953096771f9a8605c63be139f559f58698c1a0eabcfc
44 -DIST git-htmldocs-2.23.1.tar.xz 1296144 BLAKE2B 5be4a8afdd79234d220c119b8a4239e640486dc52236d980d08e6b3cad1be61b683c0e3dff6bdd67035a1e23f1d07858d3344f9f2ae90b44188395f34c22fea4 SHA512 c005be3baf129c9320893270d1d3b69e01546a29d482d29e5bc7baefbaab33e45d877c5c09e47312bbdb8b3dfcff27735c2427dcae9eb21fd3500ec30e214ae1
45 -DIST git-htmldocs-2.23.2.tar.xz 1295232 BLAKE2B 220a5b19cf6e7e1eddf18059262a72fdb5050eb6314ffcd45f925fe6fa9d1e1ecb14e2f8bfe77293a85813303a2cd04ad51dd70783e1a2ef83154d802ad3fc83 SHA512 6069c667666a1bbc706b6e1de2c0d9a46270423fe17ab25a3ae7b6821e0e4a78c16e394b6d486d76aaf100fbe637e03c05bb86b483be9a3f9b6ca3b8f553eb05
46 DIST git-htmldocs-2.23.3.tar.xz 1295344 BLAKE2B 7a6d8198cf8285717f11731ea907ea06786c486701a729d071deedc5437a595dab355ae2d0ac2814b10503ab4161e76a1245663a9ce35ce48d03be9905315db3 SHA512 2c86c03f29f1a4fc2acb17a17a9e1a3df2ec95138895f5c8e776859772ebc7b95c24af0e328508ccf1ea85b7adaa86a9aedc4d0c353ffc91ad5810ecc9a48059
47 -DIST git-htmldocs-2.24.1.tar.xz 1307992 BLAKE2B 80b39d2fcf47d20a584109572414ff8d275245afb80c3946e2fa62346fdaee3b1c873a0dccfb44af52290756d26d5e53021a1bf1ace7ada34e50e03244f05e92 SHA512 4da610ba1ee307e4f53414e324ef63ab25cf3945a74bf813aeacd4cf714710eab31776c2402c9567f1a3805e3d8576a158c78a72722c0178fb7c2dec2dcebf5a
48 -DIST git-htmldocs-2.24.2.tar.xz 1307584 BLAKE2B 06080a6135bca6e0670f57d8a4aedfd488b8b36347c232653aa8f601703436683b7ea3db19822f35647cea6530d90c03b60a96e5070482e4ecf138807711fe2e SHA512 48e01d712e81eab7b7bcaf0f2aded56b74a84ba3a32502b0af39f4df22b8260c5c233303626d3bbff55955a90da800716aa5c7fb5e69b7ce28d3e0f2e9def7c7
49 DIST git-htmldocs-2.24.3.tar.xz 1307828 BLAKE2B 5d6dda03e2c51346326a1258a14a0ee16fab7fe83c80b4a1a0b307a6343db851d89b96afcf616e10ad5831352a90332ac602e5713444855327e11be8992a5274 SHA512 14289fb46cff48bece0cdafea9ef201facdb58eafce4b735ce50489356deb993c481ac1b6e96a2f98cfe30434280997c47f2cca0bdb2b6e85c31cb7cf17cc257
50 -DIST git-htmldocs-2.25.1.tar.xz 1295708 BLAKE2B 18a274e5eb48030f50c0f38cbcc81b0e65c55ea6b702a9cc4f231c274faf0247c4fdaccde2d348717826d1bd914fe62b387946ae63aba64ba032c43898529f7a SHA512 f261cf72a7b59277666c543d2b40cc9e37ae6d4925616dcb448325e69c59efdee9db151a0d509545d5b366d82fe1196ece289197c02c65ae5f8c91526d49b0fb
51 -DIST git-htmldocs-2.25.2.tar.xz 1296488 BLAKE2B 274c425ba1f52e26c36b5276b7796c465cd5bbf6d2fa73e7f821e0fb727902ce088ea6b7e37cac6c1cace9e7a4f41f3bebe2227aee313a17e2aac6dbf8729a7d SHA512 abe131ef4761e4f112da171baf6d9be6b745f5d06b9e90731052ef13bdc9f71557e53cd93a3e8ea5c33706b7f08cda8aa0e3e760409abda1b9582625ec513ca5
52 -DIST git-htmldocs-2.25.3.tar.xz 1296852 BLAKE2B aa54f8bcdd48f3d53749f8391340616feb965d466c4d7bb81050f2a17050335ca44984f56d0cbc1b6787b4aa6cf8b1ff521cafacae43f8e4e2401ba1a1d8e4a4 SHA512 df4bb00c20b5adba1d80e9afb75a9f4d63bad4ca46b317aa94949621979260f991d6efea473141760ec2e849ba90d87fbd9a8fbca73cf0e0a35462ad6621860e
53 DIST git-htmldocs-2.25.4.tar.xz 1296896 BLAKE2B 4f6469acdcd699698bd1f19bd0d911fd522c1890115f25c087a7870b855eb9354340fe17e9e6aaec7fb27cd951fe28cadbf26e1aeadc76f3c3a1cde4d23e42cd SHA512 e10c6fa52e213a2b18290fed375f6e176eef17b0a19f6906f09d6228d18bece88ff0ec97d871db0ba29fc0fbff73740312ab01eab809bd6a9a41c8b295cf8d67
54 -DIST git-htmldocs-2.26.0.tar.xz 1303968 BLAKE2B 7a0a7972e58d0be5beb8c4b507f5f7a868cd467f8a87c2bef61a2520876ca0c60353431fa689985dd623c2b54ce79dc89eaf46b99a559cf3d05cbf1fa7756544 SHA512 1fa037b21034121f161416a50f4913cd998a22226f796684b50e49f80a5e2cd7495dc7b4f16b608e556fda8acd2d66145669909fa4c1a4c4d3ba8096f2a0558e
55 -DIST git-htmldocs-2.26.1.tar.xz 1304500 BLAKE2B b11e39075a206bfbe1c2244c40a24f0bd08424f1afba61f968433573eff7dbf949f78bf078467b13609d4cc8c22f714fc1d7b3f3369e588601982bc07b2d5cbf SHA512 b23163fe36f95d34a8f3bb5d89bf5b6c6d61441807a0d6b9bfa79fcb1bc08e74c4bfc03105984329349059ff8ac6c5aad2ae54f638cc49ef81b57cf00143be13
56 DIST git-htmldocs-2.26.2.tar.xz 1304788 BLAKE2B e0de88c5c41646d5fb9b54e2ee873c7904e1b85c67f971499f0227eb2dd59cabd4ffc58c468cf8a7a7466920af972dbc7f95d78003e487edac9a15a9c49b80a2 SHA512 b577693180b4fc035af211e3b83e98ad5e1bfbb98706924858df6558383b82ca05f870bdae90f8a14c8bf664f091ee928af52dcdebdfb98dc7387fdfe2e3a396
57 -DIST git-manpages-2.23.1.tar.xz 448432 BLAKE2B 0de4b2c0dcc3a70188a66d8aa6e16aeaad84a9f16b764934b06f61773db2d5141cc0b1091780d126f29a1f50c767a54fbb7d01a36f86d387d8ccb4060f48156e SHA512 16145c0c2215ce6a3aa9045f35f670258f6823a765ed2feec680ed980420d1bb008fc39d8f379c81cd0b259fc582d15e42395d4f954171b20bcf214ab25e41d7
58 -DIST git-manpages-2.23.2.tar.xz 449184 BLAKE2B 348e6a90c87cc7c872727a426920fa3b66b1bf92c24562241cee67609b5ed11e78170fa7ed5f80e6f704ae12ba166af1b2c68704917beb2c06b85e05fd6744c6 SHA512 37bb03852f2cb0c4e3d6cd68e1b707feab5ac54442bf48b9e179074438f7e595ad7304d61c6b7344352298a6c0584f6de11a71e82066fcd3bf892424b7d783d6
59 DIST git-manpages-2.23.3.tar.xz 449464 BLAKE2B bfc0153e43724df7210110e836d47f17258e45a876aa9bf4604c3f38e690e0e5379d4394df96c3dd84ea4d7371b7843729e6fb5d4b43fd7d4a9b4c3f4062a922 SHA512 a7b5fc48a5b840eb9b668b441ad3c30f65adc73c22cda461ffaca1cfddf154bf1974cab6c372b4534fd45a43a2e2ab96513364845a7db4285b88e31bf7619f8e
60 -DIST git-manpages-2.24.1.tar.xz 453752 BLAKE2B 51a549099205341bfec5a7998e5f66e9fc78ffd05fd04e745401a8bcc5bffcb64f26a64c7e24c9822bc2d62d000ea2b13779ffe19f065124a8e42b306fb5a2d3 SHA512 ee1e70fdbfc6eae97dc3b3180fa119b0d1189db7cae3e45b8baa9311d0c1162a5b46824a785e91288522a9fd00b8e4ff07590f4e4722a08955d6a9d048cc3a90
61 -DIST git-manpages-2.24.2.tar.xz 454672 BLAKE2B e48a0fb43537c354c98c5a34d8b133cc7c13349d57e83edacc6623e9410137652813069020142619d9ad2a56d082cd79272afb5cd4ff8c22bb37b821465e94ce SHA512 1a39797fbc1eff216c7416df4fa372c60a8406ff8406e3d332c371ead26286fb3976b35702286af12064712e7ded565538729824a02ac714518f01b725d8688b
62 DIST git-manpages-2.24.3.tar.xz 454796 BLAKE2B b340b33593e596a7a87385110fea53a96b68f0b0c5c02e046a1aff5ff7c7a6bf3d7a55c4d33796db8e84824df72451ad51db9fc44df4840ecd0183c0ef49eba0 SHA512 22709e159196da27befc26eef3ab40dab9700c95abf6892860a81c8e5df7d85ad423c877e6c88949cfc611c4dfebd956f02a78f0340c1cd4d58c48f80e3e1cce
63 -DIST git-manpages-2.25.1.tar.xz 457408 BLAKE2B 6b9d7074bc690156e7d4a14b04d8e82c9441c8b9330bdf40de215fc48ee7bbfaf410b57bbf48bd6127a60f0d6daa0adf7194fc8eb43b3d8e2a9b5d054cb7d5ea SHA512 c36afa05f641c6e1d909cbe0e3292a10f35c0a05867e2782e6770857714b152de839f1e9b2c2ff2efea0b50b19cfdf3022d8617a299f4aa3940533eb891fa6ba
64 -DIST git-manpages-2.25.2.tar.xz 459208 BLAKE2B b78fdade0d99035969d16f726422e63f6c98c0cfbdcbeb272a07619f5efbece88eddf008884ec3c10ab05d8558fb975f6f89604757a424adae922ea3a8ad5a24 SHA512 61bc0090fa36f537a193c8007f82f4ac005f6afa86621d6273f131230381a1f17712d95b3a47c27bbd9eea351fd49d4f1c16fabe7f81b40a6aa1308e8afc5371
65 -DIST git-manpages-2.25.3.tar.xz 459192 BLAKE2B 17bb4c6ab68b85efaca2e99469f601df029677e7b09e379e8b4bff23b54bf4cc3aedc5c16e0769d2bafef79ea2428db582accb1df78795d1d4c365dcee68daba SHA512 a6ae01129281e85fba8da1fd8cbe9bb2c33cce3075163af328aedb4ab721b9816b364cc18d87ae675b88af2baa5777acb0f874a6a172bdef3429d25d89f8f271
66 DIST git-manpages-2.25.4.tar.xz 459344 BLAKE2B b0ac88f691984f39f6cfbf41d2d61ab443573974277536641daddf0e9b7755ea9cb6bc96ecf3c14479809036171e461eff72cb498c63a56eea041341b8a65af5 SHA512 a67b881f289d5b3e2187ad55c5176258c30108c73fc7c18d50c1a6b42b241ce46dba28acf2f7bfc994b044444a6678096a35ad60936ea6cba07b52ddf647da17
67 -DIST git-manpages-2.26.0.tar.xz 462092 BLAKE2B 1ad35195b41b399f9f7eb4c981947c0ef4430e669c456b1b3cad0073d2f680315dc11a6e434b1e17601502a16b10187f0ef5587b81a5c6e4bfe04ba8a3cdf976 SHA512 828bebfa5a2cf4558ca6bdd276cc251c6212ceba702418246f05b9f2d41d1c89908b7cd2f81179a1a2b0aca2dbf07ccba9903edd9dae3b5ad9ef6e80b9f50aeb
68 -DIST git-manpages-2.26.1.tar.xz 462068 BLAKE2B 9dcacafb43cc2bdbb6e321addcdbe365a5d1051b374baf27324573a16b359a1294683079edd86b5a9fd82886a58c362bcb0a11f7fbb64e3f6ed4340d05b56413 SHA512 6a52e709b7a3382e45620be1d3517ef23dae6c3f4e68cdfe4f4580a36e591a5c43075d3b869b5dee1bb3253fc9334c0270548f2edc9fb75262169222fa653454
69 DIST git-manpages-2.26.2.tar.xz 462052 BLAKE2B 27fc44360c9f890e9f7754e8423f5596548f076f5fec5dfc6c752e8b3caa5f64ba182c1566b67878b19fbb115297e08def1bf9d2711c7334cbb8e1b20fc039a1 SHA512 9591e94683a6b49d8b9f2afddc826576023fdfa6de6db4af3a28a2af00b175d5be710d86a31d0f1b8320cc38b6f27698e17fb3e8c1f2b0c5ced37296ef1109b6
70
71 diff --git a/dev-vcs/git/git-2.23.1-r1.ebuild b/dev-vcs/git/git-2.23.1-r1.ebuild
72 deleted file mode 100644
73 index eb01978045f..00000000000
74 --- a/dev-vcs/git/git-2.23.1-r1.ebuild
75 +++ /dev/null
76 @@ -1,725 +0,0 @@
77 -# Copyright 1999-2020 Gentoo Authors
78 -# Distributed under the terms of the GNU General Public License v2
79 -
80 -EAPI=6
81 -
82 -GENTOO_DEPEND_ON_PERL=no
83 -
84 -# bug #329479: git-remote-testgit is not multiple-version aware
85 -PYTHON_COMPAT=( python{2_7,3_{6,7}} )
86 -
87 -inherit toolchain-funcs elisp-common l10n perl-module bash-completion-r1 python-single-r1 systemd
88 -
89 -PLOCALES="bg ca de es fr is it ko pt_PT ru sv vi zh_CN"
90 -if [[ ${PV} == *9999 ]]; then
91 - inherit git-r3
92 - EGIT_REPO_URI="git://git.kernel.org/pub/scm/git/git.git"
93 - # Please ensure that all _four_ 9999 ebuilds get updated; they track the 4 upstream branches.
94 - # See https://git-scm.com/docs/gitworkflows#_graduation
95 - # In order of stability:
96 - # 9999-r0: maint
97 - # 9999-r1: master
98 - # 9999-r2: next
99 - # 9999-r3: pu
100 - case "${PVR}" in
101 - 9999) EGIT_BRANCH=maint ;;
102 - 9999-r1) EGIT_BRANCH=master ;;
103 - 9999-r2) EGIT_BRANCH=next;;
104 - 9999-r3) EGIT_BRANCH=pu ;;
105 - esac
106 -fi
107 -
108 -MY_PV="${PV/_rc/.rc}"
109 -MY_P="${PN}-${MY_PV}"
110 -
111 -DOC_VER="${MY_PV}"
112 -
113 -DESCRIPTION="stupid content tracker: distributed VCS designed for speed and efficiency"
114 -HOMEPAGE="https://www.git-scm.com/"
115 -if [[ ${PV} != *9999 ]]; then
116 - SRC_URI_SUFFIX="xz"
117 - SRC_URI_KORG="https://www.kernel.org/pub/software/scm/git"
118 - [[ "${PV/rc}" != "${PV}" ]] && SRC_URI_KORG+='/testing'
119 - SRC_URI="${SRC_URI_KORG}/${MY_P}.tar.${SRC_URI_SUFFIX}
120 - ${SRC_URI_KORG}/${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
121 - doc? (
122 - ${SRC_URI_KORG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
123 - )"
124 - [[ "${PV}" == *_rc* ]] || \
125 - KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 ~riscv s390 sparc x86 ~ppc-aix ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
126 -fi
127 -
128 -LICENSE="GPL-2"
129 -SLOT="0"
130 -IUSE="+blksha1 +curl cgi doc emacs gnome-keyring +gpg highlight +iconv libressl mediawiki mediawiki-experimental +nls +pcre +pcre-jit perforce +perl +ppcsha1 tk +threads +webdav xinetd cvs subversion test"
131 -
132 -# Common to both DEPEND and RDEPEND
133 -CDEPEND="
134 - gnome-keyring? ( app-crypt/libsecret )
135 - !libressl? ( dev-libs/openssl:0= )
136 - libressl? ( dev-libs/libressl:= )
137 - sys-libs/zlib
138 - pcre? (
139 - pcre-jit? ( dev-libs/libpcre2[jit(+)] )
140 - !pcre-jit? ( dev-libs/libpcre )
141 - )
142 - perl? ( dev-lang/perl:=[-build(-)] )
143 - tk? ( dev-lang/tk:0= )
144 - curl? (
145 - net-misc/curl
146 - webdav? ( dev-libs/expat )
147 - )
148 - emacs? ( >=app-editors/emacs-23.1:* )
149 - iconv? ( virtual/libiconv )
150 -"
151 -
152 -RDEPEND="${CDEPEND}
153 - gpg? ( app-crypt/gnupg )
154 - perl? (
155 - dev-perl/Error
156 - dev-perl/MailTools
157 - dev-perl/Authen-SASL
158 - cgi? (
159 - dev-perl/CGI
160 - highlight? ( app-text/highlight )
161 - )
162 - cvs? (
163 - >=dev-vcs/cvsps-2.1:0
164 - dev-perl/DBI
165 - dev-perl/DBD-SQLite
166 - )
167 - mediawiki? (
168 - dev-perl/DateTime-Format-ISO8601
169 - dev-perl/HTML-Tree
170 - dev-perl/MediaWiki-API
171 - )
172 - subversion? (
173 - dev-vcs/subversion[-dso,perl]
174 - dev-perl/libwww-perl
175 - dev-perl/TermReadKey
176 - )
177 - )
178 - perforce? ( ${PYTHON_DEPS} )
179 -"
180 -
181 -# This is how info docs are created with Git:
182 -# .txt/asciidoc --(asciidoc)---------> .xml/docbook
183 -# .xml/docbook --(docbook2texi.pl)--> .texi
184 -# .texi --(makeinfo)---------> .info
185 -DEPEND="${CDEPEND}
186 - doc? (
187 - app-text/asciidoc
188 - app-text/docbook2X
189 - app-text/xmlto
190 - sys-apps/texinfo
191 - )
192 - nls? ( sys-devel/gettext )
193 - test? ( app-crypt/gnupg )"
194 -
195 -# Live ebuild builds man pages and HTML docs, additionally
196 -if [[ ${PV} == *9999 ]]; then
197 - DEPEND="${DEPEND}
198 - app-text/asciidoc"
199 -fi
200 -
201 -SITEFILE="50${PN}-gentoo.el"
202 -S="${WORKDIR}/${MY_P}"
203 -
204 -REQUIRED_USE="
205 - cgi? ( perl )
206 - cvs? ( perl )
207 - mediawiki? ( perl )
208 - mediawiki-experimental? ( mediawiki )
209 - subversion? ( perl )
210 - webdav? ( curl )
211 - pcre-jit? ( pcre )
212 - perforce? ( ${PYTHON_REQUIRED_USE} )
213 -"
214 -
215 -RESTRICT="!test? ( test )"
216 -
217 -PATCHES=(
218 - # bug #350330 - automagic CVS when we don't want it is bad.
219 - "${FILESDIR}"/git-2.22.0_rc0-optional-cvs.patch
220 -
221 - "${FILESDIR}"/git-2.2.0-svn-fe-linking.patch
222 -
223 - # Make submodule output quiet
224 - "${FILESDIR}"/git-2.21.0-quiet-submodules-testcase.patch
225 -
226 - "${FILESDIR}"/git-2.23.0-avoid_empty_remote_line.patch #698384
227 -)
228 -
229 -pkg_setup() {
230 - if use subversion && has_version "dev-vcs/subversion[dso]"; then
231 - ewarn "Per Gentoo bugs #223747, #238586, when subversion is built"
232 - ewarn "with USE=dso, there may be weird crashes in git-svn. You"
233 - ewarn "have been warned."
234 - fi
235 - if use perforce ; then
236 - python-single-r1_pkg_setup
237 - fi
238 -}
239 -
240 -# This is needed because for some obscure reasons future calls to make don't
241 -# pick up these exports if we export them in src_unpack()
242 -exportmakeopts() {
243 - local myopts=(
244 - ASCIIDOC_NO_ROFF=YesPlease
245 - $(usex cvs '' NO_CVS=YesPlease)
246 - $(usex elibc_musl NO_REGEX=YesPlease '')
247 - $(usex iconv '' NO_ICONV=YesPlease)
248 - $(usex nls '' NO_GETTEXT=YesPlease)
249 - $(usex perl 'INSTALLDIRS=vendor NO_PERL_CPAN_FALLBACKS=YesPlease' NO_PERL=YesPlease)
250 - $(usex perforce '' NO_PYTHON=YesPlease)
251 - $(usex subversion '' NO_SVN_TESTS=YesPlease)
252 - $(usex threads '' NO_PTHREADS=YesPlease)
253 - $(usex tk '' NO_TCLTK=YesPlease)
254 - )
255 -
256 - if use blksha1 ; then
257 - myopts+=( BLK_SHA1=YesPlease )
258 - elif use ppcsha1 ; then
259 - myopts+=( PPC_SHA1=YesPlease )
260 - fi
261 -
262 - if use curl ; then
263 - use webdav || myopts+=( NO_EXPAT=YesPlease )
264 - else
265 - myopts+=( NO_CURL=YesPlease )
266 - fi
267 -
268 - # broken assumptions, because of static build system ...
269 - myopts+=(
270 - NO_FINK=YesPlease
271 - NO_DARWIN_PORTS=YesPlease
272 - INSTALL=install
273 - TAR=tar
274 - SHELL_PATH="${EPREFIX}/bin/sh"
275 - SANE_TOOL_PATH=
276 - OLD_ICONV=
277 - NO_EXTERNAL_GREP=
278 - )
279 -
280 - # For svn-fe
281 - extlibs=( -lz -lssl ${S}/xdiff/lib.a $(usex threads -lpthread '') )
282 -
283 - # can't define this to null, since the entire makefile depends on it
284 - sed -i -e '/\/usr\/local/s/BASIC_/#BASIC_/' Makefile || die
285 -
286 - if use pcre; then
287 - if use pcre-jit; then
288 - myopts+=( USE_LIBPCRE2=YesPlease )
289 - extlibs+=( -lpcre2-8 )
290 - else
291 - myopts+=(
292 - USE_LIBPCRE1=YesPlease
293 - NO_LIBPCRE1_JIT=YesPlease
294 - )
295 - extlibs+=( -lpcre )
296 - fi
297 - fi
298 -# Disabled until ~m68k-mint can be keyworded again
299 -# if [[ ${CHOST} == *-mint* ]] ; then
300 -# myopts+=(
301 -# NO_MMAP=YesPlease
302 -# NO_IPV6=YesPlease
303 -# NO_STRLCPY=YesPlease
304 -# NO_MEMMEM=YesPlease
305 -# NO_MKDTEMP=YesPlease
306 -# NO_MKSTEMPS=YesPlease
307 -# )
308 -# fi
309 - if [[ ${CHOST} == ia64-*-hpux* ]]; then
310 - myopts+=( NO_NSEC=YesPlease )
311 - fi
312 - if [[ ${CHOST} == *-*-aix* ]]; then
313 - myopts+=( NO_FNMATCH_CASEFOLD=YesPlease )
314 - fi
315 - if [[ ${CHOST} == *-solaris* ]]; then
316 - myopts+=(
317 - NEEDS_LIBICONV=YesPlease
318 - HAVE_CLOCK_MONOTONIC=1
319 - )
320 - grep -q getdelim "${ROOT%/}"/usr/include/stdio.h && \
321 - myopts+=( HAVE_GETDELIM=1 )
322 - fi
323 -
324 - has_version '>=app-text/asciidoc-8.0' \
325 - && myopts+=( ASCIIDOC8=YesPlease )
326 -
327 - # Bug 290465:
328 - # builtin-fetch-pack.c:816: error: 'struct stat' has no member named 'st_mtim'
329 - if [[ "${CHOST}" == *-uclibc* ]] ; then
330 - myopts+=( NO_NSEC=YesPlease )
331 - use iconv && myopts+=( NEEDS_LIBICONV=YesPlease )
332 - fi
333 -
334 - export MY_MAKEOPTS="${myopts[@]}"
335 - export EXTLIBS="${extlibs[@]}"
336 -}
337 -
338 -src_unpack() {
339 - if [[ ${PV} != *9999 ]]; then
340 - unpack ${MY_P}.tar.${SRC_URI_SUFFIX}
341 - cd "${S}" || die
342 - unpack ${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
343 - if use doc ; then
344 - pushd "${S}"/Documentation &>/dev/null || die
345 - unpack ${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
346 - popd &>/dev/null || die
347 - fi
348 - else
349 - git-r3_src_unpack
350 - #cp "${FILESDIR}"/GIT-VERSION-GEN .
351 - fi
352 -
353 -}
354 -
355 -src_prepare() {
356 - # add experimental patches to improve mediawiki support
357 - # see patches for origin
358 - if use mediawiki-experimental ; then
359 - PATCHES+=(
360 - "${FILESDIR}"/git-2.7.0-mediawiki-namespaces.patch
361 - "${FILESDIR}"/git-2.7.0-mediawiki-subpages.patch
362 - "${FILESDIR}"/git-2.7.0-mediawiki-500pages.patch
363 - )
364 - fi
365 -
366 - default
367 -
368 - sed -i \
369 - -e 's:^\(CFLAGS[[:space:]]*=\).*$:\1 $(OPTCFLAGS) -Wall:' \
370 - -e 's:^\(LDFLAGS[[:space:]]*=\).*$:\1 $(OPTLDFLAGS):' \
371 - -e 's:^\(CC[[:space:]]* =\).*$:\1$(OPTCC):' \
372 - -e 's:^\(AR[[:space:]]* =\).*$:\1$(OPTAR):' \
373 - -e "s:\(PYTHON_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
374 - -e "s:\(PERL_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
375 - Makefile contrib/svn-fe/Makefile || die
376 -
377 - # Fix docbook2texi command
378 - sed -r -i 's/DOCBOOK2X_TEXI[[:space:]]*=[[:space:]]*docbook2x-texi/DOCBOOK2X_TEXI = docbook2texi.pl/' \
379 - Documentation/Makefile || die
380 -}
381 -
382 -git_emake() {
383 - # bug #320647: PYTHON_PATH
384 - local PYTHON_PATH=""
385 - use perforce && PYTHON_PATH="${PYTHON}"
386 - emake ${MY_MAKEOPTS} \
387 - prefix="${EPREFIX}"/usr \
388 - htmldir="${EPREFIX}"/usr/share/doc/${PF}/html \
389 - perllibdir="$(use perl && perl_get_raw_vendorlib)" \
390 - sysconfdir="${EPREFIX}"/etc \
391 - DESTDIR="${D}" \
392 - GIT_TEST_OPTS="--no-color" \
393 - OPTAR="$(tc-getAR)" \
394 - OPTCC="$(tc-getCC)" \
395 - OPTCFLAGS="${CFLAGS}" \
396 - OPTLDFLAGS="${LDFLAGS}" \
397 - PERL_PATH="${EPREFIX}/usr/bin/perl" \
398 - PERL_MM_OPT="" \
399 - PYTHON_PATH="${PYTHON_PATH}" \
400 - V=1 \
401 - "$@"
402 -}
403 -
404 -src_configure() {
405 - exportmakeopts
406 -}
407 -
408 -src_compile() {
409 - git_emake || die "emake failed"
410 -
411 - if use emacs ; then
412 - elisp-compile contrib/emacs/git{,-blame}.el
413 - fi
414 -
415 - if use perl && use cgi ; then
416 - git_emake \
417 - gitweb \
418 - || die "emake gitweb (cgi) failed"
419 - fi
420 -
421 - if [[ ${CHOST} == *-darwin* ]]; then
422 - pushd contrib/credential/osxkeychain &>/dev/null || die
423 - git_emake CC=$(tc-getCC) CFLAGS="${CFLAGS}" \
424 - || die "emake credential-osxkeychain"
425 - popd &>/dev/null || die
426 - fi
427 -
428 - pushd Documentation &>/dev/null || die
429 - if [[ ${PV} == *9999 ]] ; then
430 - git_emake man \
431 - || die "emake man failed"
432 - if use doc ; then
433 - git_emake info html \
434 - || die "emake info html failed"
435 - fi
436 - else
437 - if use doc ; then
438 - git_emake info \
439 - || die "emake info html failed"
440 - fi
441 - fi
442 - popd &>/dev/null || die
443 -
444 - if use subversion ; then
445 - pushd contrib/svn-fe &>/dev/null || die
446 - # by defining EXTLIBS we override the detection for libintl and
447 - # libiconv, bug #516168
448 - local nlsiconv=()
449 - use nls && use !elibc_glibc && nlsiconv+=( -lintl )
450 - use iconv && use !elibc_glibc && nlsiconv+=( -liconv )
451 - git_emake EXTLIBS="${EXTLIBS} ${nlsiconv[@]}" \
452 - || die "emake svn-fe failed"
453 - if use doc ; then
454 - # svn-fe.1 requires the full USE=doc dependency stack
455 - git_emake svn-fe.1 \
456 - || die "emake svn-fe.1 failed"
457 - git_emake svn-fe.html \
458 - || die "svn-fe.html failed"
459 - fi
460 - popd &>/dev/null || die
461 - fi
462 -
463 - if use gnome-keyring ; then
464 - pushd contrib/credential/libsecret &>/dev/null || die
465 - git_emake || die "emake git-credential-libsecret failed"
466 - popd &>/dev/null || die
467 - fi
468 -
469 - pushd contrib/subtree &>/dev/null || die
470 - git_emake git-subtree
471 - # git-subtree.1 requires the full USE=doc dependency stack
472 - use doc && git_emake git-subtree.html git-subtree.1
473 - popd &>/dev/null || die
474 -
475 - pushd contrib/diff-highlight &>/dev/null || die
476 - git_emake
477 - popd &>/dev/null || die
478 -
479 - if use mediawiki ; then
480 - pushd contrib/mw-to-git &>/dev/null || die
481 - git_emake
482 - popd &>/dev/null || die
483 -
484 - fi
485 -}
486 -
487 -src_install() {
488 - git_emake install || die "make install failed"
489 -
490 - if [[ ${CHOST} == *-darwin* ]]; then
491 - dobin contrib/credential/osxkeychain/git-credential-osxkeychain
492 - fi
493 -
494 - # Depending on the tarball and manual rebuild of the documentation, the
495 - # manpages may exist in either OR both of these directories.
496 - find man?/*.[157] >/dev/null 2>&1 && doman man?/*.[157]
497 - find Documentation/*.[157] >/dev/null 2>&1 && doman Documentation/*.[157]
498 - dodoc README* Documentation/{SubmittingPatches,CodingGuidelines}
499 - use doc && dodir /usr/share/doc/${PF}/html
500 - local d
501 - for d in / /howto/ /technical/ ; do
502 - docinto ${d}
503 - dodoc Documentation${d}*.txt
504 - if use doc ; then
505 - docinto ${d}/html
506 - dodoc Documentation${d}*.html
507 - fi
508 - done
509 - docinto /
510 - # Upstream does not ship this pre-built :-(
511 - use doc && doinfo Documentation/{git,gitman}.info
512 -
513 - newbashcomp contrib/completion/git-completion.bash ${PN}
514 - bashcomp_alias git gitk
515 - # Not really a bash-completion file (bug #477920)
516 - # but still needed uncompressed (bug #507480)
517 - insinto /usr/share/${PN}
518 - doins contrib/completion/git-prompt.sh
519 -
520 - if use emacs ; then
521 - elisp-install ${PN} contrib/emacs/git.{el,elc}
522 - elisp-install ${PN} contrib/emacs/git-blame.{el,elc}
523 - #elisp-install ${PN}/compat contrib/emacs/vc-git.{el,elc}
524 - # don't add automatically to the load-path, so the sitefile
525 - # can do a conditional loading
526 - touch "${ED%/}${SITELISP}/${PN}/compat/.nosearch"
527 - elisp-site-file-install "${FILESDIR}"/${SITEFILE}
528 - fi
529 -
530 - #dobin contrib/fast-import/git-p4 # Moved upstream
531 - #dodoc contrib/fast-import/git-p4.txt # Moved upstream
532 - newbin contrib/fast-import/import-tars.perl import-tars
533 - exeinto /usr/libexec/git-core/
534 - newexe contrib/git-resurrect.sh git-resurrect
535 -
536 - # git-subtree
537 - pushd contrib/subtree &>/dev/null || die
538 - git_emake install || die "Failed to emake install for git-subtree"
539 - if use doc ; then
540 - # Do not move git subtree install-man outside USE=doc!
541 - git_emake install-man install-html || die "Failed to emake install-html install-man for git-subtree"
542 - fi
543 - newdoc README README.git-subtree
544 - dodoc git-subtree.txt
545 - popd &>/dev/null || die
546 -
547 - if use mediawiki ; then
548 - pushd contrib/mw-to-git &>/dev/null || die
549 - git_emake install
550 - popd &>/dev/null || die
551 - fi
552 -
553 - # diff-highlight
554 - dobin contrib/diff-highlight/diff-highlight
555 - newdoc contrib/diff-highlight/README README.diff-highlight
556 -
557 - # git-jump
558 - exeinto /usr/libexec/git-core/
559 - doexe contrib/git-jump/git-jump
560 - newdoc contrib/git-jump/README git-jump.txt
561 -
562 - # git-contacts
563 - exeinto /usr/libexec/git-core/
564 - doexe contrib/contacts/git-contacts
565 - dodoc contrib/contacts/git-contacts.txt
566 -
567 - if use gnome-keyring ; then
568 - pushd contrib/credential/libsecret &>/dev/null || die
569 - dobin git-credential-libsecret
570 - popd &>/dev/null || die
571 - fi
572 -
573 - if use subversion ; then
574 - pushd contrib/svn-fe &>/dev/null || die
575 - dobin svn-fe
576 - dodoc svn-fe.txt
577 - if use doc ; then
578 - # Do not move svn-fe.1 outside USE=doc!
579 - doman svn-fe.1
580 - docinto html
581 - dodoc svn-fe.html
582 - fi
583 - popd &>/dev/null || die
584 - fi
585 -
586 - dodir /usr/share/${PN}/contrib
587 - # The following are excluded:
588 - # completion - installed above
589 - # diff-highlight - done above
590 - # emacs - installed above
591 - # examples - these are stuff that is not used in Git anymore actually
592 - # git-jump - done above
593 - # gitview - installed above
594 - # p4import - excluded because fast-import has a better one
595 - # patches - stuff the Git guys made to go upstream to other places
596 - # persistent-https - TODO
597 - # mw-to-git - TODO
598 - # subtree - build seperately
599 - # svnimport - use git-svn
600 - # thunderbird-patch-inline - fixes thunderbird
601 - local contrib_objects=(
602 - buildsystems
603 - fast-import
604 - hg-to-git
605 - hooks
606 - remotes2config.sh
607 - rerere-train.sh
608 - stats
609 - workdir
610 - )
611 - local i
612 - for i in "${contrib_objects[@]}" ; do
613 - cp -rf \
614 - "${S}"/contrib/${i} \
615 - "${ED%/}"/usr/share/${PN}/contrib \
616 - || die "Failed contrib ${i}"
617 - done
618 -
619 - if use perl && use cgi ; then
620 - # We used to install in /usr/share/${PN}/gitweb
621 - # but upstream installs in /usr/share/gitweb
622 - # so we will install a symlink and use their location for compat with other
623 - # distros
624 - dosym ../gitweb /usr/share/${PN}/gitweb
625 -
626 - # INSTALL discusses configuration issues, not just installation
627 - docinto /
628 - newdoc "${S}"/gitweb/INSTALL INSTALL.gitweb
629 - newdoc "${S}"/gitweb/README README.gitweb
630 -
631 - for d in "${ED%/}"/usr/lib{,64}/perl5/ ; do
632 - if test -d "${d}" ; then find "${d}" \
633 - -name .packlist \
634 - -delete || die
635 - fi
636 - done
637 - else
638 - rm -rf "${ED%/}"/usr/share/gitweb
639 - fi
640 -
641 - if ! use subversion ; then
642 - rm -f "${ED%/}"/usr/libexec/git-core/git-svn \
643 - "${ED%/}"/usr/share/man/man1/git-svn.1*
644 - fi
645 -
646 - if use xinetd ; then
647 - insinto /etc/xinetd.d
648 - newins "${FILESDIR}"/git-daemon.xinetd git-daemon
649 - fi
650 -
651 - if use !prefix ; then
652 - newinitd "${FILESDIR}"/git-daemon-r1.initd git-daemon
653 - newconfd "${FILESDIR}"/git-daemon.confd git-daemon
654 - systemd_newunit "${FILESDIR}/git-daemon_at-r1.service" "git-daemon@.service"
655 - systemd_dounit "${FILESDIR}/git-daemon.socket"
656 - fi
657 -
658 - perl_delete_localpod
659 -
660 - # Remove disabled linguas
661 - # we could remove sources in src_prepare, but install does not
662 - # handle missing locale dir well
663 - rm_loc() {
664 - if [[ -e "${ED%/}/usr/share/locale/${1}" ]]; then
665 - rm -r "${ED%/}/usr/share/locale/${1}" || die
666 - fi
667 - }
668 - l10n_for_each_disabled_locale_do rm_loc
669 -}
670 -
671 -src_test() {
672 - local disabled=()
673 - local tests_cvs=(
674 - t9200-git-cvsexportcommit.sh
675 - t9400-git-cvsserver-server.sh
676 - t9401-git-cvsserver-crlf.sh
677 - t9402-git-cvsserver-refs.sh
678 - t9600-cvsimport.sh
679 - t9601-cvsimport-vendor-branch.sh
680 - t9602-cvsimport-branches-tags.sh
681 - t9603-cvsimport-patchsets.sh
682 - t9604-cvsimport-timestamps.sh
683 - )
684 - local tests_perl=(
685 - t3701-add-interactive.sh
686 - t5502-quickfetch.sh
687 - t5512-ls-remote.sh
688 - t5520-pull.sh
689 - t7106-reset-unborn-branch.sh
690 - t7501-commit.sh
691 - )
692 - # Bug #225601 - t0004 is not suitable for root perm
693 - # Bug #219839 - t1004 is not suitable for root perm
694 - # t0001-init.sh - check for init notices EPERM* fails
695 - local tests_nonroot=(
696 - t0001-init.sh
697 - t0004-unwritable.sh
698 - t0070-fundamental.sh
699 - t1004-read-tree-m-u-wf.sh
700 - t3700-add.sh
701 - t7300-clean.sh
702 - )
703 - # t9100 still fails with symlinks in SVN 1.7
704 - local test_svn=( t9100-git-svn-basic.sh )
705 -
706 - # Unzip is used only for the testcase code, not by any normal parts of Git.
707 - if ! has_version app-arch/unzip ; then
708 - einfo "Disabling tar-tree tests"
709 - disabled+=( t5000-tar-tree.sh )
710 - fi
711 -
712 - local cvs=0
713 - use cvs && let cvs=${cvs}+1
714 - if [[ ${EUID} -eq 0 ]]; then
715 - if [[ ${cvs} -eq 1 ]]; then
716 - ewarn "Skipping CVS tests because CVS does not work as root!"
717 - ewarn "You should retest with FEATURES=userpriv!"
718 - disabled+=( ${tests_cvs[@]} )
719 - fi
720 - einfo "Skipping other tests that require being non-root"
721 - disabled+=( ${tests_nonroot[@]} )
722 - else
723 - [[ ${cvs} -gt 0 ]] && \
724 - has_version dev-vcs/cvs && \
725 - let cvs=${cvs}+1
726 - [[ ${cvs} -gt 1 ]] && \
727 - has_version "dev-vcs/cvs[server]" && \
728 - let cvs=${cvs}+1
729 - if [[ ${cvs} -lt 3 ]]; then
730 - einfo "Disabling CVS tests (needs dev-vcs/cvs[USE=server])"
731 - disabled+=( ${tests_cvs[@]} )
732 - fi
733 - fi
734 -
735 - if ! use perl ; then
736 - einfo "Disabling tests that need Perl"
737 - disabled+=( ${tests_perl[@]} )
738 - fi
739 -
740 - einfo "Disabling tests that fail with SVN 1.7"
741 - disabled+=( ${test_svn[@]} )
742 -
743 - # Reset all previously disabled tests
744 - pushd t &>/dev/null || die
745 - local i
746 - for i in *.sh.DISABLED ; do
747 - [[ -f "${i}" ]] && mv -f "${i}" "${i%.DISABLED}"
748 - done
749 - einfo "Disabled tests:"
750 - for i in ${disabled[@]} ; do
751 - [[ -f "${i}" ]] && mv -f "${i}" "${i}.DISABLED" && einfo "Disabled ${i}"
752 - done
753 -
754 - # Avoid the test system removing the results because we want them ourselves
755 - sed -e '/^[[:space:]]*$(MAKE) clean/s,^,#,g' \
756 - -i Makefile || die
757 -
758 - # Clean old results first, must always run
759 - nonfatal git_emake clean
760 - popd &>/dev/null || die
761 -
762 - # Now run the tests, keep going if we hit an error, and don't terminate on
763 - # failure
764 - local rc
765 - einfo "Start test run"
766 - #MAKEOPTS=-j1
767 - nonfatal git_emake --keep-going test
768 - rc=$?
769 -
770 - # Display nice results, now print the results
771 - pushd t &>/dev/null || die
772 - nonfatal git_emake aggregate-results
773 -
774 - # And bail if there was a problem
775 - [ ${rc} -eq 0 ] || die "tests failed. Please file a bug."
776 -}
777 -
778 -showpkgdeps() {
779 - local pkg=$1
780 - shift
781 - elog " $(printf "%-17s:" ${pkg}) ${@}"
782 -}
783 -
784 -pkg_postinst() {
785 - use emacs && elisp-site-regen
786 - elog "Please read /usr/share/bash-completion/completions/git for Git bash command"
787 - elog "completion."
788 - elog "Please read /usr/share/git/git-prompt.sh for Git bash prompt"
789 - elog "Note that the prompt bash code is now in that separate script"
790 - elog "These additional scripts need some dependencies:"
791 - echo
792 - showpkgdeps git-quiltimport "dev-util/quilt"
793 - showpkgdeps git-instaweb \
794 - "|| ( www-servers/lighttpd www-servers/apache www-servers/nginx )"
795 - echo
796 - use mediawiki-experimental && ewarn "Using experimental git-mediawiki patches. The stability of cloned wiki filesystems is not guaranteed."
797 -}
798 -
799 -pkg_postrm() {
800 - use emacs && elisp-site-regen
801 -}
802
803 diff --git a/dev-vcs/git/git-2.23.2.ebuild b/dev-vcs/git/git-2.23.2.ebuild
804 deleted file mode 100644
805 index eb01978045f..00000000000
806 --- a/dev-vcs/git/git-2.23.2.ebuild
807 +++ /dev/null
808 @@ -1,725 +0,0 @@
809 -# Copyright 1999-2020 Gentoo Authors
810 -# Distributed under the terms of the GNU General Public License v2
811 -
812 -EAPI=6
813 -
814 -GENTOO_DEPEND_ON_PERL=no
815 -
816 -# bug #329479: git-remote-testgit is not multiple-version aware
817 -PYTHON_COMPAT=( python{2_7,3_{6,7}} )
818 -
819 -inherit toolchain-funcs elisp-common l10n perl-module bash-completion-r1 python-single-r1 systemd
820 -
821 -PLOCALES="bg ca de es fr is it ko pt_PT ru sv vi zh_CN"
822 -if [[ ${PV} == *9999 ]]; then
823 - inherit git-r3
824 - EGIT_REPO_URI="git://git.kernel.org/pub/scm/git/git.git"
825 - # Please ensure that all _four_ 9999 ebuilds get updated; they track the 4 upstream branches.
826 - # See https://git-scm.com/docs/gitworkflows#_graduation
827 - # In order of stability:
828 - # 9999-r0: maint
829 - # 9999-r1: master
830 - # 9999-r2: next
831 - # 9999-r3: pu
832 - case "${PVR}" in
833 - 9999) EGIT_BRANCH=maint ;;
834 - 9999-r1) EGIT_BRANCH=master ;;
835 - 9999-r2) EGIT_BRANCH=next;;
836 - 9999-r3) EGIT_BRANCH=pu ;;
837 - esac
838 -fi
839 -
840 -MY_PV="${PV/_rc/.rc}"
841 -MY_P="${PN}-${MY_PV}"
842 -
843 -DOC_VER="${MY_PV}"
844 -
845 -DESCRIPTION="stupid content tracker: distributed VCS designed for speed and efficiency"
846 -HOMEPAGE="https://www.git-scm.com/"
847 -if [[ ${PV} != *9999 ]]; then
848 - SRC_URI_SUFFIX="xz"
849 - SRC_URI_KORG="https://www.kernel.org/pub/software/scm/git"
850 - [[ "${PV/rc}" != "${PV}" ]] && SRC_URI_KORG+='/testing'
851 - SRC_URI="${SRC_URI_KORG}/${MY_P}.tar.${SRC_URI_SUFFIX}
852 - ${SRC_URI_KORG}/${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
853 - doc? (
854 - ${SRC_URI_KORG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
855 - )"
856 - [[ "${PV}" == *_rc* ]] || \
857 - KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 ~riscv s390 sparc x86 ~ppc-aix ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
858 -fi
859 -
860 -LICENSE="GPL-2"
861 -SLOT="0"
862 -IUSE="+blksha1 +curl cgi doc emacs gnome-keyring +gpg highlight +iconv libressl mediawiki mediawiki-experimental +nls +pcre +pcre-jit perforce +perl +ppcsha1 tk +threads +webdav xinetd cvs subversion test"
863 -
864 -# Common to both DEPEND and RDEPEND
865 -CDEPEND="
866 - gnome-keyring? ( app-crypt/libsecret )
867 - !libressl? ( dev-libs/openssl:0= )
868 - libressl? ( dev-libs/libressl:= )
869 - sys-libs/zlib
870 - pcre? (
871 - pcre-jit? ( dev-libs/libpcre2[jit(+)] )
872 - !pcre-jit? ( dev-libs/libpcre )
873 - )
874 - perl? ( dev-lang/perl:=[-build(-)] )
875 - tk? ( dev-lang/tk:0= )
876 - curl? (
877 - net-misc/curl
878 - webdav? ( dev-libs/expat )
879 - )
880 - emacs? ( >=app-editors/emacs-23.1:* )
881 - iconv? ( virtual/libiconv )
882 -"
883 -
884 -RDEPEND="${CDEPEND}
885 - gpg? ( app-crypt/gnupg )
886 - perl? (
887 - dev-perl/Error
888 - dev-perl/MailTools
889 - dev-perl/Authen-SASL
890 - cgi? (
891 - dev-perl/CGI
892 - highlight? ( app-text/highlight )
893 - )
894 - cvs? (
895 - >=dev-vcs/cvsps-2.1:0
896 - dev-perl/DBI
897 - dev-perl/DBD-SQLite
898 - )
899 - mediawiki? (
900 - dev-perl/DateTime-Format-ISO8601
901 - dev-perl/HTML-Tree
902 - dev-perl/MediaWiki-API
903 - )
904 - subversion? (
905 - dev-vcs/subversion[-dso,perl]
906 - dev-perl/libwww-perl
907 - dev-perl/TermReadKey
908 - )
909 - )
910 - perforce? ( ${PYTHON_DEPS} )
911 -"
912 -
913 -# This is how info docs are created with Git:
914 -# .txt/asciidoc --(asciidoc)---------> .xml/docbook
915 -# .xml/docbook --(docbook2texi.pl)--> .texi
916 -# .texi --(makeinfo)---------> .info
917 -DEPEND="${CDEPEND}
918 - doc? (
919 - app-text/asciidoc
920 - app-text/docbook2X
921 - app-text/xmlto
922 - sys-apps/texinfo
923 - )
924 - nls? ( sys-devel/gettext )
925 - test? ( app-crypt/gnupg )"
926 -
927 -# Live ebuild builds man pages and HTML docs, additionally
928 -if [[ ${PV} == *9999 ]]; then
929 - DEPEND="${DEPEND}
930 - app-text/asciidoc"
931 -fi
932 -
933 -SITEFILE="50${PN}-gentoo.el"
934 -S="${WORKDIR}/${MY_P}"
935 -
936 -REQUIRED_USE="
937 - cgi? ( perl )
938 - cvs? ( perl )
939 - mediawiki? ( perl )
940 - mediawiki-experimental? ( mediawiki )
941 - subversion? ( perl )
942 - webdav? ( curl )
943 - pcre-jit? ( pcre )
944 - perforce? ( ${PYTHON_REQUIRED_USE} )
945 -"
946 -
947 -RESTRICT="!test? ( test )"
948 -
949 -PATCHES=(
950 - # bug #350330 - automagic CVS when we don't want it is bad.
951 - "${FILESDIR}"/git-2.22.0_rc0-optional-cvs.patch
952 -
953 - "${FILESDIR}"/git-2.2.0-svn-fe-linking.patch
954 -
955 - # Make submodule output quiet
956 - "${FILESDIR}"/git-2.21.0-quiet-submodules-testcase.patch
957 -
958 - "${FILESDIR}"/git-2.23.0-avoid_empty_remote_line.patch #698384
959 -)
960 -
961 -pkg_setup() {
962 - if use subversion && has_version "dev-vcs/subversion[dso]"; then
963 - ewarn "Per Gentoo bugs #223747, #238586, when subversion is built"
964 - ewarn "with USE=dso, there may be weird crashes in git-svn. You"
965 - ewarn "have been warned."
966 - fi
967 - if use perforce ; then
968 - python-single-r1_pkg_setup
969 - fi
970 -}
971 -
972 -# This is needed because for some obscure reasons future calls to make don't
973 -# pick up these exports if we export them in src_unpack()
974 -exportmakeopts() {
975 - local myopts=(
976 - ASCIIDOC_NO_ROFF=YesPlease
977 - $(usex cvs '' NO_CVS=YesPlease)
978 - $(usex elibc_musl NO_REGEX=YesPlease '')
979 - $(usex iconv '' NO_ICONV=YesPlease)
980 - $(usex nls '' NO_GETTEXT=YesPlease)
981 - $(usex perl 'INSTALLDIRS=vendor NO_PERL_CPAN_FALLBACKS=YesPlease' NO_PERL=YesPlease)
982 - $(usex perforce '' NO_PYTHON=YesPlease)
983 - $(usex subversion '' NO_SVN_TESTS=YesPlease)
984 - $(usex threads '' NO_PTHREADS=YesPlease)
985 - $(usex tk '' NO_TCLTK=YesPlease)
986 - )
987 -
988 - if use blksha1 ; then
989 - myopts+=( BLK_SHA1=YesPlease )
990 - elif use ppcsha1 ; then
991 - myopts+=( PPC_SHA1=YesPlease )
992 - fi
993 -
994 - if use curl ; then
995 - use webdav || myopts+=( NO_EXPAT=YesPlease )
996 - else
997 - myopts+=( NO_CURL=YesPlease )
998 - fi
999 -
1000 - # broken assumptions, because of static build system ...
1001 - myopts+=(
1002 - NO_FINK=YesPlease
1003 - NO_DARWIN_PORTS=YesPlease
1004 - INSTALL=install
1005 - TAR=tar
1006 - SHELL_PATH="${EPREFIX}/bin/sh"
1007 - SANE_TOOL_PATH=
1008 - OLD_ICONV=
1009 - NO_EXTERNAL_GREP=
1010 - )
1011 -
1012 - # For svn-fe
1013 - extlibs=( -lz -lssl ${S}/xdiff/lib.a $(usex threads -lpthread '') )
1014 -
1015 - # can't define this to null, since the entire makefile depends on it
1016 - sed -i -e '/\/usr\/local/s/BASIC_/#BASIC_/' Makefile || die
1017 -
1018 - if use pcre; then
1019 - if use pcre-jit; then
1020 - myopts+=( USE_LIBPCRE2=YesPlease )
1021 - extlibs+=( -lpcre2-8 )
1022 - else
1023 - myopts+=(
1024 - USE_LIBPCRE1=YesPlease
1025 - NO_LIBPCRE1_JIT=YesPlease
1026 - )
1027 - extlibs+=( -lpcre )
1028 - fi
1029 - fi
1030 -# Disabled until ~m68k-mint can be keyworded again
1031 -# if [[ ${CHOST} == *-mint* ]] ; then
1032 -# myopts+=(
1033 -# NO_MMAP=YesPlease
1034 -# NO_IPV6=YesPlease
1035 -# NO_STRLCPY=YesPlease
1036 -# NO_MEMMEM=YesPlease
1037 -# NO_MKDTEMP=YesPlease
1038 -# NO_MKSTEMPS=YesPlease
1039 -# )
1040 -# fi
1041 - if [[ ${CHOST} == ia64-*-hpux* ]]; then
1042 - myopts+=( NO_NSEC=YesPlease )
1043 - fi
1044 - if [[ ${CHOST} == *-*-aix* ]]; then
1045 - myopts+=( NO_FNMATCH_CASEFOLD=YesPlease )
1046 - fi
1047 - if [[ ${CHOST} == *-solaris* ]]; then
1048 - myopts+=(
1049 - NEEDS_LIBICONV=YesPlease
1050 - HAVE_CLOCK_MONOTONIC=1
1051 - )
1052 - grep -q getdelim "${ROOT%/}"/usr/include/stdio.h && \
1053 - myopts+=( HAVE_GETDELIM=1 )
1054 - fi
1055 -
1056 - has_version '>=app-text/asciidoc-8.0' \
1057 - && myopts+=( ASCIIDOC8=YesPlease )
1058 -
1059 - # Bug 290465:
1060 - # builtin-fetch-pack.c:816: error: 'struct stat' has no member named 'st_mtim'
1061 - if [[ "${CHOST}" == *-uclibc* ]] ; then
1062 - myopts+=( NO_NSEC=YesPlease )
1063 - use iconv && myopts+=( NEEDS_LIBICONV=YesPlease )
1064 - fi
1065 -
1066 - export MY_MAKEOPTS="${myopts[@]}"
1067 - export EXTLIBS="${extlibs[@]}"
1068 -}
1069 -
1070 -src_unpack() {
1071 - if [[ ${PV} != *9999 ]]; then
1072 - unpack ${MY_P}.tar.${SRC_URI_SUFFIX}
1073 - cd "${S}" || die
1074 - unpack ${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
1075 - if use doc ; then
1076 - pushd "${S}"/Documentation &>/dev/null || die
1077 - unpack ${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
1078 - popd &>/dev/null || die
1079 - fi
1080 - else
1081 - git-r3_src_unpack
1082 - #cp "${FILESDIR}"/GIT-VERSION-GEN .
1083 - fi
1084 -
1085 -}
1086 -
1087 -src_prepare() {
1088 - # add experimental patches to improve mediawiki support
1089 - # see patches for origin
1090 - if use mediawiki-experimental ; then
1091 - PATCHES+=(
1092 - "${FILESDIR}"/git-2.7.0-mediawiki-namespaces.patch
1093 - "${FILESDIR}"/git-2.7.0-mediawiki-subpages.patch
1094 - "${FILESDIR}"/git-2.7.0-mediawiki-500pages.patch
1095 - )
1096 - fi
1097 -
1098 - default
1099 -
1100 - sed -i \
1101 - -e 's:^\(CFLAGS[[:space:]]*=\).*$:\1 $(OPTCFLAGS) -Wall:' \
1102 - -e 's:^\(LDFLAGS[[:space:]]*=\).*$:\1 $(OPTLDFLAGS):' \
1103 - -e 's:^\(CC[[:space:]]* =\).*$:\1$(OPTCC):' \
1104 - -e 's:^\(AR[[:space:]]* =\).*$:\1$(OPTAR):' \
1105 - -e "s:\(PYTHON_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
1106 - -e "s:\(PERL_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
1107 - Makefile contrib/svn-fe/Makefile || die
1108 -
1109 - # Fix docbook2texi command
1110 - sed -r -i 's/DOCBOOK2X_TEXI[[:space:]]*=[[:space:]]*docbook2x-texi/DOCBOOK2X_TEXI = docbook2texi.pl/' \
1111 - Documentation/Makefile || die
1112 -}
1113 -
1114 -git_emake() {
1115 - # bug #320647: PYTHON_PATH
1116 - local PYTHON_PATH=""
1117 - use perforce && PYTHON_PATH="${PYTHON}"
1118 - emake ${MY_MAKEOPTS} \
1119 - prefix="${EPREFIX}"/usr \
1120 - htmldir="${EPREFIX}"/usr/share/doc/${PF}/html \
1121 - perllibdir="$(use perl && perl_get_raw_vendorlib)" \
1122 - sysconfdir="${EPREFIX}"/etc \
1123 - DESTDIR="${D}" \
1124 - GIT_TEST_OPTS="--no-color" \
1125 - OPTAR="$(tc-getAR)" \
1126 - OPTCC="$(tc-getCC)" \
1127 - OPTCFLAGS="${CFLAGS}" \
1128 - OPTLDFLAGS="${LDFLAGS}" \
1129 - PERL_PATH="${EPREFIX}/usr/bin/perl" \
1130 - PERL_MM_OPT="" \
1131 - PYTHON_PATH="${PYTHON_PATH}" \
1132 - V=1 \
1133 - "$@"
1134 -}
1135 -
1136 -src_configure() {
1137 - exportmakeopts
1138 -}
1139 -
1140 -src_compile() {
1141 - git_emake || die "emake failed"
1142 -
1143 - if use emacs ; then
1144 - elisp-compile contrib/emacs/git{,-blame}.el
1145 - fi
1146 -
1147 - if use perl && use cgi ; then
1148 - git_emake \
1149 - gitweb \
1150 - || die "emake gitweb (cgi) failed"
1151 - fi
1152 -
1153 - if [[ ${CHOST} == *-darwin* ]]; then
1154 - pushd contrib/credential/osxkeychain &>/dev/null || die
1155 - git_emake CC=$(tc-getCC) CFLAGS="${CFLAGS}" \
1156 - || die "emake credential-osxkeychain"
1157 - popd &>/dev/null || die
1158 - fi
1159 -
1160 - pushd Documentation &>/dev/null || die
1161 - if [[ ${PV} == *9999 ]] ; then
1162 - git_emake man \
1163 - || die "emake man failed"
1164 - if use doc ; then
1165 - git_emake info html \
1166 - || die "emake info html failed"
1167 - fi
1168 - else
1169 - if use doc ; then
1170 - git_emake info \
1171 - || die "emake info html failed"
1172 - fi
1173 - fi
1174 - popd &>/dev/null || die
1175 -
1176 - if use subversion ; then
1177 - pushd contrib/svn-fe &>/dev/null || die
1178 - # by defining EXTLIBS we override the detection for libintl and
1179 - # libiconv, bug #516168
1180 - local nlsiconv=()
1181 - use nls && use !elibc_glibc && nlsiconv+=( -lintl )
1182 - use iconv && use !elibc_glibc && nlsiconv+=( -liconv )
1183 - git_emake EXTLIBS="${EXTLIBS} ${nlsiconv[@]}" \
1184 - || die "emake svn-fe failed"
1185 - if use doc ; then
1186 - # svn-fe.1 requires the full USE=doc dependency stack
1187 - git_emake svn-fe.1 \
1188 - || die "emake svn-fe.1 failed"
1189 - git_emake svn-fe.html \
1190 - || die "svn-fe.html failed"
1191 - fi
1192 - popd &>/dev/null || die
1193 - fi
1194 -
1195 - if use gnome-keyring ; then
1196 - pushd contrib/credential/libsecret &>/dev/null || die
1197 - git_emake || die "emake git-credential-libsecret failed"
1198 - popd &>/dev/null || die
1199 - fi
1200 -
1201 - pushd contrib/subtree &>/dev/null || die
1202 - git_emake git-subtree
1203 - # git-subtree.1 requires the full USE=doc dependency stack
1204 - use doc && git_emake git-subtree.html git-subtree.1
1205 - popd &>/dev/null || die
1206 -
1207 - pushd contrib/diff-highlight &>/dev/null || die
1208 - git_emake
1209 - popd &>/dev/null || die
1210 -
1211 - if use mediawiki ; then
1212 - pushd contrib/mw-to-git &>/dev/null || die
1213 - git_emake
1214 - popd &>/dev/null || die
1215 -
1216 - fi
1217 -}
1218 -
1219 -src_install() {
1220 - git_emake install || die "make install failed"
1221 -
1222 - if [[ ${CHOST} == *-darwin* ]]; then
1223 - dobin contrib/credential/osxkeychain/git-credential-osxkeychain
1224 - fi
1225 -
1226 - # Depending on the tarball and manual rebuild of the documentation, the
1227 - # manpages may exist in either OR both of these directories.
1228 - find man?/*.[157] >/dev/null 2>&1 && doman man?/*.[157]
1229 - find Documentation/*.[157] >/dev/null 2>&1 && doman Documentation/*.[157]
1230 - dodoc README* Documentation/{SubmittingPatches,CodingGuidelines}
1231 - use doc && dodir /usr/share/doc/${PF}/html
1232 - local d
1233 - for d in / /howto/ /technical/ ; do
1234 - docinto ${d}
1235 - dodoc Documentation${d}*.txt
1236 - if use doc ; then
1237 - docinto ${d}/html
1238 - dodoc Documentation${d}*.html
1239 - fi
1240 - done
1241 - docinto /
1242 - # Upstream does not ship this pre-built :-(
1243 - use doc && doinfo Documentation/{git,gitman}.info
1244 -
1245 - newbashcomp contrib/completion/git-completion.bash ${PN}
1246 - bashcomp_alias git gitk
1247 - # Not really a bash-completion file (bug #477920)
1248 - # but still needed uncompressed (bug #507480)
1249 - insinto /usr/share/${PN}
1250 - doins contrib/completion/git-prompt.sh
1251 -
1252 - if use emacs ; then
1253 - elisp-install ${PN} contrib/emacs/git.{el,elc}
1254 - elisp-install ${PN} contrib/emacs/git-blame.{el,elc}
1255 - #elisp-install ${PN}/compat contrib/emacs/vc-git.{el,elc}
1256 - # don't add automatically to the load-path, so the sitefile
1257 - # can do a conditional loading
1258 - touch "${ED%/}${SITELISP}/${PN}/compat/.nosearch"
1259 - elisp-site-file-install "${FILESDIR}"/${SITEFILE}
1260 - fi
1261 -
1262 - #dobin contrib/fast-import/git-p4 # Moved upstream
1263 - #dodoc contrib/fast-import/git-p4.txt # Moved upstream
1264 - newbin contrib/fast-import/import-tars.perl import-tars
1265 - exeinto /usr/libexec/git-core/
1266 - newexe contrib/git-resurrect.sh git-resurrect
1267 -
1268 - # git-subtree
1269 - pushd contrib/subtree &>/dev/null || die
1270 - git_emake install || die "Failed to emake install for git-subtree"
1271 - if use doc ; then
1272 - # Do not move git subtree install-man outside USE=doc!
1273 - git_emake install-man install-html || die "Failed to emake install-html install-man for git-subtree"
1274 - fi
1275 - newdoc README README.git-subtree
1276 - dodoc git-subtree.txt
1277 - popd &>/dev/null || die
1278 -
1279 - if use mediawiki ; then
1280 - pushd contrib/mw-to-git &>/dev/null || die
1281 - git_emake install
1282 - popd &>/dev/null || die
1283 - fi
1284 -
1285 - # diff-highlight
1286 - dobin contrib/diff-highlight/diff-highlight
1287 - newdoc contrib/diff-highlight/README README.diff-highlight
1288 -
1289 - # git-jump
1290 - exeinto /usr/libexec/git-core/
1291 - doexe contrib/git-jump/git-jump
1292 - newdoc contrib/git-jump/README git-jump.txt
1293 -
1294 - # git-contacts
1295 - exeinto /usr/libexec/git-core/
1296 - doexe contrib/contacts/git-contacts
1297 - dodoc contrib/contacts/git-contacts.txt
1298 -
1299 - if use gnome-keyring ; then
1300 - pushd contrib/credential/libsecret &>/dev/null || die
1301 - dobin git-credential-libsecret
1302 - popd &>/dev/null || die
1303 - fi
1304 -
1305 - if use subversion ; then
1306 - pushd contrib/svn-fe &>/dev/null || die
1307 - dobin svn-fe
1308 - dodoc svn-fe.txt
1309 - if use doc ; then
1310 - # Do not move svn-fe.1 outside USE=doc!
1311 - doman svn-fe.1
1312 - docinto html
1313 - dodoc svn-fe.html
1314 - fi
1315 - popd &>/dev/null || die
1316 - fi
1317 -
1318 - dodir /usr/share/${PN}/contrib
1319 - # The following are excluded:
1320 - # completion - installed above
1321 - # diff-highlight - done above
1322 - # emacs - installed above
1323 - # examples - these are stuff that is not used in Git anymore actually
1324 - # git-jump - done above
1325 - # gitview - installed above
1326 - # p4import - excluded because fast-import has a better one
1327 - # patches - stuff the Git guys made to go upstream to other places
1328 - # persistent-https - TODO
1329 - # mw-to-git - TODO
1330 - # subtree - build seperately
1331 - # svnimport - use git-svn
1332 - # thunderbird-patch-inline - fixes thunderbird
1333 - local contrib_objects=(
1334 - buildsystems
1335 - fast-import
1336 - hg-to-git
1337 - hooks
1338 - remotes2config.sh
1339 - rerere-train.sh
1340 - stats
1341 - workdir
1342 - )
1343 - local i
1344 - for i in "${contrib_objects[@]}" ; do
1345 - cp -rf \
1346 - "${S}"/contrib/${i} \
1347 - "${ED%/}"/usr/share/${PN}/contrib \
1348 - || die "Failed contrib ${i}"
1349 - done
1350 -
1351 - if use perl && use cgi ; then
1352 - # We used to install in /usr/share/${PN}/gitweb
1353 - # but upstream installs in /usr/share/gitweb
1354 - # so we will install a symlink and use their location for compat with other
1355 - # distros
1356 - dosym ../gitweb /usr/share/${PN}/gitweb
1357 -
1358 - # INSTALL discusses configuration issues, not just installation
1359 - docinto /
1360 - newdoc "${S}"/gitweb/INSTALL INSTALL.gitweb
1361 - newdoc "${S}"/gitweb/README README.gitweb
1362 -
1363 - for d in "${ED%/}"/usr/lib{,64}/perl5/ ; do
1364 - if test -d "${d}" ; then find "${d}" \
1365 - -name .packlist \
1366 - -delete || die
1367 - fi
1368 - done
1369 - else
1370 - rm -rf "${ED%/}"/usr/share/gitweb
1371 - fi
1372 -
1373 - if ! use subversion ; then
1374 - rm -f "${ED%/}"/usr/libexec/git-core/git-svn \
1375 - "${ED%/}"/usr/share/man/man1/git-svn.1*
1376 - fi
1377 -
1378 - if use xinetd ; then
1379 - insinto /etc/xinetd.d
1380 - newins "${FILESDIR}"/git-daemon.xinetd git-daemon
1381 - fi
1382 -
1383 - if use !prefix ; then
1384 - newinitd "${FILESDIR}"/git-daemon-r1.initd git-daemon
1385 - newconfd "${FILESDIR}"/git-daemon.confd git-daemon
1386 - systemd_newunit "${FILESDIR}/git-daemon_at-r1.service" "git-daemon@.service"
1387 - systemd_dounit "${FILESDIR}/git-daemon.socket"
1388 - fi
1389 -
1390 - perl_delete_localpod
1391 -
1392 - # Remove disabled linguas
1393 - # we could remove sources in src_prepare, but install does not
1394 - # handle missing locale dir well
1395 - rm_loc() {
1396 - if [[ -e "${ED%/}/usr/share/locale/${1}" ]]; then
1397 - rm -r "${ED%/}/usr/share/locale/${1}" || die
1398 - fi
1399 - }
1400 - l10n_for_each_disabled_locale_do rm_loc
1401 -}
1402 -
1403 -src_test() {
1404 - local disabled=()
1405 - local tests_cvs=(
1406 - t9200-git-cvsexportcommit.sh
1407 - t9400-git-cvsserver-server.sh
1408 - t9401-git-cvsserver-crlf.sh
1409 - t9402-git-cvsserver-refs.sh
1410 - t9600-cvsimport.sh
1411 - t9601-cvsimport-vendor-branch.sh
1412 - t9602-cvsimport-branches-tags.sh
1413 - t9603-cvsimport-patchsets.sh
1414 - t9604-cvsimport-timestamps.sh
1415 - )
1416 - local tests_perl=(
1417 - t3701-add-interactive.sh
1418 - t5502-quickfetch.sh
1419 - t5512-ls-remote.sh
1420 - t5520-pull.sh
1421 - t7106-reset-unborn-branch.sh
1422 - t7501-commit.sh
1423 - )
1424 - # Bug #225601 - t0004 is not suitable for root perm
1425 - # Bug #219839 - t1004 is not suitable for root perm
1426 - # t0001-init.sh - check for init notices EPERM* fails
1427 - local tests_nonroot=(
1428 - t0001-init.sh
1429 - t0004-unwritable.sh
1430 - t0070-fundamental.sh
1431 - t1004-read-tree-m-u-wf.sh
1432 - t3700-add.sh
1433 - t7300-clean.sh
1434 - )
1435 - # t9100 still fails with symlinks in SVN 1.7
1436 - local test_svn=( t9100-git-svn-basic.sh )
1437 -
1438 - # Unzip is used only for the testcase code, not by any normal parts of Git.
1439 - if ! has_version app-arch/unzip ; then
1440 - einfo "Disabling tar-tree tests"
1441 - disabled+=( t5000-tar-tree.sh )
1442 - fi
1443 -
1444 - local cvs=0
1445 - use cvs && let cvs=${cvs}+1
1446 - if [[ ${EUID} -eq 0 ]]; then
1447 - if [[ ${cvs} -eq 1 ]]; then
1448 - ewarn "Skipping CVS tests because CVS does not work as root!"
1449 - ewarn "You should retest with FEATURES=userpriv!"
1450 - disabled+=( ${tests_cvs[@]} )
1451 - fi
1452 - einfo "Skipping other tests that require being non-root"
1453 - disabled+=( ${tests_nonroot[@]} )
1454 - else
1455 - [[ ${cvs} -gt 0 ]] && \
1456 - has_version dev-vcs/cvs && \
1457 - let cvs=${cvs}+1
1458 - [[ ${cvs} -gt 1 ]] && \
1459 - has_version "dev-vcs/cvs[server]" && \
1460 - let cvs=${cvs}+1
1461 - if [[ ${cvs} -lt 3 ]]; then
1462 - einfo "Disabling CVS tests (needs dev-vcs/cvs[USE=server])"
1463 - disabled+=( ${tests_cvs[@]} )
1464 - fi
1465 - fi
1466 -
1467 - if ! use perl ; then
1468 - einfo "Disabling tests that need Perl"
1469 - disabled+=( ${tests_perl[@]} )
1470 - fi
1471 -
1472 - einfo "Disabling tests that fail with SVN 1.7"
1473 - disabled+=( ${test_svn[@]} )
1474 -
1475 - # Reset all previously disabled tests
1476 - pushd t &>/dev/null || die
1477 - local i
1478 - for i in *.sh.DISABLED ; do
1479 - [[ -f "${i}" ]] && mv -f "${i}" "${i%.DISABLED}"
1480 - done
1481 - einfo "Disabled tests:"
1482 - for i in ${disabled[@]} ; do
1483 - [[ -f "${i}" ]] && mv -f "${i}" "${i}.DISABLED" && einfo "Disabled ${i}"
1484 - done
1485 -
1486 - # Avoid the test system removing the results because we want them ourselves
1487 - sed -e '/^[[:space:]]*$(MAKE) clean/s,^,#,g' \
1488 - -i Makefile || die
1489 -
1490 - # Clean old results first, must always run
1491 - nonfatal git_emake clean
1492 - popd &>/dev/null || die
1493 -
1494 - # Now run the tests, keep going if we hit an error, and don't terminate on
1495 - # failure
1496 - local rc
1497 - einfo "Start test run"
1498 - #MAKEOPTS=-j1
1499 - nonfatal git_emake --keep-going test
1500 - rc=$?
1501 -
1502 - # Display nice results, now print the results
1503 - pushd t &>/dev/null || die
1504 - nonfatal git_emake aggregate-results
1505 -
1506 - # And bail if there was a problem
1507 - [ ${rc} -eq 0 ] || die "tests failed. Please file a bug."
1508 -}
1509 -
1510 -showpkgdeps() {
1511 - local pkg=$1
1512 - shift
1513 - elog " $(printf "%-17s:" ${pkg}) ${@}"
1514 -}
1515 -
1516 -pkg_postinst() {
1517 - use emacs && elisp-site-regen
1518 - elog "Please read /usr/share/bash-completion/completions/git for Git bash command"
1519 - elog "completion."
1520 - elog "Please read /usr/share/git/git-prompt.sh for Git bash prompt"
1521 - elog "Note that the prompt bash code is now in that separate script"
1522 - elog "These additional scripts need some dependencies:"
1523 - echo
1524 - showpkgdeps git-quiltimport "dev-util/quilt"
1525 - showpkgdeps git-instaweb \
1526 - "|| ( www-servers/lighttpd www-servers/apache www-servers/nginx )"
1527 - echo
1528 - use mediawiki-experimental && ewarn "Using experimental git-mediawiki patches. The stability of cloned wiki filesystems is not guaranteed."
1529 -}
1530 -
1531 -pkg_postrm() {
1532 - use emacs && elisp-site-regen
1533 -}
1534
1535 diff --git a/dev-vcs/git/git-2.24.1.ebuild b/dev-vcs/git/git-2.24.1.ebuild
1536 deleted file mode 100644
1537 index b14f087bb86..00000000000
1538 --- a/dev-vcs/git/git-2.24.1.ebuild
1539 +++ /dev/null
1540 @@ -1,728 +0,0 @@
1541 -# Copyright 1999-2020 Gentoo Authors
1542 -# Distributed under the terms of the GNU General Public License v2
1543 -
1544 -EAPI=7
1545 -
1546 -GENTOO_DEPEND_ON_PERL=no
1547 -
1548 -# bug #329479: git-remote-testgit is not multiple-version aware
1549 -PYTHON_COMPAT=( python{2_7,3_{6,7}} )
1550 -
1551 -inherit toolchain-funcs elisp-common l10n perl-module bash-completion-r1 python-single-r1 systemd
1552 -
1553 -PLOCALES="bg ca de es fr is it ko pt_PT ru sv vi zh_CN"
1554 -if [[ ${PV} == *9999 ]]; then
1555 - inherit git-r3
1556 - EGIT_REPO_URI="git://git.kernel.org/pub/scm/git/git.git"
1557 - # Please ensure that all _four_ 9999 ebuilds get updated; they track the 4 upstream branches.
1558 - # See https://git-scm.com/docs/gitworkflows#_graduation
1559 - # In order of stability:
1560 - # 9999-r0: maint
1561 - # 9999-r1: master
1562 - # 9999-r2: next
1563 - # 9999-r3: pu
1564 - case "${PVR}" in
1565 - 9999) EGIT_BRANCH=maint ;;
1566 - 9999-r1) EGIT_BRANCH=master ;;
1567 - 9999-r2) EGIT_BRANCH=next;;
1568 - 9999-r3) EGIT_BRANCH=pu ;;
1569 - esac
1570 -fi
1571 -
1572 -MY_PV="${PV/_rc/.rc}"
1573 -MY_P="${PN}-${MY_PV}"
1574 -
1575 -DOC_VER="${MY_PV}"
1576 -
1577 -DESCRIPTION="stupid content tracker: distributed VCS designed for speed and efficiency"
1578 -HOMEPAGE="https://www.git-scm.com/"
1579 -if [[ ${PV} != *9999 ]]; then
1580 - SRC_URI_SUFFIX="xz"
1581 - SRC_URI_KORG="https://www.kernel.org/pub/software/scm/git"
1582 - [[ "${PV/rc}" != "${PV}" ]] && SRC_URI_KORG+='/testing'
1583 - SRC_URI="${SRC_URI_KORG}/${MY_P}.tar.${SRC_URI_SUFFIX}
1584 - ${SRC_URI_KORG}/${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
1585 - doc? (
1586 - ${SRC_URI_KORG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
1587 - )"
1588 - [[ "${PV}" == *_rc* ]] || \
1589 - KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 ~riscv s390 sparc x86 ~ppc-aix ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
1590 -fi
1591 -
1592 -LICENSE="GPL-2"
1593 -SLOT="0"
1594 -IUSE="+blksha1 +curl cgi doc emacs gnome-keyring +gpg highlight +iconv libressl mediawiki mediawiki-experimental +nls +pcre +pcre-jit perforce +perl +ppcsha1 tk +threads +webdav xinetd cvs subversion test"
1595 -
1596 -# Common to both DEPEND and RDEPEND
1597 -DEPEND="
1598 - gnome-keyring? ( app-crypt/libsecret )
1599 - !libressl? ( dev-libs/openssl:0= )
1600 - libressl? ( dev-libs/libressl:= )
1601 - sys-libs/zlib
1602 - pcre? (
1603 - pcre-jit? ( dev-libs/libpcre2[jit(+)] )
1604 - !pcre-jit? ( dev-libs/libpcre )
1605 - )
1606 - perl? ( dev-lang/perl:=[-build(-)] )
1607 - tk? ( dev-lang/tk:0= )
1608 - curl? (
1609 - net-misc/curl
1610 - webdav? ( dev-libs/expat )
1611 - )
1612 - emacs? ( >=app-editors/emacs-23.1:* )
1613 - iconv? ( virtual/libiconv )
1614 -"
1615 -
1616 -RDEPEND="${DEPEND}
1617 - gpg? ( app-crypt/gnupg )
1618 - perl? (
1619 - dev-perl/Error
1620 - dev-perl/MailTools
1621 - dev-perl/Authen-SASL
1622 - cgi? (
1623 - dev-perl/CGI
1624 - highlight? ( app-text/highlight )
1625 - )
1626 - cvs? (
1627 - >=dev-vcs/cvsps-2.1:0
1628 - dev-perl/DBI
1629 - dev-perl/DBD-SQLite
1630 - )
1631 - mediawiki? (
1632 - dev-perl/DateTime-Format-ISO8601
1633 - dev-perl/HTML-Tree
1634 - dev-perl/MediaWiki-API
1635 - )
1636 - subversion? (
1637 - dev-vcs/subversion[-dso,perl]
1638 - dev-perl/libwww-perl
1639 - dev-perl/TermReadKey
1640 - )
1641 - )
1642 - perforce? ( ${PYTHON_DEPS} )
1643 -"
1644 -
1645 -# This is how info docs are created with Git:
1646 -# .txt/asciidoc --(asciidoc)---------> .xml/docbook
1647 -# .xml/docbook --(docbook2texi.pl)--> .texi
1648 -# .texi --(makeinfo)---------> .info
1649 -BDEPEND="
1650 - doc? (
1651 - app-text/asciidoc
1652 - app-text/docbook2X
1653 - app-text/xmlto
1654 - sys-apps/texinfo
1655 - )
1656 - nls? ( sys-devel/gettext )
1657 - test? ( app-crypt/gnupg )
1658 -"
1659 -
1660 -# Live ebuild builds man pages and HTML docs, additionally
1661 -if [[ ${PV} == *9999 ]]; then
1662 - BDEPEND="${BDEPEND}
1663 - app-text/asciidoc"
1664 -fi
1665 -
1666 -SITEFILE="50${PN}-gentoo.el"
1667 -S="${WORKDIR}/${MY_P}"
1668 -
1669 -REQUIRED_USE="
1670 - cgi? ( perl )
1671 - cvs? ( perl )
1672 - mediawiki? ( perl )
1673 - mediawiki-experimental? ( mediawiki )
1674 - subversion? ( perl )
1675 - webdav? ( curl )
1676 - pcre-jit? ( pcre )
1677 - perforce? ( ${PYTHON_REQUIRED_USE} )
1678 -"
1679 -
1680 -RESTRICT="!test? ( test )"
1681 -
1682 -PATCHES=(
1683 - # bug #350330 - automagic CVS when we don't want it is bad.
1684 - "${FILESDIR}"/git-2.22.0_rc0-optional-cvs.patch
1685 -
1686 - "${FILESDIR}"/git-2.2.0-svn-fe-linking.patch
1687 -
1688 - # Make submodule output quiet
1689 - "${FILESDIR}"/git-2.21.0-quiet-submodules-testcase.patch
1690 -)
1691 -
1692 -pkg_setup() {
1693 - if use subversion && has_version "dev-vcs/subversion[dso]"; then
1694 - ewarn "Per Gentoo bugs #223747, #238586, when subversion is built"
1695 - ewarn "with USE=dso, there may be weird crashes in git-svn. You"
1696 - ewarn "have been warned."
1697 - fi
1698 - if use perforce ; then
1699 - python-single-r1_pkg_setup
1700 - fi
1701 -}
1702 -
1703 -# This is needed because for some obscure reasons future calls to make don't
1704 -# pick up these exports if we export them in src_unpack()
1705 -exportmakeopts() {
1706 - local extlibs myopts
1707 -
1708 - myopts=(
1709 - ASCIIDOC_NO_ROFF=YesPlease
1710 - $(usex cvs '' NO_CVS=YesPlease)
1711 - $(usex elibc_musl NO_REGEX=YesPlease '')
1712 - $(usex iconv '' NO_ICONV=YesPlease)
1713 - $(usex nls '' NO_GETTEXT=YesPlease)
1714 - $(usex perl 'INSTALLDIRS=vendor NO_PERL_CPAN_FALLBACKS=YesPlease' NO_PERL=YesPlease)
1715 - $(usex perforce '' NO_PYTHON=YesPlease)
1716 - $(usex subversion '' NO_SVN_TESTS=YesPlease)
1717 - $(usex threads '' NO_PTHREADS=YesPlease)
1718 - $(usex tk '' NO_TCLTK=YesPlease)
1719 - )
1720 -
1721 - if use blksha1 ; then
1722 - myopts+=( BLK_SHA1=YesPlease )
1723 - elif use ppcsha1 ; then
1724 - myopts+=( PPC_SHA1=YesPlease )
1725 - fi
1726 -
1727 - if use curl ; then
1728 - use webdav || myopts+=( NO_EXPAT=YesPlease )
1729 - else
1730 - myopts+=( NO_CURL=YesPlease )
1731 - fi
1732 -
1733 - # broken assumptions, because of static build system ...
1734 - myopts+=(
1735 - NO_FINK=YesPlease
1736 - NO_DARWIN_PORTS=YesPlease
1737 - INSTALL=install
1738 - TAR=tar
1739 - SHELL_PATH="${EPREFIX}/bin/sh"
1740 - SANE_TOOL_PATH=
1741 - OLD_ICONV=
1742 - NO_EXTERNAL_GREP=
1743 - )
1744 -
1745 - # For svn-fe
1746 - extlibs=( -lz -lssl ${S}/xdiff/lib.a $(usex threads -lpthread '') )
1747 -
1748 - # can't define this to null, since the entire makefile depends on it
1749 - sed -i -e '/\/usr\/local/s/BASIC_/#BASIC_/' Makefile || die
1750 -
1751 - if use pcre; then
1752 - if use pcre-jit; then
1753 - myopts+=( USE_LIBPCRE2=YesPlease )
1754 - extlibs+=( -lpcre2-8 )
1755 - else
1756 - myopts+=(
1757 - USE_LIBPCRE1=YesPlease
1758 - NO_LIBPCRE1_JIT=YesPlease
1759 - )
1760 - extlibs+=( -lpcre )
1761 - fi
1762 - fi
1763 -# Disabled until ~m68k-mint can be keyworded again
1764 -# if [[ ${CHOST} == *-mint* ]] ; then
1765 -# myopts+=(
1766 -# NO_MMAP=YesPlease
1767 -# NO_IPV6=YesPlease
1768 -# NO_STRLCPY=YesPlease
1769 -# NO_MEMMEM=YesPlease
1770 -# NO_MKDTEMP=YesPlease
1771 -# NO_MKSTEMPS=YesPlease
1772 -# )
1773 -# fi
1774 - if [[ ${CHOST} == ia64-*-hpux* ]]; then
1775 - myopts+=( NO_NSEC=YesPlease )
1776 - fi
1777 - if [[ ${CHOST} == *-*-aix* ]]; then
1778 - myopts+=( NO_FNMATCH_CASEFOLD=YesPlease )
1779 - fi
1780 - if [[ ${CHOST} == *-solaris* ]]; then
1781 - myopts+=(
1782 - NEEDS_LIBICONV=YesPlease
1783 - HAVE_CLOCK_MONOTONIC=1
1784 - )
1785 - if grep -q getdelim "${EROOT}"/usr/include/stdio.h ; then
1786 - myopts+=( HAVE_GETDELIM=1 )
1787 - fi
1788 - fi
1789 -
1790 - if has_version '>=app-text/asciidoc-8.0' ; then
1791 - myopts+=( ASCIIDOC8=YesPlease )
1792 - fi
1793 -
1794 - # Bug 290465:
1795 - # builtin-fetch-pack.c:816: error: 'struct stat' has no member named 'st_mtim'
1796 - if [[ "${CHOST}" == *-uclibc* ]] ; then
1797 - myopts+=( NO_NSEC=YesPlease )
1798 - use iconv && myopts+=( NEEDS_LIBICONV=YesPlease )
1799 - fi
1800 -
1801 - export MY_MAKEOPTS="${myopts[@]}"
1802 - export EXTLIBS="${extlibs[@]}"
1803 -}
1804 -
1805 -src_unpack() {
1806 - if [[ ${PV} != *9999 ]]; then
1807 - unpack ${MY_P}.tar.${SRC_URI_SUFFIX}
1808 - cd "${S}" || die
1809 - unpack ${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
1810 - if use doc ; then
1811 - pushd "${S}"/Documentation &>/dev/null || die
1812 - unpack ${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
1813 - popd &>/dev/null || die
1814 - fi
1815 - else
1816 - git-r3_src_unpack
1817 - #cp "${FILESDIR}"/GIT-VERSION-GEN .
1818 - fi
1819 -
1820 -}
1821 -
1822 -src_prepare() {
1823 - # add experimental patches to improve mediawiki support
1824 - # see patches for origin
1825 - if use mediawiki-experimental ; then
1826 - PATCHES+=(
1827 - "${FILESDIR}"/git-2.7.0-mediawiki-namespaces.patch
1828 - "${FILESDIR}"/git-2.7.0-mediawiki-subpages.patch
1829 - "${FILESDIR}"/git-2.7.0-mediawiki-500pages.patch
1830 - )
1831 - fi
1832 -
1833 - default
1834 -
1835 - sed -i \
1836 - -e 's:^\(CFLAGS[[:space:]]*=\).*$:\1 $(OPTCFLAGS) -Wall:' \
1837 - -e 's:^\(LDFLAGS[[:space:]]*=\).*$:\1 $(OPTLDFLAGS):' \
1838 - -e 's:^\(CC[[:space:]]* =\).*$:\1$(OPTCC):' \
1839 - -e 's:^\(AR[[:space:]]* =\).*$:\1$(OPTAR):' \
1840 - -e "s:\(PYTHON_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
1841 - -e "s:\(PERL_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
1842 - Makefile contrib/svn-fe/Makefile || die
1843 -
1844 - # Fix docbook2texi command
1845 - sed -r -i 's/DOCBOOK2X_TEXI[[:space:]]*=[[:space:]]*docbook2x-texi/DOCBOOK2X_TEXI = docbook2texi.pl/' \
1846 - Documentation/Makefile || die
1847 -}
1848 -
1849 -git_emake() {
1850 - # bug #320647: PYTHON_PATH
1851 - local PYTHON_PATH=""
1852 - use perforce && PYTHON_PATH="${PYTHON}"
1853 - emake ${MY_MAKEOPTS} \
1854 - prefix="${EPREFIX}"/usr \
1855 - htmldir="${EPREFIX}"/usr/share/doc/${PF}/html \
1856 - perllibdir="$(use perl && perl_get_raw_vendorlib)" \
1857 - sysconfdir="${EPREFIX}"/etc \
1858 - DESTDIR="${D}" \
1859 - GIT_TEST_OPTS="--no-color" \
1860 - OPTAR="$(tc-getAR)" \
1861 - OPTCC="$(tc-getCC)" \
1862 - OPTCFLAGS="${CFLAGS}" \
1863 - OPTLDFLAGS="${LDFLAGS}" \
1864 - PERL_PATH="${EPREFIX}/usr/bin/perl" \
1865 - PERL_MM_OPT="" \
1866 - PYTHON_PATH="${PYTHON_PATH}" \
1867 - V=1 \
1868 - "$@"
1869 -}
1870 -
1871 -src_configure() {
1872 - exportmakeopts
1873 -}
1874 -
1875 -src_compile() {
1876 - git_emake || die "emake failed"
1877 -
1878 - if use emacs ; then
1879 - elisp-compile contrib/emacs/git{,-blame}.el
1880 - fi
1881 -
1882 - if use perl && use cgi ; then
1883 - git_emake \
1884 - gitweb \
1885 - || die "emake gitweb (cgi) failed"
1886 - fi
1887 -
1888 - if [[ ${CHOST} == *-darwin* ]]; then
1889 - pushd contrib/credential/osxkeychain &>/dev/null || die
1890 - git_emake CC=$(tc-getCC) CFLAGS="${CFLAGS}" \
1891 - || die "emake credential-osxkeychain"
1892 - popd &>/dev/null || die
1893 - fi
1894 -
1895 - pushd Documentation &>/dev/null || die
1896 - if [[ ${PV} == *9999 ]] ; then
1897 - git_emake man \
1898 - || die "emake man failed"
1899 - if use doc ; then
1900 - git_emake info html \
1901 - || die "emake info html failed"
1902 - fi
1903 - else
1904 - if use doc ; then
1905 - git_emake info \
1906 - || die "emake info html failed"
1907 - fi
1908 - fi
1909 - popd &>/dev/null || die
1910 -
1911 - if use subversion ; then
1912 - pushd contrib/svn-fe &>/dev/null || die
1913 - # by defining EXTLIBS we override the detection for libintl and
1914 - # libiconv, bug #516168
1915 - local nlsiconv=()
1916 - use nls && use !elibc_glibc && nlsiconv+=( -lintl )
1917 - use iconv && use !elibc_glibc && nlsiconv+=( -liconv )
1918 - git_emake EXTLIBS="${EXTLIBS} ${nlsiconv[@]}" \
1919 - || die "emake svn-fe failed"
1920 - if use doc ; then
1921 - # svn-fe.1 requires the full USE=doc dependency stack
1922 - git_emake svn-fe.1 \
1923 - || die "emake svn-fe.1 failed"
1924 - git_emake svn-fe.html \
1925 - || die "svn-fe.html failed"
1926 - fi
1927 - popd &>/dev/null || die
1928 - fi
1929 -
1930 - if use gnome-keyring ; then
1931 - pushd contrib/credential/libsecret &>/dev/null || die
1932 - git_emake || die "emake git-credential-libsecret failed"
1933 - popd &>/dev/null || die
1934 - fi
1935 -
1936 - pushd contrib/subtree &>/dev/null || die
1937 - git_emake git-subtree
1938 - # git-subtree.1 requires the full USE=doc dependency stack
1939 - use doc && git_emake git-subtree.html git-subtree.1
1940 - popd &>/dev/null || die
1941 -
1942 - pushd contrib/diff-highlight &>/dev/null || die
1943 - git_emake
1944 - popd &>/dev/null || die
1945 -
1946 - if use mediawiki ; then
1947 - pushd contrib/mw-to-git &>/dev/null || die
1948 - git_emake
1949 - popd &>/dev/null || die
1950 -
1951 - fi
1952 -}
1953 -
1954 -src_install() {
1955 - git_emake install || die "make install failed"
1956 -
1957 - if [[ ${CHOST} == *-darwin* ]]; then
1958 - dobin contrib/credential/osxkeychain/git-credential-osxkeychain
1959 - fi
1960 -
1961 - # Depending on the tarball and manual rebuild of the documentation, the
1962 - # manpages may exist in either OR both of these directories.
1963 - find man?/*.[157] >/dev/null 2>&1 && doman man?/*.[157]
1964 - find Documentation/*.[157] >/dev/null 2>&1 && doman Documentation/*.[157]
1965 - dodoc README* Documentation/{SubmittingPatches,CodingGuidelines}
1966 - use doc && dodir /usr/share/doc/${PF}/html
1967 - local d
1968 - for d in / /howto/ /technical/ ; do
1969 - docinto ${d}
1970 - dodoc Documentation${d}*.txt
1971 - if use doc ; then
1972 - docinto ${d}/html
1973 - dodoc Documentation${d}*.html
1974 - fi
1975 - done
1976 - docinto /
1977 - # Upstream does not ship this pre-built :-(
1978 - use doc && doinfo Documentation/{git,gitman}.info
1979 -
1980 - newbashcomp contrib/completion/git-completion.bash ${PN}
1981 - bashcomp_alias git gitk
1982 - # Not really a bash-completion file (bug #477920)
1983 - # but still needed uncompressed (bug #507480)
1984 - insinto /usr/share/${PN}
1985 - doins contrib/completion/git-prompt.sh
1986 -
1987 - if use emacs ; then
1988 - elisp-install ${PN} contrib/emacs/git.{el,elc}
1989 - elisp-install ${PN} contrib/emacs/git-blame.{el,elc}
1990 - #elisp-install ${PN}/compat contrib/emacs/vc-git.{el,elc}
1991 - # don't add automatically to the load-path, so the sitefile
1992 - # can do a conditional loading
1993 - touch "${ED}${SITELISP}/${PN}/compat/.nosearch"
1994 - elisp-site-file-install "${FILESDIR}"/${SITEFILE}
1995 - fi
1996 -
1997 - #dobin contrib/fast-import/git-p4 # Moved upstream
1998 - #dodoc contrib/fast-import/git-p4.txt # Moved upstream
1999 - newbin contrib/fast-import/import-tars.perl import-tars
2000 - exeinto /usr/libexec/git-core/
2001 - newexe contrib/git-resurrect.sh git-resurrect
2002 -
2003 - # git-subtree
2004 - pushd contrib/subtree &>/dev/null || die
2005 - git_emake install || die "Failed to emake install for git-subtree"
2006 - if use doc ; then
2007 - # Do not move git subtree install-man outside USE=doc!
2008 - git_emake install-man install-html || die "Failed to emake install-html install-man for git-subtree"
2009 - fi
2010 - newdoc README README.git-subtree
2011 - dodoc git-subtree.txt
2012 - popd &>/dev/null || die
2013 -
2014 - if use mediawiki ; then
2015 - pushd contrib/mw-to-git &>/dev/null || die
2016 - git_emake install
2017 - popd &>/dev/null || die
2018 - fi
2019 -
2020 - # diff-highlight
2021 - dobin contrib/diff-highlight/diff-highlight
2022 - newdoc contrib/diff-highlight/README README.diff-highlight
2023 -
2024 - # git-jump
2025 - exeinto /usr/libexec/git-core/
2026 - doexe contrib/git-jump/git-jump
2027 - newdoc contrib/git-jump/README git-jump.txt
2028 -
2029 - # git-contacts
2030 - exeinto /usr/libexec/git-core/
2031 - doexe contrib/contacts/git-contacts
2032 - dodoc contrib/contacts/git-contacts.txt
2033 -
2034 - if use gnome-keyring ; then
2035 - pushd contrib/credential/libsecret &>/dev/null || die
2036 - dobin git-credential-libsecret
2037 - popd &>/dev/null || die
2038 - fi
2039 -
2040 - if use subversion ; then
2041 - pushd contrib/svn-fe &>/dev/null || die
2042 - dobin svn-fe
2043 - dodoc svn-fe.txt
2044 - if use doc ; then
2045 - # Do not move svn-fe.1 outside USE=doc!
2046 - doman svn-fe.1
2047 - docinto html
2048 - dodoc svn-fe.html
2049 - fi
2050 - popd &>/dev/null || die
2051 - fi
2052 -
2053 - dodir /usr/share/${PN}/contrib
2054 - # The following are excluded:
2055 - # completion - installed above
2056 - # diff-highlight - done above
2057 - # emacs - installed above
2058 - # examples - these are stuff that is not used in Git anymore actually
2059 - # git-jump - done above
2060 - # gitview - installed above
2061 - # p4import - excluded because fast-import has a better one
2062 - # patches - stuff the Git guys made to go upstream to other places
2063 - # persistent-https - TODO
2064 - # mw-to-git - TODO
2065 - # subtree - build seperately
2066 - # svnimport - use git-svn
2067 - # thunderbird-patch-inline - fixes thunderbird
2068 - local contrib_objects=(
2069 - buildsystems
2070 - fast-import
2071 - hg-to-git
2072 - hooks
2073 - remotes2config.sh
2074 - rerere-train.sh
2075 - stats
2076 - workdir
2077 - )
2078 - local i
2079 - for i in "${contrib_objects[@]}" ; do
2080 - cp -rf \
2081 - "${S}"/contrib/${i} \
2082 - "${ED}"/usr/share/${PN}/contrib \
2083 - || die "Failed contrib ${i}"
2084 - done
2085 -
2086 - if use perl && use cgi ; then
2087 - # We used to install in /usr/share/${PN}/gitweb
2088 - # but upstream installs in /usr/share/gitweb
2089 - # so we will install a symlink and use their location for compat with other
2090 - # distros
2091 - dosym ../gitweb /usr/share/${PN}/gitweb
2092 -
2093 - # INSTALL discusses configuration issues, not just installation
2094 - docinto /
2095 - newdoc "${S}"/gitweb/INSTALL INSTALL.gitweb
2096 - newdoc "${S}"/gitweb/README README.gitweb
2097 -
2098 - for d in "${ED}"/usr/lib{,64}/perl5/ ; do
2099 - if test -d "${d}" ; then find "${d}" \
2100 - -name .packlist \
2101 - -delete || die
2102 - fi
2103 - done
2104 - else
2105 - rm -rf "${ED}"/usr/share/gitweb
2106 - fi
2107 -
2108 - if ! use subversion ; then
2109 - rm -f "${ED}"/usr/libexec/git-core/git-svn \
2110 - "${ED}"/usr/share/man/man1/git-svn.1*
2111 - fi
2112 -
2113 - if use xinetd ; then
2114 - insinto /etc/xinetd.d
2115 - newins "${FILESDIR}"/git-daemon.xinetd git-daemon
2116 - fi
2117 -
2118 - if use !prefix ; then
2119 - newinitd "${FILESDIR}"/git-daemon-r1.initd git-daemon
2120 - newconfd "${FILESDIR}"/git-daemon.confd git-daemon
2121 - systemd_newunit "${FILESDIR}/git-daemon_at-r1.service" "git-daemon@.service"
2122 - systemd_dounit "${FILESDIR}/git-daemon.socket"
2123 - fi
2124 -
2125 - perl_delete_localpod
2126 -
2127 - # Remove disabled linguas
2128 - # we could remove sources in src_prepare, but install does not
2129 - # handle missing locale dir well
2130 - rm_loc() {
2131 - if [[ -e "${ED}/usr/share/locale/${1}" ]]; then
2132 - rm -r "${ED}/usr/share/locale/${1}" || die
2133 - fi
2134 - }
2135 - l10n_for_each_disabled_locale_do rm_loc
2136 -}
2137 -
2138 -src_test() {
2139 - local disabled=()
2140 - local tests_cvs=(
2141 - t9200-git-cvsexportcommit.sh
2142 - t9400-git-cvsserver-server.sh
2143 - t9401-git-cvsserver-crlf.sh
2144 - t9402-git-cvsserver-refs.sh
2145 - t9600-cvsimport.sh
2146 - t9601-cvsimport-vendor-branch.sh
2147 - t9602-cvsimport-branches-tags.sh
2148 - t9603-cvsimport-patchsets.sh
2149 - t9604-cvsimport-timestamps.sh
2150 - )
2151 - local tests_perl=(
2152 - t3701-add-interactive.sh
2153 - t5502-quickfetch.sh
2154 - t5512-ls-remote.sh
2155 - t5520-pull.sh
2156 - t7106-reset-unborn-branch.sh
2157 - t7501-commit.sh
2158 - )
2159 - # Bug #225601 - t0004 is not suitable for root perm
2160 - # Bug #219839 - t1004 is not suitable for root perm
2161 - # t0001-init.sh - check for init notices EPERM* fails
2162 - local tests_nonroot=(
2163 - t0001-init.sh
2164 - t0004-unwritable.sh
2165 - t0070-fundamental.sh
2166 - t1004-read-tree-m-u-wf.sh
2167 - t3700-add.sh
2168 - t7300-clean.sh
2169 - )
2170 - # t9100 still fails with symlinks in SVN 1.7
2171 - local test_svn=( t9100-git-svn-basic.sh )
2172 -
2173 - # Unzip is used only for the testcase code, not by any normal parts of Git.
2174 - if ! has_version app-arch/unzip ; then
2175 - einfo "Disabling tar-tree tests"
2176 - disabled+=( t5000-tar-tree.sh )
2177 - fi
2178 -
2179 - local cvs=0
2180 - use cvs && let cvs=${cvs}+1
2181 - if [[ ${EUID} -eq 0 ]]; then
2182 - if [[ ${cvs} -eq 1 ]]; then
2183 - ewarn "Skipping CVS tests because CVS does not work as root!"
2184 - ewarn "You should retest with FEATURES=userpriv!"
2185 - disabled+=( ${tests_cvs[@]} )
2186 - fi
2187 - einfo "Skipping other tests that require being non-root"
2188 - disabled+=( ${tests_nonroot[@]} )
2189 - else
2190 - [[ ${cvs} -gt 0 ]] && \
2191 - has_version dev-vcs/cvs && \
2192 - let cvs=${cvs}+1
2193 - [[ ${cvs} -gt 1 ]] && \
2194 - has_version "dev-vcs/cvs[server]" && \
2195 - let cvs=${cvs}+1
2196 - if [[ ${cvs} -lt 3 ]]; then
2197 - einfo "Disabling CVS tests (needs dev-vcs/cvs[USE=server])"
2198 - disabled+=( ${tests_cvs[@]} )
2199 - fi
2200 - fi
2201 -
2202 - if ! use perl ; then
2203 - einfo "Disabling tests that need Perl"
2204 - disabled+=( ${tests_perl[@]} )
2205 - fi
2206 -
2207 - einfo "Disabling tests that fail with SVN 1.7"
2208 - disabled+=( ${test_svn[@]} )
2209 -
2210 - # Reset all previously disabled tests
2211 - pushd t &>/dev/null || die
2212 - local i
2213 - for i in *.sh.DISABLED ; do
2214 - [[ -f "${i}" ]] && mv -f "${i}" "${i%.DISABLED}"
2215 - done
2216 - einfo "Disabled tests:"
2217 - for i in ${disabled[@]} ; do
2218 - [[ -f "${i}" ]] && mv -f "${i}" "${i}.DISABLED" && einfo "Disabled ${i}"
2219 - done
2220 -
2221 - # Avoid the test system removing the results because we want them ourselves
2222 - sed -e '/^[[:space:]]*$(MAKE) clean/s,^,#,g' \
2223 - -i Makefile || die
2224 -
2225 - # Clean old results first, must always run
2226 - nonfatal git_emake clean
2227 - popd &>/dev/null || die
2228 -
2229 - # Now run the tests, keep going if we hit an error, and don't terminate on
2230 - # failure
2231 - local rc
2232 - einfo "Start test run"
2233 - #MAKEOPTS=-j1
2234 - nonfatal git_emake --keep-going test
2235 - rc=$?
2236 -
2237 - # Display nice results, now print the results
2238 - pushd t &>/dev/null || die
2239 - nonfatal git_emake aggregate-results
2240 -
2241 - # And bail if there was a problem
2242 - [[ ${rc} -eq 0 ]] || die "tests failed. Please file a bug."
2243 -}
2244 -
2245 -showpkgdeps() {
2246 - local pkg=$1
2247 - shift
2248 - elog " $(printf "%-17s:" ${pkg}) ${@}"
2249 -}
2250 -
2251 -pkg_postinst() {
2252 - use emacs && elisp-site-regen
2253 - elog "Please read /usr/share/bash-completion/completions/git for Git bash command"
2254 - elog "completion."
2255 - elog "Please read /usr/share/git/git-prompt.sh for Git bash prompt"
2256 - elog "Note that the prompt bash code is now in that separate script"
2257 - elog "These additional scripts need some dependencies:"
2258 - echo
2259 - showpkgdeps git-quiltimport "dev-util/quilt"
2260 - showpkgdeps git-instaweb \
2261 - "|| ( www-servers/lighttpd www-servers/apache www-servers/nginx )"
2262 - echo
2263 - use mediawiki-experimental && ewarn "Using experimental git-mediawiki patches. The stability of cloned wiki filesystems is not guaranteed."
2264 -}
2265 -
2266 -pkg_postrm() {
2267 - use emacs && elisp-site-regen
2268 -}
2269
2270 diff --git a/dev-vcs/git/git-2.24.2.ebuild b/dev-vcs/git/git-2.24.2.ebuild
2271 deleted file mode 100644
2272 index b14f087bb86..00000000000
2273 --- a/dev-vcs/git/git-2.24.2.ebuild
2274 +++ /dev/null
2275 @@ -1,728 +0,0 @@
2276 -# Copyright 1999-2020 Gentoo Authors
2277 -# Distributed under the terms of the GNU General Public License v2
2278 -
2279 -EAPI=7
2280 -
2281 -GENTOO_DEPEND_ON_PERL=no
2282 -
2283 -# bug #329479: git-remote-testgit is not multiple-version aware
2284 -PYTHON_COMPAT=( python{2_7,3_{6,7}} )
2285 -
2286 -inherit toolchain-funcs elisp-common l10n perl-module bash-completion-r1 python-single-r1 systemd
2287 -
2288 -PLOCALES="bg ca de es fr is it ko pt_PT ru sv vi zh_CN"
2289 -if [[ ${PV} == *9999 ]]; then
2290 - inherit git-r3
2291 - EGIT_REPO_URI="git://git.kernel.org/pub/scm/git/git.git"
2292 - # Please ensure that all _four_ 9999 ebuilds get updated; they track the 4 upstream branches.
2293 - # See https://git-scm.com/docs/gitworkflows#_graduation
2294 - # In order of stability:
2295 - # 9999-r0: maint
2296 - # 9999-r1: master
2297 - # 9999-r2: next
2298 - # 9999-r3: pu
2299 - case "${PVR}" in
2300 - 9999) EGIT_BRANCH=maint ;;
2301 - 9999-r1) EGIT_BRANCH=master ;;
2302 - 9999-r2) EGIT_BRANCH=next;;
2303 - 9999-r3) EGIT_BRANCH=pu ;;
2304 - esac
2305 -fi
2306 -
2307 -MY_PV="${PV/_rc/.rc}"
2308 -MY_P="${PN}-${MY_PV}"
2309 -
2310 -DOC_VER="${MY_PV}"
2311 -
2312 -DESCRIPTION="stupid content tracker: distributed VCS designed for speed and efficiency"
2313 -HOMEPAGE="https://www.git-scm.com/"
2314 -if [[ ${PV} != *9999 ]]; then
2315 - SRC_URI_SUFFIX="xz"
2316 - SRC_URI_KORG="https://www.kernel.org/pub/software/scm/git"
2317 - [[ "${PV/rc}" != "${PV}" ]] && SRC_URI_KORG+='/testing'
2318 - SRC_URI="${SRC_URI_KORG}/${MY_P}.tar.${SRC_URI_SUFFIX}
2319 - ${SRC_URI_KORG}/${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
2320 - doc? (
2321 - ${SRC_URI_KORG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
2322 - )"
2323 - [[ "${PV}" == *_rc* ]] || \
2324 - KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 ~riscv s390 sparc x86 ~ppc-aix ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
2325 -fi
2326 -
2327 -LICENSE="GPL-2"
2328 -SLOT="0"
2329 -IUSE="+blksha1 +curl cgi doc emacs gnome-keyring +gpg highlight +iconv libressl mediawiki mediawiki-experimental +nls +pcre +pcre-jit perforce +perl +ppcsha1 tk +threads +webdav xinetd cvs subversion test"
2330 -
2331 -# Common to both DEPEND and RDEPEND
2332 -DEPEND="
2333 - gnome-keyring? ( app-crypt/libsecret )
2334 - !libressl? ( dev-libs/openssl:0= )
2335 - libressl? ( dev-libs/libressl:= )
2336 - sys-libs/zlib
2337 - pcre? (
2338 - pcre-jit? ( dev-libs/libpcre2[jit(+)] )
2339 - !pcre-jit? ( dev-libs/libpcre )
2340 - )
2341 - perl? ( dev-lang/perl:=[-build(-)] )
2342 - tk? ( dev-lang/tk:0= )
2343 - curl? (
2344 - net-misc/curl
2345 - webdav? ( dev-libs/expat )
2346 - )
2347 - emacs? ( >=app-editors/emacs-23.1:* )
2348 - iconv? ( virtual/libiconv )
2349 -"
2350 -
2351 -RDEPEND="${DEPEND}
2352 - gpg? ( app-crypt/gnupg )
2353 - perl? (
2354 - dev-perl/Error
2355 - dev-perl/MailTools
2356 - dev-perl/Authen-SASL
2357 - cgi? (
2358 - dev-perl/CGI
2359 - highlight? ( app-text/highlight )
2360 - )
2361 - cvs? (
2362 - >=dev-vcs/cvsps-2.1:0
2363 - dev-perl/DBI
2364 - dev-perl/DBD-SQLite
2365 - )
2366 - mediawiki? (
2367 - dev-perl/DateTime-Format-ISO8601
2368 - dev-perl/HTML-Tree
2369 - dev-perl/MediaWiki-API
2370 - )
2371 - subversion? (
2372 - dev-vcs/subversion[-dso,perl]
2373 - dev-perl/libwww-perl
2374 - dev-perl/TermReadKey
2375 - )
2376 - )
2377 - perforce? ( ${PYTHON_DEPS} )
2378 -"
2379 -
2380 -# This is how info docs are created with Git:
2381 -# .txt/asciidoc --(asciidoc)---------> .xml/docbook
2382 -# .xml/docbook --(docbook2texi.pl)--> .texi
2383 -# .texi --(makeinfo)---------> .info
2384 -BDEPEND="
2385 - doc? (
2386 - app-text/asciidoc
2387 - app-text/docbook2X
2388 - app-text/xmlto
2389 - sys-apps/texinfo
2390 - )
2391 - nls? ( sys-devel/gettext )
2392 - test? ( app-crypt/gnupg )
2393 -"
2394 -
2395 -# Live ebuild builds man pages and HTML docs, additionally
2396 -if [[ ${PV} == *9999 ]]; then
2397 - BDEPEND="${BDEPEND}
2398 - app-text/asciidoc"
2399 -fi
2400 -
2401 -SITEFILE="50${PN}-gentoo.el"
2402 -S="${WORKDIR}/${MY_P}"
2403 -
2404 -REQUIRED_USE="
2405 - cgi? ( perl )
2406 - cvs? ( perl )
2407 - mediawiki? ( perl )
2408 - mediawiki-experimental? ( mediawiki )
2409 - subversion? ( perl )
2410 - webdav? ( curl )
2411 - pcre-jit? ( pcre )
2412 - perforce? ( ${PYTHON_REQUIRED_USE} )
2413 -"
2414 -
2415 -RESTRICT="!test? ( test )"
2416 -
2417 -PATCHES=(
2418 - # bug #350330 - automagic CVS when we don't want it is bad.
2419 - "${FILESDIR}"/git-2.22.0_rc0-optional-cvs.patch
2420 -
2421 - "${FILESDIR}"/git-2.2.0-svn-fe-linking.patch
2422 -
2423 - # Make submodule output quiet
2424 - "${FILESDIR}"/git-2.21.0-quiet-submodules-testcase.patch
2425 -)
2426 -
2427 -pkg_setup() {
2428 - if use subversion && has_version "dev-vcs/subversion[dso]"; then
2429 - ewarn "Per Gentoo bugs #223747, #238586, when subversion is built"
2430 - ewarn "with USE=dso, there may be weird crashes in git-svn. You"
2431 - ewarn "have been warned."
2432 - fi
2433 - if use perforce ; then
2434 - python-single-r1_pkg_setup
2435 - fi
2436 -}
2437 -
2438 -# This is needed because for some obscure reasons future calls to make don't
2439 -# pick up these exports if we export them in src_unpack()
2440 -exportmakeopts() {
2441 - local extlibs myopts
2442 -
2443 - myopts=(
2444 - ASCIIDOC_NO_ROFF=YesPlease
2445 - $(usex cvs '' NO_CVS=YesPlease)
2446 - $(usex elibc_musl NO_REGEX=YesPlease '')
2447 - $(usex iconv '' NO_ICONV=YesPlease)
2448 - $(usex nls '' NO_GETTEXT=YesPlease)
2449 - $(usex perl 'INSTALLDIRS=vendor NO_PERL_CPAN_FALLBACKS=YesPlease' NO_PERL=YesPlease)
2450 - $(usex perforce '' NO_PYTHON=YesPlease)
2451 - $(usex subversion '' NO_SVN_TESTS=YesPlease)
2452 - $(usex threads '' NO_PTHREADS=YesPlease)
2453 - $(usex tk '' NO_TCLTK=YesPlease)
2454 - )
2455 -
2456 - if use blksha1 ; then
2457 - myopts+=( BLK_SHA1=YesPlease )
2458 - elif use ppcsha1 ; then
2459 - myopts+=( PPC_SHA1=YesPlease )
2460 - fi
2461 -
2462 - if use curl ; then
2463 - use webdav || myopts+=( NO_EXPAT=YesPlease )
2464 - else
2465 - myopts+=( NO_CURL=YesPlease )
2466 - fi
2467 -
2468 - # broken assumptions, because of static build system ...
2469 - myopts+=(
2470 - NO_FINK=YesPlease
2471 - NO_DARWIN_PORTS=YesPlease
2472 - INSTALL=install
2473 - TAR=tar
2474 - SHELL_PATH="${EPREFIX}/bin/sh"
2475 - SANE_TOOL_PATH=
2476 - OLD_ICONV=
2477 - NO_EXTERNAL_GREP=
2478 - )
2479 -
2480 - # For svn-fe
2481 - extlibs=( -lz -lssl ${S}/xdiff/lib.a $(usex threads -lpthread '') )
2482 -
2483 - # can't define this to null, since the entire makefile depends on it
2484 - sed -i -e '/\/usr\/local/s/BASIC_/#BASIC_/' Makefile || die
2485 -
2486 - if use pcre; then
2487 - if use pcre-jit; then
2488 - myopts+=( USE_LIBPCRE2=YesPlease )
2489 - extlibs+=( -lpcre2-8 )
2490 - else
2491 - myopts+=(
2492 - USE_LIBPCRE1=YesPlease
2493 - NO_LIBPCRE1_JIT=YesPlease
2494 - )
2495 - extlibs+=( -lpcre )
2496 - fi
2497 - fi
2498 -# Disabled until ~m68k-mint can be keyworded again
2499 -# if [[ ${CHOST} == *-mint* ]] ; then
2500 -# myopts+=(
2501 -# NO_MMAP=YesPlease
2502 -# NO_IPV6=YesPlease
2503 -# NO_STRLCPY=YesPlease
2504 -# NO_MEMMEM=YesPlease
2505 -# NO_MKDTEMP=YesPlease
2506 -# NO_MKSTEMPS=YesPlease
2507 -# )
2508 -# fi
2509 - if [[ ${CHOST} == ia64-*-hpux* ]]; then
2510 - myopts+=( NO_NSEC=YesPlease )
2511 - fi
2512 - if [[ ${CHOST} == *-*-aix* ]]; then
2513 - myopts+=( NO_FNMATCH_CASEFOLD=YesPlease )
2514 - fi
2515 - if [[ ${CHOST} == *-solaris* ]]; then
2516 - myopts+=(
2517 - NEEDS_LIBICONV=YesPlease
2518 - HAVE_CLOCK_MONOTONIC=1
2519 - )
2520 - if grep -q getdelim "${EROOT}"/usr/include/stdio.h ; then
2521 - myopts+=( HAVE_GETDELIM=1 )
2522 - fi
2523 - fi
2524 -
2525 - if has_version '>=app-text/asciidoc-8.0' ; then
2526 - myopts+=( ASCIIDOC8=YesPlease )
2527 - fi
2528 -
2529 - # Bug 290465:
2530 - # builtin-fetch-pack.c:816: error: 'struct stat' has no member named 'st_mtim'
2531 - if [[ "${CHOST}" == *-uclibc* ]] ; then
2532 - myopts+=( NO_NSEC=YesPlease )
2533 - use iconv && myopts+=( NEEDS_LIBICONV=YesPlease )
2534 - fi
2535 -
2536 - export MY_MAKEOPTS="${myopts[@]}"
2537 - export EXTLIBS="${extlibs[@]}"
2538 -}
2539 -
2540 -src_unpack() {
2541 - if [[ ${PV} != *9999 ]]; then
2542 - unpack ${MY_P}.tar.${SRC_URI_SUFFIX}
2543 - cd "${S}" || die
2544 - unpack ${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
2545 - if use doc ; then
2546 - pushd "${S}"/Documentation &>/dev/null || die
2547 - unpack ${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
2548 - popd &>/dev/null || die
2549 - fi
2550 - else
2551 - git-r3_src_unpack
2552 - #cp "${FILESDIR}"/GIT-VERSION-GEN .
2553 - fi
2554 -
2555 -}
2556 -
2557 -src_prepare() {
2558 - # add experimental patches to improve mediawiki support
2559 - # see patches for origin
2560 - if use mediawiki-experimental ; then
2561 - PATCHES+=(
2562 - "${FILESDIR}"/git-2.7.0-mediawiki-namespaces.patch
2563 - "${FILESDIR}"/git-2.7.0-mediawiki-subpages.patch
2564 - "${FILESDIR}"/git-2.7.0-mediawiki-500pages.patch
2565 - )
2566 - fi
2567 -
2568 - default
2569 -
2570 - sed -i \
2571 - -e 's:^\(CFLAGS[[:space:]]*=\).*$:\1 $(OPTCFLAGS) -Wall:' \
2572 - -e 's:^\(LDFLAGS[[:space:]]*=\).*$:\1 $(OPTLDFLAGS):' \
2573 - -e 's:^\(CC[[:space:]]* =\).*$:\1$(OPTCC):' \
2574 - -e 's:^\(AR[[:space:]]* =\).*$:\1$(OPTAR):' \
2575 - -e "s:\(PYTHON_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
2576 - -e "s:\(PERL_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
2577 - Makefile contrib/svn-fe/Makefile || die
2578 -
2579 - # Fix docbook2texi command
2580 - sed -r -i 's/DOCBOOK2X_TEXI[[:space:]]*=[[:space:]]*docbook2x-texi/DOCBOOK2X_TEXI = docbook2texi.pl/' \
2581 - Documentation/Makefile || die
2582 -}
2583 -
2584 -git_emake() {
2585 - # bug #320647: PYTHON_PATH
2586 - local PYTHON_PATH=""
2587 - use perforce && PYTHON_PATH="${PYTHON}"
2588 - emake ${MY_MAKEOPTS} \
2589 - prefix="${EPREFIX}"/usr \
2590 - htmldir="${EPREFIX}"/usr/share/doc/${PF}/html \
2591 - perllibdir="$(use perl && perl_get_raw_vendorlib)" \
2592 - sysconfdir="${EPREFIX}"/etc \
2593 - DESTDIR="${D}" \
2594 - GIT_TEST_OPTS="--no-color" \
2595 - OPTAR="$(tc-getAR)" \
2596 - OPTCC="$(tc-getCC)" \
2597 - OPTCFLAGS="${CFLAGS}" \
2598 - OPTLDFLAGS="${LDFLAGS}" \
2599 - PERL_PATH="${EPREFIX}/usr/bin/perl" \
2600 - PERL_MM_OPT="" \
2601 - PYTHON_PATH="${PYTHON_PATH}" \
2602 - V=1 \
2603 - "$@"
2604 -}
2605 -
2606 -src_configure() {
2607 - exportmakeopts
2608 -}
2609 -
2610 -src_compile() {
2611 - git_emake || die "emake failed"
2612 -
2613 - if use emacs ; then
2614 - elisp-compile contrib/emacs/git{,-blame}.el
2615 - fi
2616 -
2617 - if use perl && use cgi ; then
2618 - git_emake \
2619 - gitweb \
2620 - || die "emake gitweb (cgi) failed"
2621 - fi
2622 -
2623 - if [[ ${CHOST} == *-darwin* ]]; then
2624 - pushd contrib/credential/osxkeychain &>/dev/null || die
2625 - git_emake CC=$(tc-getCC) CFLAGS="${CFLAGS}" \
2626 - || die "emake credential-osxkeychain"
2627 - popd &>/dev/null || die
2628 - fi
2629 -
2630 - pushd Documentation &>/dev/null || die
2631 - if [[ ${PV} == *9999 ]] ; then
2632 - git_emake man \
2633 - || die "emake man failed"
2634 - if use doc ; then
2635 - git_emake info html \
2636 - || die "emake info html failed"
2637 - fi
2638 - else
2639 - if use doc ; then
2640 - git_emake info \
2641 - || die "emake info html failed"
2642 - fi
2643 - fi
2644 - popd &>/dev/null || die
2645 -
2646 - if use subversion ; then
2647 - pushd contrib/svn-fe &>/dev/null || die
2648 - # by defining EXTLIBS we override the detection for libintl and
2649 - # libiconv, bug #516168
2650 - local nlsiconv=()
2651 - use nls && use !elibc_glibc && nlsiconv+=( -lintl )
2652 - use iconv && use !elibc_glibc && nlsiconv+=( -liconv )
2653 - git_emake EXTLIBS="${EXTLIBS} ${nlsiconv[@]}" \
2654 - || die "emake svn-fe failed"
2655 - if use doc ; then
2656 - # svn-fe.1 requires the full USE=doc dependency stack
2657 - git_emake svn-fe.1 \
2658 - || die "emake svn-fe.1 failed"
2659 - git_emake svn-fe.html \
2660 - || die "svn-fe.html failed"
2661 - fi
2662 - popd &>/dev/null || die
2663 - fi
2664 -
2665 - if use gnome-keyring ; then
2666 - pushd contrib/credential/libsecret &>/dev/null || die
2667 - git_emake || die "emake git-credential-libsecret failed"
2668 - popd &>/dev/null || die
2669 - fi
2670 -
2671 - pushd contrib/subtree &>/dev/null || die
2672 - git_emake git-subtree
2673 - # git-subtree.1 requires the full USE=doc dependency stack
2674 - use doc && git_emake git-subtree.html git-subtree.1
2675 - popd &>/dev/null || die
2676 -
2677 - pushd contrib/diff-highlight &>/dev/null || die
2678 - git_emake
2679 - popd &>/dev/null || die
2680 -
2681 - if use mediawiki ; then
2682 - pushd contrib/mw-to-git &>/dev/null || die
2683 - git_emake
2684 - popd &>/dev/null || die
2685 -
2686 - fi
2687 -}
2688 -
2689 -src_install() {
2690 - git_emake install || die "make install failed"
2691 -
2692 - if [[ ${CHOST} == *-darwin* ]]; then
2693 - dobin contrib/credential/osxkeychain/git-credential-osxkeychain
2694 - fi
2695 -
2696 - # Depending on the tarball and manual rebuild of the documentation, the
2697 - # manpages may exist in either OR both of these directories.
2698 - find man?/*.[157] >/dev/null 2>&1 && doman man?/*.[157]
2699 - find Documentation/*.[157] >/dev/null 2>&1 && doman Documentation/*.[157]
2700 - dodoc README* Documentation/{SubmittingPatches,CodingGuidelines}
2701 - use doc && dodir /usr/share/doc/${PF}/html
2702 - local d
2703 - for d in / /howto/ /technical/ ; do
2704 - docinto ${d}
2705 - dodoc Documentation${d}*.txt
2706 - if use doc ; then
2707 - docinto ${d}/html
2708 - dodoc Documentation${d}*.html
2709 - fi
2710 - done
2711 - docinto /
2712 - # Upstream does not ship this pre-built :-(
2713 - use doc && doinfo Documentation/{git,gitman}.info
2714 -
2715 - newbashcomp contrib/completion/git-completion.bash ${PN}
2716 - bashcomp_alias git gitk
2717 - # Not really a bash-completion file (bug #477920)
2718 - # but still needed uncompressed (bug #507480)
2719 - insinto /usr/share/${PN}
2720 - doins contrib/completion/git-prompt.sh
2721 -
2722 - if use emacs ; then
2723 - elisp-install ${PN} contrib/emacs/git.{el,elc}
2724 - elisp-install ${PN} contrib/emacs/git-blame.{el,elc}
2725 - #elisp-install ${PN}/compat contrib/emacs/vc-git.{el,elc}
2726 - # don't add automatically to the load-path, so the sitefile
2727 - # can do a conditional loading
2728 - touch "${ED}${SITELISP}/${PN}/compat/.nosearch"
2729 - elisp-site-file-install "${FILESDIR}"/${SITEFILE}
2730 - fi
2731 -
2732 - #dobin contrib/fast-import/git-p4 # Moved upstream
2733 - #dodoc contrib/fast-import/git-p4.txt # Moved upstream
2734 - newbin contrib/fast-import/import-tars.perl import-tars
2735 - exeinto /usr/libexec/git-core/
2736 - newexe contrib/git-resurrect.sh git-resurrect
2737 -
2738 - # git-subtree
2739 - pushd contrib/subtree &>/dev/null || die
2740 - git_emake install || die "Failed to emake install for git-subtree"
2741 - if use doc ; then
2742 - # Do not move git subtree install-man outside USE=doc!
2743 - git_emake install-man install-html || die "Failed to emake install-html install-man for git-subtree"
2744 - fi
2745 - newdoc README README.git-subtree
2746 - dodoc git-subtree.txt
2747 - popd &>/dev/null || die
2748 -
2749 - if use mediawiki ; then
2750 - pushd contrib/mw-to-git &>/dev/null || die
2751 - git_emake install
2752 - popd &>/dev/null || die
2753 - fi
2754 -
2755 - # diff-highlight
2756 - dobin contrib/diff-highlight/diff-highlight
2757 - newdoc contrib/diff-highlight/README README.diff-highlight
2758 -
2759 - # git-jump
2760 - exeinto /usr/libexec/git-core/
2761 - doexe contrib/git-jump/git-jump
2762 - newdoc contrib/git-jump/README git-jump.txt
2763 -
2764 - # git-contacts
2765 - exeinto /usr/libexec/git-core/
2766 - doexe contrib/contacts/git-contacts
2767 - dodoc contrib/contacts/git-contacts.txt
2768 -
2769 - if use gnome-keyring ; then
2770 - pushd contrib/credential/libsecret &>/dev/null || die
2771 - dobin git-credential-libsecret
2772 - popd &>/dev/null || die
2773 - fi
2774 -
2775 - if use subversion ; then
2776 - pushd contrib/svn-fe &>/dev/null || die
2777 - dobin svn-fe
2778 - dodoc svn-fe.txt
2779 - if use doc ; then
2780 - # Do not move svn-fe.1 outside USE=doc!
2781 - doman svn-fe.1
2782 - docinto html
2783 - dodoc svn-fe.html
2784 - fi
2785 - popd &>/dev/null || die
2786 - fi
2787 -
2788 - dodir /usr/share/${PN}/contrib
2789 - # The following are excluded:
2790 - # completion - installed above
2791 - # diff-highlight - done above
2792 - # emacs - installed above
2793 - # examples - these are stuff that is not used in Git anymore actually
2794 - # git-jump - done above
2795 - # gitview - installed above
2796 - # p4import - excluded because fast-import has a better one
2797 - # patches - stuff the Git guys made to go upstream to other places
2798 - # persistent-https - TODO
2799 - # mw-to-git - TODO
2800 - # subtree - build seperately
2801 - # svnimport - use git-svn
2802 - # thunderbird-patch-inline - fixes thunderbird
2803 - local contrib_objects=(
2804 - buildsystems
2805 - fast-import
2806 - hg-to-git
2807 - hooks
2808 - remotes2config.sh
2809 - rerere-train.sh
2810 - stats
2811 - workdir
2812 - )
2813 - local i
2814 - for i in "${contrib_objects[@]}" ; do
2815 - cp -rf \
2816 - "${S}"/contrib/${i} \
2817 - "${ED}"/usr/share/${PN}/contrib \
2818 - || die "Failed contrib ${i}"
2819 - done
2820 -
2821 - if use perl && use cgi ; then
2822 - # We used to install in /usr/share/${PN}/gitweb
2823 - # but upstream installs in /usr/share/gitweb
2824 - # so we will install a symlink and use their location for compat with other
2825 - # distros
2826 - dosym ../gitweb /usr/share/${PN}/gitweb
2827 -
2828 - # INSTALL discusses configuration issues, not just installation
2829 - docinto /
2830 - newdoc "${S}"/gitweb/INSTALL INSTALL.gitweb
2831 - newdoc "${S}"/gitweb/README README.gitweb
2832 -
2833 - for d in "${ED}"/usr/lib{,64}/perl5/ ; do
2834 - if test -d "${d}" ; then find "${d}" \
2835 - -name .packlist \
2836 - -delete || die
2837 - fi
2838 - done
2839 - else
2840 - rm -rf "${ED}"/usr/share/gitweb
2841 - fi
2842 -
2843 - if ! use subversion ; then
2844 - rm -f "${ED}"/usr/libexec/git-core/git-svn \
2845 - "${ED}"/usr/share/man/man1/git-svn.1*
2846 - fi
2847 -
2848 - if use xinetd ; then
2849 - insinto /etc/xinetd.d
2850 - newins "${FILESDIR}"/git-daemon.xinetd git-daemon
2851 - fi
2852 -
2853 - if use !prefix ; then
2854 - newinitd "${FILESDIR}"/git-daemon-r1.initd git-daemon
2855 - newconfd "${FILESDIR}"/git-daemon.confd git-daemon
2856 - systemd_newunit "${FILESDIR}/git-daemon_at-r1.service" "git-daemon@.service"
2857 - systemd_dounit "${FILESDIR}/git-daemon.socket"
2858 - fi
2859 -
2860 - perl_delete_localpod
2861 -
2862 - # Remove disabled linguas
2863 - # we could remove sources in src_prepare, but install does not
2864 - # handle missing locale dir well
2865 - rm_loc() {
2866 - if [[ -e "${ED}/usr/share/locale/${1}" ]]; then
2867 - rm -r "${ED}/usr/share/locale/${1}" || die
2868 - fi
2869 - }
2870 - l10n_for_each_disabled_locale_do rm_loc
2871 -}
2872 -
2873 -src_test() {
2874 - local disabled=()
2875 - local tests_cvs=(
2876 - t9200-git-cvsexportcommit.sh
2877 - t9400-git-cvsserver-server.sh
2878 - t9401-git-cvsserver-crlf.sh
2879 - t9402-git-cvsserver-refs.sh
2880 - t9600-cvsimport.sh
2881 - t9601-cvsimport-vendor-branch.sh
2882 - t9602-cvsimport-branches-tags.sh
2883 - t9603-cvsimport-patchsets.sh
2884 - t9604-cvsimport-timestamps.sh
2885 - )
2886 - local tests_perl=(
2887 - t3701-add-interactive.sh
2888 - t5502-quickfetch.sh
2889 - t5512-ls-remote.sh
2890 - t5520-pull.sh
2891 - t7106-reset-unborn-branch.sh
2892 - t7501-commit.sh
2893 - )
2894 - # Bug #225601 - t0004 is not suitable for root perm
2895 - # Bug #219839 - t1004 is not suitable for root perm
2896 - # t0001-init.sh - check for init notices EPERM* fails
2897 - local tests_nonroot=(
2898 - t0001-init.sh
2899 - t0004-unwritable.sh
2900 - t0070-fundamental.sh
2901 - t1004-read-tree-m-u-wf.sh
2902 - t3700-add.sh
2903 - t7300-clean.sh
2904 - )
2905 - # t9100 still fails with symlinks in SVN 1.7
2906 - local test_svn=( t9100-git-svn-basic.sh )
2907 -
2908 - # Unzip is used only for the testcase code, not by any normal parts of Git.
2909 - if ! has_version app-arch/unzip ; then
2910 - einfo "Disabling tar-tree tests"
2911 - disabled+=( t5000-tar-tree.sh )
2912 - fi
2913 -
2914 - local cvs=0
2915 - use cvs && let cvs=${cvs}+1
2916 - if [[ ${EUID} -eq 0 ]]; then
2917 - if [[ ${cvs} -eq 1 ]]; then
2918 - ewarn "Skipping CVS tests because CVS does not work as root!"
2919 - ewarn "You should retest with FEATURES=userpriv!"
2920 - disabled+=( ${tests_cvs[@]} )
2921 - fi
2922 - einfo "Skipping other tests that require being non-root"
2923 - disabled+=( ${tests_nonroot[@]} )
2924 - else
2925 - [[ ${cvs} -gt 0 ]] && \
2926 - has_version dev-vcs/cvs && \
2927 - let cvs=${cvs}+1
2928 - [[ ${cvs} -gt 1 ]] && \
2929 - has_version "dev-vcs/cvs[server]" && \
2930 - let cvs=${cvs}+1
2931 - if [[ ${cvs} -lt 3 ]]; then
2932 - einfo "Disabling CVS tests (needs dev-vcs/cvs[USE=server])"
2933 - disabled+=( ${tests_cvs[@]} )
2934 - fi
2935 - fi
2936 -
2937 - if ! use perl ; then
2938 - einfo "Disabling tests that need Perl"
2939 - disabled+=( ${tests_perl[@]} )
2940 - fi
2941 -
2942 - einfo "Disabling tests that fail with SVN 1.7"
2943 - disabled+=( ${test_svn[@]} )
2944 -
2945 - # Reset all previously disabled tests
2946 - pushd t &>/dev/null || die
2947 - local i
2948 - for i in *.sh.DISABLED ; do
2949 - [[ -f "${i}" ]] && mv -f "${i}" "${i%.DISABLED}"
2950 - done
2951 - einfo "Disabled tests:"
2952 - for i in ${disabled[@]} ; do
2953 - [[ -f "${i}" ]] && mv -f "${i}" "${i}.DISABLED" && einfo "Disabled ${i}"
2954 - done
2955 -
2956 - # Avoid the test system removing the results because we want them ourselves
2957 - sed -e '/^[[:space:]]*$(MAKE) clean/s,^,#,g' \
2958 - -i Makefile || die
2959 -
2960 - # Clean old results first, must always run
2961 - nonfatal git_emake clean
2962 - popd &>/dev/null || die
2963 -
2964 - # Now run the tests, keep going if we hit an error, and don't terminate on
2965 - # failure
2966 - local rc
2967 - einfo "Start test run"
2968 - #MAKEOPTS=-j1
2969 - nonfatal git_emake --keep-going test
2970 - rc=$?
2971 -
2972 - # Display nice results, now print the results
2973 - pushd t &>/dev/null || die
2974 - nonfatal git_emake aggregate-results
2975 -
2976 - # And bail if there was a problem
2977 - [[ ${rc} -eq 0 ]] || die "tests failed. Please file a bug."
2978 -}
2979 -
2980 -showpkgdeps() {
2981 - local pkg=$1
2982 - shift
2983 - elog " $(printf "%-17s:" ${pkg}) ${@}"
2984 -}
2985 -
2986 -pkg_postinst() {
2987 - use emacs && elisp-site-regen
2988 - elog "Please read /usr/share/bash-completion/completions/git for Git bash command"
2989 - elog "completion."
2990 - elog "Please read /usr/share/git/git-prompt.sh for Git bash prompt"
2991 - elog "Note that the prompt bash code is now in that separate script"
2992 - elog "These additional scripts need some dependencies:"
2993 - echo
2994 - showpkgdeps git-quiltimport "dev-util/quilt"
2995 - showpkgdeps git-instaweb \
2996 - "|| ( www-servers/lighttpd www-servers/apache www-servers/nginx )"
2997 - echo
2998 - use mediawiki-experimental && ewarn "Using experimental git-mediawiki patches. The stability of cloned wiki filesystems is not guaranteed."
2999 -}
3000 -
3001 -pkg_postrm() {
3002 - use emacs && elisp-site-regen
3003 -}
3004
3005 diff --git a/dev-vcs/git/git-2.25.1.ebuild b/dev-vcs/git/git-2.25.1.ebuild
3006 deleted file mode 100644
3007 index 373486b54b6..00000000000
3008 --- a/dev-vcs/git/git-2.25.1.ebuild
3009 +++ /dev/null
3010 @@ -1,728 +0,0 @@
3011 -# Copyright 1999-2020 Gentoo Authors
3012 -# Distributed under the terms of the GNU General Public License v2
3013 -
3014 -EAPI=7
3015 -
3016 -GENTOO_DEPEND_ON_PERL=no
3017 -
3018 -# bug #329479: git-remote-testgit is not multiple-version aware
3019 -PYTHON_COMPAT=( python{2_7,3_{6,7}} )
3020 -
3021 -inherit toolchain-funcs elisp-common l10n perl-module bash-completion-r1 python-single-r1 systemd
3022 -
3023 -PLOCALES="bg ca de es fr is it ko pt_PT ru sv vi zh_CN"
3024 -if [[ ${PV} == *9999 ]]; then
3025 - inherit git-r3
3026 - EGIT_REPO_URI="git://git.kernel.org/pub/scm/git/git.git"
3027 - # Please ensure that all _four_ 9999 ebuilds get updated; they track the 4 upstream branches.
3028 - # See https://git-scm.com/docs/gitworkflows#_graduation
3029 - # In order of stability:
3030 - # 9999-r0: maint
3031 - # 9999-r1: master
3032 - # 9999-r2: next
3033 - # 9999-r3: pu
3034 - case "${PVR}" in
3035 - 9999) EGIT_BRANCH=maint ;;
3036 - 9999-r1) EGIT_BRANCH=master ;;
3037 - 9999-r2) EGIT_BRANCH=next;;
3038 - 9999-r3) EGIT_BRANCH=pu ;;
3039 - esac
3040 -fi
3041 -
3042 -MY_PV="${PV/_rc/.rc}"
3043 -MY_P="${PN}-${MY_PV}"
3044 -
3045 -DOC_VER="${MY_PV}"
3046 -
3047 -DESCRIPTION="stupid content tracker: distributed VCS designed for speed and efficiency"
3048 -HOMEPAGE="https://www.git-scm.com/"
3049 -if [[ ${PV} != *9999 ]]; then
3050 - SRC_URI_SUFFIX="xz"
3051 - SRC_URI_KORG="https://www.kernel.org/pub/software/scm/git"
3052 - [[ "${PV/rc}" != "${PV}" ]] && SRC_URI_KORG+='/testing'
3053 - SRC_URI="${SRC_URI_KORG}/${MY_P}.tar.${SRC_URI_SUFFIX}
3054 - ${SRC_URI_KORG}/${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
3055 - doc? (
3056 - ${SRC_URI_KORG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
3057 - )"
3058 - [[ "${PV}" == *_rc* ]] || \
3059 - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
3060 -fi
3061 -
3062 -LICENSE="GPL-2"
3063 -SLOT="0"
3064 -IUSE="+blksha1 +curl cgi doc emacs gnome-keyring +gpg highlight +iconv libressl mediawiki mediawiki-experimental +nls +pcre +pcre-jit perforce +perl +ppcsha1 tk +threads +webdav xinetd cvs subversion test"
3065 -
3066 -# Common to both DEPEND and RDEPEND
3067 -DEPEND="
3068 - gnome-keyring? ( app-crypt/libsecret )
3069 - !libressl? ( dev-libs/openssl:0= )
3070 - libressl? ( dev-libs/libressl:= )
3071 - sys-libs/zlib
3072 - pcre? (
3073 - pcre-jit? ( dev-libs/libpcre2[jit(+)] )
3074 - !pcre-jit? ( dev-libs/libpcre )
3075 - )
3076 - perl? ( dev-lang/perl:=[-build(-)] )
3077 - tk? ( dev-lang/tk:0= )
3078 - curl? (
3079 - net-misc/curl
3080 - webdav? ( dev-libs/expat )
3081 - )
3082 - emacs? ( >=app-editors/emacs-23.1:* )
3083 - iconv? ( virtual/libiconv )
3084 -"
3085 -
3086 -RDEPEND="${DEPEND}
3087 - gpg? ( app-crypt/gnupg )
3088 - perl? (
3089 - dev-perl/Error
3090 - dev-perl/MailTools
3091 - dev-perl/Authen-SASL
3092 - cgi? (
3093 - dev-perl/CGI
3094 - highlight? ( app-text/highlight )
3095 - )
3096 - cvs? (
3097 - >=dev-vcs/cvsps-2.1:0
3098 - dev-perl/DBI
3099 - dev-perl/DBD-SQLite
3100 - )
3101 - mediawiki? (
3102 - dev-perl/DateTime-Format-ISO8601
3103 - dev-perl/HTML-Tree
3104 - dev-perl/MediaWiki-API
3105 - )
3106 - subversion? (
3107 - dev-vcs/subversion[-dso,perl]
3108 - dev-perl/libwww-perl
3109 - dev-perl/TermReadKey
3110 - )
3111 - )
3112 - perforce? ( ${PYTHON_DEPS} )
3113 -"
3114 -
3115 -# This is how info docs are created with Git:
3116 -# .txt/asciidoc --(asciidoc)---------> .xml/docbook
3117 -# .xml/docbook --(docbook2texi.pl)--> .texi
3118 -# .texi --(makeinfo)---------> .info
3119 -BDEPEND="
3120 - doc? (
3121 - app-text/asciidoc
3122 - app-text/docbook2X
3123 - app-text/xmlto
3124 - sys-apps/texinfo
3125 - )
3126 - nls? ( sys-devel/gettext )
3127 - test? ( app-crypt/gnupg )
3128 -"
3129 -
3130 -# Live ebuild builds man pages and HTML docs, additionally
3131 -if [[ ${PV} == *9999 ]]; then
3132 - BDEPEND="${BDEPEND}
3133 - app-text/asciidoc"
3134 -fi
3135 -
3136 -SITEFILE="50${PN}-gentoo.el"
3137 -S="${WORKDIR}/${MY_P}"
3138 -
3139 -REQUIRED_USE="
3140 - cgi? ( perl )
3141 - cvs? ( perl )
3142 - mediawiki? ( perl )
3143 - mediawiki-experimental? ( mediawiki )
3144 - subversion? ( perl )
3145 - webdav? ( curl )
3146 - pcre-jit? ( pcre )
3147 - perforce? ( ${PYTHON_REQUIRED_USE} )
3148 -"
3149 -
3150 -RESTRICT="!test? ( test )"
3151 -
3152 -PATCHES=(
3153 - # bug #350330 - automagic CVS when we don't want it is bad.
3154 - "${FILESDIR}"/git-2.22.0_rc0-optional-cvs.patch
3155 -
3156 - "${FILESDIR}"/git-2.2.0-svn-fe-linking.patch
3157 -
3158 - # Make submodule output quiet
3159 - "${FILESDIR}"/git-2.21.0-quiet-submodules-testcase.patch
3160 -)
3161 -
3162 -pkg_setup() {
3163 - if use subversion && has_version "dev-vcs/subversion[dso]"; then
3164 - ewarn "Per Gentoo bugs #223747, #238586, when subversion is built"
3165 - ewarn "with USE=dso, there may be weird crashes in git-svn. You"
3166 - ewarn "have been warned."
3167 - fi
3168 - if use perforce ; then
3169 - python-single-r1_pkg_setup
3170 - fi
3171 -}
3172 -
3173 -# This is needed because for some obscure reasons future calls to make don't
3174 -# pick up these exports if we export them in src_unpack()
3175 -exportmakeopts() {
3176 - local extlibs myopts
3177 -
3178 - myopts=(
3179 - ASCIIDOC_NO_ROFF=YesPlease
3180 - $(usex cvs '' NO_CVS=YesPlease)
3181 - $(usex elibc_musl NO_REGEX=YesPlease '')
3182 - $(usex iconv '' NO_ICONV=YesPlease)
3183 - $(usex nls '' NO_GETTEXT=YesPlease)
3184 - $(usex perl 'INSTALLDIRS=vendor NO_PERL_CPAN_FALLBACKS=YesPlease' NO_PERL=YesPlease)
3185 - $(usex perforce '' NO_PYTHON=YesPlease)
3186 - $(usex subversion '' NO_SVN_TESTS=YesPlease)
3187 - $(usex threads '' NO_PTHREADS=YesPlease)
3188 - $(usex tk '' NO_TCLTK=YesPlease)
3189 - )
3190 -
3191 - if use blksha1 ; then
3192 - myopts+=( BLK_SHA1=YesPlease )
3193 - elif use ppcsha1 ; then
3194 - myopts+=( PPC_SHA1=YesPlease )
3195 - fi
3196 -
3197 - if use curl ; then
3198 - use webdav || myopts+=( NO_EXPAT=YesPlease )
3199 - else
3200 - myopts+=( NO_CURL=YesPlease )
3201 - fi
3202 -
3203 - # broken assumptions, because of static build system ...
3204 - myopts+=(
3205 - NO_FINK=YesPlease
3206 - NO_DARWIN_PORTS=YesPlease
3207 - INSTALL=install
3208 - TAR=tar
3209 - SHELL_PATH="${EPREFIX}/bin/sh"
3210 - SANE_TOOL_PATH=
3211 - OLD_ICONV=
3212 - NO_EXTERNAL_GREP=
3213 - )
3214 -
3215 - # For svn-fe
3216 - extlibs=( -lz -lssl ${S}/xdiff/lib.a $(usex threads -lpthread '') )
3217 -
3218 - # can't define this to null, since the entire makefile depends on it
3219 - sed -i -e '/\/usr\/local/s/BASIC_/#BASIC_/' Makefile || die
3220 -
3221 - if use pcre; then
3222 - if use pcre-jit; then
3223 - myopts+=( USE_LIBPCRE2=YesPlease )
3224 - extlibs+=( -lpcre2-8 )
3225 - else
3226 - myopts+=(
3227 - USE_LIBPCRE1=YesPlease
3228 - NO_LIBPCRE1_JIT=YesPlease
3229 - )
3230 - extlibs+=( -lpcre )
3231 - fi
3232 - fi
3233 -# Disabled until ~m68k-mint can be keyworded again
3234 -# if [[ ${CHOST} == *-mint* ]] ; then
3235 -# myopts+=(
3236 -# NO_MMAP=YesPlease
3237 -# NO_IPV6=YesPlease
3238 -# NO_STRLCPY=YesPlease
3239 -# NO_MEMMEM=YesPlease
3240 -# NO_MKDTEMP=YesPlease
3241 -# NO_MKSTEMPS=YesPlease
3242 -# )
3243 -# fi
3244 - if [[ ${CHOST} == ia64-*-hpux* ]]; then
3245 - myopts+=( NO_NSEC=YesPlease )
3246 - fi
3247 - if [[ ${CHOST} == *-*-aix* ]]; then
3248 - myopts+=( NO_FNMATCH_CASEFOLD=YesPlease )
3249 - fi
3250 - if [[ ${CHOST} == *-solaris* ]]; then
3251 - myopts+=(
3252 - NEEDS_LIBICONV=YesPlease
3253 - HAVE_CLOCK_MONOTONIC=1
3254 - )
3255 - if grep -q getdelim "${EROOT}"/usr/include/stdio.h ; then
3256 - myopts+=( HAVE_GETDELIM=1 )
3257 - fi
3258 - fi
3259 -
3260 - if has_version '>=app-text/asciidoc-8.0' ; then
3261 - myopts+=( ASCIIDOC8=YesPlease )
3262 - fi
3263 -
3264 - # Bug 290465:
3265 - # builtin-fetch-pack.c:816: error: 'struct stat' has no member named 'st_mtim'
3266 - if [[ "${CHOST}" == *-uclibc* ]] ; then
3267 - myopts+=( NO_NSEC=YesPlease )
3268 - use iconv && myopts+=( NEEDS_LIBICONV=YesPlease )
3269 - fi
3270 -
3271 - export MY_MAKEOPTS="${myopts[@]}"
3272 - export EXTLIBS="${extlibs[@]}"
3273 -}
3274 -
3275 -src_unpack() {
3276 - if [[ ${PV} != *9999 ]]; then
3277 - unpack ${MY_P}.tar.${SRC_URI_SUFFIX}
3278 - cd "${S}" || die
3279 - unpack ${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
3280 - if use doc ; then
3281 - pushd "${S}"/Documentation &>/dev/null || die
3282 - unpack ${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
3283 - popd &>/dev/null || die
3284 - fi
3285 - else
3286 - git-r3_src_unpack
3287 - #cp "${FILESDIR}"/GIT-VERSION-GEN .
3288 - fi
3289 -
3290 -}
3291 -
3292 -src_prepare() {
3293 - # add experimental patches to improve mediawiki support
3294 - # see patches for origin
3295 - if use mediawiki-experimental ; then
3296 - PATCHES+=(
3297 - "${FILESDIR}"/git-2.7.0-mediawiki-namespaces.patch
3298 - "${FILESDIR}"/git-2.7.0-mediawiki-subpages.patch
3299 - "${FILESDIR}"/git-2.7.0-mediawiki-500pages.patch
3300 - )
3301 - fi
3302 -
3303 - default
3304 -
3305 - sed -i \
3306 - -e 's:^\(CFLAGS[[:space:]]*=\).*$:\1 $(OPTCFLAGS) -Wall:' \
3307 - -e 's:^\(LDFLAGS[[:space:]]*=\).*$:\1 $(OPTLDFLAGS):' \
3308 - -e 's:^\(CC[[:space:]]* =\).*$:\1$(OPTCC):' \
3309 - -e 's:^\(AR[[:space:]]* =\).*$:\1$(OPTAR):' \
3310 - -e "s:\(PYTHON_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
3311 - -e "s:\(PERL_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
3312 - Makefile contrib/svn-fe/Makefile || die
3313 -
3314 - # Fix docbook2texi command
3315 - sed -r -i 's/DOCBOOK2X_TEXI[[:space:]]*=[[:space:]]*docbook2x-texi/DOCBOOK2X_TEXI = docbook2texi.pl/' \
3316 - Documentation/Makefile || die
3317 -}
3318 -
3319 -git_emake() {
3320 - # bug #320647: PYTHON_PATH
3321 - local PYTHON_PATH=""
3322 - use perforce && PYTHON_PATH="${PYTHON}"
3323 - emake ${MY_MAKEOPTS} \
3324 - prefix="${EPREFIX}"/usr \
3325 - htmldir="${EPREFIX}"/usr/share/doc/${PF}/html \
3326 - perllibdir="$(use perl && perl_get_raw_vendorlib)" \
3327 - sysconfdir="${EPREFIX}"/etc \
3328 - DESTDIR="${D}" \
3329 - GIT_TEST_OPTS="--no-color" \
3330 - OPTAR="$(tc-getAR)" \
3331 - OPTCC="$(tc-getCC)" \
3332 - OPTCFLAGS="${CFLAGS}" \
3333 - OPTLDFLAGS="${LDFLAGS}" \
3334 - PERL_PATH="${EPREFIX}/usr/bin/perl" \
3335 - PERL_MM_OPT="" \
3336 - PYTHON_PATH="${PYTHON_PATH}" \
3337 - V=1 \
3338 - "$@"
3339 -}
3340 -
3341 -src_configure() {
3342 - exportmakeopts
3343 -}
3344 -
3345 -src_compile() {
3346 - git_emake || die "emake failed"
3347 -
3348 - if use emacs ; then
3349 - elisp-compile contrib/emacs/git{,-blame}.el
3350 - fi
3351 -
3352 - if use perl && use cgi ; then
3353 - git_emake \
3354 - gitweb \
3355 - || die "emake gitweb (cgi) failed"
3356 - fi
3357 -
3358 - if [[ ${CHOST} == *-darwin* ]]; then
3359 - pushd contrib/credential/osxkeychain &>/dev/null || die
3360 - git_emake CC=$(tc-getCC) CFLAGS="${CFLAGS}" \
3361 - || die "emake credential-osxkeychain"
3362 - popd &>/dev/null || die
3363 - fi
3364 -
3365 - pushd Documentation &>/dev/null || die
3366 - if [[ ${PV} == *9999 ]] ; then
3367 - git_emake man \
3368 - || die "emake man failed"
3369 - if use doc ; then
3370 - git_emake info html \
3371 - || die "emake info html failed"
3372 - fi
3373 - else
3374 - if use doc ; then
3375 - git_emake info \
3376 - || die "emake info html failed"
3377 - fi
3378 - fi
3379 - popd &>/dev/null || die
3380 -
3381 - if use subversion ; then
3382 - pushd contrib/svn-fe &>/dev/null || die
3383 - # by defining EXTLIBS we override the detection for libintl and
3384 - # libiconv, bug #516168
3385 - local nlsiconv=()
3386 - use nls && use !elibc_glibc && nlsiconv+=( -lintl )
3387 - use iconv && use !elibc_glibc && nlsiconv+=( -liconv )
3388 - git_emake EXTLIBS="${EXTLIBS} ${nlsiconv[@]}" \
3389 - || die "emake svn-fe failed"
3390 - if use doc ; then
3391 - # svn-fe.1 requires the full USE=doc dependency stack
3392 - git_emake svn-fe.1 \
3393 - || die "emake svn-fe.1 failed"
3394 - git_emake svn-fe.html \
3395 - || die "svn-fe.html failed"
3396 - fi
3397 - popd &>/dev/null || die
3398 - fi
3399 -
3400 - if use gnome-keyring ; then
3401 - pushd contrib/credential/libsecret &>/dev/null || die
3402 - git_emake || die "emake git-credential-libsecret failed"
3403 - popd &>/dev/null || die
3404 - fi
3405 -
3406 - pushd contrib/subtree &>/dev/null || die
3407 - git_emake git-subtree
3408 - # git-subtree.1 requires the full USE=doc dependency stack
3409 - use doc && git_emake git-subtree.html git-subtree.1
3410 - popd &>/dev/null || die
3411 -
3412 - pushd contrib/diff-highlight &>/dev/null || die
3413 - git_emake
3414 - popd &>/dev/null || die
3415 -
3416 - if use mediawiki ; then
3417 - pushd contrib/mw-to-git &>/dev/null || die
3418 - git_emake
3419 - popd &>/dev/null || die
3420 -
3421 - fi
3422 -}
3423 -
3424 -src_install() {
3425 - git_emake install || die "make install failed"
3426 -
3427 - if [[ ${CHOST} == *-darwin* ]]; then
3428 - dobin contrib/credential/osxkeychain/git-credential-osxkeychain
3429 - fi
3430 -
3431 - # Depending on the tarball and manual rebuild of the documentation, the
3432 - # manpages may exist in either OR both of these directories.
3433 - find man?/*.[157] >/dev/null 2>&1 && doman man?/*.[157]
3434 - find Documentation/*.[157] >/dev/null 2>&1 && doman Documentation/*.[157]
3435 - dodoc README* Documentation/{SubmittingPatches,CodingGuidelines}
3436 - use doc && dodir /usr/share/doc/${PF}/html
3437 - local d
3438 - for d in / /howto/ /technical/ ; do
3439 - docinto ${d}
3440 - dodoc Documentation${d}*.txt
3441 - if use doc ; then
3442 - docinto ${d}/html
3443 - dodoc Documentation${d}*.html
3444 - fi
3445 - done
3446 - docinto /
3447 - # Upstream does not ship this pre-built :-(
3448 - use doc && doinfo Documentation/{git,gitman}.info
3449 -
3450 - newbashcomp contrib/completion/git-completion.bash ${PN}
3451 - bashcomp_alias git gitk
3452 - # Not really a bash-completion file (bug #477920)
3453 - # but still needed uncompressed (bug #507480)
3454 - insinto /usr/share/${PN}
3455 - doins contrib/completion/git-prompt.sh
3456 -
3457 - if use emacs ; then
3458 - elisp-install ${PN} contrib/emacs/git.{el,elc}
3459 - elisp-install ${PN} contrib/emacs/git-blame.{el,elc}
3460 - #elisp-install ${PN}/compat contrib/emacs/vc-git.{el,elc}
3461 - # don't add automatically to the load-path, so the sitefile
3462 - # can do a conditional loading
3463 - touch "${ED}${SITELISP}/${PN}/compat/.nosearch"
3464 - elisp-site-file-install "${FILESDIR}"/${SITEFILE}
3465 - fi
3466 -
3467 - #dobin contrib/fast-import/git-p4 # Moved upstream
3468 - #dodoc contrib/fast-import/git-p4.txt # Moved upstream
3469 - newbin contrib/fast-import/import-tars.perl import-tars
3470 - exeinto /usr/libexec/git-core/
3471 - newexe contrib/git-resurrect.sh git-resurrect
3472 -
3473 - # git-subtree
3474 - pushd contrib/subtree &>/dev/null || die
3475 - git_emake install || die "Failed to emake install for git-subtree"
3476 - if use doc ; then
3477 - # Do not move git subtree install-man outside USE=doc!
3478 - git_emake install-man install-html || die "Failed to emake install-html install-man for git-subtree"
3479 - fi
3480 - newdoc README README.git-subtree
3481 - dodoc git-subtree.txt
3482 - popd &>/dev/null || die
3483 -
3484 - if use mediawiki ; then
3485 - pushd contrib/mw-to-git &>/dev/null || die
3486 - git_emake install
3487 - popd &>/dev/null || die
3488 - fi
3489 -
3490 - # diff-highlight
3491 - dobin contrib/diff-highlight/diff-highlight
3492 - newdoc contrib/diff-highlight/README README.diff-highlight
3493 -
3494 - # git-jump
3495 - exeinto /usr/libexec/git-core/
3496 - doexe contrib/git-jump/git-jump
3497 - newdoc contrib/git-jump/README git-jump.txt
3498 -
3499 - # git-contacts
3500 - exeinto /usr/libexec/git-core/
3501 - doexe contrib/contacts/git-contacts
3502 - dodoc contrib/contacts/git-contacts.txt
3503 -
3504 - if use gnome-keyring ; then
3505 - pushd contrib/credential/libsecret &>/dev/null || die
3506 - dobin git-credential-libsecret
3507 - popd &>/dev/null || die
3508 - fi
3509 -
3510 - if use subversion ; then
3511 - pushd contrib/svn-fe &>/dev/null || die
3512 - dobin svn-fe
3513 - dodoc svn-fe.txt
3514 - if use doc ; then
3515 - # Do not move svn-fe.1 outside USE=doc!
3516 - doman svn-fe.1
3517 - docinto html
3518 - dodoc svn-fe.html
3519 - fi
3520 - popd &>/dev/null || die
3521 - fi
3522 -
3523 - dodir /usr/share/${PN}/contrib
3524 - # The following are excluded:
3525 - # completion - installed above
3526 - # diff-highlight - done above
3527 - # emacs - installed above
3528 - # examples - these are stuff that is not used in Git anymore actually
3529 - # git-jump - done above
3530 - # gitview - installed above
3531 - # p4import - excluded because fast-import has a better one
3532 - # patches - stuff the Git guys made to go upstream to other places
3533 - # persistent-https - TODO
3534 - # mw-to-git - TODO
3535 - # subtree - build seperately
3536 - # svnimport - use git-svn
3537 - # thunderbird-patch-inline - fixes thunderbird
3538 - local contrib_objects=(
3539 - buildsystems
3540 - fast-import
3541 - hg-to-git
3542 - hooks
3543 - remotes2config.sh
3544 - rerere-train.sh
3545 - stats
3546 - workdir
3547 - )
3548 - local i
3549 - for i in "${contrib_objects[@]}" ; do
3550 - cp -rf \
3551 - "${S}"/contrib/${i} \
3552 - "${ED}"/usr/share/${PN}/contrib \
3553 - || die "Failed contrib ${i}"
3554 - done
3555 -
3556 - if use perl && use cgi ; then
3557 - # We used to install in /usr/share/${PN}/gitweb
3558 - # but upstream installs in /usr/share/gitweb
3559 - # so we will install a symlink and use their location for compat with other
3560 - # distros
3561 - dosym ../gitweb /usr/share/${PN}/gitweb
3562 -
3563 - # INSTALL discusses configuration issues, not just installation
3564 - docinto /
3565 - newdoc "${S}"/gitweb/INSTALL INSTALL.gitweb
3566 - newdoc "${S}"/gitweb/README README.gitweb
3567 -
3568 - for d in "${ED}"/usr/lib{,64}/perl5/ ; do
3569 - if test -d "${d}" ; then find "${d}" \
3570 - -name .packlist \
3571 - -delete || die
3572 - fi
3573 - done
3574 - else
3575 - rm -rf "${ED}"/usr/share/gitweb
3576 - fi
3577 -
3578 - if ! use subversion ; then
3579 - rm -f "${ED}"/usr/libexec/git-core/git-svn \
3580 - "${ED}"/usr/share/man/man1/git-svn.1*
3581 - fi
3582 -
3583 - if use xinetd ; then
3584 - insinto /etc/xinetd.d
3585 - newins "${FILESDIR}"/git-daemon.xinetd git-daemon
3586 - fi
3587 -
3588 - if use !prefix ; then
3589 - newinitd "${FILESDIR}"/git-daemon-r1.initd git-daemon
3590 - newconfd "${FILESDIR}"/git-daemon.confd git-daemon
3591 - systemd_newunit "${FILESDIR}/git-daemon_at-r1.service" "git-daemon@.service"
3592 - systemd_dounit "${FILESDIR}/git-daemon.socket"
3593 - fi
3594 -
3595 - perl_delete_localpod
3596 -
3597 - # Remove disabled linguas
3598 - # we could remove sources in src_prepare, but install does not
3599 - # handle missing locale dir well
3600 - rm_loc() {
3601 - if [[ -e "${ED}/usr/share/locale/${1}" ]]; then
3602 - rm -r "${ED}/usr/share/locale/${1}" || die
3603 - fi
3604 - }
3605 - l10n_for_each_disabled_locale_do rm_loc
3606 -}
3607 -
3608 -src_test() {
3609 - local disabled=()
3610 - local tests_cvs=(
3611 - t9200-git-cvsexportcommit.sh
3612 - t9400-git-cvsserver-server.sh
3613 - t9401-git-cvsserver-crlf.sh
3614 - t9402-git-cvsserver-refs.sh
3615 - t9600-cvsimport.sh
3616 - t9601-cvsimport-vendor-branch.sh
3617 - t9602-cvsimport-branches-tags.sh
3618 - t9603-cvsimport-patchsets.sh
3619 - t9604-cvsimport-timestamps.sh
3620 - )
3621 - local tests_perl=(
3622 - t3701-add-interactive.sh
3623 - t5502-quickfetch.sh
3624 - t5512-ls-remote.sh
3625 - t5520-pull.sh
3626 - t7106-reset-unborn-branch.sh
3627 - t7501-commit.sh
3628 - )
3629 - # Bug #225601 - t0004 is not suitable for root perm
3630 - # Bug #219839 - t1004 is not suitable for root perm
3631 - # t0001-init.sh - check for init notices EPERM* fails
3632 - local tests_nonroot=(
3633 - t0001-init.sh
3634 - t0004-unwritable.sh
3635 - t0070-fundamental.sh
3636 - t1004-read-tree-m-u-wf.sh
3637 - t3700-add.sh
3638 - t7300-clean.sh
3639 - )
3640 - # t9100 still fails with symlinks in SVN 1.7
3641 - local test_svn=( t9100-git-svn-basic.sh )
3642 -
3643 - # Unzip is used only for the testcase code, not by any normal parts of Git.
3644 - if ! has_version app-arch/unzip ; then
3645 - einfo "Disabling tar-tree tests"
3646 - disabled+=( t5000-tar-tree.sh )
3647 - fi
3648 -
3649 - local cvs=0
3650 - use cvs && let cvs=${cvs}+1
3651 - if [[ ${EUID} -eq 0 ]]; then
3652 - if [[ ${cvs} -eq 1 ]]; then
3653 - ewarn "Skipping CVS tests because CVS does not work as root!"
3654 - ewarn "You should retest with FEATURES=userpriv!"
3655 - disabled+=( ${tests_cvs[@]} )
3656 - fi
3657 - einfo "Skipping other tests that require being non-root"
3658 - disabled+=( ${tests_nonroot[@]} )
3659 - else
3660 - [[ ${cvs} -gt 0 ]] && \
3661 - has_version dev-vcs/cvs && \
3662 - let cvs=${cvs}+1
3663 - [[ ${cvs} -gt 1 ]] && \
3664 - has_version "dev-vcs/cvs[server]" && \
3665 - let cvs=${cvs}+1
3666 - if [[ ${cvs} -lt 3 ]]; then
3667 - einfo "Disabling CVS tests (needs dev-vcs/cvs[USE=server])"
3668 - disabled+=( ${tests_cvs[@]} )
3669 - fi
3670 - fi
3671 -
3672 - if ! use perl ; then
3673 - einfo "Disabling tests that need Perl"
3674 - disabled+=( ${tests_perl[@]} )
3675 - fi
3676 -
3677 - einfo "Disabling tests that fail with SVN 1.7"
3678 - disabled+=( ${test_svn[@]} )
3679 -
3680 - # Reset all previously disabled tests
3681 - pushd t &>/dev/null || die
3682 - local i
3683 - for i in *.sh.DISABLED ; do
3684 - [[ -f "${i}" ]] && mv -f "${i}" "${i%.DISABLED}"
3685 - done
3686 - einfo "Disabled tests:"
3687 - for i in ${disabled[@]} ; do
3688 - [[ -f "${i}" ]] && mv -f "${i}" "${i}.DISABLED" && einfo "Disabled ${i}"
3689 - done
3690 -
3691 - # Avoid the test system removing the results because we want them ourselves
3692 - sed -e '/^[[:space:]]*$(MAKE) clean/s,^,#,g' \
3693 - -i Makefile || die
3694 -
3695 - # Clean old results first, must always run
3696 - nonfatal git_emake clean
3697 - popd &>/dev/null || die
3698 -
3699 - # Now run the tests, keep going if we hit an error, and don't terminate on
3700 - # failure
3701 - local rc
3702 - einfo "Start test run"
3703 - #MAKEOPTS=-j1
3704 - nonfatal git_emake --keep-going test
3705 - rc=$?
3706 -
3707 - # Display nice results, now print the results
3708 - pushd t &>/dev/null || die
3709 - nonfatal git_emake aggregate-results
3710 -
3711 - # And bail if there was a problem
3712 - [[ ${rc} -eq 0 ]] || die "tests failed. Please file a bug."
3713 -}
3714 -
3715 -showpkgdeps() {
3716 - local pkg=$1
3717 - shift
3718 - elog " $(printf "%-17s:" ${pkg}) ${@}"
3719 -}
3720 -
3721 -pkg_postinst() {
3722 - use emacs && elisp-site-regen
3723 - elog "Please read /usr/share/bash-completion/completions/git for Git bash command"
3724 - elog "completion."
3725 - elog "Please read /usr/share/git/git-prompt.sh for Git bash prompt"
3726 - elog "Note that the prompt bash code is now in that separate script"
3727 - elog "These additional scripts need some dependencies:"
3728 - echo
3729 - showpkgdeps git-quiltimport "dev-util/quilt"
3730 - showpkgdeps git-instaweb \
3731 - "|| ( www-servers/lighttpd www-servers/apache www-servers/nginx )"
3732 - echo
3733 - use mediawiki-experimental && ewarn "Using experimental git-mediawiki patches. The stability of cloned wiki filesystems is not guaranteed."
3734 -}
3735 -
3736 -pkg_postrm() {
3737 - use emacs && elisp-site-regen
3738 -}
3739
3740 diff --git a/dev-vcs/git/git-2.25.2.ebuild b/dev-vcs/git/git-2.25.2.ebuild
3741 deleted file mode 100644
3742 index 373486b54b6..00000000000
3743 --- a/dev-vcs/git/git-2.25.2.ebuild
3744 +++ /dev/null
3745 @@ -1,728 +0,0 @@
3746 -# Copyright 1999-2020 Gentoo Authors
3747 -# Distributed under the terms of the GNU General Public License v2
3748 -
3749 -EAPI=7
3750 -
3751 -GENTOO_DEPEND_ON_PERL=no
3752 -
3753 -# bug #329479: git-remote-testgit is not multiple-version aware
3754 -PYTHON_COMPAT=( python{2_7,3_{6,7}} )
3755 -
3756 -inherit toolchain-funcs elisp-common l10n perl-module bash-completion-r1 python-single-r1 systemd
3757 -
3758 -PLOCALES="bg ca de es fr is it ko pt_PT ru sv vi zh_CN"
3759 -if [[ ${PV} == *9999 ]]; then
3760 - inherit git-r3
3761 - EGIT_REPO_URI="git://git.kernel.org/pub/scm/git/git.git"
3762 - # Please ensure that all _four_ 9999 ebuilds get updated; they track the 4 upstream branches.
3763 - # See https://git-scm.com/docs/gitworkflows#_graduation
3764 - # In order of stability:
3765 - # 9999-r0: maint
3766 - # 9999-r1: master
3767 - # 9999-r2: next
3768 - # 9999-r3: pu
3769 - case "${PVR}" in
3770 - 9999) EGIT_BRANCH=maint ;;
3771 - 9999-r1) EGIT_BRANCH=master ;;
3772 - 9999-r2) EGIT_BRANCH=next;;
3773 - 9999-r3) EGIT_BRANCH=pu ;;
3774 - esac
3775 -fi
3776 -
3777 -MY_PV="${PV/_rc/.rc}"
3778 -MY_P="${PN}-${MY_PV}"
3779 -
3780 -DOC_VER="${MY_PV}"
3781 -
3782 -DESCRIPTION="stupid content tracker: distributed VCS designed for speed and efficiency"
3783 -HOMEPAGE="https://www.git-scm.com/"
3784 -if [[ ${PV} != *9999 ]]; then
3785 - SRC_URI_SUFFIX="xz"
3786 - SRC_URI_KORG="https://www.kernel.org/pub/software/scm/git"
3787 - [[ "${PV/rc}" != "${PV}" ]] && SRC_URI_KORG+='/testing'
3788 - SRC_URI="${SRC_URI_KORG}/${MY_P}.tar.${SRC_URI_SUFFIX}
3789 - ${SRC_URI_KORG}/${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
3790 - doc? (
3791 - ${SRC_URI_KORG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
3792 - )"
3793 - [[ "${PV}" == *_rc* ]] || \
3794 - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
3795 -fi
3796 -
3797 -LICENSE="GPL-2"
3798 -SLOT="0"
3799 -IUSE="+blksha1 +curl cgi doc emacs gnome-keyring +gpg highlight +iconv libressl mediawiki mediawiki-experimental +nls +pcre +pcre-jit perforce +perl +ppcsha1 tk +threads +webdav xinetd cvs subversion test"
3800 -
3801 -# Common to both DEPEND and RDEPEND
3802 -DEPEND="
3803 - gnome-keyring? ( app-crypt/libsecret )
3804 - !libressl? ( dev-libs/openssl:0= )
3805 - libressl? ( dev-libs/libressl:= )
3806 - sys-libs/zlib
3807 - pcre? (
3808 - pcre-jit? ( dev-libs/libpcre2[jit(+)] )
3809 - !pcre-jit? ( dev-libs/libpcre )
3810 - )
3811 - perl? ( dev-lang/perl:=[-build(-)] )
3812 - tk? ( dev-lang/tk:0= )
3813 - curl? (
3814 - net-misc/curl
3815 - webdav? ( dev-libs/expat )
3816 - )
3817 - emacs? ( >=app-editors/emacs-23.1:* )
3818 - iconv? ( virtual/libiconv )
3819 -"
3820 -
3821 -RDEPEND="${DEPEND}
3822 - gpg? ( app-crypt/gnupg )
3823 - perl? (
3824 - dev-perl/Error
3825 - dev-perl/MailTools
3826 - dev-perl/Authen-SASL
3827 - cgi? (
3828 - dev-perl/CGI
3829 - highlight? ( app-text/highlight )
3830 - )
3831 - cvs? (
3832 - >=dev-vcs/cvsps-2.1:0
3833 - dev-perl/DBI
3834 - dev-perl/DBD-SQLite
3835 - )
3836 - mediawiki? (
3837 - dev-perl/DateTime-Format-ISO8601
3838 - dev-perl/HTML-Tree
3839 - dev-perl/MediaWiki-API
3840 - )
3841 - subversion? (
3842 - dev-vcs/subversion[-dso,perl]
3843 - dev-perl/libwww-perl
3844 - dev-perl/TermReadKey
3845 - )
3846 - )
3847 - perforce? ( ${PYTHON_DEPS} )
3848 -"
3849 -
3850 -# This is how info docs are created with Git:
3851 -# .txt/asciidoc --(asciidoc)---------> .xml/docbook
3852 -# .xml/docbook --(docbook2texi.pl)--> .texi
3853 -# .texi --(makeinfo)---------> .info
3854 -BDEPEND="
3855 - doc? (
3856 - app-text/asciidoc
3857 - app-text/docbook2X
3858 - app-text/xmlto
3859 - sys-apps/texinfo
3860 - )
3861 - nls? ( sys-devel/gettext )
3862 - test? ( app-crypt/gnupg )
3863 -"
3864 -
3865 -# Live ebuild builds man pages and HTML docs, additionally
3866 -if [[ ${PV} == *9999 ]]; then
3867 - BDEPEND="${BDEPEND}
3868 - app-text/asciidoc"
3869 -fi
3870 -
3871 -SITEFILE="50${PN}-gentoo.el"
3872 -S="${WORKDIR}/${MY_P}"
3873 -
3874 -REQUIRED_USE="
3875 - cgi? ( perl )
3876 - cvs? ( perl )
3877 - mediawiki? ( perl )
3878 - mediawiki-experimental? ( mediawiki )
3879 - subversion? ( perl )
3880 - webdav? ( curl )
3881 - pcre-jit? ( pcre )
3882 - perforce? ( ${PYTHON_REQUIRED_USE} )
3883 -"
3884 -
3885 -RESTRICT="!test? ( test )"
3886 -
3887 -PATCHES=(
3888 - # bug #350330 - automagic CVS when we don't want it is bad.
3889 - "${FILESDIR}"/git-2.22.0_rc0-optional-cvs.patch
3890 -
3891 - "${FILESDIR}"/git-2.2.0-svn-fe-linking.patch
3892 -
3893 - # Make submodule output quiet
3894 - "${FILESDIR}"/git-2.21.0-quiet-submodules-testcase.patch
3895 -)
3896 -
3897 -pkg_setup() {
3898 - if use subversion && has_version "dev-vcs/subversion[dso]"; then
3899 - ewarn "Per Gentoo bugs #223747, #238586, when subversion is built"
3900 - ewarn "with USE=dso, there may be weird crashes in git-svn. You"
3901 - ewarn "have been warned."
3902 - fi
3903 - if use perforce ; then
3904 - python-single-r1_pkg_setup
3905 - fi
3906 -}
3907 -
3908 -# This is needed because for some obscure reasons future calls to make don't
3909 -# pick up these exports if we export them in src_unpack()
3910 -exportmakeopts() {
3911 - local extlibs myopts
3912 -
3913 - myopts=(
3914 - ASCIIDOC_NO_ROFF=YesPlease
3915 - $(usex cvs '' NO_CVS=YesPlease)
3916 - $(usex elibc_musl NO_REGEX=YesPlease '')
3917 - $(usex iconv '' NO_ICONV=YesPlease)
3918 - $(usex nls '' NO_GETTEXT=YesPlease)
3919 - $(usex perl 'INSTALLDIRS=vendor NO_PERL_CPAN_FALLBACKS=YesPlease' NO_PERL=YesPlease)
3920 - $(usex perforce '' NO_PYTHON=YesPlease)
3921 - $(usex subversion '' NO_SVN_TESTS=YesPlease)
3922 - $(usex threads '' NO_PTHREADS=YesPlease)
3923 - $(usex tk '' NO_TCLTK=YesPlease)
3924 - )
3925 -
3926 - if use blksha1 ; then
3927 - myopts+=( BLK_SHA1=YesPlease )
3928 - elif use ppcsha1 ; then
3929 - myopts+=( PPC_SHA1=YesPlease )
3930 - fi
3931 -
3932 - if use curl ; then
3933 - use webdav || myopts+=( NO_EXPAT=YesPlease )
3934 - else
3935 - myopts+=( NO_CURL=YesPlease )
3936 - fi
3937 -
3938 - # broken assumptions, because of static build system ...
3939 - myopts+=(
3940 - NO_FINK=YesPlease
3941 - NO_DARWIN_PORTS=YesPlease
3942 - INSTALL=install
3943 - TAR=tar
3944 - SHELL_PATH="${EPREFIX}/bin/sh"
3945 - SANE_TOOL_PATH=
3946 - OLD_ICONV=
3947 - NO_EXTERNAL_GREP=
3948 - )
3949 -
3950 - # For svn-fe
3951 - extlibs=( -lz -lssl ${S}/xdiff/lib.a $(usex threads -lpthread '') )
3952 -
3953 - # can't define this to null, since the entire makefile depends on it
3954 - sed -i -e '/\/usr\/local/s/BASIC_/#BASIC_/' Makefile || die
3955 -
3956 - if use pcre; then
3957 - if use pcre-jit; then
3958 - myopts+=( USE_LIBPCRE2=YesPlease )
3959 - extlibs+=( -lpcre2-8 )
3960 - else
3961 - myopts+=(
3962 - USE_LIBPCRE1=YesPlease
3963 - NO_LIBPCRE1_JIT=YesPlease
3964 - )
3965 - extlibs+=( -lpcre )
3966 - fi
3967 - fi
3968 -# Disabled until ~m68k-mint can be keyworded again
3969 -# if [[ ${CHOST} == *-mint* ]] ; then
3970 -# myopts+=(
3971 -# NO_MMAP=YesPlease
3972 -# NO_IPV6=YesPlease
3973 -# NO_STRLCPY=YesPlease
3974 -# NO_MEMMEM=YesPlease
3975 -# NO_MKDTEMP=YesPlease
3976 -# NO_MKSTEMPS=YesPlease
3977 -# )
3978 -# fi
3979 - if [[ ${CHOST} == ia64-*-hpux* ]]; then
3980 - myopts+=( NO_NSEC=YesPlease )
3981 - fi
3982 - if [[ ${CHOST} == *-*-aix* ]]; then
3983 - myopts+=( NO_FNMATCH_CASEFOLD=YesPlease )
3984 - fi
3985 - if [[ ${CHOST} == *-solaris* ]]; then
3986 - myopts+=(
3987 - NEEDS_LIBICONV=YesPlease
3988 - HAVE_CLOCK_MONOTONIC=1
3989 - )
3990 - if grep -q getdelim "${EROOT}"/usr/include/stdio.h ; then
3991 - myopts+=( HAVE_GETDELIM=1 )
3992 - fi
3993 - fi
3994 -
3995 - if has_version '>=app-text/asciidoc-8.0' ; then
3996 - myopts+=( ASCIIDOC8=YesPlease )
3997 - fi
3998 -
3999 - # Bug 290465:
4000 - # builtin-fetch-pack.c:816: error: 'struct stat' has no member named 'st_mtim'
4001 - if [[ "${CHOST}" == *-uclibc* ]] ; then
4002 - myopts+=( NO_NSEC=YesPlease )
4003 - use iconv && myopts+=( NEEDS_LIBICONV=YesPlease )
4004 - fi
4005 -
4006 - export MY_MAKEOPTS="${myopts[@]}"
4007 - export EXTLIBS="${extlibs[@]}"
4008 -}
4009 -
4010 -src_unpack() {
4011 - if [[ ${PV} != *9999 ]]; then
4012 - unpack ${MY_P}.tar.${SRC_URI_SUFFIX}
4013 - cd "${S}" || die
4014 - unpack ${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
4015 - if use doc ; then
4016 - pushd "${S}"/Documentation &>/dev/null || die
4017 - unpack ${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
4018 - popd &>/dev/null || die
4019 - fi
4020 - else
4021 - git-r3_src_unpack
4022 - #cp "${FILESDIR}"/GIT-VERSION-GEN .
4023 - fi
4024 -
4025 -}
4026 -
4027 -src_prepare() {
4028 - # add experimental patches to improve mediawiki support
4029 - # see patches for origin
4030 - if use mediawiki-experimental ; then
4031 - PATCHES+=(
4032 - "${FILESDIR}"/git-2.7.0-mediawiki-namespaces.patch
4033 - "${FILESDIR}"/git-2.7.0-mediawiki-subpages.patch
4034 - "${FILESDIR}"/git-2.7.0-mediawiki-500pages.patch
4035 - )
4036 - fi
4037 -
4038 - default
4039 -
4040 - sed -i \
4041 - -e 's:^\(CFLAGS[[:space:]]*=\).*$:\1 $(OPTCFLAGS) -Wall:' \
4042 - -e 's:^\(LDFLAGS[[:space:]]*=\).*$:\1 $(OPTLDFLAGS):' \
4043 - -e 's:^\(CC[[:space:]]* =\).*$:\1$(OPTCC):' \
4044 - -e 's:^\(AR[[:space:]]* =\).*$:\1$(OPTAR):' \
4045 - -e "s:\(PYTHON_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
4046 - -e "s:\(PERL_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
4047 - Makefile contrib/svn-fe/Makefile || die
4048 -
4049 - # Fix docbook2texi command
4050 - sed -r -i 's/DOCBOOK2X_TEXI[[:space:]]*=[[:space:]]*docbook2x-texi/DOCBOOK2X_TEXI = docbook2texi.pl/' \
4051 - Documentation/Makefile || die
4052 -}
4053 -
4054 -git_emake() {
4055 - # bug #320647: PYTHON_PATH
4056 - local PYTHON_PATH=""
4057 - use perforce && PYTHON_PATH="${PYTHON}"
4058 - emake ${MY_MAKEOPTS} \
4059 - prefix="${EPREFIX}"/usr \
4060 - htmldir="${EPREFIX}"/usr/share/doc/${PF}/html \
4061 - perllibdir="$(use perl && perl_get_raw_vendorlib)" \
4062 - sysconfdir="${EPREFIX}"/etc \
4063 - DESTDIR="${D}" \
4064 - GIT_TEST_OPTS="--no-color" \
4065 - OPTAR="$(tc-getAR)" \
4066 - OPTCC="$(tc-getCC)" \
4067 - OPTCFLAGS="${CFLAGS}" \
4068 - OPTLDFLAGS="${LDFLAGS}" \
4069 - PERL_PATH="${EPREFIX}/usr/bin/perl" \
4070 - PERL_MM_OPT="" \
4071 - PYTHON_PATH="${PYTHON_PATH}" \
4072 - V=1 \
4073 - "$@"
4074 -}
4075 -
4076 -src_configure() {
4077 - exportmakeopts
4078 -}
4079 -
4080 -src_compile() {
4081 - git_emake || die "emake failed"
4082 -
4083 - if use emacs ; then
4084 - elisp-compile contrib/emacs/git{,-blame}.el
4085 - fi
4086 -
4087 - if use perl && use cgi ; then
4088 - git_emake \
4089 - gitweb \
4090 - || die "emake gitweb (cgi) failed"
4091 - fi
4092 -
4093 - if [[ ${CHOST} == *-darwin* ]]; then
4094 - pushd contrib/credential/osxkeychain &>/dev/null || die
4095 - git_emake CC=$(tc-getCC) CFLAGS="${CFLAGS}" \
4096 - || die "emake credential-osxkeychain"
4097 - popd &>/dev/null || die
4098 - fi
4099 -
4100 - pushd Documentation &>/dev/null || die
4101 - if [[ ${PV} == *9999 ]] ; then
4102 - git_emake man \
4103 - || die "emake man failed"
4104 - if use doc ; then
4105 - git_emake info html \
4106 - || die "emake info html failed"
4107 - fi
4108 - else
4109 - if use doc ; then
4110 - git_emake info \
4111 - || die "emake info html failed"
4112 - fi
4113 - fi
4114 - popd &>/dev/null || die
4115 -
4116 - if use subversion ; then
4117 - pushd contrib/svn-fe &>/dev/null || die
4118 - # by defining EXTLIBS we override the detection for libintl and
4119 - # libiconv, bug #516168
4120 - local nlsiconv=()
4121 - use nls && use !elibc_glibc && nlsiconv+=( -lintl )
4122 - use iconv && use !elibc_glibc && nlsiconv+=( -liconv )
4123 - git_emake EXTLIBS="${EXTLIBS} ${nlsiconv[@]}" \
4124 - || die "emake svn-fe failed"
4125 - if use doc ; then
4126 - # svn-fe.1 requires the full USE=doc dependency stack
4127 - git_emake svn-fe.1 \
4128 - || die "emake svn-fe.1 failed"
4129 - git_emake svn-fe.html \
4130 - || die "svn-fe.html failed"
4131 - fi
4132 - popd &>/dev/null || die
4133 - fi
4134 -
4135 - if use gnome-keyring ; then
4136 - pushd contrib/credential/libsecret &>/dev/null || die
4137 - git_emake || die "emake git-credential-libsecret failed"
4138 - popd &>/dev/null || die
4139 - fi
4140 -
4141 - pushd contrib/subtree &>/dev/null || die
4142 - git_emake git-subtree
4143 - # git-subtree.1 requires the full USE=doc dependency stack
4144 - use doc && git_emake git-subtree.html git-subtree.1
4145 - popd &>/dev/null || die
4146 -
4147 - pushd contrib/diff-highlight &>/dev/null || die
4148 - git_emake
4149 - popd &>/dev/null || die
4150 -
4151 - if use mediawiki ; then
4152 - pushd contrib/mw-to-git &>/dev/null || die
4153 - git_emake
4154 - popd &>/dev/null || die
4155 -
4156 - fi
4157 -}
4158 -
4159 -src_install() {
4160 - git_emake install || die "make install failed"
4161 -
4162 - if [[ ${CHOST} == *-darwin* ]]; then
4163 - dobin contrib/credential/osxkeychain/git-credential-osxkeychain
4164 - fi
4165 -
4166 - # Depending on the tarball and manual rebuild of the documentation, the
4167 - # manpages may exist in either OR both of these directories.
4168 - find man?/*.[157] >/dev/null 2>&1 && doman man?/*.[157]
4169 - find Documentation/*.[157] >/dev/null 2>&1 && doman Documentation/*.[157]
4170 - dodoc README* Documentation/{SubmittingPatches,CodingGuidelines}
4171 - use doc && dodir /usr/share/doc/${PF}/html
4172 - local d
4173 - for d in / /howto/ /technical/ ; do
4174 - docinto ${d}
4175 - dodoc Documentation${d}*.txt
4176 - if use doc ; then
4177 - docinto ${d}/html
4178 - dodoc Documentation${d}*.html
4179 - fi
4180 - done
4181 - docinto /
4182 - # Upstream does not ship this pre-built :-(
4183 - use doc && doinfo Documentation/{git,gitman}.info
4184 -
4185 - newbashcomp contrib/completion/git-completion.bash ${PN}
4186 - bashcomp_alias git gitk
4187 - # Not really a bash-completion file (bug #477920)
4188 - # but still needed uncompressed (bug #507480)
4189 - insinto /usr/share/${PN}
4190 - doins contrib/completion/git-prompt.sh
4191 -
4192 - if use emacs ; then
4193 - elisp-install ${PN} contrib/emacs/git.{el,elc}
4194 - elisp-install ${PN} contrib/emacs/git-blame.{el,elc}
4195 - #elisp-install ${PN}/compat contrib/emacs/vc-git.{el,elc}
4196 - # don't add automatically to the load-path, so the sitefile
4197 - # can do a conditional loading
4198 - touch "${ED}${SITELISP}/${PN}/compat/.nosearch"
4199 - elisp-site-file-install "${FILESDIR}"/${SITEFILE}
4200 - fi
4201 -
4202 - #dobin contrib/fast-import/git-p4 # Moved upstream
4203 - #dodoc contrib/fast-import/git-p4.txt # Moved upstream
4204 - newbin contrib/fast-import/import-tars.perl import-tars
4205 - exeinto /usr/libexec/git-core/
4206 - newexe contrib/git-resurrect.sh git-resurrect
4207 -
4208 - # git-subtree
4209 - pushd contrib/subtree &>/dev/null || die
4210 - git_emake install || die "Failed to emake install for git-subtree"
4211 - if use doc ; then
4212 - # Do not move git subtree install-man outside USE=doc!
4213 - git_emake install-man install-html || die "Failed to emake install-html install-man for git-subtree"
4214 - fi
4215 - newdoc README README.git-subtree
4216 - dodoc git-subtree.txt
4217 - popd &>/dev/null || die
4218 -
4219 - if use mediawiki ; then
4220 - pushd contrib/mw-to-git &>/dev/null || die
4221 - git_emake install
4222 - popd &>/dev/null || die
4223 - fi
4224 -
4225 - # diff-highlight
4226 - dobin contrib/diff-highlight/diff-highlight
4227 - newdoc contrib/diff-highlight/README README.diff-highlight
4228 -
4229 - # git-jump
4230 - exeinto /usr/libexec/git-core/
4231 - doexe contrib/git-jump/git-jump
4232 - newdoc contrib/git-jump/README git-jump.txt
4233 -
4234 - # git-contacts
4235 - exeinto /usr/libexec/git-core/
4236 - doexe contrib/contacts/git-contacts
4237 - dodoc contrib/contacts/git-contacts.txt
4238 -
4239 - if use gnome-keyring ; then
4240 - pushd contrib/credential/libsecret &>/dev/null || die
4241 - dobin git-credential-libsecret
4242 - popd &>/dev/null || die
4243 - fi
4244 -
4245 - if use subversion ; then
4246 - pushd contrib/svn-fe &>/dev/null || die
4247 - dobin svn-fe
4248 - dodoc svn-fe.txt
4249 - if use doc ; then
4250 - # Do not move svn-fe.1 outside USE=doc!
4251 - doman svn-fe.1
4252 - docinto html
4253 - dodoc svn-fe.html
4254 - fi
4255 - popd &>/dev/null || die
4256 - fi
4257 -
4258 - dodir /usr/share/${PN}/contrib
4259 - # The following are excluded:
4260 - # completion - installed above
4261 - # diff-highlight - done above
4262 - # emacs - installed above
4263 - # examples - these are stuff that is not used in Git anymore actually
4264 - # git-jump - done above
4265 - # gitview - installed above
4266 - # p4import - excluded because fast-import has a better one
4267 - # patches - stuff the Git guys made to go upstream to other places
4268 - # persistent-https - TODO
4269 - # mw-to-git - TODO
4270 - # subtree - build seperately
4271 - # svnimport - use git-svn
4272 - # thunderbird-patch-inline - fixes thunderbird
4273 - local contrib_objects=(
4274 - buildsystems
4275 - fast-import
4276 - hg-to-git
4277 - hooks
4278 - remotes2config.sh
4279 - rerere-train.sh
4280 - stats
4281 - workdir
4282 - )
4283 - local i
4284 - for i in "${contrib_objects[@]}" ; do
4285 - cp -rf \
4286 - "${S}"/contrib/${i} \
4287 - "${ED}"/usr/share/${PN}/contrib \
4288 - || die "Failed contrib ${i}"
4289 - done
4290 -
4291 - if use perl && use cgi ; then
4292 - # We used to install in /usr/share/${PN}/gitweb
4293 - # but upstream installs in /usr/share/gitweb
4294 - # so we will install a symlink and use their location for compat with other
4295 - # distros
4296 - dosym ../gitweb /usr/share/${PN}/gitweb
4297 -
4298 - # INSTALL discusses configuration issues, not just installation
4299 - docinto /
4300 - newdoc "${S}"/gitweb/INSTALL INSTALL.gitweb
4301 - newdoc "${S}"/gitweb/README README.gitweb
4302 -
4303 - for d in "${ED}"/usr/lib{,64}/perl5/ ; do
4304 - if test -d "${d}" ; then find "${d}" \
4305 - -name .packlist \
4306 - -delete || die
4307 - fi
4308 - done
4309 - else
4310 - rm -rf "${ED}"/usr/share/gitweb
4311 - fi
4312 -
4313 - if ! use subversion ; then
4314 - rm -f "${ED}"/usr/libexec/git-core/git-svn \
4315 - "${ED}"/usr/share/man/man1/git-svn.1*
4316 - fi
4317 -
4318 - if use xinetd ; then
4319 - insinto /etc/xinetd.d
4320 - newins "${FILESDIR}"/git-daemon.xinetd git-daemon
4321 - fi
4322 -
4323 - if use !prefix ; then
4324 - newinitd "${FILESDIR}"/git-daemon-r1.initd git-daemon
4325 - newconfd "${FILESDIR}"/git-daemon.confd git-daemon
4326 - systemd_newunit "${FILESDIR}/git-daemon_at-r1.service" "git-daemon@.service"
4327 - systemd_dounit "${FILESDIR}/git-daemon.socket"
4328 - fi
4329 -
4330 - perl_delete_localpod
4331 -
4332 - # Remove disabled linguas
4333 - # we could remove sources in src_prepare, but install does not
4334 - # handle missing locale dir well
4335 - rm_loc() {
4336 - if [[ -e "${ED}/usr/share/locale/${1}" ]]; then
4337 - rm -r "${ED}/usr/share/locale/${1}" || die
4338 - fi
4339 - }
4340 - l10n_for_each_disabled_locale_do rm_loc
4341 -}
4342 -
4343 -src_test() {
4344 - local disabled=()
4345 - local tests_cvs=(
4346 - t9200-git-cvsexportcommit.sh
4347 - t9400-git-cvsserver-server.sh
4348 - t9401-git-cvsserver-crlf.sh
4349 - t9402-git-cvsserver-refs.sh
4350 - t9600-cvsimport.sh
4351 - t9601-cvsimport-vendor-branch.sh
4352 - t9602-cvsimport-branches-tags.sh
4353 - t9603-cvsimport-patchsets.sh
4354 - t9604-cvsimport-timestamps.sh
4355 - )
4356 - local tests_perl=(
4357 - t3701-add-interactive.sh
4358 - t5502-quickfetch.sh
4359 - t5512-ls-remote.sh
4360 - t5520-pull.sh
4361 - t7106-reset-unborn-branch.sh
4362 - t7501-commit.sh
4363 - )
4364 - # Bug #225601 - t0004 is not suitable for root perm
4365 - # Bug #219839 - t1004 is not suitable for root perm
4366 - # t0001-init.sh - check for init notices EPERM* fails
4367 - local tests_nonroot=(
4368 - t0001-init.sh
4369 - t0004-unwritable.sh
4370 - t0070-fundamental.sh
4371 - t1004-read-tree-m-u-wf.sh
4372 - t3700-add.sh
4373 - t7300-clean.sh
4374 - )
4375 - # t9100 still fails with symlinks in SVN 1.7
4376 - local test_svn=( t9100-git-svn-basic.sh )
4377 -
4378 - # Unzip is used only for the testcase code, not by any normal parts of Git.
4379 - if ! has_version app-arch/unzip ; then
4380 - einfo "Disabling tar-tree tests"
4381 - disabled+=( t5000-tar-tree.sh )
4382 - fi
4383 -
4384 - local cvs=0
4385 - use cvs && let cvs=${cvs}+1
4386 - if [[ ${EUID} -eq 0 ]]; then
4387 - if [[ ${cvs} -eq 1 ]]; then
4388 - ewarn "Skipping CVS tests because CVS does not work as root!"
4389 - ewarn "You should retest with FEATURES=userpriv!"
4390 - disabled+=( ${tests_cvs[@]} )
4391 - fi
4392 - einfo "Skipping other tests that require being non-root"
4393 - disabled+=( ${tests_nonroot[@]} )
4394 - else
4395 - [[ ${cvs} -gt 0 ]] && \
4396 - has_version dev-vcs/cvs && \
4397 - let cvs=${cvs}+1
4398 - [[ ${cvs} -gt 1 ]] && \
4399 - has_version "dev-vcs/cvs[server]" && \
4400 - let cvs=${cvs}+1
4401 - if [[ ${cvs} -lt 3 ]]; then
4402 - einfo "Disabling CVS tests (needs dev-vcs/cvs[USE=server])"
4403 - disabled+=( ${tests_cvs[@]} )
4404 - fi
4405 - fi
4406 -
4407 - if ! use perl ; then
4408 - einfo "Disabling tests that need Perl"
4409 - disabled+=( ${tests_perl[@]} )
4410 - fi
4411 -
4412 - einfo "Disabling tests that fail with SVN 1.7"
4413 - disabled+=( ${test_svn[@]} )
4414 -
4415 - # Reset all previously disabled tests
4416 - pushd t &>/dev/null || die
4417 - local i
4418 - for i in *.sh.DISABLED ; do
4419 - [[ -f "${i}" ]] && mv -f "${i}" "${i%.DISABLED}"
4420 - done
4421 - einfo "Disabled tests:"
4422 - for i in ${disabled[@]} ; do
4423 - [[ -f "${i}" ]] && mv -f "${i}" "${i}.DISABLED" && einfo "Disabled ${i}"
4424 - done
4425 -
4426 - # Avoid the test system removing the results because we want them ourselves
4427 - sed -e '/^[[:space:]]*$(MAKE) clean/s,^,#,g' \
4428 - -i Makefile || die
4429 -
4430 - # Clean old results first, must always run
4431 - nonfatal git_emake clean
4432 - popd &>/dev/null || die
4433 -
4434 - # Now run the tests, keep going if we hit an error, and don't terminate on
4435 - # failure
4436 - local rc
4437 - einfo "Start test run"
4438 - #MAKEOPTS=-j1
4439 - nonfatal git_emake --keep-going test
4440 - rc=$?
4441 -
4442 - # Display nice results, now print the results
4443 - pushd t &>/dev/null || die
4444 - nonfatal git_emake aggregate-results
4445 -
4446 - # And bail if there was a problem
4447 - [[ ${rc} -eq 0 ]] || die "tests failed. Please file a bug."
4448 -}
4449 -
4450 -showpkgdeps() {
4451 - local pkg=$1
4452 - shift
4453 - elog " $(printf "%-17s:" ${pkg}) ${@}"
4454 -}
4455 -
4456 -pkg_postinst() {
4457 - use emacs && elisp-site-regen
4458 - elog "Please read /usr/share/bash-completion/completions/git for Git bash command"
4459 - elog "completion."
4460 - elog "Please read /usr/share/git/git-prompt.sh for Git bash prompt"
4461 - elog "Note that the prompt bash code is now in that separate script"
4462 - elog "These additional scripts need some dependencies:"
4463 - echo
4464 - showpkgdeps git-quiltimport "dev-util/quilt"
4465 - showpkgdeps git-instaweb \
4466 - "|| ( www-servers/lighttpd www-servers/apache www-servers/nginx )"
4467 - echo
4468 - use mediawiki-experimental && ewarn "Using experimental git-mediawiki patches. The stability of cloned wiki filesystems is not guaranteed."
4469 -}
4470 -
4471 -pkg_postrm() {
4472 - use emacs && elisp-site-regen
4473 -}
4474
4475 diff --git a/dev-vcs/git/git-2.25.3.ebuild b/dev-vcs/git/git-2.25.3.ebuild
4476 deleted file mode 100644
4477 index b14f087bb86..00000000000
4478 --- a/dev-vcs/git/git-2.25.3.ebuild
4479 +++ /dev/null
4480 @@ -1,728 +0,0 @@
4481 -# Copyright 1999-2020 Gentoo Authors
4482 -# Distributed under the terms of the GNU General Public License v2
4483 -
4484 -EAPI=7
4485 -
4486 -GENTOO_DEPEND_ON_PERL=no
4487 -
4488 -# bug #329479: git-remote-testgit is not multiple-version aware
4489 -PYTHON_COMPAT=( python{2_7,3_{6,7}} )
4490 -
4491 -inherit toolchain-funcs elisp-common l10n perl-module bash-completion-r1 python-single-r1 systemd
4492 -
4493 -PLOCALES="bg ca de es fr is it ko pt_PT ru sv vi zh_CN"
4494 -if [[ ${PV} == *9999 ]]; then
4495 - inherit git-r3
4496 - EGIT_REPO_URI="git://git.kernel.org/pub/scm/git/git.git"
4497 - # Please ensure that all _four_ 9999 ebuilds get updated; they track the 4 upstream branches.
4498 - # See https://git-scm.com/docs/gitworkflows#_graduation
4499 - # In order of stability:
4500 - # 9999-r0: maint
4501 - # 9999-r1: master
4502 - # 9999-r2: next
4503 - # 9999-r3: pu
4504 - case "${PVR}" in
4505 - 9999) EGIT_BRANCH=maint ;;
4506 - 9999-r1) EGIT_BRANCH=master ;;
4507 - 9999-r2) EGIT_BRANCH=next;;
4508 - 9999-r3) EGIT_BRANCH=pu ;;
4509 - esac
4510 -fi
4511 -
4512 -MY_PV="${PV/_rc/.rc}"
4513 -MY_P="${PN}-${MY_PV}"
4514 -
4515 -DOC_VER="${MY_PV}"
4516 -
4517 -DESCRIPTION="stupid content tracker: distributed VCS designed for speed and efficiency"
4518 -HOMEPAGE="https://www.git-scm.com/"
4519 -if [[ ${PV} != *9999 ]]; then
4520 - SRC_URI_SUFFIX="xz"
4521 - SRC_URI_KORG="https://www.kernel.org/pub/software/scm/git"
4522 - [[ "${PV/rc}" != "${PV}" ]] && SRC_URI_KORG+='/testing'
4523 - SRC_URI="${SRC_URI_KORG}/${MY_P}.tar.${SRC_URI_SUFFIX}
4524 - ${SRC_URI_KORG}/${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
4525 - doc? (
4526 - ${SRC_URI_KORG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
4527 - )"
4528 - [[ "${PV}" == *_rc* ]] || \
4529 - KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 ~riscv s390 sparc x86 ~ppc-aix ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
4530 -fi
4531 -
4532 -LICENSE="GPL-2"
4533 -SLOT="0"
4534 -IUSE="+blksha1 +curl cgi doc emacs gnome-keyring +gpg highlight +iconv libressl mediawiki mediawiki-experimental +nls +pcre +pcre-jit perforce +perl +ppcsha1 tk +threads +webdav xinetd cvs subversion test"
4535 -
4536 -# Common to both DEPEND and RDEPEND
4537 -DEPEND="
4538 - gnome-keyring? ( app-crypt/libsecret )
4539 - !libressl? ( dev-libs/openssl:0= )
4540 - libressl? ( dev-libs/libressl:= )
4541 - sys-libs/zlib
4542 - pcre? (
4543 - pcre-jit? ( dev-libs/libpcre2[jit(+)] )
4544 - !pcre-jit? ( dev-libs/libpcre )
4545 - )
4546 - perl? ( dev-lang/perl:=[-build(-)] )
4547 - tk? ( dev-lang/tk:0= )
4548 - curl? (
4549 - net-misc/curl
4550 - webdav? ( dev-libs/expat )
4551 - )
4552 - emacs? ( >=app-editors/emacs-23.1:* )
4553 - iconv? ( virtual/libiconv )
4554 -"
4555 -
4556 -RDEPEND="${DEPEND}
4557 - gpg? ( app-crypt/gnupg )
4558 - perl? (
4559 - dev-perl/Error
4560 - dev-perl/MailTools
4561 - dev-perl/Authen-SASL
4562 - cgi? (
4563 - dev-perl/CGI
4564 - highlight? ( app-text/highlight )
4565 - )
4566 - cvs? (
4567 - >=dev-vcs/cvsps-2.1:0
4568 - dev-perl/DBI
4569 - dev-perl/DBD-SQLite
4570 - )
4571 - mediawiki? (
4572 - dev-perl/DateTime-Format-ISO8601
4573 - dev-perl/HTML-Tree
4574 - dev-perl/MediaWiki-API
4575 - )
4576 - subversion? (
4577 - dev-vcs/subversion[-dso,perl]
4578 - dev-perl/libwww-perl
4579 - dev-perl/TermReadKey
4580 - )
4581 - )
4582 - perforce? ( ${PYTHON_DEPS} )
4583 -"
4584 -
4585 -# This is how info docs are created with Git:
4586 -# .txt/asciidoc --(asciidoc)---------> .xml/docbook
4587 -# .xml/docbook --(docbook2texi.pl)--> .texi
4588 -# .texi --(makeinfo)---------> .info
4589 -BDEPEND="
4590 - doc? (
4591 - app-text/asciidoc
4592 - app-text/docbook2X
4593 - app-text/xmlto
4594 - sys-apps/texinfo
4595 - )
4596 - nls? ( sys-devel/gettext )
4597 - test? ( app-crypt/gnupg )
4598 -"
4599 -
4600 -# Live ebuild builds man pages and HTML docs, additionally
4601 -if [[ ${PV} == *9999 ]]; then
4602 - BDEPEND="${BDEPEND}
4603 - app-text/asciidoc"
4604 -fi
4605 -
4606 -SITEFILE="50${PN}-gentoo.el"
4607 -S="${WORKDIR}/${MY_P}"
4608 -
4609 -REQUIRED_USE="
4610 - cgi? ( perl )
4611 - cvs? ( perl )
4612 - mediawiki? ( perl )
4613 - mediawiki-experimental? ( mediawiki )
4614 - subversion? ( perl )
4615 - webdav? ( curl )
4616 - pcre-jit? ( pcre )
4617 - perforce? ( ${PYTHON_REQUIRED_USE} )
4618 -"
4619 -
4620 -RESTRICT="!test? ( test )"
4621 -
4622 -PATCHES=(
4623 - # bug #350330 - automagic CVS when we don't want it is bad.
4624 - "${FILESDIR}"/git-2.22.0_rc0-optional-cvs.patch
4625 -
4626 - "${FILESDIR}"/git-2.2.0-svn-fe-linking.patch
4627 -
4628 - # Make submodule output quiet
4629 - "${FILESDIR}"/git-2.21.0-quiet-submodules-testcase.patch
4630 -)
4631 -
4632 -pkg_setup() {
4633 - if use subversion && has_version "dev-vcs/subversion[dso]"; then
4634 - ewarn "Per Gentoo bugs #223747, #238586, when subversion is built"
4635 - ewarn "with USE=dso, there may be weird crashes in git-svn. You"
4636 - ewarn "have been warned."
4637 - fi
4638 - if use perforce ; then
4639 - python-single-r1_pkg_setup
4640 - fi
4641 -}
4642 -
4643 -# This is needed because for some obscure reasons future calls to make don't
4644 -# pick up these exports if we export them in src_unpack()
4645 -exportmakeopts() {
4646 - local extlibs myopts
4647 -
4648 - myopts=(
4649 - ASCIIDOC_NO_ROFF=YesPlease
4650 - $(usex cvs '' NO_CVS=YesPlease)
4651 - $(usex elibc_musl NO_REGEX=YesPlease '')
4652 - $(usex iconv '' NO_ICONV=YesPlease)
4653 - $(usex nls '' NO_GETTEXT=YesPlease)
4654 - $(usex perl 'INSTALLDIRS=vendor NO_PERL_CPAN_FALLBACKS=YesPlease' NO_PERL=YesPlease)
4655 - $(usex perforce '' NO_PYTHON=YesPlease)
4656 - $(usex subversion '' NO_SVN_TESTS=YesPlease)
4657 - $(usex threads '' NO_PTHREADS=YesPlease)
4658 - $(usex tk '' NO_TCLTK=YesPlease)
4659 - )
4660 -
4661 - if use blksha1 ; then
4662 - myopts+=( BLK_SHA1=YesPlease )
4663 - elif use ppcsha1 ; then
4664 - myopts+=( PPC_SHA1=YesPlease )
4665 - fi
4666 -
4667 - if use curl ; then
4668 - use webdav || myopts+=( NO_EXPAT=YesPlease )
4669 - else
4670 - myopts+=( NO_CURL=YesPlease )
4671 - fi
4672 -
4673 - # broken assumptions, because of static build system ...
4674 - myopts+=(
4675 - NO_FINK=YesPlease
4676 - NO_DARWIN_PORTS=YesPlease
4677 - INSTALL=install
4678 - TAR=tar
4679 - SHELL_PATH="${EPREFIX}/bin/sh"
4680 - SANE_TOOL_PATH=
4681 - OLD_ICONV=
4682 - NO_EXTERNAL_GREP=
4683 - )
4684 -
4685 - # For svn-fe
4686 - extlibs=( -lz -lssl ${S}/xdiff/lib.a $(usex threads -lpthread '') )
4687 -
4688 - # can't define this to null, since the entire makefile depends on it
4689 - sed -i -e '/\/usr\/local/s/BASIC_/#BASIC_/' Makefile || die
4690 -
4691 - if use pcre; then
4692 - if use pcre-jit; then
4693 - myopts+=( USE_LIBPCRE2=YesPlease )
4694 - extlibs+=( -lpcre2-8 )
4695 - else
4696 - myopts+=(
4697 - USE_LIBPCRE1=YesPlease
4698 - NO_LIBPCRE1_JIT=YesPlease
4699 - )
4700 - extlibs+=( -lpcre )
4701 - fi
4702 - fi
4703 -# Disabled until ~m68k-mint can be keyworded again
4704 -# if [[ ${CHOST} == *-mint* ]] ; then
4705 -# myopts+=(
4706 -# NO_MMAP=YesPlease
4707 -# NO_IPV6=YesPlease
4708 -# NO_STRLCPY=YesPlease
4709 -# NO_MEMMEM=YesPlease
4710 -# NO_MKDTEMP=YesPlease
4711 -# NO_MKSTEMPS=YesPlease
4712 -# )
4713 -# fi
4714 - if [[ ${CHOST} == ia64-*-hpux* ]]; then
4715 - myopts+=( NO_NSEC=YesPlease )
4716 - fi
4717 - if [[ ${CHOST} == *-*-aix* ]]; then
4718 - myopts+=( NO_FNMATCH_CASEFOLD=YesPlease )
4719 - fi
4720 - if [[ ${CHOST} == *-solaris* ]]; then
4721 - myopts+=(
4722 - NEEDS_LIBICONV=YesPlease
4723 - HAVE_CLOCK_MONOTONIC=1
4724 - )
4725 - if grep -q getdelim "${EROOT}"/usr/include/stdio.h ; then
4726 - myopts+=( HAVE_GETDELIM=1 )
4727 - fi
4728 - fi
4729 -
4730 - if has_version '>=app-text/asciidoc-8.0' ; then
4731 - myopts+=( ASCIIDOC8=YesPlease )
4732 - fi
4733 -
4734 - # Bug 290465:
4735 - # builtin-fetch-pack.c:816: error: 'struct stat' has no member named 'st_mtim'
4736 - if [[ "${CHOST}" == *-uclibc* ]] ; then
4737 - myopts+=( NO_NSEC=YesPlease )
4738 - use iconv && myopts+=( NEEDS_LIBICONV=YesPlease )
4739 - fi
4740 -
4741 - export MY_MAKEOPTS="${myopts[@]}"
4742 - export EXTLIBS="${extlibs[@]}"
4743 -}
4744 -
4745 -src_unpack() {
4746 - if [[ ${PV} != *9999 ]]; then
4747 - unpack ${MY_P}.tar.${SRC_URI_SUFFIX}
4748 - cd "${S}" || die
4749 - unpack ${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
4750 - if use doc ; then
4751 - pushd "${S}"/Documentation &>/dev/null || die
4752 - unpack ${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
4753 - popd &>/dev/null || die
4754 - fi
4755 - else
4756 - git-r3_src_unpack
4757 - #cp "${FILESDIR}"/GIT-VERSION-GEN .
4758 - fi
4759 -
4760 -}
4761 -
4762 -src_prepare() {
4763 - # add experimental patches to improve mediawiki support
4764 - # see patches for origin
4765 - if use mediawiki-experimental ; then
4766 - PATCHES+=(
4767 - "${FILESDIR}"/git-2.7.0-mediawiki-namespaces.patch
4768 - "${FILESDIR}"/git-2.7.0-mediawiki-subpages.patch
4769 - "${FILESDIR}"/git-2.7.0-mediawiki-500pages.patch
4770 - )
4771 - fi
4772 -
4773 - default
4774 -
4775 - sed -i \
4776 - -e 's:^\(CFLAGS[[:space:]]*=\).*$:\1 $(OPTCFLAGS) -Wall:' \
4777 - -e 's:^\(LDFLAGS[[:space:]]*=\).*$:\1 $(OPTLDFLAGS):' \
4778 - -e 's:^\(CC[[:space:]]* =\).*$:\1$(OPTCC):' \
4779 - -e 's:^\(AR[[:space:]]* =\).*$:\1$(OPTAR):' \
4780 - -e "s:\(PYTHON_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
4781 - -e "s:\(PERL_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
4782 - Makefile contrib/svn-fe/Makefile || die
4783 -
4784 - # Fix docbook2texi command
4785 - sed -r -i 's/DOCBOOK2X_TEXI[[:space:]]*=[[:space:]]*docbook2x-texi/DOCBOOK2X_TEXI = docbook2texi.pl/' \
4786 - Documentation/Makefile || die
4787 -}
4788 -
4789 -git_emake() {
4790 - # bug #320647: PYTHON_PATH
4791 - local PYTHON_PATH=""
4792 - use perforce && PYTHON_PATH="${PYTHON}"
4793 - emake ${MY_MAKEOPTS} \
4794 - prefix="${EPREFIX}"/usr \
4795 - htmldir="${EPREFIX}"/usr/share/doc/${PF}/html \
4796 - perllibdir="$(use perl && perl_get_raw_vendorlib)" \
4797 - sysconfdir="${EPREFIX}"/etc \
4798 - DESTDIR="${D}" \
4799 - GIT_TEST_OPTS="--no-color" \
4800 - OPTAR="$(tc-getAR)" \
4801 - OPTCC="$(tc-getCC)" \
4802 - OPTCFLAGS="${CFLAGS}" \
4803 - OPTLDFLAGS="${LDFLAGS}" \
4804 - PERL_PATH="${EPREFIX}/usr/bin/perl" \
4805 - PERL_MM_OPT="" \
4806 - PYTHON_PATH="${PYTHON_PATH}" \
4807 - V=1 \
4808 - "$@"
4809 -}
4810 -
4811 -src_configure() {
4812 - exportmakeopts
4813 -}
4814 -
4815 -src_compile() {
4816 - git_emake || die "emake failed"
4817 -
4818 - if use emacs ; then
4819 - elisp-compile contrib/emacs/git{,-blame}.el
4820 - fi
4821 -
4822 - if use perl && use cgi ; then
4823 - git_emake \
4824 - gitweb \
4825 - || die "emake gitweb (cgi) failed"
4826 - fi
4827 -
4828 - if [[ ${CHOST} == *-darwin* ]]; then
4829 - pushd contrib/credential/osxkeychain &>/dev/null || die
4830 - git_emake CC=$(tc-getCC) CFLAGS="${CFLAGS}" \
4831 - || die "emake credential-osxkeychain"
4832 - popd &>/dev/null || die
4833 - fi
4834 -
4835 - pushd Documentation &>/dev/null || die
4836 - if [[ ${PV} == *9999 ]] ; then
4837 - git_emake man \
4838 - || die "emake man failed"
4839 - if use doc ; then
4840 - git_emake info html \
4841 - || die "emake info html failed"
4842 - fi
4843 - else
4844 - if use doc ; then
4845 - git_emake info \
4846 - || die "emake info html failed"
4847 - fi
4848 - fi
4849 - popd &>/dev/null || die
4850 -
4851 - if use subversion ; then
4852 - pushd contrib/svn-fe &>/dev/null || die
4853 - # by defining EXTLIBS we override the detection for libintl and
4854 - # libiconv, bug #516168
4855 - local nlsiconv=()
4856 - use nls && use !elibc_glibc && nlsiconv+=( -lintl )
4857 - use iconv && use !elibc_glibc && nlsiconv+=( -liconv )
4858 - git_emake EXTLIBS="${EXTLIBS} ${nlsiconv[@]}" \
4859 - || die "emake svn-fe failed"
4860 - if use doc ; then
4861 - # svn-fe.1 requires the full USE=doc dependency stack
4862 - git_emake svn-fe.1 \
4863 - || die "emake svn-fe.1 failed"
4864 - git_emake svn-fe.html \
4865 - || die "svn-fe.html failed"
4866 - fi
4867 - popd &>/dev/null || die
4868 - fi
4869 -
4870 - if use gnome-keyring ; then
4871 - pushd contrib/credential/libsecret &>/dev/null || die
4872 - git_emake || die "emake git-credential-libsecret failed"
4873 - popd &>/dev/null || die
4874 - fi
4875 -
4876 - pushd contrib/subtree &>/dev/null || die
4877 - git_emake git-subtree
4878 - # git-subtree.1 requires the full USE=doc dependency stack
4879 - use doc && git_emake git-subtree.html git-subtree.1
4880 - popd &>/dev/null || die
4881 -
4882 - pushd contrib/diff-highlight &>/dev/null || die
4883 - git_emake
4884 - popd &>/dev/null || die
4885 -
4886 - if use mediawiki ; then
4887 - pushd contrib/mw-to-git &>/dev/null || die
4888 - git_emake
4889 - popd &>/dev/null || die
4890 -
4891 - fi
4892 -}
4893 -
4894 -src_install() {
4895 - git_emake install || die "make install failed"
4896 -
4897 - if [[ ${CHOST} == *-darwin* ]]; then
4898 - dobin contrib/credential/osxkeychain/git-credential-osxkeychain
4899 - fi
4900 -
4901 - # Depending on the tarball and manual rebuild of the documentation, the
4902 - # manpages may exist in either OR both of these directories.
4903 - find man?/*.[157] >/dev/null 2>&1 && doman man?/*.[157]
4904 - find Documentation/*.[157] >/dev/null 2>&1 && doman Documentation/*.[157]
4905 - dodoc README* Documentation/{SubmittingPatches,CodingGuidelines}
4906 - use doc && dodir /usr/share/doc/${PF}/html
4907 - local d
4908 - for d in / /howto/ /technical/ ; do
4909 - docinto ${d}
4910 - dodoc Documentation${d}*.txt
4911 - if use doc ; then
4912 - docinto ${d}/html
4913 - dodoc Documentation${d}*.html
4914 - fi
4915 - done
4916 - docinto /
4917 - # Upstream does not ship this pre-built :-(
4918 - use doc && doinfo Documentation/{git,gitman}.info
4919 -
4920 - newbashcomp contrib/completion/git-completion.bash ${PN}
4921 - bashcomp_alias git gitk
4922 - # Not really a bash-completion file (bug #477920)
4923 - # but still needed uncompressed (bug #507480)
4924 - insinto /usr/share/${PN}
4925 - doins contrib/completion/git-prompt.sh
4926 -
4927 - if use emacs ; then
4928 - elisp-install ${PN} contrib/emacs/git.{el,elc}
4929 - elisp-install ${PN} contrib/emacs/git-blame.{el,elc}
4930 - #elisp-install ${PN}/compat contrib/emacs/vc-git.{el,elc}
4931 - # don't add automatically to the load-path, so the sitefile
4932 - # can do a conditional loading
4933 - touch "${ED}${SITELISP}/${PN}/compat/.nosearch"
4934 - elisp-site-file-install "${FILESDIR}"/${SITEFILE}
4935 - fi
4936 -
4937 - #dobin contrib/fast-import/git-p4 # Moved upstream
4938 - #dodoc contrib/fast-import/git-p4.txt # Moved upstream
4939 - newbin contrib/fast-import/import-tars.perl import-tars
4940 - exeinto /usr/libexec/git-core/
4941 - newexe contrib/git-resurrect.sh git-resurrect
4942 -
4943 - # git-subtree
4944 - pushd contrib/subtree &>/dev/null || die
4945 - git_emake install || die "Failed to emake install for git-subtree"
4946 - if use doc ; then
4947 - # Do not move git subtree install-man outside USE=doc!
4948 - git_emake install-man install-html || die "Failed to emake install-html install-man for git-subtree"
4949 - fi
4950 - newdoc README README.git-subtree
4951 - dodoc git-subtree.txt
4952 - popd &>/dev/null || die
4953 -
4954 - if use mediawiki ; then
4955 - pushd contrib/mw-to-git &>/dev/null || die
4956 - git_emake install
4957 - popd &>/dev/null || die
4958 - fi
4959 -
4960 - # diff-highlight
4961 - dobin contrib/diff-highlight/diff-highlight
4962 - newdoc contrib/diff-highlight/README README.diff-highlight
4963 -
4964 - # git-jump
4965 - exeinto /usr/libexec/git-core/
4966 - doexe contrib/git-jump/git-jump
4967 - newdoc contrib/git-jump/README git-jump.txt
4968 -
4969 - # git-contacts
4970 - exeinto /usr/libexec/git-core/
4971 - doexe contrib/contacts/git-contacts
4972 - dodoc contrib/contacts/git-contacts.txt
4973 -
4974 - if use gnome-keyring ; then
4975 - pushd contrib/credential/libsecret &>/dev/null || die
4976 - dobin git-credential-libsecret
4977 - popd &>/dev/null || die
4978 - fi
4979 -
4980 - if use subversion ; then
4981 - pushd contrib/svn-fe &>/dev/null || die
4982 - dobin svn-fe
4983 - dodoc svn-fe.txt
4984 - if use doc ; then
4985 - # Do not move svn-fe.1 outside USE=doc!
4986 - doman svn-fe.1
4987 - docinto html
4988 - dodoc svn-fe.html
4989 - fi
4990 - popd &>/dev/null || die
4991 - fi
4992 -
4993 - dodir /usr/share/${PN}/contrib
4994 - # The following are excluded:
4995 - # completion - installed above
4996 - # diff-highlight - done above
4997 - # emacs - installed above
4998 - # examples - these are stuff that is not used in Git anymore actually
4999 - # git-jump - done above
5000 - # gitview - installed above
5001 - # p4import - excluded because fast-import has a better one
5002 - # patches - stuff the Git guys made to go upstream to other places
5003 - # persistent-https - TODO
5004 - # mw-to-git - TODO
5005 - # subtree - build seperately
5006 - # svnimport - use git-svn
5007 - # thunderbird-patch-inline - fixes thunderbird
5008 - local contrib_objects=(
5009 - buildsystems
5010 - fast-import
5011 - hg-to-git
5012 - hooks
5013 - remotes2config.sh
5014 - rerere-train.sh
5015 - stats
5016 - workdir
5017 - )
5018 - local i
5019 - for i in "${contrib_objects[@]}" ; do
5020 - cp -rf \
5021 - "${S}"/contrib/${i} \
5022 - "${ED}"/usr/share/${PN}/contrib \
5023 - || die "Failed contrib ${i}"
5024 - done
5025 -
5026 - if use perl && use cgi ; then
5027 - # We used to install in /usr/share/${PN}/gitweb
5028 - # but upstream installs in /usr/share/gitweb
5029 - # so we will install a symlink and use their location for compat with other
5030 - # distros
5031 - dosym ../gitweb /usr/share/${PN}/gitweb
5032 -
5033 - # INSTALL discusses configuration issues, not just installation
5034 - docinto /
5035 - newdoc "${S}"/gitweb/INSTALL INSTALL.gitweb
5036 - newdoc "${S}"/gitweb/README README.gitweb
5037 -
5038 - for d in "${ED}"/usr/lib{,64}/perl5/ ; do
5039 - if test -d "${d}" ; then find "${d}" \
5040 - -name .packlist \
5041 - -delete || die
5042 - fi
5043 - done
5044 - else
5045 - rm -rf "${ED}"/usr/share/gitweb
5046 - fi
5047 -
5048 - if ! use subversion ; then
5049 - rm -f "${ED}"/usr/libexec/git-core/git-svn \
5050 - "${ED}"/usr/share/man/man1/git-svn.1*
5051 - fi
5052 -
5053 - if use xinetd ; then
5054 - insinto /etc/xinetd.d
5055 - newins "${FILESDIR}"/git-daemon.xinetd git-daemon
5056 - fi
5057 -
5058 - if use !prefix ; then
5059 - newinitd "${FILESDIR}"/git-daemon-r1.initd git-daemon
5060 - newconfd "${FILESDIR}"/git-daemon.confd git-daemon
5061 - systemd_newunit "${FILESDIR}/git-daemon_at-r1.service" "git-daemon@.service"
5062 - systemd_dounit "${FILESDIR}/git-daemon.socket"
5063 - fi
5064 -
5065 - perl_delete_localpod
5066 -
5067 - # Remove disabled linguas
5068 - # we could remove sources in src_prepare, but install does not
5069 - # handle missing locale dir well
5070 - rm_loc() {
5071 - if [[ -e "${ED}/usr/share/locale/${1}" ]]; then
5072 - rm -r "${ED}/usr/share/locale/${1}" || die
5073 - fi
5074 - }
5075 - l10n_for_each_disabled_locale_do rm_loc
5076 -}
5077 -
5078 -src_test() {
5079 - local disabled=()
5080 - local tests_cvs=(
5081 - t9200-git-cvsexportcommit.sh
5082 - t9400-git-cvsserver-server.sh
5083 - t9401-git-cvsserver-crlf.sh
5084 - t9402-git-cvsserver-refs.sh
5085 - t9600-cvsimport.sh
5086 - t9601-cvsimport-vendor-branch.sh
5087 - t9602-cvsimport-branches-tags.sh
5088 - t9603-cvsimport-patchsets.sh
5089 - t9604-cvsimport-timestamps.sh
5090 - )
5091 - local tests_perl=(
5092 - t3701-add-interactive.sh
5093 - t5502-quickfetch.sh
5094 - t5512-ls-remote.sh
5095 - t5520-pull.sh
5096 - t7106-reset-unborn-branch.sh
5097 - t7501-commit.sh
5098 - )
5099 - # Bug #225601 - t0004 is not suitable for root perm
5100 - # Bug #219839 - t1004 is not suitable for root perm
5101 - # t0001-init.sh - check for init notices EPERM* fails
5102 - local tests_nonroot=(
5103 - t0001-init.sh
5104 - t0004-unwritable.sh
5105 - t0070-fundamental.sh
5106 - t1004-read-tree-m-u-wf.sh
5107 - t3700-add.sh
5108 - t7300-clean.sh
5109 - )
5110 - # t9100 still fails with symlinks in SVN 1.7
5111 - local test_svn=( t9100-git-svn-basic.sh )
5112 -
5113 - # Unzip is used only for the testcase code, not by any normal parts of Git.
5114 - if ! has_version app-arch/unzip ; then
5115 - einfo "Disabling tar-tree tests"
5116 - disabled+=( t5000-tar-tree.sh )
5117 - fi
5118 -
5119 - local cvs=0
5120 - use cvs && let cvs=${cvs}+1
5121 - if [[ ${EUID} -eq 0 ]]; then
5122 - if [[ ${cvs} -eq 1 ]]; then
5123 - ewarn "Skipping CVS tests because CVS does not work as root!"
5124 - ewarn "You should retest with FEATURES=userpriv!"
5125 - disabled+=( ${tests_cvs[@]} )
5126 - fi
5127 - einfo "Skipping other tests that require being non-root"
5128 - disabled+=( ${tests_nonroot[@]} )
5129 - else
5130 - [[ ${cvs} -gt 0 ]] && \
5131 - has_version dev-vcs/cvs && \
5132 - let cvs=${cvs}+1
5133 - [[ ${cvs} -gt 1 ]] && \
5134 - has_version "dev-vcs/cvs[server]" && \
5135 - let cvs=${cvs}+1
5136 - if [[ ${cvs} -lt 3 ]]; then
5137 - einfo "Disabling CVS tests (needs dev-vcs/cvs[USE=server])"
5138 - disabled+=( ${tests_cvs[@]} )
5139 - fi
5140 - fi
5141 -
5142 - if ! use perl ; then
5143 - einfo "Disabling tests that need Perl"
5144 - disabled+=( ${tests_perl[@]} )
5145 - fi
5146 -
5147 - einfo "Disabling tests that fail with SVN 1.7"
5148 - disabled+=( ${test_svn[@]} )
5149 -
5150 - # Reset all previously disabled tests
5151 - pushd t &>/dev/null || die
5152 - local i
5153 - for i in *.sh.DISABLED ; do
5154 - [[ -f "${i}" ]] && mv -f "${i}" "${i%.DISABLED}"
5155 - done
5156 - einfo "Disabled tests:"
5157 - for i in ${disabled[@]} ; do
5158 - [[ -f "${i}" ]] && mv -f "${i}" "${i}.DISABLED" && einfo "Disabled ${i}"
5159 - done
5160 -
5161 - # Avoid the test system removing the results because we want them ourselves
5162 - sed -e '/^[[:space:]]*$(MAKE) clean/s,^,#,g' \
5163 - -i Makefile || die
5164 -
5165 - # Clean old results first, must always run
5166 - nonfatal git_emake clean
5167 - popd &>/dev/null || die
5168 -
5169 - # Now run the tests, keep going if we hit an error, and don't terminate on
5170 - # failure
5171 - local rc
5172 - einfo "Start test run"
5173 - #MAKEOPTS=-j1
5174 - nonfatal git_emake --keep-going test
5175 - rc=$?
5176 -
5177 - # Display nice results, now print the results
5178 - pushd t &>/dev/null || die
5179 - nonfatal git_emake aggregate-results
5180 -
5181 - # And bail if there was a problem
5182 - [[ ${rc} -eq 0 ]] || die "tests failed. Please file a bug."
5183 -}
5184 -
5185 -showpkgdeps() {
5186 - local pkg=$1
5187 - shift
5188 - elog " $(printf "%-17s:" ${pkg}) ${@}"
5189 -}
5190 -
5191 -pkg_postinst() {
5192 - use emacs && elisp-site-regen
5193 - elog "Please read /usr/share/bash-completion/completions/git for Git bash command"
5194 - elog "completion."
5195 - elog "Please read /usr/share/git/git-prompt.sh for Git bash prompt"
5196 - elog "Note that the prompt bash code is now in that separate script"
5197 - elog "These additional scripts need some dependencies:"
5198 - echo
5199 - showpkgdeps git-quiltimport "dev-util/quilt"
5200 - showpkgdeps git-instaweb \
5201 - "|| ( www-servers/lighttpd www-servers/apache www-servers/nginx )"
5202 - echo
5203 - use mediawiki-experimental && ewarn "Using experimental git-mediawiki patches. The stability of cloned wiki filesystems is not guaranteed."
5204 -}
5205 -
5206 -pkg_postrm() {
5207 - use emacs && elisp-site-regen
5208 -}
5209
5210 diff --git a/dev-vcs/git/git-2.26.0.ebuild b/dev-vcs/git/git-2.26.0.ebuild
5211 deleted file mode 100644
5212 index 373486b54b6..00000000000
5213 --- a/dev-vcs/git/git-2.26.0.ebuild
5214 +++ /dev/null
5215 @@ -1,728 +0,0 @@
5216 -# Copyright 1999-2020 Gentoo Authors
5217 -# Distributed under the terms of the GNU General Public License v2
5218 -
5219 -EAPI=7
5220 -
5221 -GENTOO_DEPEND_ON_PERL=no
5222 -
5223 -# bug #329479: git-remote-testgit is not multiple-version aware
5224 -PYTHON_COMPAT=( python{2_7,3_{6,7}} )
5225 -
5226 -inherit toolchain-funcs elisp-common l10n perl-module bash-completion-r1 python-single-r1 systemd
5227 -
5228 -PLOCALES="bg ca de es fr is it ko pt_PT ru sv vi zh_CN"
5229 -if [[ ${PV} == *9999 ]]; then
5230 - inherit git-r3
5231 - EGIT_REPO_URI="git://git.kernel.org/pub/scm/git/git.git"
5232 - # Please ensure that all _four_ 9999 ebuilds get updated; they track the 4 upstream branches.
5233 - # See https://git-scm.com/docs/gitworkflows#_graduation
5234 - # In order of stability:
5235 - # 9999-r0: maint
5236 - # 9999-r1: master
5237 - # 9999-r2: next
5238 - # 9999-r3: pu
5239 - case "${PVR}" in
5240 - 9999) EGIT_BRANCH=maint ;;
5241 - 9999-r1) EGIT_BRANCH=master ;;
5242 - 9999-r2) EGIT_BRANCH=next;;
5243 - 9999-r3) EGIT_BRANCH=pu ;;
5244 - esac
5245 -fi
5246 -
5247 -MY_PV="${PV/_rc/.rc}"
5248 -MY_P="${PN}-${MY_PV}"
5249 -
5250 -DOC_VER="${MY_PV}"
5251 -
5252 -DESCRIPTION="stupid content tracker: distributed VCS designed for speed and efficiency"
5253 -HOMEPAGE="https://www.git-scm.com/"
5254 -if [[ ${PV} != *9999 ]]; then
5255 - SRC_URI_SUFFIX="xz"
5256 - SRC_URI_KORG="https://www.kernel.org/pub/software/scm/git"
5257 - [[ "${PV/rc}" != "${PV}" ]] && SRC_URI_KORG+='/testing'
5258 - SRC_URI="${SRC_URI_KORG}/${MY_P}.tar.${SRC_URI_SUFFIX}
5259 - ${SRC_URI_KORG}/${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
5260 - doc? (
5261 - ${SRC_URI_KORG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
5262 - )"
5263 - [[ "${PV}" == *_rc* ]] || \
5264 - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
5265 -fi
5266 -
5267 -LICENSE="GPL-2"
5268 -SLOT="0"
5269 -IUSE="+blksha1 +curl cgi doc emacs gnome-keyring +gpg highlight +iconv libressl mediawiki mediawiki-experimental +nls +pcre +pcre-jit perforce +perl +ppcsha1 tk +threads +webdav xinetd cvs subversion test"
5270 -
5271 -# Common to both DEPEND and RDEPEND
5272 -DEPEND="
5273 - gnome-keyring? ( app-crypt/libsecret )
5274 - !libressl? ( dev-libs/openssl:0= )
5275 - libressl? ( dev-libs/libressl:= )
5276 - sys-libs/zlib
5277 - pcre? (
5278 - pcre-jit? ( dev-libs/libpcre2[jit(+)] )
5279 - !pcre-jit? ( dev-libs/libpcre )
5280 - )
5281 - perl? ( dev-lang/perl:=[-build(-)] )
5282 - tk? ( dev-lang/tk:0= )
5283 - curl? (
5284 - net-misc/curl
5285 - webdav? ( dev-libs/expat )
5286 - )
5287 - emacs? ( >=app-editors/emacs-23.1:* )
5288 - iconv? ( virtual/libiconv )
5289 -"
5290 -
5291 -RDEPEND="${DEPEND}
5292 - gpg? ( app-crypt/gnupg )
5293 - perl? (
5294 - dev-perl/Error
5295 - dev-perl/MailTools
5296 - dev-perl/Authen-SASL
5297 - cgi? (
5298 - dev-perl/CGI
5299 - highlight? ( app-text/highlight )
5300 - )
5301 - cvs? (
5302 - >=dev-vcs/cvsps-2.1:0
5303 - dev-perl/DBI
5304 - dev-perl/DBD-SQLite
5305 - )
5306 - mediawiki? (
5307 - dev-perl/DateTime-Format-ISO8601
5308 - dev-perl/HTML-Tree
5309 - dev-perl/MediaWiki-API
5310 - )
5311 - subversion? (
5312 - dev-vcs/subversion[-dso,perl]
5313 - dev-perl/libwww-perl
5314 - dev-perl/TermReadKey
5315 - )
5316 - )
5317 - perforce? ( ${PYTHON_DEPS} )
5318 -"
5319 -
5320 -# This is how info docs are created with Git:
5321 -# .txt/asciidoc --(asciidoc)---------> .xml/docbook
5322 -# .xml/docbook --(docbook2texi.pl)--> .texi
5323 -# .texi --(makeinfo)---------> .info
5324 -BDEPEND="
5325 - doc? (
5326 - app-text/asciidoc
5327 - app-text/docbook2X
5328 - app-text/xmlto
5329 - sys-apps/texinfo
5330 - )
5331 - nls? ( sys-devel/gettext )
5332 - test? ( app-crypt/gnupg )
5333 -"
5334 -
5335 -# Live ebuild builds man pages and HTML docs, additionally
5336 -if [[ ${PV} == *9999 ]]; then
5337 - BDEPEND="${BDEPEND}
5338 - app-text/asciidoc"
5339 -fi
5340 -
5341 -SITEFILE="50${PN}-gentoo.el"
5342 -S="${WORKDIR}/${MY_P}"
5343 -
5344 -REQUIRED_USE="
5345 - cgi? ( perl )
5346 - cvs? ( perl )
5347 - mediawiki? ( perl )
5348 - mediawiki-experimental? ( mediawiki )
5349 - subversion? ( perl )
5350 - webdav? ( curl )
5351 - pcre-jit? ( pcre )
5352 - perforce? ( ${PYTHON_REQUIRED_USE} )
5353 -"
5354 -
5355 -RESTRICT="!test? ( test )"
5356 -
5357 -PATCHES=(
5358 - # bug #350330 - automagic CVS when we don't want it is bad.
5359 - "${FILESDIR}"/git-2.22.0_rc0-optional-cvs.patch
5360 -
5361 - "${FILESDIR}"/git-2.2.0-svn-fe-linking.patch
5362 -
5363 - # Make submodule output quiet
5364 - "${FILESDIR}"/git-2.21.0-quiet-submodules-testcase.patch
5365 -)
5366 -
5367 -pkg_setup() {
5368 - if use subversion && has_version "dev-vcs/subversion[dso]"; then
5369 - ewarn "Per Gentoo bugs #223747, #238586, when subversion is built"
5370 - ewarn "with USE=dso, there may be weird crashes in git-svn. You"
5371 - ewarn "have been warned."
5372 - fi
5373 - if use perforce ; then
5374 - python-single-r1_pkg_setup
5375 - fi
5376 -}
5377 -
5378 -# This is needed because for some obscure reasons future calls to make don't
5379 -# pick up these exports if we export them in src_unpack()
5380 -exportmakeopts() {
5381 - local extlibs myopts
5382 -
5383 - myopts=(
5384 - ASCIIDOC_NO_ROFF=YesPlease
5385 - $(usex cvs '' NO_CVS=YesPlease)
5386 - $(usex elibc_musl NO_REGEX=YesPlease '')
5387 - $(usex iconv '' NO_ICONV=YesPlease)
5388 - $(usex nls '' NO_GETTEXT=YesPlease)
5389 - $(usex perl 'INSTALLDIRS=vendor NO_PERL_CPAN_FALLBACKS=YesPlease' NO_PERL=YesPlease)
5390 - $(usex perforce '' NO_PYTHON=YesPlease)
5391 - $(usex subversion '' NO_SVN_TESTS=YesPlease)
5392 - $(usex threads '' NO_PTHREADS=YesPlease)
5393 - $(usex tk '' NO_TCLTK=YesPlease)
5394 - )
5395 -
5396 - if use blksha1 ; then
5397 - myopts+=( BLK_SHA1=YesPlease )
5398 - elif use ppcsha1 ; then
5399 - myopts+=( PPC_SHA1=YesPlease )
5400 - fi
5401 -
5402 - if use curl ; then
5403 - use webdav || myopts+=( NO_EXPAT=YesPlease )
5404 - else
5405 - myopts+=( NO_CURL=YesPlease )
5406 - fi
5407 -
5408 - # broken assumptions, because of static build system ...
5409 - myopts+=(
5410 - NO_FINK=YesPlease
5411 - NO_DARWIN_PORTS=YesPlease
5412 - INSTALL=install
5413 - TAR=tar
5414 - SHELL_PATH="${EPREFIX}/bin/sh"
5415 - SANE_TOOL_PATH=
5416 - OLD_ICONV=
5417 - NO_EXTERNAL_GREP=
5418 - )
5419 -
5420 - # For svn-fe
5421 - extlibs=( -lz -lssl ${S}/xdiff/lib.a $(usex threads -lpthread '') )
5422 -
5423 - # can't define this to null, since the entire makefile depends on it
5424 - sed -i -e '/\/usr\/local/s/BASIC_/#BASIC_/' Makefile || die
5425 -
5426 - if use pcre; then
5427 - if use pcre-jit; then
5428 - myopts+=( USE_LIBPCRE2=YesPlease )
5429 - extlibs+=( -lpcre2-8 )
5430 - else
5431 - myopts+=(
5432 - USE_LIBPCRE1=YesPlease
5433 - NO_LIBPCRE1_JIT=YesPlease
5434 - )
5435 - extlibs+=( -lpcre )
5436 - fi
5437 - fi
5438 -# Disabled until ~m68k-mint can be keyworded again
5439 -# if [[ ${CHOST} == *-mint* ]] ; then
5440 -# myopts+=(
5441 -# NO_MMAP=YesPlease
5442 -# NO_IPV6=YesPlease
5443 -# NO_STRLCPY=YesPlease
5444 -# NO_MEMMEM=YesPlease
5445 -# NO_MKDTEMP=YesPlease
5446 -# NO_MKSTEMPS=YesPlease
5447 -# )
5448 -# fi
5449 - if [[ ${CHOST} == ia64-*-hpux* ]]; then
5450 - myopts+=( NO_NSEC=YesPlease )
5451 - fi
5452 - if [[ ${CHOST} == *-*-aix* ]]; then
5453 - myopts+=( NO_FNMATCH_CASEFOLD=YesPlease )
5454 - fi
5455 - if [[ ${CHOST} == *-solaris* ]]; then
5456 - myopts+=(
5457 - NEEDS_LIBICONV=YesPlease
5458 - HAVE_CLOCK_MONOTONIC=1
5459 - )
5460 - if grep -q getdelim "${EROOT}"/usr/include/stdio.h ; then
5461 - myopts+=( HAVE_GETDELIM=1 )
5462 - fi
5463 - fi
5464 -
5465 - if has_version '>=app-text/asciidoc-8.0' ; then
5466 - myopts+=( ASCIIDOC8=YesPlease )
5467 - fi
5468 -
5469 - # Bug 290465:
5470 - # builtin-fetch-pack.c:816: error: 'struct stat' has no member named 'st_mtim'
5471 - if [[ "${CHOST}" == *-uclibc* ]] ; then
5472 - myopts+=( NO_NSEC=YesPlease )
5473 - use iconv && myopts+=( NEEDS_LIBICONV=YesPlease )
5474 - fi
5475 -
5476 - export MY_MAKEOPTS="${myopts[@]}"
5477 - export EXTLIBS="${extlibs[@]}"
5478 -}
5479 -
5480 -src_unpack() {
5481 - if [[ ${PV} != *9999 ]]; then
5482 - unpack ${MY_P}.tar.${SRC_URI_SUFFIX}
5483 - cd "${S}" || die
5484 - unpack ${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
5485 - if use doc ; then
5486 - pushd "${S}"/Documentation &>/dev/null || die
5487 - unpack ${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
5488 - popd &>/dev/null || die
5489 - fi
5490 - else
5491 - git-r3_src_unpack
5492 - #cp "${FILESDIR}"/GIT-VERSION-GEN .
5493 - fi
5494 -
5495 -}
5496 -
5497 -src_prepare() {
5498 - # add experimental patches to improve mediawiki support
5499 - # see patches for origin
5500 - if use mediawiki-experimental ; then
5501 - PATCHES+=(
5502 - "${FILESDIR}"/git-2.7.0-mediawiki-namespaces.patch
5503 - "${FILESDIR}"/git-2.7.0-mediawiki-subpages.patch
5504 - "${FILESDIR}"/git-2.7.0-mediawiki-500pages.patch
5505 - )
5506 - fi
5507 -
5508 - default
5509 -
5510 - sed -i \
5511 - -e 's:^\(CFLAGS[[:space:]]*=\).*$:\1 $(OPTCFLAGS) -Wall:' \
5512 - -e 's:^\(LDFLAGS[[:space:]]*=\).*$:\1 $(OPTLDFLAGS):' \
5513 - -e 's:^\(CC[[:space:]]* =\).*$:\1$(OPTCC):' \
5514 - -e 's:^\(AR[[:space:]]* =\).*$:\1$(OPTAR):' \
5515 - -e "s:\(PYTHON_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
5516 - -e "s:\(PERL_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
5517 - Makefile contrib/svn-fe/Makefile || die
5518 -
5519 - # Fix docbook2texi command
5520 - sed -r -i 's/DOCBOOK2X_TEXI[[:space:]]*=[[:space:]]*docbook2x-texi/DOCBOOK2X_TEXI = docbook2texi.pl/' \
5521 - Documentation/Makefile || die
5522 -}
5523 -
5524 -git_emake() {
5525 - # bug #320647: PYTHON_PATH
5526 - local PYTHON_PATH=""
5527 - use perforce && PYTHON_PATH="${PYTHON}"
5528 - emake ${MY_MAKEOPTS} \
5529 - prefix="${EPREFIX}"/usr \
5530 - htmldir="${EPREFIX}"/usr/share/doc/${PF}/html \
5531 - perllibdir="$(use perl && perl_get_raw_vendorlib)" \
5532 - sysconfdir="${EPREFIX}"/etc \
5533 - DESTDIR="${D}" \
5534 - GIT_TEST_OPTS="--no-color" \
5535 - OPTAR="$(tc-getAR)" \
5536 - OPTCC="$(tc-getCC)" \
5537 - OPTCFLAGS="${CFLAGS}" \
5538 - OPTLDFLAGS="${LDFLAGS}" \
5539 - PERL_PATH="${EPREFIX}/usr/bin/perl" \
5540 - PERL_MM_OPT="" \
5541 - PYTHON_PATH="${PYTHON_PATH}" \
5542 - V=1 \
5543 - "$@"
5544 -}
5545 -
5546 -src_configure() {
5547 - exportmakeopts
5548 -}
5549 -
5550 -src_compile() {
5551 - git_emake || die "emake failed"
5552 -
5553 - if use emacs ; then
5554 - elisp-compile contrib/emacs/git{,-blame}.el
5555 - fi
5556 -
5557 - if use perl && use cgi ; then
5558 - git_emake \
5559 - gitweb \
5560 - || die "emake gitweb (cgi) failed"
5561 - fi
5562 -
5563 - if [[ ${CHOST} == *-darwin* ]]; then
5564 - pushd contrib/credential/osxkeychain &>/dev/null || die
5565 - git_emake CC=$(tc-getCC) CFLAGS="${CFLAGS}" \
5566 - || die "emake credential-osxkeychain"
5567 - popd &>/dev/null || die
5568 - fi
5569 -
5570 - pushd Documentation &>/dev/null || die
5571 - if [[ ${PV} == *9999 ]] ; then
5572 - git_emake man \
5573 - || die "emake man failed"
5574 - if use doc ; then
5575 - git_emake info html \
5576 - || die "emake info html failed"
5577 - fi
5578 - else
5579 - if use doc ; then
5580 - git_emake info \
5581 - || die "emake info html failed"
5582 - fi
5583 - fi
5584 - popd &>/dev/null || die
5585 -
5586 - if use subversion ; then
5587 - pushd contrib/svn-fe &>/dev/null || die
5588 - # by defining EXTLIBS we override the detection for libintl and
5589 - # libiconv, bug #516168
5590 - local nlsiconv=()
5591 - use nls && use !elibc_glibc && nlsiconv+=( -lintl )
5592 - use iconv && use !elibc_glibc && nlsiconv+=( -liconv )
5593 - git_emake EXTLIBS="${EXTLIBS} ${nlsiconv[@]}" \
5594 - || die "emake svn-fe failed"
5595 - if use doc ; then
5596 - # svn-fe.1 requires the full USE=doc dependency stack
5597 - git_emake svn-fe.1 \
5598 - || die "emake svn-fe.1 failed"
5599 - git_emake svn-fe.html \
5600 - || die "svn-fe.html failed"
5601 - fi
5602 - popd &>/dev/null || die
5603 - fi
5604 -
5605 - if use gnome-keyring ; then
5606 - pushd contrib/credential/libsecret &>/dev/null || die
5607 - git_emake || die "emake git-credential-libsecret failed"
5608 - popd &>/dev/null || die
5609 - fi
5610 -
5611 - pushd contrib/subtree &>/dev/null || die
5612 - git_emake git-subtree
5613 - # git-subtree.1 requires the full USE=doc dependency stack
5614 - use doc && git_emake git-subtree.html git-subtree.1
5615 - popd &>/dev/null || die
5616 -
5617 - pushd contrib/diff-highlight &>/dev/null || die
5618 - git_emake
5619 - popd &>/dev/null || die
5620 -
5621 - if use mediawiki ; then
5622 - pushd contrib/mw-to-git &>/dev/null || die
5623 - git_emake
5624 - popd &>/dev/null || die
5625 -
5626 - fi
5627 -}
5628 -
5629 -src_install() {
5630 - git_emake install || die "make install failed"
5631 -
5632 - if [[ ${CHOST} == *-darwin* ]]; then
5633 - dobin contrib/credential/osxkeychain/git-credential-osxkeychain
5634 - fi
5635 -
5636 - # Depending on the tarball and manual rebuild of the documentation, the
5637 - # manpages may exist in either OR both of these directories.
5638 - find man?/*.[157] >/dev/null 2>&1 && doman man?/*.[157]
5639 - find Documentation/*.[157] >/dev/null 2>&1 && doman Documentation/*.[157]
5640 - dodoc README* Documentation/{SubmittingPatches,CodingGuidelines}
5641 - use doc && dodir /usr/share/doc/${PF}/html
5642 - local d
5643 - for d in / /howto/ /technical/ ; do
5644 - docinto ${d}
5645 - dodoc Documentation${d}*.txt
5646 - if use doc ; then
5647 - docinto ${d}/html
5648 - dodoc Documentation${d}*.html
5649 - fi
5650 - done
5651 - docinto /
5652 - # Upstream does not ship this pre-built :-(
5653 - use doc && doinfo Documentation/{git,gitman}.info
5654 -
5655 - newbashcomp contrib/completion/git-completion.bash ${PN}
5656 - bashcomp_alias git gitk
5657 - # Not really a bash-completion file (bug #477920)
5658 - # but still needed uncompressed (bug #507480)
5659 - insinto /usr/share/${PN}
5660 - doins contrib/completion/git-prompt.sh
5661 -
5662 - if use emacs ; then
5663 - elisp-install ${PN} contrib/emacs/git.{el,elc}
5664 - elisp-install ${PN} contrib/emacs/git-blame.{el,elc}
5665 - #elisp-install ${PN}/compat contrib/emacs/vc-git.{el,elc}
5666 - # don't add automatically to the load-path, so the sitefile
5667 - # can do a conditional loading
5668 - touch "${ED}${SITELISP}/${PN}/compat/.nosearch"
5669 - elisp-site-file-install "${FILESDIR}"/${SITEFILE}
5670 - fi
5671 -
5672 - #dobin contrib/fast-import/git-p4 # Moved upstream
5673 - #dodoc contrib/fast-import/git-p4.txt # Moved upstream
5674 - newbin contrib/fast-import/import-tars.perl import-tars
5675 - exeinto /usr/libexec/git-core/
5676 - newexe contrib/git-resurrect.sh git-resurrect
5677 -
5678 - # git-subtree
5679 - pushd contrib/subtree &>/dev/null || die
5680 - git_emake install || die "Failed to emake install for git-subtree"
5681 - if use doc ; then
5682 - # Do not move git subtree install-man outside USE=doc!
5683 - git_emake install-man install-html || die "Failed to emake install-html install-man for git-subtree"
5684 - fi
5685 - newdoc README README.git-subtree
5686 - dodoc git-subtree.txt
5687 - popd &>/dev/null || die
5688 -
5689 - if use mediawiki ; then
5690 - pushd contrib/mw-to-git &>/dev/null || die
5691 - git_emake install
5692 - popd &>/dev/null || die
5693 - fi
5694 -
5695 - # diff-highlight
5696 - dobin contrib/diff-highlight/diff-highlight
5697 - newdoc contrib/diff-highlight/README README.diff-highlight
5698 -
5699 - # git-jump
5700 - exeinto /usr/libexec/git-core/
5701 - doexe contrib/git-jump/git-jump
5702 - newdoc contrib/git-jump/README git-jump.txt
5703 -
5704 - # git-contacts
5705 - exeinto /usr/libexec/git-core/
5706 - doexe contrib/contacts/git-contacts
5707 - dodoc contrib/contacts/git-contacts.txt
5708 -
5709 - if use gnome-keyring ; then
5710 - pushd contrib/credential/libsecret &>/dev/null || die
5711 - dobin git-credential-libsecret
5712 - popd &>/dev/null || die
5713 - fi
5714 -
5715 - if use subversion ; then
5716 - pushd contrib/svn-fe &>/dev/null || die
5717 - dobin svn-fe
5718 - dodoc svn-fe.txt
5719 - if use doc ; then
5720 - # Do not move svn-fe.1 outside USE=doc!
5721 - doman svn-fe.1
5722 - docinto html
5723 - dodoc svn-fe.html
5724 - fi
5725 - popd &>/dev/null || die
5726 - fi
5727 -
5728 - dodir /usr/share/${PN}/contrib
5729 - # The following are excluded:
5730 - # completion - installed above
5731 - # diff-highlight - done above
5732 - # emacs - installed above
5733 - # examples - these are stuff that is not used in Git anymore actually
5734 - # git-jump - done above
5735 - # gitview - installed above
5736 - # p4import - excluded because fast-import has a better one
5737 - # patches - stuff the Git guys made to go upstream to other places
5738 - # persistent-https - TODO
5739 - # mw-to-git - TODO
5740 - # subtree - build seperately
5741 - # svnimport - use git-svn
5742 - # thunderbird-patch-inline - fixes thunderbird
5743 - local contrib_objects=(
5744 - buildsystems
5745 - fast-import
5746 - hg-to-git
5747 - hooks
5748 - remotes2config.sh
5749 - rerere-train.sh
5750 - stats
5751 - workdir
5752 - )
5753 - local i
5754 - for i in "${contrib_objects[@]}" ; do
5755 - cp -rf \
5756 - "${S}"/contrib/${i} \
5757 - "${ED}"/usr/share/${PN}/contrib \
5758 - || die "Failed contrib ${i}"
5759 - done
5760 -
5761 - if use perl && use cgi ; then
5762 - # We used to install in /usr/share/${PN}/gitweb
5763 - # but upstream installs in /usr/share/gitweb
5764 - # so we will install a symlink and use their location for compat with other
5765 - # distros
5766 - dosym ../gitweb /usr/share/${PN}/gitweb
5767 -
5768 - # INSTALL discusses configuration issues, not just installation
5769 - docinto /
5770 - newdoc "${S}"/gitweb/INSTALL INSTALL.gitweb
5771 - newdoc "${S}"/gitweb/README README.gitweb
5772 -
5773 - for d in "${ED}"/usr/lib{,64}/perl5/ ; do
5774 - if test -d "${d}" ; then find "${d}" \
5775 - -name .packlist \
5776 - -delete || die
5777 - fi
5778 - done
5779 - else
5780 - rm -rf "${ED}"/usr/share/gitweb
5781 - fi
5782 -
5783 - if ! use subversion ; then
5784 - rm -f "${ED}"/usr/libexec/git-core/git-svn \
5785 - "${ED}"/usr/share/man/man1/git-svn.1*
5786 - fi
5787 -
5788 - if use xinetd ; then
5789 - insinto /etc/xinetd.d
5790 - newins "${FILESDIR}"/git-daemon.xinetd git-daemon
5791 - fi
5792 -
5793 - if use !prefix ; then
5794 - newinitd "${FILESDIR}"/git-daemon-r1.initd git-daemon
5795 - newconfd "${FILESDIR}"/git-daemon.confd git-daemon
5796 - systemd_newunit "${FILESDIR}/git-daemon_at-r1.service" "git-daemon@.service"
5797 - systemd_dounit "${FILESDIR}/git-daemon.socket"
5798 - fi
5799 -
5800 - perl_delete_localpod
5801 -
5802 - # Remove disabled linguas
5803 - # we could remove sources in src_prepare, but install does not
5804 - # handle missing locale dir well
5805 - rm_loc() {
5806 - if [[ -e "${ED}/usr/share/locale/${1}" ]]; then
5807 - rm -r "${ED}/usr/share/locale/${1}" || die
5808 - fi
5809 - }
5810 - l10n_for_each_disabled_locale_do rm_loc
5811 -}
5812 -
5813 -src_test() {
5814 - local disabled=()
5815 - local tests_cvs=(
5816 - t9200-git-cvsexportcommit.sh
5817 - t9400-git-cvsserver-server.sh
5818 - t9401-git-cvsserver-crlf.sh
5819 - t9402-git-cvsserver-refs.sh
5820 - t9600-cvsimport.sh
5821 - t9601-cvsimport-vendor-branch.sh
5822 - t9602-cvsimport-branches-tags.sh
5823 - t9603-cvsimport-patchsets.sh
5824 - t9604-cvsimport-timestamps.sh
5825 - )
5826 - local tests_perl=(
5827 - t3701-add-interactive.sh
5828 - t5502-quickfetch.sh
5829 - t5512-ls-remote.sh
5830 - t5520-pull.sh
5831 - t7106-reset-unborn-branch.sh
5832 - t7501-commit.sh
5833 - )
5834 - # Bug #225601 - t0004 is not suitable for root perm
5835 - # Bug #219839 - t1004 is not suitable for root perm
5836 - # t0001-init.sh - check for init notices EPERM* fails
5837 - local tests_nonroot=(
5838 - t0001-init.sh
5839 - t0004-unwritable.sh
5840 - t0070-fundamental.sh
5841 - t1004-read-tree-m-u-wf.sh
5842 - t3700-add.sh
5843 - t7300-clean.sh
5844 - )
5845 - # t9100 still fails with symlinks in SVN 1.7
5846 - local test_svn=( t9100-git-svn-basic.sh )
5847 -
5848 - # Unzip is used only for the testcase code, not by any normal parts of Git.
5849 - if ! has_version app-arch/unzip ; then
5850 - einfo "Disabling tar-tree tests"
5851 - disabled+=( t5000-tar-tree.sh )
5852 - fi
5853 -
5854 - local cvs=0
5855 - use cvs && let cvs=${cvs}+1
5856 - if [[ ${EUID} -eq 0 ]]; then
5857 - if [[ ${cvs} -eq 1 ]]; then
5858 - ewarn "Skipping CVS tests because CVS does not work as root!"
5859 - ewarn "You should retest with FEATURES=userpriv!"
5860 - disabled+=( ${tests_cvs[@]} )
5861 - fi
5862 - einfo "Skipping other tests that require being non-root"
5863 - disabled+=( ${tests_nonroot[@]} )
5864 - else
5865 - [[ ${cvs} -gt 0 ]] && \
5866 - has_version dev-vcs/cvs && \
5867 - let cvs=${cvs}+1
5868 - [[ ${cvs} -gt 1 ]] && \
5869 - has_version "dev-vcs/cvs[server]" && \
5870 - let cvs=${cvs}+1
5871 - if [[ ${cvs} -lt 3 ]]; then
5872 - einfo "Disabling CVS tests (needs dev-vcs/cvs[USE=server])"
5873 - disabled+=( ${tests_cvs[@]} )
5874 - fi
5875 - fi
5876 -
5877 - if ! use perl ; then
5878 - einfo "Disabling tests that need Perl"
5879 - disabled+=( ${tests_perl[@]} )
5880 - fi
5881 -
5882 - einfo "Disabling tests that fail with SVN 1.7"
5883 - disabled+=( ${test_svn[@]} )
5884 -
5885 - # Reset all previously disabled tests
5886 - pushd t &>/dev/null || die
5887 - local i
5888 - for i in *.sh.DISABLED ; do
5889 - [[ -f "${i}" ]] && mv -f "${i}" "${i%.DISABLED}"
5890 - done
5891 - einfo "Disabled tests:"
5892 - for i in ${disabled[@]} ; do
5893 - [[ -f "${i}" ]] && mv -f "${i}" "${i}.DISABLED" && einfo "Disabled ${i}"
5894 - done
5895 -
5896 - # Avoid the test system removing the results because we want them ourselves
5897 - sed -e '/^[[:space:]]*$(MAKE) clean/s,^,#,g' \
5898 - -i Makefile || die
5899 -
5900 - # Clean old results first, must always run
5901 - nonfatal git_emake clean
5902 - popd &>/dev/null || die
5903 -
5904 - # Now run the tests, keep going if we hit an error, and don't terminate on
5905 - # failure
5906 - local rc
5907 - einfo "Start test run"
5908 - #MAKEOPTS=-j1
5909 - nonfatal git_emake --keep-going test
5910 - rc=$?
5911 -
5912 - # Display nice results, now print the results
5913 - pushd t &>/dev/null || die
5914 - nonfatal git_emake aggregate-results
5915 -
5916 - # And bail if there was a problem
5917 - [[ ${rc} -eq 0 ]] || die "tests failed. Please file a bug."
5918 -}
5919 -
5920 -showpkgdeps() {
5921 - local pkg=$1
5922 - shift
5923 - elog " $(printf "%-17s:" ${pkg}) ${@}"
5924 -}
5925 -
5926 -pkg_postinst() {
5927 - use emacs && elisp-site-regen
5928 - elog "Please read /usr/share/bash-completion/completions/git for Git bash command"
5929 - elog "completion."
5930 - elog "Please read /usr/share/git/git-prompt.sh for Git bash prompt"
5931 - elog "Note that the prompt bash code is now in that separate script"
5932 - elog "These additional scripts need some dependencies:"
5933 - echo
5934 - showpkgdeps git-quiltimport "dev-util/quilt"
5935 - showpkgdeps git-instaweb \
5936 - "|| ( www-servers/lighttpd www-servers/apache www-servers/nginx )"
5937 - echo
5938 - use mediawiki-experimental && ewarn "Using experimental git-mediawiki patches. The stability of cloned wiki filesystems is not guaranteed."
5939 -}
5940 -
5941 -pkg_postrm() {
5942 - use emacs && elisp-site-regen
5943 -}
5944
5945 diff --git a/dev-vcs/git/git-2.26.1.ebuild b/dev-vcs/git/git-2.26.1.ebuild
5946 deleted file mode 100644
5947 index 373486b54b6..00000000000
5948 --- a/dev-vcs/git/git-2.26.1.ebuild
5949 +++ /dev/null
5950 @@ -1,728 +0,0 @@
5951 -# Copyright 1999-2020 Gentoo Authors
5952 -# Distributed under the terms of the GNU General Public License v2
5953 -
5954 -EAPI=7
5955 -
5956 -GENTOO_DEPEND_ON_PERL=no
5957 -
5958 -# bug #329479: git-remote-testgit is not multiple-version aware
5959 -PYTHON_COMPAT=( python{2_7,3_{6,7}} )
5960 -
5961 -inherit toolchain-funcs elisp-common l10n perl-module bash-completion-r1 python-single-r1 systemd
5962 -
5963 -PLOCALES="bg ca de es fr is it ko pt_PT ru sv vi zh_CN"
5964 -if [[ ${PV} == *9999 ]]; then
5965 - inherit git-r3
5966 - EGIT_REPO_URI="git://git.kernel.org/pub/scm/git/git.git"
5967 - # Please ensure that all _four_ 9999 ebuilds get updated; they track the 4 upstream branches.
5968 - # See https://git-scm.com/docs/gitworkflows#_graduation
5969 - # In order of stability:
5970 - # 9999-r0: maint
5971 - # 9999-r1: master
5972 - # 9999-r2: next
5973 - # 9999-r3: pu
5974 - case "${PVR}" in
5975 - 9999) EGIT_BRANCH=maint ;;
5976 - 9999-r1) EGIT_BRANCH=master ;;
5977 - 9999-r2) EGIT_BRANCH=next;;
5978 - 9999-r3) EGIT_BRANCH=pu ;;
5979 - esac
5980 -fi
5981 -
5982 -MY_PV="${PV/_rc/.rc}"
5983 -MY_P="${PN}-${MY_PV}"
5984 -
5985 -DOC_VER="${MY_PV}"
5986 -
5987 -DESCRIPTION="stupid content tracker: distributed VCS designed for speed and efficiency"
5988 -HOMEPAGE="https://www.git-scm.com/"
5989 -if [[ ${PV} != *9999 ]]; then
5990 - SRC_URI_SUFFIX="xz"
5991 - SRC_URI_KORG="https://www.kernel.org/pub/software/scm/git"
5992 - [[ "${PV/rc}" != "${PV}" ]] && SRC_URI_KORG+='/testing'
5993 - SRC_URI="${SRC_URI_KORG}/${MY_P}.tar.${SRC_URI_SUFFIX}
5994 - ${SRC_URI_KORG}/${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
5995 - doc? (
5996 - ${SRC_URI_KORG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
5997 - )"
5998 - [[ "${PV}" == *_rc* ]] || \
5999 - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
6000 -fi
6001 -
6002 -LICENSE="GPL-2"
6003 -SLOT="0"
6004 -IUSE="+blksha1 +curl cgi doc emacs gnome-keyring +gpg highlight +iconv libressl mediawiki mediawiki-experimental +nls +pcre +pcre-jit perforce +perl +ppcsha1 tk +threads +webdav xinetd cvs subversion test"
6005 -
6006 -# Common to both DEPEND and RDEPEND
6007 -DEPEND="
6008 - gnome-keyring? ( app-crypt/libsecret )
6009 - !libressl? ( dev-libs/openssl:0= )
6010 - libressl? ( dev-libs/libressl:= )
6011 - sys-libs/zlib
6012 - pcre? (
6013 - pcre-jit? ( dev-libs/libpcre2[jit(+)] )
6014 - !pcre-jit? ( dev-libs/libpcre )
6015 - )
6016 - perl? ( dev-lang/perl:=[-build(-)] )
6017 - tk? ( dev-lang/tk:0= )
6018 - curl? (
6019 - net-misc/curl
6020 - webdav? ( dev-libs/expat )
6021 - )
6022 - emacs? ( >=app-editors/emacs-23.1:* )
6023 - iconv? ( virtual/libiconv )
6024 -"
6025 -
6026 -RDEPEND="${DEPEND}
6027 - gpg? ( app-crypt/gnupg )
6028 - perl? (
6029 - dev-perl/Error
6030 - dev-perl/MailTools
6031 - dev-perl/Authen-SASL
6032 - cgi? (
6033 - dev-perl/CGI
6034 - highlight? ( app-text/highlight )
6035 - )
6036 - cvs? (
6037 - >=dev-vcs/cvsps-2.1:0
6038 - dev-perl/DBI
6039 - dev-perl/DBD-SQLite
6040 - )
6041 - mediawiki? (
6042 - dev-perl/DateTime-Format-ISO8601
6043 - dev-perl/HTML-Tree
6044 - dev-perl/MediaWiki-API
6045 - )
6046 - subversion? (
6047 - dev-vcs/subversion[-dso,perl]
6048 - dev-perl/libwww-perl
6049 - dev-perl/TermReadKey
6050 - )
6051 - )
6052 - perforce? ( ${PYTHON_DEPS} )
6053 -"
6054 -
6055 -# This is how info docs are created with Git:
6056 -# .txt/asciidoc --(asciidoc)---------> .xml/docbook
6057 -# .xml/docbook --(docbook2texi.pl)--> .texi
6058 -# .texi --(makeinfo)---------> .info
6059 -BDEPEND="
6060 - doc? (
6061 - app-text/asciidoc
6062 - app-text/docbook2X
6063 - app-text/xmlto
6064 - sys-apps/texinfo
6065 - )
6066 - nls? ( sys-devel/gettext )
6067 - test? ( app-crypt/gnupg )
6068 -"
6069 -
6070 -# Live ebuild builds man pages and HTML docs, additionally
6071 -if [[ ${PV} == *9999 ]]; then
6072 - BDEPEND="${BDEPEND}
6073 - app-text/asciidoc"
6074 -fi
6075 -
6076 -SITEFILE="50${PN}-gentoo.el"
6077 -S="${WORKDIR}/${MY_P}"
6078 -
6079 -REQUIRED_USE="
6080 - cgi? ( perl )
6081 - cvs? ( perl )
6082 - mediawiki? ( perl )
6083 - mediawiki-experimental? ( mediawiki )
6084 - subversion? ( perl )
6085 - webdav? ( curl )
6086 - pcre-jit? ( pcre )
6087 - perforce? ( ${PYTHON_REQUIRED_USE} )
6088 -"
6089 -
6090 -RESTRICT="!test? ( test )"
6091 -
6092 -PATCHES=(
6093 - # bug #350330 - automagic CVS when we don't want it is bad.
6094 - "${FILESDIR}"/git-2.22.0_rc0-optional-cvs.patch
6095 -
6096 - "${FILESDIR}"/git-2.2.0-svn-fe-linking.patch
6097 -
6098 - # Make submodule output quiet
6099 - "${FILESDIR}"/git-2.21.0-quiet-submodules-testcase.patch
6100 -)
6101 -
6102 -pkg_setup() {
6103 - if use subversion && has_version "dev-vcs/subversion[dso]"; then
6104 - ewarn "Per Gentoo bugs #223747, #238586, when subversion is built"
6105 - ewarn "with USE=dso, there may be weird crashes in git-svn. You"
6106 - ewarn "have been warned."
6107 - fi
6108 - if use perforce ; then
6109 - python-single-r1_pkg_setup
6110 - fi
6111 -}
6112 -
6113 -# This is needed because for some obscure reasons future calls to make don't
6114 -# pick up these exports if we export them in src_unpack()
6115 -exportmakeopts() {
6116 - local extlibs myopts
6117 -
6118 - myopts=(
6119 - ASCIIDOC_NO_ROFF=YesPlease
6120 - $(usex cvs '' NO_CVS=YesPlease)
6121 - $(usex elibc_musl NO_REGEX=YesPlease '')
6122 - $(usex iconv '' NO_ICONV=YesPlease)
6123 - $(usex nls '' NO_GETTEXT=YesPlease)
6124 - $(usex perl 'INSTALLDIRS=vendor NO_PERL_CPAN_FALLBACKS=YesPlease' NO_PERL=YesPlease)
6125 - $(usex perforce '' NO_PYTHON=YesPlease)
6126 - $(usex subversion '' NO_SVN_TESTS=YesPlease)
6127 - $(usex threads '' NO_PTHREADS=YesPlease)
6128 - $(usex tk '' NO_TCLTK=YesPlease)
6129 - )
6130 -
6131 - if use blksha1 ; then
6132 - myopts+=( BLK_SHA1=YesPlease )
6133 - elif use ppcsha1 ; then
6134 - myopts+=( PPC_SHA1=YesPlease )
6135 - fi
6136 -
6137 - if use curl ; then
6138 - use webdav || myopts+=( NO_EXPAT=YesPlease )
6139 - else
6140 - myopts+=( NO_CURL=YesPlease )
6141 - fi
6142 -
6143 - # broken assumptions, because of static build system ...
6144 - myopts+=(
6145 - NO_FINK=YesPlease
6146 - NO_DARWIN_PORTS=YesPlease
6147 - INSTALL=install
6148 - TAR=tar
6149 - SHELL_PATH="${EPREFIX}/bin/sh"
6150 - SANE_TOOL_PATH=
6151 - OLD_ICONV=
6152 - NO_EXTERNAL_GREP=
6153 - )
6154 -
6155 - # For svn-fe
6156 - extlibs=( -lz -lssl ${S}/xdiff/lib.a $(usex threads -lpthread '') )
6157 -
6158 - # can't define this to null, since the entire makefile depends on it
6159 - sed -i -e '/\/usr\/local/s/BASIC_/#BASIC_/' Makefile || die
6160 -
6161 - if use pcre; then
6162 - if use pcre-jit; then
6163 - myopts+=( USE_LIBPCRE2=YesPlease )
6164 - extlibs+=( -lpcre2-8 )
6165 - else
6166 - myopts+=(
6167 - USE_LIBPCRE1=YesPlease
6168 - NO_LIBPCRE1_JIT=YesPlease
6169 - )
6170 - extlibs+=( -lpcre )
6171 - fi
6172 - fi
6173 -# Disabled until ~m68k-mint can be keyworded again
6174 -# if [[ ${CHOST} == *-mint* ]] ; then
6175 -# myopts+=(
6176 -# NO_MMAP=YesPlease
6177 -# NO_IPV6=YesPlease
6178 -# NO_STRLCPY=YesPlease
6179 -# NO_MEMMEM=YesPlease
6180 -# NO_MKDTEMP=YesPlease
6181 -# NO_MKSTEMPS=YesPlease
6182 -# )
6183 -# fi
6184 - if [[ ${CHOST} == ia64-*-hpux* ]]; then
6185 - myopts+=( NO_NSEC=YesPlease )
6186 - fi
6187 - if [[ ${CHOST} == *-*-aix* ]]; then
6188 - myopts+=( NO_FNMATCH_CASEFOLD=YesPlease )
6189 - fi
6190 - if [[ ${CHOST} == *-solaris* ]]; then
6191 - myopts+=(
6192 - NEEDS_LIBICONV=YesPlease
6193 - HAVE_CLOCK_MONOTONIC=1
6194 - )
6195 - if grep -q getdelim "${EROOT}"/usr/include/stdio.h ; then
6196 - myopts+=( HAVE_GETDELIM=1 )
6197 - fi
6198 - fi
6199 -
6200 - if has_version '>=app-text/asciidoc-8.0' ; then
6201 - myopts+=( ASCIIDOC8=YesPlease )
6202 - fi
6203 -
6204 - # Bug 290465:
6205 - # builtin-fetch-pack.c:816: error: 'struct stat' has no member named 'st_mtim'
6206 - if [[ "${CHOST}" == *-uclibc* ]] ; then
6207 - myopts+=( NO_NSEC=YesPlease )
6208 - use iconv && myopts+=( NEEDS_LIBICONV=YesPlease )
6209 - fi
6210 -
6211 - export MY_MAKEOPTS="${myopts[@]}"
6212 - export EXTLIBS="${extlibs[@]}"
6213 -}
6214 -
6215 -src_unpack() {
6216 - if [[ ${PV} != *9999 ]]; then
6217 - unpack ${MY_P}.tar.${SRC_URI_SUFFIX}
6218 - cd "${S}" || die
6219 - unpack ${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
6220 - if use doc ; then
6221 - pushd "${S}"/Documentation &>/dev/null || die
6222 - unpack ${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
6223 - popd &>/dev/null || die
6224 - fi
6225 - else
6226 - git-r3_src_unpack
6227 - #cp "${FILESDIR}"/GIT-VERSION-GEN .
6228 - fi
6229 -
6230 -}
6231 -
6232 -src_prepare() {
6233 - # add experimental patches to improve mediawiki support
6234 - # see patches for origin
6235 - if use mediawiki-experimental ; then
6236 - PATCHES+=(
6237 - "${FILESDIR}"/git-2.7.0-mediawiki-namespaces.patch
6238 - "${FILESDIR}"/git-2.7.0-mediawiki-subpages.patch
6239 - "${FILESDIR}"/git-2.7.0-mediawiki-500pages.patch
6240 - )
6241 - fi
6242 -
6243 - default
6244 -
6245 - sed -i \
6246 - -e 's:^\(CFLAGS[[:space:]]*=\).*$:\1 $(OPTCFLAGS) -Wall:' \
6247 - -e 's:^\(LDFLAGS[[:space:]]*=\).*$:\1 $(OPTLDFLAGS):' \
6248 - -e 's:^\(CC[[:space:]]* =\).*$:\1$(OPTCC):' \
6249 - -e 's:^\(AR[[:space:]]* =\).*$:\1$(OPTAR):' \
6250 - -e "s:\(PYTHON_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
6251 - -e "s:\(PERL_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
6252 - Makefile contrib/svn-fe/Makefile || die
6253 -
6254 - # Fix docbook2texi command
6255 - sed -r -i 's/DOCBOOK2X_TEXI[[:space:]]*=[[:space:]]*docbook2x-texi/DOCBOOK2X_TEXI = docbook2texi.pl/' \
6256 - Documentation/Makefile || die
6257 -}
6258 -
6259 -git_emake() {
6260 - # bug #320647: PYTHON_PATH
6261 - local PYTHON_PATH=""
6262 - use perforce && PYTHON_PATH="${PYTHON}"
6263 - emake ${MY_MAKEOPTS} \
6264 - prefix="${EPREFIX}"/usr \
6265 - htmldir="${EPREFIX}"/usr/share/doc/${PF}/html \
6266 - perllibdir="$(use perl && perl_get_raw_vendorlib)" \
6267 - sysconfdir="${EPREFIX}"/etc \
6268 - DESTDIR="${D}" \
6269 - GIT_TEST_OPTS="--no-color" \
6270 - OPTAR="$(tc-getAR)" \
6271 - OPTCC="$(tc-getCC)" \
6272 - OPTCFLAGS="${CFLAGS}" \
6273 - OPTLDFLAGS="${LDFLAGS}" \
6274 - PERL_PATH="${EPREFIX}/usr/bin/perl" \
6275 - PERL_MM_OPT="" \
6276 - PYTHON_PATH="${PYTHON_PATH}" \
6277 - V=1 \
6278 - "$@"
6279 -}
6280 -
6281 -src_configure() {
6282 - exportmakeopts
6283 -}
6284 -
6285 -src_compile() {
6286 - git_emake || die "emake failed"
6287 -
6288 - if use emacs ; then
6289 - elisp-compile contrib/emacs/git{,-blame}.el
6290 - fi
6291 -
6292 - if use perl && use cgi ; then
6293 - git_emake \
6294 - gitweb \
6295 - || die "emake gitweb (cgi) failed"
6296 - fi
6297 -
6298 - if [[ ${CHOST} == *-darwin* ]]; then
6299 - pushd contrib/credential/osxkeychain &>/dev/null || die
6300 - git_emake CC=$(tc-getCC) CFLAGS="${CFLAGS}" \
6301 - || die "emake credential-osxkeychain"
6302 - popd &>/dev/null || die
6303 - fi
6304 -
6305 - pushd Documentation &>/dev/null || die
6306 - if [[ ${PV} == *9999 ]] ; then
6307 - git_emake man \
6308 - || die "emake man failed"
6309 - if use doc ; then
6310 - git_emake info html \
6311 - || die "emake info html failed"
6312 - fi
6313 - else
6314 - if use doc ; then
6315 - git_emake info \
6316 - || die "emake info html failed"
6317 - fi
6318 - fi
6319 - popd &>/dev/null || die
6320 -
6321 - if use subversion ; then
6322 - pushd contrib/svn-fe &>/dev/null || die
6323 - # by defining EXTLIBS we override the detection for libintl and
6324 - # libiconv, bug #516168
6325 - local nlsiconv=()
6326 - use nls && use !elibc_glibc && nlsiconv+=( -lintl )
6327 - use iconv && use !elibc_glibc && nlsiconv+=( -liconv )
6328 - git_emake EXTLIBS="${EXTLIBS} ${nlsiconv[@]}" \
6329 - || die "emake svn-fe failed"
6330 - if use doc ; then
6331 - # svn-fe.1 requires the full USE=doc dependency stack
6332 - git_emake svn-fe.1 \
6333 - || die "emake svn-fe.1 failed"
6334 - git_emake svn-fe.html \
6335 - || die "svn-fe.html failed"
6336 - fi
6337 - popd &>/dev/null || die
6338 - fi
6339 -
6340 - if use gnome-keyring ; then
6341 - pushd contrib/credential/libsecret &>/dev/null || die
6342 - git_emake || die "emake git-credential-libsecret failed"
6343 - popd &>/dev/null || die
6344 - fi
6345 -
6346 - pushd contrib/subtree &>/dev/null || die
6347 - git_emake git-subtree
6348 - # git-subtree.1 requires the full USE=doc dependency stack
6349 - use doc && git_emake git-subtree.html git-subtree.1
6350 - popd &>/dev/null || die
6351 -
6352 - pushd contrib/diff-highlight &>/dev/null || die
6353 - git_emake
6354 - popd &>/dev/null || die
6355 -
6356 - if use mediawiki ; then
6357 - pushd contrib/mw-to-git &>/dev/null || die
6358 - git_emake
6359 - popd &>/dev/null || die
6360 -
6361 - fi
6362 -}
6363 -
6364 -src_install() {
6365 - git_emake install || die "make install failed"
6366 -
6367 - if [[ ${CHOST} == *-darwin* ]]; then
6368 - dobin contrib/credential/osxkeychain/git-credential-osxkeychain
6369 - fi
6370 -
6371 - # Depending on the tarball and manual rebuild of the documentation, the
6372 - # manpages may exist in either OR both of these directories.
6373 - find man?/*.[157] >/dev/null 2>&1 && doman man?/*.[157]
6374 - find Documentation/*.[157] >/dev/null 2>&1 && doman Documentation/*.[157]
6375 - dodoc README* Documentation/{SubmittingPatches,CodingGuidelines}
6376 - use doc && dodir /usr/share/doc/${PF}/html
6377 - local d
6378 - for d in / /howto/ /technical/ ; do
6379 - docinto ${d}
6380 - dodoc Documentation${d}*.txt
6381 - if use doc ; then
6382 - docinto ${d}/html
6383 - dodoc Documentation${d}*.html
6384 - fi
6385 - done
6386 - docinto /
6387 - # Upstream does not ship this pre-built :-(
6388 - use doc && doinfo Documentation/{git,gitman}.info
6389 -
6390 - newbashcomp contrib/completion/git-completion.bash ${PN}
6391 - bashcomp_alias git gitk
6392 - # Not really a bash-completion file (bug #477920)
6393 - # but still needed uncompressed (bug #507480)
6394 - insinto /usr/share/${PN}
6395 - doins contrib/completion/git-prompt.sh
6396 -
6397 - if use emacs ; then
6398 - elisp-install ${PN} contrib/emacs/git.{el,elc}
6399 - elisp-install ${PN} contrib/emacs/git-blame.{el,elc}
6400 - #elisp-install ${PN}/compat contrib/emacs/vc-git.{el,elc}
6401 - # don't add automatically to the load-path, so the sitefile
6402 - # can do a conditional loading
6403 - touch "${ED}${SITELISP}/${PN}/compat/.nosearch"
6404 - elisp-site-file-install "${FILESDIR}"/${SITEFILE}
6405 - fi
6406 -
6407 - #dobin contrib/fast-import/git-p4 # Moved upstream
6408 - #dodoc contrib/fast-import/git-p4.txt # Moved upstream
6409 - newbin contrib/fast-import/import-tars.perl import-tars
6410 - exeinto /usr/libexec/git-core/
6411 - newexe contrib/git-resurrect.sh git-resurrect
6412 -
6413 - # git-subtree
6414 - pushd contrib/subtree &>/dev/null || die
6415 - git_emake install || die "Failed to emake install for git-subtree"
6416 - if use doc ; then
6417 - # Do not move git subtree install-man outside USE=doc!
6418 - git_emake install-man install-html || die "Failed to emake install-html install-man for git-subtree"
6419 - fi
6420 - newdoc README README.git-subtree
6421 - dodoc git-subtree.txt
6422 - popd &>/dev/null || die
6423 -
6424 - if use mediawiki ; then
6425 - pushd contrib/mw-to-git &>/dev/null || die
6426 - git_emake install
6427 - popd &>/dev/null || die
6428 - fi
6429 -
6430 - # diff-highlight
6431 - dobin contrib/diff-highlight/diff-highlight
6432 - newdoc contrib/diff-highlight/README README.diff-highlight
6433 -
6434 - # git-jump
6435 - exeinto /usr/libexec/git-core/
6436 - doexe contrib/git-jump/git-jump
6437 - newdoc contrib/git-jump/README git-jump.txt
6438 -
6439 - # git-contacts
6440 - exeinto /usr/libexec/git-core/
6441 - doexe contrib/contacts/git-contacts
6442 - dodoc contrib/contacts/git-contacts.txt
6443 -
6444 - if use gnome-keyring ; then
6445 - pushd contrib/credential/libsecret &>/dev/null || die
6446 - dobin git-credential-libsecret
6447 - popd &>/dev/null || die
6448 - fi
6449 -
6450 - if use subversion ; then
6451 - pushd contrib/svn-fe &>/dev/null || die
6452 - dobin svn-fe
6453 - dodoc svn-fe.txt
6454 - if use doc ; then
6455 - # Do not move svn-fe.1 outside USE=doc!
6456 - doman svn-fe.1
6457 - docinto html
6458 - dodoc svn-fe.html
6459 - fi
6460 - popd &>/dev/null || die
6461 - fi
6462 -
6463 - dodir /usr/share/${PN}/contrib
6464 - # The following are excluded:
6465 - # completion - installed above
6466 - # diff-highlight - done above
6467 - # emacs - installed above
6468 - # examples - these are stuff that is not used in Git anymore actually
6469 - # git-jump - done above
6470 - # gitview - installed above
6471 - # p4import - excluded because fast-import has a better one
6472 - # patches - stuff the Git guys made to go upstream to other places
6473 - # persistent-https - TODO
6474 - # mw-to-git - TODO
6475 - # subtree - build seperately
6476 - # svnimport - use git-svn
6477 - # thunderbird-patch-inline - fixes thunderbird
6478 - local contrib_objects=(
6479 - buildsystems
6480 - fast-import
6481 - hg-to-git
6482 - hooks
6483 - remotes2config.sh
6484 - rerere-train.sh
6485 - stats
6486 - workdir
6487 - )
6488 - local i
6489 - for i in "${contrib_objects[@]}" ; do
6490 - cp -rf \
6491 - "${S}"/contrib/${i} \
6492 - "${ED}"/usr/share/${PN}/contrib \
6493 - || die "Failed contrib ${i}"
6494 - done
6495 -
6496 - if use perl && use cgi ; then
6497 - # We used to install in /usr/share/${PN}/gitweb
6498 - # but upstream installs in /usr/share/gitweb
6499 - # so we will install a symlink and use their location for compat with other
6500 - # distros
6501 - dosym ../gitweb /usr/share/${PN}/gitweb
6502 -
6503 - # INSTALL discusses configuration issues, not just installation
6504 - docinto /
6505 - newdoc "${S}"/gitweb/INSTALL INSTALL.gitweb
6506 - newdoc "${S}"/gitweb/README README.gitweb
6507 -
6508 - for d in "${ED}"/usr/lib{,64}/perl5/ ; do
6509 - if test -d "${d}" ; then find "${d}" \
6510 - -name .packlist \
6511 - -delete || die
6512 - fi
6513 - done
6514 - else
6515 - rm -rf "${ED}"/usr/share/gitweb
6516 - fi
6517 -
6518 - if ! use subversion ; then
6519 - rm -f "${ED}"/usr/libexec/git-core/git-svn \
6520 - "${ED}"/usr/share/man/man1/git-svn.1*
6521 - fi
6522 -
6523 - if use xinetd ; then
6524 - insinto /etc/xinetd.d
6525 - newins "${FILESDIR}"/git-daemon.xinetd git-daemon
6526 - fi
6527 -
6528 - if use !prefix ; then
6529 - newinitd "${FILESDIR}"/git-daemon-r1.initd git-daemon
6530 - newconfd "${FILESDIR}"/git-daemon.confd git-daemon
6531 - systemd_newunit "${FILESDIR}/git-daemon_at-r1.service" "git-daemon@.service"
6532 - systemd_dounit "${FILESDIR}/git-daemon.socket"
6533 - fi
6534 -
6535 - perl_delete_localpod
6536 -
6537 - # Remove disabled linguas
6538 - # we could remove sources in src_prepare, but install does not
6539 - # handle missing locale dir well
6540 - rm_loc() {
6541 - if [[ -e "${ED}/usr/share/locale/${1}" ]]; then
6542 - rm -r "${ED}/usr/share/locale/${1}" || die
6543 - fi
6544 - }
6545 - l10n_for_each_disabled_locale_do rm_loc
6546 -}
6547 -
6548 -src_test() {
6549 - local disabled=()
6550 - local tests_cvs=(
6551 - t9200-git-cvsexportcommit.sh
6552 - t9400-git-cvsserver-server.sh
6553 - t9401-git-cvsserver-crlf.sh
6554 - t9402-git-cvsserver-refs.sh
6555 - t9600-cvsimport.sh
6556 - t9601-cvsimport-vendor-branch.sh
6557 - t9602-cvsimport-branches-tags.sh
6558 - t9603-cvsimport-patchsets.sh
6559 - t9604-cvsimport-timestamps.sh
6560 - )
6561 - local tests_perl=(
6562 - t3701-add-interactive.sh
6563 - t5502-quickfetch.sh
6564 - t5512-ls-remote.sh
6565 - t5520-pull.sh
6566 - t7106-reset-unborn-branch.sh
6567 - t7501-commit.sh
6568 - )
6569 - # Bug #225601 - t0004 is not suitable for root perm
6570 - # Bug #219839 - t1004 is not suitable for root perm
6571 - # t0001-init.sh - check for init notices EPERM* fails
6572 - local tests_nonroot=(
6573 - t0001-init.sh
6574 - t0004-unwritable.sh
6575 - t0070-fundamental.sh
6576 - t1004-read-tree-m-u-wf.sh
6577 - t3700-add.sh
6578 - t7300-clean.sh
6579 - )
6580 - # t9100 still fails with symlinks in SVN 1.7
6581 - local test_svn=( t9100-git-svn-basic.sh )
6582 -
6583 - # Unzip is used only for the testcase code, not by any normal parts of Git.
6584 - if ! has_version app-arch/unzip ; then
6585 - einfo "Disabling tar-tree tests"
6586 - disabled+=( t5000-tar-tree.sh )
6587 - fi
6588 -
6589 - local cvs=0
6590 - use cvs && let cvs=${cvs}+1
6591 - if [[ ${EUID} -eq 0 ]]; then
6592 - if [[ ${cvs} -eq 1 ]]; then
6593 - ewarn "Skipping CVS tests because CVS does not work as root!"
6594 - ewarn "You should retest with FEATURES=userpriv!"
6595 - disabled+=( ${tests_cvs[@]} )
6596 - fi
6597 - einfo "Skipping other tests that require being non-root"
6598 - disabled+=( ${tests_nonroot[@]} )
6599 - else
6600 - [[ ${cvs} -gt 0 ]] && \
6601 - has_version dev-vcs/cvs && \
6602 - let cvs=${cvs}+1
6603 - [[ ${cvs} -gt 1 ]] && \
6604 - has_version "dev-vcs/cvs[server]" && \
6605 - let cvs=${cvs}+1
6606 - if [[ ${cvs} -lt 3 ]]; then
6607 - einfo "Disabling CVS tests (needs dev-vcs/cvs[USE=server])"
6608 - disabled+=( ${tests_cvs[@]} )
6609 - fi
6610 - fi
6611 -
6612 - if ! use perl ; then
6613 - einfo "Disabling tests that need Perl"
6614 - disabled+=( ${tests_perl[@]} )
6615 - fi
6616 -
6617 - einfo "Disabling tests that fail with SVN 1.7"
6618 - disabled+=( ${test_svn[@]} )
6619 -
6620 - # Reset all previously disabled tests
6621 - pushd t &>/dev/null || die
6622 - local i
6623 - for i in *.sh.DISABLED ; do
6624 - [[ -f "${i}" ]] && mv -f "${i}" "${i%.DISABLED}"
6625 - done
6626 - einfo "Disabled tests:"
6627 - for i in ${disabled[@]} ; do
6628 - [[ -f "${i}" ]] && mv -f "${i}" "${i}.DISABLED" && einfo "Disabled ${i}"
6629 - done
6630 -
6631 - # Avoid the test system removing the results because we want them ourselves
6632 - sed -e '/^[[:space:]]*$(MAKE) clean/s,^,#,g' \
6633 - -i Makefile || die
6634 -
6635 - # Clean old results first, must always run
6636 - nonfatal git_emake clean
6637 - popd &>/dev/null || die
6638 -
6639 - # Now run the tests, keep going if we hit an error, and don't terminate on
6640 - # failure
6641 - local rc
6642 - einfo "Start test run"
6643 - #MAKEOPTS=-j1
6644 - nonfatal git_emake --keep-going test
6645 - rc=$?
6646 -
6647 - # Display nice results, now print the results
6648 - pushd t &>/dev/null || die
6649 - nonfatal git_emake aggregate-results
6650 -
6651 - # And bail if there was a problem
6652 - [[ ${rc} -eq 0 ]] || die "tests failed. Please file a bug."
6653 -}
6654 -
6655 -showpkgdeps() {
6656 - local pkg=$1
6657 - shift
6658 - elog " $(printf "%-17s:" ${pkg}) ${@}"
6659 -}
6660 -
6661 -pkg_postinst() {
6662 - use emacs && elisp-site-regen
6663 - elog "Please read /usr/share/bash-completion/completions/git for Git bash command"
6664 - elog "completion."
6665 - elog "Please read /usr/share/git/git-prompt.sh for Git bash prompt"
6666 - elog "Note that the prompt bash code is now in that separate script"
6667 - elog "These additional scripts need some dependencies:"
6668 - echo
6669 - showpkgdeps git-quiltimport "dev-util/quilt"
6670 - showpkgdeps git-instaweb \
6671 - "|| ( www-servers/lighttpd www-servers/apache www-servers/nginx )"
6672 - echo
6673 - use mediawiki-experimental && ewarn "Using experimental git-mediawiki patches. The stability of cloned wiki filesystems is not guaranteed."
6674 -}
6675 -
6676 -pkg_postrm() {
6677 - use emacs && elisp-site-regen
6678 -}