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/files/, dev-vcs/git/
Date: Thu, 07 Jan 2021 13:01:49
Message-Id: 1610024502.69a176799561726159e8eb77ba461d6db4489900.polynomial-c@gentoo
1 commit: 69a176799561726159e8eb77ba461d6db4489900
2 Author: Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
3 AuthorDate: Thu Jan 7 13:01:32 2021 +0000
4 Commit: Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
5 CommitDate: Thu Jan 7 13:01:42 2021 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=69a17679
7
8 dev-vcs/git: Removed old
9
10 Package-Manager: Portage-3.0.12, Repoman-3.0.2
11 Signed-off-by: Lars Wendler <polynomial-c <AT> gentoo.org>
12
13 dev-vcs/git/Manifest | 12 -
14 .../files/git-2.23.0-avoid_empty_remote_line.patch | 145 -----
15 dev-vcs/git/git-2.23.3.ebuild | 708 --------------------
16 dev-vcs/git/git-2.24.3.ebuild | 711 ---------------------
17 dev-vcs/git/git-2.25.4.ebuild | 711 ---------------------
18 dev-vcs/git/git-2.27.0.ebuild | 711 ---------------------
19 6 files changed, 2998 deletions(-)
20
21 diff --git a/dev-vcs/git/Manifest b/dev-vcs/git/Manifest
22 index dba31886e21..84704c8f94d 100644
23 --- a/dev-vcs/git/Manifest
24 +++ b/dev-vcs/git/Manifest
25 @@ -1,24 +1,12 @@
26 -DIST git-2.23.3.tar.xz 5716108 BLAKE2B 9d0e63e075d8e64bf2772bdd3e49e9907ae093bcfe6a73a003c3bb8a61f557cce154ef8011aa7d068eaca49f8f14c027d935d7ef2fcbc21eb511f803dfbf4a00 SHA512 29b1344fed72c588e9a04d3fb493f2f91490f61853d48644a2d36c23c3251cf1fd549c256def25865e9f33b50135cdfa5108814105d9fcf360d6d1938487d2bf
27 -DIST git-2.24.3.tar.xz 5774192 BLAKE2B a8bea56f85a12863565325984a303ac2d964e0371de5252252a736a376a22cc1695da15b46d35bdec8a36c2ebd7ba7040727265acee37892350aad08209ed15f SHA512 b2fbafd0faa06a304e960f78696f5c033eb5330b18af28c0d169af86aa836dada0c3cf349993b1c9a6129d0c42788167a393f9db9be981610318dca5743b2c87
28 -DIST git-2.25.4.tar.xz 5880976 BLAKE2B a3ac79918ba174a93844d9518a2f1c6970abe2cd31acea260742d3c03a31a03131f53603a3bd3e525a60f8ebcfbbaa3b92228e2486717ca2d389a978e39bd5ec SHA512 ca2ecc561d06dbb393fe47d445f0d69423d114766d9bcc125ef1d6d37e350ad903c456540cea420c1a51635b750cde3901e4196f29ce95b315fda11270173450
29 DIST git-2.26.2.tar.xz 6007864 BLAKE2B efce003a95e24dbb6e14feebd35874c9ed1a5c06d7f0722d4dfefae830613b64b81faa41d5952400fa382b385d15d48829f8ee3b4d065e134bd38fa0e10bf570 SHA512 5d92d07b171c5cd6e89a29c1211c73c1c900cd51c74d690aebfb4a3d0e93b541b09b42b6d6a1a82f5c3d953096771f9a8605c63be139f559f58698c1a0eabcfc
30 -DIST git-2.27.0.tar.xz 6074636 BLAKE2B 72c992ee35a50cdeb2363f04edfab65358216b8415f31f217b6e837d1f7bc28b90e49850006596a8f5f1932fd3011c4253df287d445dca58e335d2f6e7bab8c2 SHA512 8ddea44503db7caf1f6080e64555541aa64a7b8761fd6541965ee244d9c4a47befccda1a239f11d86c2ad0ff24923d084f65712f5f2d6cfa178573e3471c6c33
31 DIST git-2.28.0.tar.xz 6117608 BLAKE2B 81c834dfda5b8e3065d098e411eb2408a1e7ccfde9c447a4164c131c9c2c32dcfd888980bcd180952435c05976a4fa18c155830432170deff70aa1aa2989cd2a SHA512 a6159c0a15e3c5f9603157d4010664a6d74e7d65b9fe97a03b36fac12607248ed57980d96565841e88eae343001c167222232737d3af812608c8db011941df1a
32 DIST git-2.29.2.tar.xz 6187988 BLAKE2B 15c2446a266d7cc3032e4b3bd32f57a2c2ff3d377848f307225ea585883c993ed835c8ffe02202386360b94f5a1f4bd3124322f0034c0d65ed15aa28b7e45ffa SHA512 34117628c6d43ac0940c43bffaa1bda7f12af863728f391492725a3e57d1bbda523cf7734e90f463fe9a9ae4e70fc1cc2523643dbb3c27377d98dc4736b0ea62
33 DIST git-2.30.0.tar.xz 6325652 BLAKE2B c5a67ccb7790f1747d714b402f22de6bd5cf783de8765fade7af0ad51ac780c80d43ab22b33431b57db246a11ef073dfd291961476a3c9414339f133221cbea6 SHA512 2ce154d6e224e78d7da2ea9b954d8cf56bdfe43636b93dd5045a950a7362d3943866b4949eb5ed03528d6e5f0466c33c233b502d84430ed9d90326bcc696101d
34 -DIST git-htmldocs-2.23.3.tar.xz 1295344 BLAKE2B 7a6d8198cf8285717f11731ea907ea06786c486701a729d071deedc5437a595dab355ae2d0ac2814b10503ab4161e76a1245663a9ce35ce48d03be9905315db3 SHA512 2c86c03f29f1a4fc2acb17a17a9e1a3df2ec95138895f5c8e776859772ebc7b95c24af0e328508ccf1ea85b7adaa86a9aedc4d0c353ffc91ad5810ecc9a48059
35 -DIST git-htmldocs-2.24.3.tar.xz 1307828 BLAKE2B 5d6dda03e2c51346326a1258a14a0ee16fab7fe83c80b4a1a0b307a6343db851d89b96afcf616e10ad5831352a90332ac602e5713444855327e11be8992a5274 SHA512 14289fb46cff48bece0cdafea9ef201facdb58eafce4b735ce50489356deb993c481ac1b6e96a2f98cfe30434280997c47f2cca0bdb2b6e85c31cb7cf17cc257
36 -DIST git-htmldocs-2.25.4.tar.xz 1296896 BLAKE2B 4f6469acdcd699698bd1f19bd0d911fd522c1890115f25c087a7870b855eb9354340fe17e9e6aaec7fb27cd951fe28cadbf26e1aeadc76f3c3a1cde4d23e42cd SHA512 e10c6fa52e213a2b18290fed375f6e176eef17b0a19f6906f09d6228d18bece88ff0ec97d871db0ba29fc0fbff73740312ab01eab809bd6a9a41c8b295cf8d67
37 DIST git-htmldocs-2.26.2.tar.xz 1304788 BLAKE2B e0de88c5c41646d5fb9b54e2ee873c7904e1b85c67f971499f0227eb2dd59cabd4ffc58c468cf8a7a7466920af972dbc7f95d78003e487edac9a15a9c49b80a2 SHA512 b577693180b4fc035af211e3b83e98ad5e1bfbb98706924858df6558383b82ca05f870bdae90f8a14c8bf664f091ee928af52dcdebdfb98dc7387fdfe2e3a396
38 -DIST git-htmldocs-2.27.0.tar.xz 1325820 BLAKE2B a86cb62b6e42e451201a69e92c897566a78ed4965a98ef7b09f7c4674f60a334357ea8834ec5d97764f5f7e8fe580b8ac3af4da588b72a0e01f065adcd019aec SHA512 6af974ea6c8458f72c5fc7a372611e0153b705a85092a5fe37587a3165368712e077f582ce4085538f48df925d60898b96c32275182b7ef034711ab53e7ab811
39 DIST git-htmldocs-2.28.0.tar.xz 1347596 BLAKE2B 9c447f951cc31eb306841d12a94aefd3bb9699f374f2919f7eed0789f6b49cd54df74ecddaa1475203a5dca33140787f53272774f71ccbb48e5da5f1ab6bfbde SHA512 bbe7a7c221d1bb8d9852d5210a80b3d60c5b66f159591971abb2d9a08570cb7bf85686c7eba8cf37e04d37d63702906b308692a68c05fdbd0e3f3d60322003f0
40 DIST git-htmldocs-2.29.2.tar.xz 1364856 BLAKE2B 76498ef5bfdc058ad1e7c3b2c0c5ba715fa2682c7429db837cfeb7abe64ae3561e8b3f2dc032dd193514778271a040b1b120071d12ae5082a415db5084c7b6aa SHA512 d7223160af9bc97201bff59b94c8c09d331cdb9f979c878698230bb579b3f4751b6a455d8413ce09a507799744d7e3c77a2ad4d265386de7ef3ba9e11fb20445
41 DIST git-htmldocs-2.30.0.tar.xz 1340536 BLAKE2B 2204b276b941497e0ff5f1710c55b42f573b4eebd96619041db7afabb5a5d36252b2582b29e3d083abaf5da478810d056df83bdfa1d08c5396ffe03d0d858820 SHA512 3fc53a508497621c8af5ea26337407ed9489e768160c7063cfcc4bb53f51631ef968057f1498e37a901313aa08b4153533ca15a9bdfcbd04d2ed11256007db3e
42 -DIST git-manpages-2.23.3.tar.xz 449464 BLAKE2B bfc0153e43724df7210110e836d47f17258e45a876aa9bf4604c3f38e690e0e5379d4394df96c3dd84ea4d7371b7843729e6fb5d4b43fd7d4a9b4c3f4062a922 SHA512 a7b5fc48a5b840eb9b668b441ad3c30f65adc73c22cda461ffaca1cfddf154bf1974cab6c372b4534fd45a43a2e2ab96513364845a7db4285b88e31bf7619f8e
43 -DIST git-manpages-2.24.3.tar.xz 454796 BLAKE2B b340b33593e596a7a87385110fea53a96b68f0b0c5c02e046a1aff5ff7c7a6bf3d7a55c4d33796db8e84824df72451ad51db9fc44df4840ecd0183c0ef49eba0 SHA512 22709e159196da27befc26eef3ab40dab9700c95abf6892860a81c8e5df7d85ad423c877e6c88949cfc611c4dfebd956f02a78f0340c1cd4d58c48f80e3e1cce
44 -DIST git-manpages-2.25.4.tar.xz 459344 BLAKE2B b0ac88f691984f39f6cfbf41d2d61ab443573974277536641daddf0e9b7755ea9cb6bc96ecf3c14479809036171e461eff72cb498c63a56eea041341b8a65af5 SHA512 a67b881f289d5b3e2187ad55c5176258c30108c73fc7c18d50c1a6b42b241ce46dba28acf2f7bfc994b044444a6678096a35ad60936ea6cba07b52ddf647da17
45 DIST git-manpages-2.26.2.tar.xz 462052 BLAKE2B 27fc44360c9f890e9f7754e8423f5596548f076f5fec5dfc6c752e8b3caa5f64ba182c1566b67878b19fbb115297e08def1bf9d2711c7334cbb8e1b20fc039a1 SHA512 9591e94683a6b49d8b9f2afddc826576023fdfa6de6db4af3a28a2af00b175d5be710d86a31d0f1b8320cc38b6f27698e17fb3e8c1f2b0c5ced37296ef1109b6
46 -DIST git-manpages-2.27.0.tar.xz 470724 BLAKE2B 83db9c5aaf9ada63d4e6146ffa4f20f1d21797ba7c7b27ade9d6f4dedb1091591b8afe4f368a4433cf75d2b148d68cec725f5504504c703eb7c22916d17b8069 SHA512 a4ceb7b86d67d15a52fec22e9bac5c8b1a5447041c3278710c2e24f70d6d443853d6a6ec5eb5ab7633390c5fa2494dd495096c26a6467d9cb13d9da007a73d12
47 DIST git-manpages-2.28.0.tar.xz 472524 BLAKE2B 84752bee094eb879be8905dd561593e9f2a71d91971be7be83ed421bdeef83f7165f9506297bf23127a46a1d05c718999dab6b3ac3bda0ce0fba95ca64145de8 SHA512 ba4d41c2c2efd1eb5ab8ccf00efcebbc2fbbd31ab325da66b05181d15f677c2fc97c9eefd58c3b1c75a07276b399214f398df8d084c1a5092f982ce392876a2f
48 DIST git-manpages-2.29.2.tar.xz 478516 BLAKE2B d9a9840a8c869e2f7f9dade12c780032a7eeff59314b4d45c8c65e3f076e0335f0674c484fe7cebbc70d13b51a17b5fcf69b1bd51dca7ff226d76b1fed33d8bf SHA512 f2af31f8b2242961a0633258dd4668dbf21b26eff440e302608bc5bee2ed45a3e573528cdd0f11503d0ac4745e03cb457d99f5529fc96c105ce441ece07e4fe8
49 DIST git-manpages-2.30.0.tar.xz 481792 BLAKE2B 9f6273e36e06a0296506d43b25a826cef9e459fdd25ad2f844de323b998fe9b5a7e5181b21257e7b297ea4ce2e16cfaacf7f1c7486ce26b59e39e643361d4745 SHA512 9593d9bef8b3bdcd5645cf89e0f0c53989342414363ce85cfd46da181750c92e8f6dbd860c6badc9d871b383bb9cf273b4fb3af7f6d46a8df6b95fddeab578ae
50
51 diff --git a/dev-vcs/git/files/git-2.23.0-avoid_empty_remote_line.patch b/dev-vcs/git/files/git-2.23.0-avoid_empty_remote_line.patch
52 deleted file mode 100644
53 index f2bc3fd634e..00000000000
54 --- a/dev-vcs/git/files/git-2.23.0-avoid_empty_remote_line.patch
55 +++ /dev/null
56 @@ -1,145 +0,0 @@
57 -From bbf47568ad7e91ab0962b314c054a2da03232c72 Mon Sep 17 00:00:00 2001
58 -From: =?UTF-8?q?SZEDER=20G=C3=A1bor?= <szeder.dev@×××××.com>
59 -Date: Mon, 16 Sep 2019 22:54:11 +0200
60 -Subject: [PATCH] Revert "progress: use term_clear_line()"
61 -MIME-Version: 1.0
62 -Content-Type: text/plain; charset=UTF-8
63 -Content-Transfer-Encoding: 8bit
64 -
65 -This reverts commit 5b12e3123b (progress: use term_clear_line(),
66 -2019-06-24), because covering up the entire last line while refreshing
67 -the progress line caused unexpected problems during 'git
68 -clone/fetch/push':
69 -
70 - $ git clone ssh://localhost/home/szeder/src/tmp/linux.git/
71 - Cloning into 'linux'...
72 - remote:
73 - remote:
74 - remote:
75 - remote: Enumerating objects: 999295
76 -
77 -The length of the progress bar line can shorten when it includes
78 -throughput and the unit changes, or when its length exceeds the width
79 -of the terminal and is broken into two lines. In these cases the
80 -previously displayed longer progress line should be covered up,
81 -because otherwise the leftover characters from the previous progress
82 -line make the output look weird [1]. term_clear_line() makes this
83 -quite simple, as it covers up the entire last line either by using an
84 -ANSI control sequence or by printing a terminal width worth of space
85 -characters, depending on whether the terminal is smart or dumb.
86 -
87 -Unfortunately, when accessing a remote repository via any non-local
88 -protocol the remote 'git receive-pack/upload-pack' processes can't
89 -possibly have any idea about the local terminal (smart of dumb? how
90 -wide?) their progress will end up on. Consequently, they assume the
91 -worst, i.e. standard-width dumb terminal, and print 80 spaces to cover
92 -up the previously displayed progress line. The local 'git
93 -clone/fetch/push' processes then display the remote's progress,
94 -including these coverup spaces, with the 'remote: ' prefix, resulting
95 -in a total line length of 88 characters. If the local terminal is
96 -narrower than that, then the coverup gets line-wrapped, and after that
97 -the CR at the end doesn't return to the beginning of the progress
98 -line, but to the first column of its last line, resulting in those
99 -repeated 'remote: <many-spaces>' lines.
100 -
101 -By reverting 5b12e3123b (progress: use term_clear_line(),
102 -2019-06-24) we won't cover up the entire last line, but go back to
103 -comparing the length of the current progress bar line with the
104 -previous one, and cover up as many characters as needed.
105 -
106 -[1] See commits 545dc345eb (progress: break too long progress bar
107 - lines, 2019-04-12) and 9f1fd84e15 (progress: clear previous
108 - progress update dynamically, 2019-04-12).
109 -
110 -Signed-off-by: SZEDER Gábor <szeder.dev@×××××.com>
111 -Signed-off-by: Junio C Hamano <gitster@×××××.com>
112 ----
113 - progress.c | 29 ++++++++++++++++++-----------
114 - t/t5541-http-push-smart.sh | 6 +++---
115 - 2 files changed, 21 insertions(+), 14 deletions(-)
116 -
117 -diff --git a/progress.c b/progress.c
118 -index 277db8afa2..0eddf1804d 100644
119 ---- a/progress.c
120 -+++ b/progress.c
121 -@@ -88,6 +88,7 @@ static void display(struct progress *progress, uint64_t n, const char *done)
122 - const char *tp;
123 - struct strbuf *counters_sb = &progress->counters_sb;
124 - int show_update = 0;
125 -+ int last_count_len = counters_sb->len;
126 -
127 - if (progress->delay && (!progress_update || --progress->delay))
128 - return;
129 -@@ -115,21 +116,27 @@ static void display(struct progress *progress, uint64_t n, const char *done)
130 - if (show_update) {
131 - if (is_foreground_fd(fileno(stderr)) || done) {
132 - const char *eol = done ? done : "\r";
133 -+ size_t clear_len = counters_sb->len < last_count_len ?
134 -+ last_count_len - counters_sb->len + 1 :
135 -+ 0;
136 -+ /* The "+ 2" accounts for the ": ". */
137 -+ size_t progress_line_len = progress->title_len +
138 -+ counters_sb->len + 2;
139 -+ int cols = term_columns();
140 -
141 -- term_clear_line();
142 - if (progress->split) {
143 -- fprintf(stderr, " %s%s", counters_sb->buf,
144 -- eol);
145 -- } else if (!done &&
146 -- /* The "+ 2" accounts for the ": ". */
147 -- term_columns() < progress->title_len +
148 -- counters_sb->len + 2) {
149 -- fprintf(stderr, "%s:\n %s%s",
150 -- progress->title, counters_sb->buf, eol);
151 -+ fprintf(stderr, " %s%*s", counters_sb->buf,
152 -+ (int) clear_len, eol);
153 -+ } else if (!done && cols < progress_line_len) {
154 -+ clear_len = progress->title_len + 1 < cols ?
155 -+ cols - progress->title_len - 1 : 0;
156 -+ fprintf(stderr, "%s:%*s\n %s%s",
157 -+ progress->title, (int) clear_len, "",
158 -+ counters_sb->buf, eol);
159 - progress->split = 1;
160 - } else {
161 -- fprintf(stderr, "%s: %s%s", progress->title,
162 -- counters_sb->buf, eol);
163 -+ fprintf(stderr, "%s: %s%*s", progress->title,
164 -+ counters_sb->buf, (int) clear_len, eol);
165 - }
166 - fflush(stderr);
167 - }
168 -diff --git a/t/t5541-http-push-smart.sh b/t/t5541-http-push-smart.sh
169 -index b86ddb60f2..92bac43257 100755
170 ---- a/t/t5541-http-push-smart.sh
171 -+++ b/t/t5541-http-push-smart.sh
172 -@@ -262,7 +262,7 @@ test_expect_success TTY 'push shows progress when stderr is a tty' '
173 - cd "$ROOT_PATH"/test_repo_clone &&
174 - test_commit noisy &&
175 - test_terminal git push >output 2>&1 &&
176 -- test_i18ngrep "Writing objects" output
177 -+ test_i18ngrep "^Writing objects" output
178 - '
179 -
180 - test_expect_success TTY 'push --quiet silences status and progress' '
181 -@@ -277,7 +277,7 @@ test_expect_success TTY 'push --no-progress silences progress but not status' '
182 - test_commit no-progress &&
183 - test_terminal git push --no-progress >output 2>&1 &&
184 - test_i18ngrep "^To http" output &&
185 -- test_i18ngrep ! "Writing objects" output
186 -+ test_i18ngrep ! "^Writing objects" output
187 - '
188 -
189 - test_expect_success 'push --progress shows progress to non-tty' '
190 -@@ -285,7 +285,7 @@ test_expect_success 'push --progress shows progress to non-tty' '
191 - test_commit progress &&
192 - git push --progress >output 2>&1 &&
193 - test_i18ngrep "^To http" output &&
194 -- test_i18ngrep "Writing objects" output
195 -+ test_i18ngrep "^Writing objects" output
196 - '
197 -
198 - test_expect_success 'http push gives sane defaults to reflog' '
199 ---
200 -2.24.0.rc1
201 -
202
203 diff --git a/dev-vcs/git/git-2.23.3.ebuild b/dev-vcs/git/git-2.23.3.ebuild
204 deleted file mode 100644
205 index f998898de98..00000000000
206 --- a/dev-vcs/git/git-2.23.3.ebuild
207 +++ /dev/null
208 @@ -1,708 +0,0 @@
209 -# Copyright 1999-2021 Gentoo Authors
210 -# Distributed under the terms of the GNU General Public License v2
211 -
212 -EAPI=6
213 -
214 -GENTOO_DEPEND_ON_PERL=no
215 -
216 -# bug #329479: git-remote-testgit is not multiple-version aware
217 -PYTHON_COMPAT=( python3_{6,7,8} )
218 -
219 -inherit toolchain-funcs elisp-common l10n perl-module bash-completion-r1 python-single-r1 systemd
220 -
221 -PLOCALES="bg ca de es fr is it ko pt_PT ru sv vi zh_CN"
222 -if [[ ${PV} == *9999 ]]; then
223 - inherit git-r3
224 - EGIT_REPO_URI="git://git.kernel.org/pub/scm/git/git.git"
225 - # Please ensure that all _four_ 9999 ebuilds get updated; they track the 4 upstream branches.
226 - # See https://git-scm.com/docs/gitworkflows#_graduation
227 - # In order of stability:
228 - # 9999-r0: maint
229 - # 9999-r1: master
230 - # 9999-r2: next
231 - # 9999-r3: pu
232 - case "${PVR}" in
233 - 9999) EGIT_BRANCH=maint ;;
234 - 9999-r1) EGIT_BRANCH=master ;;
235 - 9999-r2) EGIT_BRANCH=next;;
236 - 9999-r3) EGIT_BRANCH=pu ;;
237 - esac
238 -fi
239 -
240 -MY_PV="${PV/_rc/.rc}"
241 -MY_P="${PN}-${MY_PV}"
242 -
243 -DOC_VER="${MY_PV}"
244 -
245 -DESCRIPTION="stupid content tracker: distributed VCS designed for speed and efficiency"
246 -HOMEPAGE="https://www.git-scm.com/"
247 -if [[ ${PV} != *9999 ]]; then
248 - SRC_URI_SUFFIX="xz"
249 - SRC_URI_KORG="https://www.kernel.org/pub/software/scm/git"
250 - [[ "${PV/rc}" != "${PV}" ]] && SRC_URI_KORG+='/testing'
251 - SRC_URI="${SRC_URI_KORG}/${MY_P}.tar.${SRC_URI_SUFFIX}
252 - ${SRC_URI_KORG}/${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
253 - doc? (
254 - ${SRC_URI_KORG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
255 - )"
256 - [[ "${PV}" == *_rc* ]] || \
257 - KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 ~riscv s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
258 -fi
259 -
260 -LICENSE="GPL-2"
261 -SLOT="0"
262 -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"
263 -
264 -# Common to both DEPEND and RDEPEND
265 -CDEPEND="
266 - gnome-keyring? ( app-crypt/libsecret )
267 - !libressl? ( dev-libs/openssl:0= )
268 - libressl? ( dev-libs/libressl:= )
269 - sys-libs/zlib
270 - pcre? (
271 - pcre-jit? ( dev-libs/libpcre2[jit(+)] )
272 - !pcre-jit? ( dev-libs/libpcre )
273 - )
274 - perl? ( dev-lang/perl:=[-build(-)] )
275 - tk? ( dev-lang/tk:0= )
276 - curl? (
277 - net-misc/curl
278 - webdav? ( dev-libs/expat )
279 - )
280 - emacs? ( >=app-editors/emacs-23.1:* )
281 - iconv? ( virtual/libiconv )
282 -"
283 -
284 -RDEPEND="${CDEPEND}
285 - gpg? ( app-crypt/gnupg )
286 - perl? (
287 - dev-perl/Error
288 - dev-perl/MailTools
289 - dev-perl/Authen-SASL
290 - cgi? (
291 - dev-perl/CGI
292 - highlight? ( app-text/highlight )
293 - )
294 - cvs? (
295 - >=dev-vcs/cvsps-2.1:0
296 - dev-perl/DBI
297 - dev-perl/DBD-SQLite
298 - )
299 - mediawiki? (
300 - dev-perl/DateTime-Format-ISO8601
301 - dev-perl/HTML-Tree
302 - dev-perl/MediaWiki-API
303 - )
304 - subversion? (
305 - dev-vcs/subversion[-dso(-),perl]
306 - dev-perl/libwww-perl
307 - dev-perl/TermReadKey
308 - )
309 - )
310 - perforce? ( ${PYTHON_DEPS} )
311 -"
312 -
313 -# This is how info docs are created with Git:
314 -# .txt/asciidoc --(asciidoc)---------> .xml/docbook
315 -# .xml/docbook --(docbook2texi.pl)--> .texi
316 -# .texi --(makeinfo)---------> .info
317 -DEPEND="${CDEPEND}
318 - doc? (
319 - app-text/asciidoc
320 - app-text/docbook2X
321 - app-text/xmlto
322 - sys-apps/texinfo
323 - )
324 - nls? ( sys-devel/gettext )
325 - test? ( app-crypt/gnupg )"
326 -
327 -# Live ebuild builds man pages and HTML docs, additionally
328 -if [[ ${PV} == *9999 ]]; then
329 - DEPEND="${DEPEND}
330 - app-text/asciidoc"
331 -fi
332 -
333 -SITEFILE="50${PN}-gentoo.el"
334 -S="${WORKDIR}/${MY_P}"
335 -
336 -REQUIRED_USE="
337 - cgi? ( perl )
338 - cvs? ( perl )
339 - mediawiki? ( perl )
340 - mediawiki-experimental? ( mediawiki )
341 - subversion? ( perl )
342 - webdav? ( curl )
343 - pcre-jit? ( pcre )
344 - perforce? ( ${PYTHON_REQUIRED_USE} )
345 -"
346 -
347 -RESTRICT="!test? ( test )"
348 -
349 -PATCHES=(
350 - # bug #350330 - automagic CVS when we don't want it is bad.
351 - "${FILESDIR}"/git-2.22.0_rc0-optional-cvs.patch
352 -
353 - "${FILESDIR}"/git-2.2.0-svn-fe-linking.patch
354 -
355 - # Make submodule output quiet
356 - "${FILESDIR}"/git-2.21.0-quiet-submodules-testcase.patch
357 -
358 - "${FILESDIR}"/git-2.23.0-avoid_empty_remote_line.patch #698384
359 -)
360 -
361 -pkg_setup() {
362 - if use subversion && has_version "dev-vcs/subversion[dso]"; then
363 - ewarn "Per Gentoo bugs #223747, #238586, when subversion is built"
364 - ewarn "with USE=dso, there may be weird crashes in git-svn. You"
365 - ewarn "have been warned."
366 - fi
367 - if use perforce ; then
368 - python-single-r1_pkg_setup
369 - fi
370 -}
371 -
372 -# This is needed because for some obscure reasons future calls to make don't
373 -# pick up these exports if we export them in src_unpack()
374 -exportmakeopts() {
375 - local myopts=(
376 - ASCIIDOC_NO_ROFF=YesPlease
377 - $(usex cvs '' NO_CVS=YesPlease)
378 - $(usex elibc_musl NO_REGEX=YesPlease '')
379 - $(usex iconv '' NO_ICONV=YesPlease)
380 - $(usex nls '' NO_GETTEXT=YesPlease)
381 - $(usex perl 'INSTALLDIRS=vendor NO_PERL_CPAN_FALLBACKS=YesPlease' NO_PERL=YesPlease)
382 - $(usex perforce '' NO_PYTHON=YesPlease)
383 - $(usex subversion '' NO_SVN_TESTS=YesPlease)
384 - $(usex threads '' NO_PTHREADS=YesPlease)
385 - $(usex tk '' NO_TCLTK=YesPlease)
386 - )
387 -
388 - if use blksha1 ; then
389 - myopts+=( BLK_SHA1=YesPlease )
390 - elif use ppcsha1 ; then
391 - myopts+=( PPC_SHA1=YesPlease )
392 - fi
393 -
394 - if use curl ; then
395 - use webdav || myopts+=( NO_EXPAT=YesPlease )
396 - else
397 - myopts+=( NO_CURL=YesPlease )
398 - fi
399 -
400 - # broken assumptions, because of static build system ...
401 - myopts+=(
402 - NO_FINK=YesPlease
403 - NO_DARWIN_PORTS=YesPlease
404 - INSTALL=install
405 - TAR=tar
406 - SHELL_PATH="${EPREFIX}/bin/sh"
407 - SANE_TOOL_PATH=
408 - OLD_ICONV=
409 - NO_EXTERNAL_GREP=
410 - )
411 -
412 - # For svn-fe
413 - extlibs=( -lz -lssl ${S}/xdiff/lib.a $(usex threads -lpthread '') )
414 -
415 - # can't define this to null, since the entire makefile depends on it
416 - sed -i -e '/\/usr\/local/s/BASIC_/#BASIC_/' Makefile || die
417 -
418 - if use pcre; then
419 - if use pcre-jit; then
420 - myopts+=( USE_LIBPCRE2=YesPlease )
421 - extlibs+=( -lpcre2-8 )
422 - else
423 - myopts+=(
424 - USE_LIBPCRE1=YesPlease
425 - NO_LIBPCRE1_JIT=YesPlease
426 - )
427 - extlibs+=( -lpcre )
428 - fi
429 - fi
430 - if [[ ${CHOST} == *-solaris* ]]; then
431 - myopts+=(
432 - NEEDS_LIBICONV=YesPlease
433 - HAVE_CLOCK_MONOTONIC=1
434 - )
435 - grep -q getdelim "${ROOT%/}"/usr/include/stdio.h && \
436 - myopts+=( HAVE_GETDELIM=1 )
437 - fi
438 -
439 - has_version '>=app-text/asciidoc-8.0' \
440 - && myopts+=( ASCIIDOC8=YesPlease )
441 -
442 - # Bug 290465:
443 - # builtin-fetch-pack.c:816: error: 'struct stat' has no member named 'st_mtim'
444 - if [[ "${CHOST}" == *-uclibc* ]] ; then
445 - myopts+=( NO_NSEC=YesPlease )
446 - use iconv && myopts+=( NEEDS_LIBICONV=YesPlease )
447 - fi
448 -
449 - export MY_MAKEOPTS="${myopts[@]}"
450 - export EXTLIBS="${extlibs[@]}"
451 -}
452 -
453 -src_unpack() {
454 - if [[ ${PV} != *9999 ]]; then
455 - unpack ${MY_P}.tar.${SRC_URI_SUFFIX}
456 - cd "${S}" || die
457 - unpack ${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
458 - if use doc ; then
459 - pushd "${S}"/Documentation &>/dev/null || die
460 - unpack ${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
461 - popd &>/dev/null || die
462 - fi
463 - else
464 - git-r3_src_unpack
465 - #cp "${FILESDIR}"/GIT-VERSION-GEN .
466 - fi
467 -
468 -}
469 -
470 -src_prepare() {
471 - # add experimental patches to improve mediawiki support
472 - # see patches for origin
473 - if use mediawiki-experimental ; then
474 - PATCHES+=(
475 - "${FILESDIR}"/git-2.7.0-mediawiki-namespaces.patch
476 - "${FILESDIR}"/git-2.7.0-mediawiki-subpages.patch
477 - "${FILESDIR}"/git-2.7.0-mediawiki-500pages.patch
478 - )
479 - fi
480 -
481 - default
482 -
483 - sed -i \
484 - -e 's:^\(CFLAGS[[:space:]]*=\).*$:\1 $(OPTCFLAGS) -Wall:' \
485 - -e 's:^\(LDFLAGS[[:space:]]*=\).*$:\1 $(OPTLDFLAGS):' \
486 - -e 's:^\(CC[[:space:]]* =\).*$:\1$(OPTCC):' \
487 - -e 's:^\(AR[[:space:]]* =\).*$:\1$(OPTAR):' \
488 - -e "s:\(PYTHON_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
489 - -e "s:\(PERL_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
490 - Makefile contrib/svn-fe/Makefile || die
491 -
492 - # Fix docbook2texi command
493 - sed -r -i 's/DOCBOOK2X_TEXI[[:space:]]*=[[:space:]]*docbook2x-texi/DOCBOOK2X_TEXI = docbook2texi.pl/' \
494 - Documentation/Makefile || die
495 -}
496 -
497 -git_emake() {
498 - # bug #320647: PYTHON_PATH
499 - local PYTHON_PATH=""
500 - use perforce && PYTHON_PATH="${PYTHON}"
501 - emake ${MY_MAKEOPTS} \
502 - prefix="${EPREFIX}"/usr \
503 - htmldir="${EPREFIX}"/usr/share/doc/${PF}/html \
504 - perllibdir="$(use perl && perl_get_raw_vendorlib)" \
505 - sysconfdir="${EPREFIX}"/etc \
506 - DESTDIR="${D}" \
507 - GIT_TEST_OPTS="--no-color" \
508 - OPTAR="$(tc-getAR)" \
509 - OPTCC="$(tc-getCC)" \
510 - OPTCFLAGS="${CFLAGS}" \
511 - OPTLDFLAGS="${LDFLAGS}" \
512 - PERL_PATH="${EPREFIX}/usr/bin/perl" \
513 - PERL_MM_OPT="" \
514 - PYTHON_PATH="${PYTHON_PATH}" \
515 - V=1 \
516 - "$@"
517 -}
518 -
519 -src_configure() {
520 - exportmakeopts
521 -}
522 -
523 -src_compile() {
524 - git_emake || die "emake failed"
525 -
526 - if use emacs ; then
527 - elisp-compile contrib/emacs/git{,-blame}.el
528 - fi
529 -
530 - if use perl && use cgi ; then
531 - git_emake \
532 - gitweb \
533 - || die "emake gitweb (cgi) failed"
534 - fi
535 -
536 - if [[ ${CHOST} == *-darwin* ]]; then
537 - pushd contrib/credential/osxkeychain &>/dev/null || die
538 - git_emake CC=$(tc-getCC) CFLAGS="${CFLAGS}" \
539 - || die "emake credential-osxkeychain"
540 - popd &>/dev/null || die
541 - fi
542 -
543 - pushd Documentation &>/dev/null || die
544 - if [[ ${PV} == *9999 ]] ; then
545 - git_emake man \
546 - || die "emake man failed"
547 - if use doc ; then
548 - git_emake info html \
549 - || die "emake info html failed"
550 - fi
551 - else
552 - if use doc ; then
553 - git_emake info \
554 - || die "emake info html failed"
555 - fi
556 - fi
557 - popd &>/dev/null || die
558 -
559 - if use subversion ; then
560 - pushd contrib/svn-fe &>/dev/null || die
561 - # by defining EXTLIBS we override the detection for libintl and
562 - # libiconv, bug #516168
563 - local nlsiconv=()
564 - use nls && use !elibc_glibc && nlsiconv+=( -lintl )
565 - use iconv && use !elibc_glibc && nlsiconv+=( -liconv )
566 - git_emake EXTLIBS="${EXTLIBS} ${nlsiconv[@]}" \
567 - || die "emake svn-fe failed"
568 - if use doc ; then
569 - # svn-fe.1 requires the full USE=doc dependency stack
570 - git_emake svn-fe.1 \
571 - || die "emake svn-fe.1 failed"
572 - git_emake svn-fe.html \
573 - || die "svn-fe.html failed"
574 - fi
575 - popd &>/dev/null || die
576 - fi
577 -
578 - if use gnome-keyring ; then
579 - pushd contrib/credential/libsecret &>/dev/null || die
580 - git_emake || die "emake git-credential-libsecret failed"
581 - popd &>/dev/null || die
582 - fi
583 -
584 - pushd contrib/subtree &>/dev/null || die
585 - git_emake git-subtree
586 - # git-subtree.1 requires the full USE=doc dependency stack
587 - use doc && git_emake git-subtree.html git-subtree.1
588 - popd &>/dev/null || die
589 -
590 - pushd contrib/diff-highlight &>/dev/null || die
591 - git_emake
592 - popd &>/dev/null || die
593 -
594 - if use mediawiki ; then
595 - pushd contrib/mw-to-git &>/dev/null || die
596 - git_emake
597 - popd &>/dev/null || die
598 -
599 - fi
600 -}
601 -
602 -src_install() {
603 - git_emake install || die "make install failed"
604 -
605 - if [[ ${CHOST} == *-darwin* ]]; then
606 - dobin contrib/credential/osxkeychain/git-credential-osxkeychain
607 - fi
608 -
609 - # Depending on the tarball and manual rebuild of the documentation, the
610 - # manpages may exist in either OR both of these directories.
611 - find man?/*.[157] >/dev/null 2>&1 && doman man?/*.[157]
612 - find Documentation/*.[157] >/dev/null 2>&1 && doman Documentation/*.[157]
613 - dodoc README* Documentation/{SubmittingPatches,CodingGuidelines}
614 - use doc && dodir /usr/share/doc/${PF}/html
615 - local d
616 - for d in / /howto/ /technical/ ; do
617 - docinto ${d}
618 - dodoc Documentation${d}*.txt
619 - if use doc ; then
620 - docinto ${d}/html
621 - dodoc Documentation${d}*.html
622 - fi
623 - done
624 - docinto /
625 - # Upstream does not ship this pre-built :-(
626 - use doc && doinfo Documentation/{git,gitman}.info
627 -
628 - newbashcomp contrib/completion/git-completion.bash ${PN}
629 - bashcomp_alias git gitk
630 - # Not really a bash-completion file (bug #477920)
631 - # but still needed uncompressed (bug #507480)
632 - insinto /usr/share/${PN}
633 - doins contrib/completion/git-prompt.sh
634 -
635 - if use emacs ; then
636 - elisp-install ${PN} contrib/emacs/git.{el,elc}
637 - elisp-install ${PN} contrib/emacs/git-blame.{el,elc}
638 - #elisp-install ${PN}/compat contrib/emacs/vc-git.{el,elc}
639 - # don't add automatically to the load-path, so the sitefile
640 - # can do a conditional loading
641 - touch "${ED%/}${SITELISP}/${PN}/compat/.nosearch"
642 - elisp-site-file-install "${FILESDIR}"/${SITEFILE}
643 - fi
644 -
645 - #dobin contrib/fast-import/git-p4 # Moved upstream
646 - #dodoc contrib/fast-import/git-p4.txt # Moved upstream
647 - newbin contrib/fast-import/import-tars.perl import-tars
648 - exeinto /usr/libexec/git-core/
649 - newexe contrib/git-resurrect.sh git-resurrect
650 -
651 - # git-subtree
652 - pushd contrib/subtree &>/dev/null || die
653 - git_emake install || die "Failed to emake install for git-subtree"
654 - if use doc ; then
655 - # Do not move git subtree install-man outside USE=doc!
656 - git_emake install-man install-html || die "Failed to emake install-html install-man for git-subtree"
657 - fi
658 - newdoc README README.git-subtree
659 - dodoc git-subtree.txt
660 - popd &>/dev/null || die
661 -
662 - if use mediawiki ; then
663 - pushd contrib/mw-to-git &>/dev/null || die
664 - git_emake install
665 - popd &>/dev/null || die
666 - fi
667 -
668 - # diff-highlight
669 - dobin contrib/diff-highlight/diff-highlight
670 - newdoc contrib/diff-highlight/README README.diff-highlight
671 -
672 - # git-jump
673 - exeinto /usr/libexec/git-core/
674 - doexe contrib/git-jump/git-jump
675 - newdoc contrib/git-jump/README git-jump.txt
676 -
677 - # git-contacts
678 - exeinto /usr/libexec/git-core/
679 - doexe contrib/contacts/git-contacts
680 - dodoc contrib/contacts/git-contacts.txt
681 -
682 - if use gnome-keyring ; then
683 - pushd contrib/credential/libsecret &>/dev/null || die
684 - dobin git-credential-libsecret
685 - popd &>/dev/null || die
686 - fi
687 -
688 - if use subversion ; then
689 - pushd contrib/svn-fe &>/dev/null || die
690 - dobin svn-fe
691 - dodoc svn-fe.txt
692 - if use doc ; then
693 - # Do not move svn-fe.1 outside USE=doc!
694 - doman svn-fe.1
695 - docinto html
696 - dodoc svn-fe.html
697 - fi
698 - popd &>/dev/null || die
699 - fi
700 -
701 - dodir /usr/share/${PN}/contrib
702 - # The following are excluded:
703 - # completion - installed above
704 - # diff-highlight - done above
705 - # emacs - installed above
706 - # examples - these are stuff that is not used in Git anymore actually
707 - # git-jump - done above
708 - # gitview - installed above
709 - # p4import - excluded because fast-import has a better one
710 - # patches - stuff the Git guys made to go upstream to other places
711 - # persistent-https - TODO
712 - # mw-to-git - TODO
713 - # subtree - build seperately
714 - # svnimport - use git-svn
715 - # thunderbird-patch-inline - fixes thunderbird
716 - local contrib_objects=(
717 - buildsystems
718 - fast-import
719 - hg-to-git
720 - hooks
721 - remotes2config.sh
722 - rerere-train.sh
723 - stats
724 - workdir
725 - )
726 - local i
727 - for i in "${contrib_objects[@]}" ; do
728 - cp -rf \
729 - "${S}"/contrib/${i} \
730 - "${ED%/}"/usr/share/${PN}/contrib \
731 - || die "Failed contrib ${i}"
732 - done
733 -
734 - if use perl && use cgi ; then
735 - # We used to install in /usr/share/${PN}/gitweb
736 - # but upstream installs in /usr/share/gitweb
737 - # so we will install a symlink and use their location for compat with other
738 - # distros
739 - dosym ../gitweb /usr/share/${PN}/gitweb
740 -
741 - # INSTALL discusses configuration issues, not just installation
742 - docinto /
743 - newdoc "${S}"/gitweb/INSTALL INSTALL.gitweb
744 - newdoc "${S}"/gitweb/README README.gitweb
745 -
746 - for d in "${ED%/}"/usr/lib{,64}/perl5/ ; do
747 - if test -d "${d}" ; then find "${d}" \
748 - -name .packlist \
749 - -delete || die
750 - fi
751 - done
752 - else
753 - rm -rf "${ED%/}"/usr/share/gitweb
754 - fi
755 -
756 - if ! use subversion ; then
757 - rm -f "${ED%/}"/usr/libexec/git-core/git-svn \
758 - "${ED%/}"/usr/share/man/man1/git-svn.1*
759 - fi
760 -
761 - if use xinetd ; then
762 - insinto /etc/xinetd.d
763 - newins "${FILESDIR}"/git-daemon.xinetd git-daemon
764 - fi
765 -
766 - if use !prefix ; then
767 - newinitd "${FILESDIR}"/git-daemon-r1.initd git-daemon
768 - newconfd "${FILESDIR}"/git-daemon.confd git-daemon
769 - systemd_newunit "${FILESDIR}/git-daemon_at-r1.service" "git-daemon@.service"
770 - systemd_dounit "${FILESDIR}/git-daemon.socket"
771 - fi
772 -
773 - perl_delete_localpod
774 -
775 - # Remove disabled linguas
776 - # we could remove sources in src_prepare, but install does not
777 - # handle missing locale dir well
778 - rm_loc() {
779 - if [[ -e "${ED%/}/usr/share/locale/${1}" ]]; then
780 - rm -r "${ED%/}/usr/share/locale/${1}" || die
781 - fi
782 - }
783 - l10n_for_each_disabled_locale_do rm_loc
784 -}
785 -
786 -src_test() {
787 - local disabled=()
788 - local tests_cvs=(
789 - t9200-git-cvsexportcommit.sh
790 - t9400-git-cvsserver-server.sh
791 - t9401-git-cvsserver-crlf.sh
792 - t9402-git-cvsserver-refs.sh
793 - t9600-cvsimport.sh
794 - t9601-cvsimport-vendor-branch.sh
795 - t9602-cvsimport-branches-tags.sh
796 - t9603-cvsimport-patchsets.sh
797 - t9604-cvsimport-timestamps.sh
798 - )
799 - local tests_perl=(
800 - t3701-add-interactive.sh
801 - t5502-quickfetch.sh
802 - t5512-ls-remote.sh
803 - t5520-pull.sh
804 - t7106-reset-unborn-branch.sh
805 - t7501-commit.sh
806 - )
807 - # Bug #225601 - t0004 is not suitable for root perm
808 - # Bug #219839 - t1004 is not suitable for root perm
809 - # t0001-init.sh - check for init notices EPERM* fails
810 - local tests_nonroot=(
811 - t0001-init.sh
812 - t0004-unwritable.sh
813 - t0070-fundamental.sh
814 - t1004-read-tree-m-u-wf.sh
815 - t3700-add.sh
816 - t7300-clean.sh
817 - )
818 - # t9100 still fails with symlinks in SVN 1.7
819 - local test_svn=( t9100-git-svn-basic.sh )
820 -
821 - # Unzip is used only for the testcase code, not by any normal parts of Git.
822 - if ! has_version app-arch/unzip ; then
823 - einfo "Disabling tar-tree tests"
824 - disabled+=( t5000-tar-tree.sh )
825 - fi
826 -
827 - local cvs=0
828 - use cvs && let cvs=${cvs}+1
829 - if [[ ${EUID} -eq 0 ]]; then
830 - if [[ ${cvs} -eq 1 ]]; then
831 - ewarn "Skipping CVS tests because CVS does not work as root!"
832 - ewarn "You should retest with FEATURES=userpriv!"
833 - disabled+=( ${tests_cvs[@]} )
834 - fi
835 - einfo "Skipping other tests that require being non-root"
836 - disabled+=( ${tests_nonroot[@]} )
837 - else
838 - [[ ${cvs} -gt 0 ]] && \
839 - has_version dev-vcs/cvs && \
840 - let cvs=${cvs}+1
841 - [[ ${cvs} -gt 1 ]] && \
842 - has_version "dev-vcs/cvs[server]" && \
843 - let cvs=${cvs}+1
844 - if [[ ${cvs} -lt 3 ]]; then
845 - einfo "Disabling CVS tests (needs dev-vcs/cvs[USE=server])"
846 - disabled+=( ${tests_cvs[@]} )
847 - fi
848 - fi
849 -
850 - if ! use perl ; then
851 - einfo "Disabling tests that need Perl"
852 - disabled+=( ${tests_perl[@]} )
853 - fi
854 -
855 - einfo "Disabling tests that fail with SVN 1.7"
856 - disabled+=( ${test_svn[@]} )
857 -
858 - # Reset all previously disabled tests
859 - pushd t &>/dev/null || die
860 - local i
861 - for i in *.sh.DISABLED ; do
862 - [[ -f "${i}" ]] && mv -f "${i}" "${i%.DISABLED}"
863 - done
864 - einfo "Disabled tests:"
865 - for i in ${disabled[@]} ; do
866 - [[ -f "${i}" ]] && mv -f "${i}" "${i}.DISABLED" && einfo "Disabled ${i}"
867 - done
868 -
869 - # Avoid the test system removing the results because we want them ourselves
870 - sed -e '/^[[:space:]]*$(MAKE) clean/s,^,#,g' \
871 - -i Makefile || die
872 -
873 - # Clean old results first, must always run
874 - nonfatal git_emake clean
875 - popd &>/dev/null || die
876 -
877 - # Now run the tests, keep going if we hit an error, and don't terminate on
878 - # failure
879 - local rc
880 - einfo "Start test run"
881 - #MAKEOPTS=-j1
882 - nonfatal git_emake --keep-going test
883 - rc=$?
884 -
885 - # Display nice results, now print the results
886 - pushd t &>/dev/null || die
887 - nonfatal git_emake aggregate-results
888 -
889 - # And bail if there was a problem
890 - [ ${rc} -eq 0 ] || die "tests failed. Please file a bug."
891 -}
892 -
893 -showpkgdeps() {
894 - local pkg=$1
895 - shift
896 - elog " $(printf "%-17s:" ${pkg}) ${@}"
897 -}
898 -
899 -pkg_postinst() {
900 - use emacs && elisp-site-regen
901 - elog "Please read /usr/share/bash-completion/completions/git for Git bash command"
902 - elog "completion."
903 - elog "Please read /usr/share/git/git-prompt.sh for Git bash prompt"
904 - elog "Note that the prompt bash code is now in that separate script"
905 - elog "These additional scripts need some dependencies:"
906 - echo
907 - showpkgdeps git-quiltimport "dev-util/quilt"
908 - showpkgdeps git-instaweb \
909 - "|| ( www-servers/lighttpd www-servers/apache www-servers/nginx )"
910 - echo
911 - use mediawiki-experimental && ewarn "Using experimental git-mediawiki patches. The stability of cloned wiki filesystems is not guaranteed."
912 -}
913 -
914 -pkg_postrm() {
915 - use emacs && elisp-site-regen
916 -}
917
918 diff --git a/dev-vcs/git/git-2.24.3.ebuild b/dev-vcs/git/git-2.24.3.ebuild
919 deleted file mode 100644
920 index 82ddfbb3bb5..00000000000
921 --- a/dev-vcs/git/git-2.24.3.ebuild
922 +++ /dev/null
923 @@ -1,711 +0,0 @@
924 -# Copyright 1999-2021 Gentoo Authors
925 -# Distributed under the terms of the GNU General Public License v2
926 -
927 -EAPI=7
928 -
929 -GENTOO_DEPEND_ON_PERL=no
930 -
931 -# bug #329479: git-remote-testgit is not multiple-version aware
932 -PYTHON_COMPAT=( python3_{6,7,8} )
933 -
934 -inherit toolchain-funcs elisp-common l10n perl-module bash-completion-r1 python-single-r1 systemd
935 -
936 -PLOCALES="bg ca de es fr is it ko pt_PT ru sv vi zh_CN"
937 -if [[ ${PV} == *9999 ]]; then
938 - inherit git-r3
939 - EGIT_REPO_URI="git://git.kernel.org/pub/scm/git/git.git"
940 - # Please ensure that all _four_ 9999 ebuilds get updated; they track the 4 upstream branches.
941 - # See https://git-scm.com/docs/gitworkflows#_graduation
942 - # In order of stability:
943 - # 9999-r0: maint
944 - # 9999-r1: master
945 - # 9999-r2: next
946 - # 9999-r3: pu
947 - case "${PVR}" in
948 - 9999) EGIT_BRANCH=maint ;;
949 - 9999-r1) EGIT_BRANCH=master ;;
950 - 9999-r2) EGIT_BRANCH=next;;
951 - 9999-r3) EGIT_BRANCH=pu ;;
952 - esac
953 -fi
954 -
955 -MY_PV="${PV/_rc/.rc}"
956 -MY_P="${PN}-${MY_PV}"
957 -
958 -DOC_VER="${MY_PV}"
959 -
960 -DESCRIPTION="stupid content tracker: distributed VCS designed for speed and efficiency"
961 -HOMEPAGE="https://www.git-scm.com/"
962 -if [[ ${PV} != *9999 ]]; then
963 - SRC_URI_SUFFIX="xz"
964 - SRC_URI_KORG="https://www.kernel.org/pub/software/scm/git"
965 - [[ "${PV/rc}" != "${PV}" ]] && SRC_URI_KORG+='/testing'
966 - SRC_URI="${SRC_URI_KORG}/${MY_P}.tar.${SRC_URI_SUFFIX}
967 - ${SRC_URI_KORG}/${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
968 - doc? (
969 - ${SRC_URI_KORG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
970 - )"
971 - [[ "${PV}" == *_rc* ]] || \
972 - KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 ~riscv s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
973 -fi
974 -
975 -LICENSE="GPL-2"
976 -SLOT="0"
977 -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"
978 -
979 -# Common to both DEPEND and RDEPEND
980 -DEPEND="
981 - gnome-keyring? ( app-crypt/libsecret )
982 - !libressl? ( dev-libs/openssl:0= )
983 - libressl? ( dev-libs/libressl:= )
984 - sys-libs/zlib
985 - pcre? (
986 - pcre-jit? ( dev-libs/libpcre2[jit(+)] )
987 - !pcre-jit? ( dev-libs/libpcre )
988 - )
989 - perl? ( dev-lang/perl:=[-build(-)] )
990 - tk? ( dev-lang/tk:0= )
991 - curl? (
992 - net-misc/curl
993 - webdav? ( dev-libs/expat )
994 - )
995 - emacs? ( >=app-editors/emacs-23.1:* )
996 - iconv? ( virtual/libiconv )
997 -"
998 -
999 -RDEPEND="${DEPEND}
1000 - gpg? ( app-crypt/gnupg )
1001 - perl? (
1002 - dev-perl/Error
1003 - dev-perl/MailTools
1004 - dev-perl/Authen-SASL
1005 - cgi? (
1006 - dev-perl/CGI
1007 - highlight? ( app-text/highlight )
1008 - )
1009 - cvs? (
1010 - >=dev-vcs/cvsps-2.1:0
1011 - dev-perl/DBI
1012 - dev-perl/DBD-SQLite
1013 - )
1014 - mediawiki? (
1015 - dev-perl/DateTime-Format-ISO8601
1016 - dev-perl/HTML-Tree
1017 - dev-perl/MediaWiki-API
1018 - )
1019 - subversion? (
1020 - dev-vcs/subversion[-dso(-),perl]
1021 - dev-perl/libwww-perl
1022 - dev-perl/TermReadKey
1023 - )
1024 - )
1025 - perforce? ( ${PYTHON_DEPS} )
1026 -"
1027 -
1028 -# This is how info docs are created with Git:
1029 -# .txt/asciidoc --(asciidoc)---------> .xml/docbook
1030 -# .xml/docbook --(docbook2texi.pl)--> .texi
1031 -# .texi --(makeinfo)---------> .info
1032 -BDEPEND="
1033 - doc? (
1034 - app-text/asciidoc
1035 - app-text/docbook2X
1036 - app-text/xmlto
1037 - sys-apps/texinfo
1038 - )
1039 - nls? ( sys-devel/gettext )
1040 - test? ( app-crypt/gnupg )
1041 -"
1042 -
1043 -# Live ebuild builds man pages and HTML docs, additionally
1044 -if [[ ${PV} == *9999 ]]; then
1045 - BDEPEND="${BDEPEND}
1046 - app-text/asciidoc"
1047 -fi
1048 -
1049 -SITEFILE="50${PN}-gentoo.el"
1050 -S="${WORKDIR}/${MY_P}"
1051 -
1052 -REQUIRED_USE="
1053 - cgi? ( perl )
1054 - cvs? ( perl )
1055 - mediawiki? ( perl )
1056 - mediawiki-experimental? ( mediawiki )
1057 - subversion? ( perl )
1058 - webdav? ( curl )
1059 - pcre-jit? ( pcre )
1060 - perforce? ( ${PYTHON_REQUIRED_USE} )
1061 -"
1062 -
1063 -RESTRICT="!test? ( test )"
1064 -
1065 -PATCHES=(
1066 - # bug #350330 - automagic CVS when we don't want it is bad.
1067 - "${FILESDIR}"/git-2.22.0_rc0-optional-cvs.patch
1068 -
1069 - "${FILESDIR}"/git-2.2.0-svn-fe-linking.patch
1070 -
1071 - # Make submodule output quiet
1072 - "${FILESDIR}"/git-2.21.0-quiet-submodules-testcase.patch
1073 -)
1074 -
1075 -pkg_setup() {
1076 - if use subversion && has_version "dev-vcs/subversion[dso]"; then
1077 - ewarn "Per Gentoo bugs #223747, #238586, when subversion is built"
1078 - ewarn "with USE=dso, there may be weird crashes in git-svn. You"
1079 - ewarn "have been warned."
1080 - fi
1081 - if use perforce ; then
1082 - python-single-r1_pkg_setup
1083 - fi
1084 -}
1085 -
1086 -# This is needed because for some obscure reasons future calls to make don't
1087 -# pick up these exports if we export them in src_unpack()
1088 -exportmakeopts() {
1089 - local extlibs myopts
1090 -
1091 - myopts=(
1092 - ASCIIDOC_NO_ROFF=YesPlease
1093 - $(usex cvs '' NO_CVS=YesPlease)
1094 - $(usex elibc_musl NO_REGEX=YesPlease '')
1095 - $(usex iconv '' NO_ICONV=YesPlease)
1096 - $(usex nls '' NO_GETTEXT=YesPlease)
1097 - $(usex perl 'INSTALLDIRS=vendor NO_PERL_CPAN_FALLBACKS=YesPlease' NO_PERL=YesPlease)
1098 - $(usex perforce '' NO_PYTHON=YesPlease)
1099 - $(usex subversion '' NO_SVN_TESTS=YesPlease)
1100 - $(usex threads '' NO_PTHREADS=YesPlease)
1101 - $(usex tk '' NO_TCLTK=YesPlease)
1102 - )
1103 -
1104 - if use blksha1 ; then
1105 - myopts+=( BLK_SHA1=YesPlease )
1106 - elif use ppcsha1 ; then
1107 - myopts+=( PPC_SHA1=YesPlease )
1108 - fi
1109 -
1110 - if use curl ; then
1111 - use webdav || myopts+=( NO_EXPAT=YesPlease )
1112 - else
1113 - myopts+=( NO_CURL=YesPlease )
1114 - fi
1115 -
1116 - # broken assumptions, because of static build system ...
1117 - myopts+=(
1118 - NO_FINK=YesPlease
1119 - NO_DARWIN_PORTS=YesPlease
1120 - INSTALL=install
1121 - TAR=tar
1122 - SHELL_PATH="${EPREFIX}/bin/sh"
1123 - SANE_TOOL_PATH=
1124 - OLD_ICONV=
1125 - NO_EXTERNAL_GREP=
1126 - )
1127 -
1128 - # For svn-fe
1129 - extlibs=( -lz -lssl ${S}/xdiff/lib.a $(usex threads -lpthread '') )
1130 -
1131 - # can't define this to null, since the entire makefile depends on it
1132 - sed -i -e '/\/usr\/local/s/BASIC_/#BASIC_/' Makefile || die
1133 -
1134 - if use pcre; then
1135 - if use pcre-jit; then
1136 - myopts+=( USE_LIBPCRE2=YesPlease )
1137 - extlibs+=( -lpcre2-8 )
1138 - else
1139 - myopts+=(
1140 - USE_LIBPCRE1=YesPlease
1141 - NO_LIBPCRE1_JIT=YesPlease
1142 - )
1143 - extlibs+=( -lpcre )
1144 - fi
1145 - fi
1146 - if [[ ${CHOST} == *-solaris* ]]; then
1147 - myopts+=(
1148 - NEEDS_LIBICONV=YesPlease
1149 - HAVE_CLOCK_MONOTONIC=1
1150 - )
1151 - if grep -q getdelim "${EROOT}"/usr/include/stdio.h ; then
1152 - myopts+=( HAVE_GETDELIM=1 )
1153 - fi
1154 - fi
1155 -
1156 - if has_version '>=app-text/asciidoc-8.0' ; then
1157 - myopts+=( ASCIIDOC8=YesPlease )
1158 - fi
1159 -
1160 - # Bug 290465:
1161 - # builtin-fetch-pack.c:816: error: 'struct stat' has no member named 'st_mtim'
1162 - if [[ "${CHOST}" == *-uclibc* ]] ; then
1163 - myopts+=( NO_NSEC=YesPlease )
1164 - use iconv && myopts+=( NEEDS_LIBICONV=YesPlease )
1165 - fi
1166 -
1167 - export MY_MAKEOPTS="${myopts[@]}"
1168 - export EXTLIBS="${extlibs[@]}"
1169 -}
1170 -
1171 -src_unpack() {
1172 - if [[ ${PV} != *9999 ]]; then
1173 - unpack ${MY_P}.tar.${SRC_URI_SUFFIX}
1174 - cd "${S}" || die
1175 - unpack ${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
1176 - if use doc ; then
1177 - pushd "${S}"/Documentation &>/dev/null || die
1178 - unpack ${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
1179 - popd &>/dev/null || die
1180 - fi
1181 - else
1182 - git-r3_src_unpack
1183 - #cp "${FILESDIR}"/GIT-VERSION-GEN .
1184 - fi
1185 -
1186 -}
1187 -
1188 -src_prepare() {
1189 - # add experimental patches to improve mediawiki support
1190 - # see patches for origin
1191 - if use mediawiki-experimental ; then
1192 - PATCHES+=(
1193 - "${FILESDIR}"/git-2.7.0-mediawiki-namespaces.patch
1194 - "${FILESDIR}"/git-2.7.0-mediawiki-subpages.patch
1195 - "${FILESDIR}"/git-2.7.0-mediawiki-500pages.patch
1196 - )
1197 - fi
1198 -
1199 - default
1200 -
1201 - sed -i \
1202 - -e 's:^\(CFLAGS[[:space:]]*=\).*$:\1 $(OPTCFLAGS) -Wall:' \
1203 - -e 's:^\(LDFLAGS[[:space:]]*=\).*$:\1 $(OPTLDFLAGS):' \
1204 - -e 's:^\(CC[[:space:]]* =\).*$:\1$(OPTCC):' \
1205 - -e 's:^\(AR[[:space:]]* =\).*$:\1$(OPTAR):' \
1206 - -e "s:\(PYTHON_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
1207 - -e "s:\(PERL_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
1208 - Makefile contrib/svn-fe/Makefile || die
1209 -
1210 - # Fix docbook2texi command
1211 - sed -r -i 's/DOCBOOK2X_TEXI[[:space:]]*=[[:space:]]*docbook2x-texi/DOCBOOK2X_TEXI = docbook2texi.pl/' \
1212 - Documentation/Makefile || die
1213 -}
1214 -
1215 -git_emake() {
1216 - # bug #320647: PYTHON_PATH
1217 - local PYTHON_PATH=""
1218 - use perforce && PYTHON_PATH="${PYTHON}"
1219 - emake ${MY_MAKEOPTS} \
1220 - prefix="${EPREFIX}"/usr \
1221 - htmldir="${EPREFIX}"/usr/share/doc/${PF}/html \
1222 - perllibdir="$(use perl && perl_get_raw_vendorlib)" \
1223 - sysconfdir="${EPREFIX}"/etc \
1224 - DESTDIR="${D}" \
1225 - GIT_TEST_OPTS="--no-color" \
1226 - OPTAR="$(tc-getAR)" \
1227 - OPTCC="$(tc-getCC)" \
1228 - OPTCFLAGS="${CFLAGS}" \
1229 - OPTLDFLAGS="${LDFLAGS}" \
1230 - PERL_PATH="${EPREFIX}/usr/bin/perl" \
1231 - PERL_MM_OPT="" \
1232 - PYTHON_PATH="${PYTHON_PATH}" \
1233 - V=1 \
1234 - "$@"
1235 -}
1236 -
1237 -src_configure() {
1238 - exportmakeopts
1239 -}
1240 -
1241 -src_compile() {
1242 - git_emake || die "emake failed"
1243 -
1244 - if use emacs ; then
1245 - elisp-compile contrib/emacs/git{,-blame}.el
1246 - fi
1247 -
1248 - if use perl && use cgi ; then
1249 - git_emake \
1250 - gitweb \
1251 - || die "emake gitweb (cgi) failed"
1252 - fi
1253 -
1254 - if [[ ${CHOST} == *-darwin* ]]; then
1255 - pushd contrib/credential/osxkeychain &>/dev/null || die
1256 - git_emake CC=$(tc-getCC) CFLAGS="${CFLAGS}" \
1257 - || die "emake credential-osxkeychain"
1258 - popd &>/dev/null || die
1259 - fi
1260 -
1261 - pushd Documentation &>/dev/null || die
1262 - if [[ ${PV} == *9999 ]] ; then
1263 - git_emake man \
1264 - || die "emake man failed"
1265 - if use doc ; then
1266 - git_emake info html \
1267 - || die "emake info html failed"
1268 - fi
1269 - else
1270 - if use doc ; then
1271 - git_emake info \
1272 - || die "emake info html failed"
1273 - fi
1274 - fi
1275 - popd &>/dev/null || die
1276 -
1277 - if use subversion ; then
1278 - pushd contrib/svn-fe &>/dev/null || die
1279 - # by defining EXTLIBS we override the detection for libintl and
1280 - # libiconv, bug #516168
1281 - local nlsiconv=()
1282 - use nls && use !elibc_glibc && nlsiconv+=( -lintl )
1283 - use iconv && use !elibc_glibc && nlsiconv+=( -liconv )
1284 - git_emake EXTLIBS="${EXTLIBS} ${nlsiconv[@]}" \
1285 - || die "emake svn-fe failed"
1286 - if use doc ; then
1287 - # svn-fe.1 requires the full USE=doc dependency stack
1288 - git_emake svn-fe.1 \
1289 - || die "emake svn-fe.1 failed"
1290 - git_emake svn-fe.html \
1291 - || die "svn-fe.html failed"
1292 - fi
1293 - popd &>/dev/null || die
1294 - fi
1295 -
1296 - if use gnome-keyring ; then
1297 - pushd contrib/credential/libsecret &>/dev/null || die
1298 - git_emake || die "emake git-credential-libsecret failed"
1299 - popd &>/dev/null || die
1300 - fi
1301 -
1302 - pushd contrib/subtree &>/dev/null || die
1303 - git_emake git-subtree
1304 - # git-subtree.1 requires the full USE=doc dependency stack
1305 - use doc && git_emake git-subtree.html git-subtree.1
1306 - popd &>/dev/null || die
1307 -
1308 - pushd contrib/diff-highlight &>/dev/null || die
1309 - git_emake
1310 - popd &>/dev/null || die
1311 -
1312 - if use mediawiki ; then
1313 - pushd contrib/mw-to-git &>/dev/null || die
1314 - git_emake
1315 - popd &>/dev/null || die
1316 -
1317 - fi
1318 -}
1319 -
1320 -src_install() {
1321 - git_emake install || die "make install failed"
1322 -
1323 - if [[ ${CHOST} == *-darwin* ]]; then
1324 - dobin contrib/credential/osxkeychain/git-credential-osxkeychain
1325 - fi
1326 -
1327 - # Depending on the tarball and manual rebuild of the documentation, the
1328 - # manpages may exist in either OR both of these directories.
1329 - find man?/*.[157] >/dev/null 2>&1 && doman man?/*.[157]
1330 - find Documentation/*.[157] >/dev/null 2>&1 && doman Documentation/*.[157]
1331 - dodoc README* Documentation/{SubmittingPatches,CodingGuidelines}
1332 - use doc && dodir /usr/share/doc/${PF}/html
1333 - local d
1334 - for d in / /howto/ /technical/ ; do
1335 - docinto ${d}
1336 - dodoc Documentation${d}*.txt
1337 - if use doc ; then
1338 - docinto ${d}/html
1339 - dodoc Documentation${d}*.html
1340 - fi
1341 - done
1342 - docinto /
1343 - # Upstream does not ship this pre-built :-(
1344 - use doc && doinfo Documentation/{git,gitman}.info
1345 -
1346 - newbashcomp contrib/completion/git-completion.bash ${PN}
1347 - bashcomp_alias git gitk
1348 - # Not really a bash-completion file (bug #477920)
1349 - # but still needed uncompressed (bug #507480)
1350 - insinto /usr/share/${PN}
1351 - doins contrib/completion/git-prompt.sh
1352 -
1353 - if use emacs ; then
1354 - elisp-install ${PN} contrib/emacs/git.{el,elc}
1355 - elisp-install ${PN} contrib/emacs/git-blame.{el,elc}
1356 - #elisp-install ${PN}/compat contrib/emacs/vc-git.{el,elc}
1357 - # don't add automatically to the load-path, so the sitefile
1358 - # can do a conditional loading
1359 - touch "${ED}${SITELISP}/${PN}/compat/.nosearch"
1360 - elisp-site-file-install "${FILESDIR}"/${SITEFILE}
1361 - fi
1362 -
1363 - #dobin contrib/fast-import/git-p4 # Moved upstream
1364 - #dodoc contrib/fast-import/git-p4.txt # Moved upstream
1365 - newbin contrib/fast-import/import-tars.perl import-tars
1366 - exeinto /usr/libexec/git-core/
1367 - newexe contrib/git-resurrect.sh git-resurrect
1368 -
1369 - # git-subtree
1370 - pushd contrib/subtree &>/dev/null || die
1371 - git_emake install || die "Failed to emake install for git-subtree"
1372 - if use doc ; then
1373 - # Do not move git subtree install-man outside USE=doc!
1374 - git_emake install-man install-html || die "Failed to emake install-html install-man for git-subtree"
1375 - fi
1376 - newdoc README README.git-subtree
1377 - dodoc git-subtree.txt
1378 - popd &>/dev/null || die
1379 -
1380 - if use mediawiki ; then
1381 - pushd contrib/mw-to-git &>/dev/null || die
1382 - git_emake install
1383 - popd &>/dev/null || die
1384 - fi
1385 -
1386 - # diff-highlight
1387 - dobin contrib/diff-highlight/diff-highlight
1388 - newdoc contrib/diff-highlight/README README.diff-highlight
1389 -
1390 - # git-jump
1391 - exeinto /usr/libexec/git-core/
1392 - doexe contrib/git-jump/git-jump
1393 - newdoc contrib/git-jump/README git-jump.txt
1394 -
1395 - # git-contacts
1396 - exeinto /usr/libexec/git-core/
1397 - doexe contrib/contacts/git-contacts
1398 - dodoc contrib/contacts/git-contacts.txt
1399 -
1400 - if use gnome-keyring ; then
1401 - pushd contrib/credential/libsecret &>/dev/null || die
1402 - dobin git-credential-libsecret
1403 - popd &>/dev/null || die
1404 - fi
1405 -
1406 - if use subversion ; then
1407 - pushd contrib/svn-fe &>/dev/null || die
1408 - dobin svn-fe
1409 - dodoc svn-fe.txt
1410 - if use doc ; then
1411 - # Do not move svn-fe.1 outside USE=doc!
1412 - doman svn-fe.1
1413 - docinto html
1414 - dodoc svn-fe.html
1415 - fi
1416 - popd &>/dev/null || die
1417 - fi
1418 -
1419 - dodir /usr/share/${PN}/contrib
1420 - # The following are excluded:
1421 - # completion - installed above
1422 - # diff-highlight - done above
1423 - # emacs - installed above
1424 - # examples - these are stuff that is not used in Git anymore actually
1425 - # git-jump - done above
1426 - # gitview - installed above
1427 - # p4import - excluded because fast-import has a better one
1428 - # patches - stuff the Git guys made to go upstream to other places
1429 - # persistent-https - TODO
1430 - # mw-to-git - TODO
1431 - # subtree - build seperately
1432 - # svnimport - use git-svn
1433 - # thunderbird-patch-inline - fixes thunderbird
1434 - local contrib_objects=(
1435 - buildsystems
1436 - fast-import
1437 - hg-to-git
1438 - hooks
1439 - remotes2config.sh
1440 - rerere-train.sh
1441 - stats
1442 - workdir
1443 - )
1444 - local i
1445 - for i in "${contrib_objects[@]}" ; do
1446 - cp -rf \
1447 - "${S}"/contrib/${i} \
1448 - "${ED}"/usr/share/${PN}/contrib \
1449 - || die "Failed contrib ${i}"
1450 - done
1451 -
1452 - if use perl && use cgi ; then
1453 - # We used to install in /usr/share/${PN}/gitweb
1454 - # but upstream installs in /usr/share/gitweb
1455 - # so we will install a symlink and use their location for compat with other
1456 - # distros
1457 - dosym ../gitweb /usr/share/${PN}/gitweb
1458 -
1459 - # INSTALL discusses configuration issues, not just installation
1460 - docinto /
1461 - newdoc "${S}"/gitweb/INSTALL INSTALL.gitweb
1462 - newdoc "${S}"/gitweb/README README.gitweb
1463 -
1464 - for d in "${ED}"/usr/lib{,64}/perl5/ ; do
1465 - if test -d "${d}" ; then find "${d}" \
1466 - -name .packlist \
1467 - -delete || die
1468 - fi
1469 - done
1470 - else
1471 - rm -rf "${ED}"/usr/share/gitweb
1472 - fi
1473 -
1474 - if ! use subversion ; then
1475 - rm -f "${ED}"/usr/libexec/git-core/git-svn \
1476 - "${ED}"/usr/share/man/man1/git-svn.1*
1477 - fi
1478 -
1479 - if use xinetd ; then
1480 - insinto /etc/xinetd.d
1481 - newins "${FILESDIR}"/git-daemon.xinetd git-daemon
1482 - fi
1483 -
1484 - if use !prefix ; then
1485 - newinitd "${FILESDIR}"/git-daemon-r1.initd git-daemon
1486 - newconfd "${FILESDIR}"/git-daemon.confd git-daemon
1487 - systemd_newunit "${FILESDIR}/git-daemon_at-r1.service" "git-daemon@.service"
1488 - systemd_dounit "${FILESDIR}/git-daemon.socket"
1489 - fi
1490 -
1491 - perl_delete_localpod
1492 -
1493 - # Remove disabled linguas
1494 - # we could remove sources in src_prepare, but install does not
1495 - # handle missing locale dir well
1496 - rm_loc() {
1497 - if [[ -e "${ED}/usr/share/locale/${1}" ]]; then
1498 - rm -r "${ED}/usr/share/locale/${1}" || die
1499 - fi
1500 - }
1501 - l10n_for_each_disabled_locale_do rm_loc
1502 -}
1503 -
1504 -src_test() {
1505 - local disabled=()
1506 - local tests_cvs=(
1507 - t9200-git-cvsexportcommit.sh
1508 - t9400-git-cvsserver-server.sh
1509 - t9401-git-cvsserver-crlf.sh
1510 - t9402-git-cvsserver-refs.sh
1511 - t9600-cvsimport.sh
1512 - t9601-cvsimport-vendor-branch.sh
1513 - t9602-cvsimport-branches-tags.sh
1514 - t9603-cvsimport-patchsets.sh
1515 - t9604-cvsimport-timestamps.sh
1516 - )
1517 - local tests_perl=(
1518 - t3701-add-interactive.sh
1519 - t5502-quickfetch.sh
1520 - t5512-ls-remote.sh
1521 - t5520-pull.sh
1522 - t7106-reset-unborn-branch.sh
1523 - t7501-commit.sh
1524 - )
1525 - # Bug #225601 - t0004 is not suitable for root perm
1526 - # Bug #219839 - t1004 is not suitable for root perm
1527 - # t0001-init.sh - check for init notices EPERM* fails
1528 - local tests_nonroot=(
1529 - t0001-init.sh
1530 - t0004-unwritable.sh
1531 - t0070-fundamental.sh
1532 - t1004-read-tree-m-u-wf.sh
1533 - t3700-add.sh
1534 - t7300-clean.sh
1535 - )
1536 - # t9100 still fails with symlinks in SVN 1.7
1537 - local test_svn=( t9100-git-svn-basic.sh )
1538 -
1539 - # Unzip is used only for the testcase code, not by any normal parts of Git.
1540 - if ! has_version app-arch/unzip ; then
1541 - einfo "Disabling tar-tree tests"
1542 - disabled+=( t5000-tar-tree.sh )
1543 - fi
1544 -
1545 - local cvs=0
1546 - use cvs && let cvs=${cvs}+1
1547 - if [[ ${EUID} -eq 0 ]]; then
1548 - if [[ ${cvs} -eq 1 ]]; then
1549 - ewarn "Skipping CVS tests because CVS does not work as root!"
1550 - ewarn "You should retest with FEATURES=userpriv!"
1551 - disabled+=( ${tests_cvs[@]} )
1552 - fi
1553 - einfo "Skipping other tests that require being non-root"
1554 - disabled+=( ${tests_nonroot[@]} )
1555 - else
1556 - [[ ${cvs} -gt 0 ]] && \
1557 - has_version dev-vcs/cvs && \
1558 - let cvs=${cvs}+1
1559 - [[ ${cvs} -gt 1 ]] && \
1560 - has_version "dev-vcs/cvs[server]" && \
1561 - let cvs=${cvs}+1
1562 - if [[ ${cvs} -lt 3 ]]; then
1563 - einfo "Disabling CVS tests (needs dev-vcs/cvs[USE=server])"
1564 - disabled+=( ${tests_cvs[@]} )
1565 - fi
1566 - fi
1567 -
1568 - if ! use perl ; then
1569 - einfo "Disabling tests that need Perl"
1570 - disabled+=( ${tests_perl[@]} )
1571 - fi
1572 -
1573 - einfo "Disabling tests that fail with SVN 1.7"
1574 - disabled+=( ${test_svn[@]} )
1575 -
1576 - # Reset all previously disabled tests
1577 - pushd t &>/dev/null || die
1578 - local i
1579 - for i in *.sh.DISABLED ; do
1580 - [[ -f "${i}" ]] && mv -f "${i}" "${i%.DISABLED}"
1581 - done
1582 - einfo "Disabled tests:"
1583 - for i in ${disabled[@]} ; do
1584 - [[ -f "${i}" ]] && mv -f "${i}" "${i}.DISABLED" && einfo "Disabled ${i}"
1585 - done
1586 -
1587 - # Avoid the test system removing the results because we want them ourselves
1588 - sed -e '/^[[:space:]]*$(MAKE) clean/s,^,#,g' \
1589 - -i Makefile || die
1590 -
1591 - # Clean old results first, must always run
1592 - nonfatal git_emake clean
1593 - popd &>/dev/null || die
1594 -
1595 - # Now run the tests, keep going if we hit an error, and don't terminate on
1596 - # failure
1597 - local rc
1598 - einfo "Start test run"
1599 - #MAKEOPTS=-j1
1600 - nonfatal git_emake --keep-going test
1601 - rc=$?
1602 -
1603 - # Display nice results, now print the results
1604 - pushd t &>/dev/null || die
1605 - nonfatal git_emake aggregate-results
1606 -
1607 - # And bail if there was a problem
1608 - [[ ${rc} -eq 0 ]] || die "tests failed. Please file a bug."
1609 -}
1610 -
1611 -showpkgdeps() {
1612 - local pkg=$1
1613 - shift
1614 - elog " $(printf "%-17s:" ${pkg}) ${@}"
1615 -}
1616 -
1617 -pkg_postinst() {
1618 - use emacs && elisp-site-regen
1619 - elog "Please read /usr/share/bash-completion/completions/git for Git bash command"
1620 - elog "completion."
1621 - elog "Please read /usr/share/git/git-prompt.sh for Git bash prompt"
1622 - elog "Note that the prompt bash code is now in that separate script"
1623 - elog "These additional scripts need some dependencies:"
1624 - echo
1625 - showpkgdeps git-quiltimport "dev-util/quilt"
1626 - showpkgdeps git-instaweb \
1627 - "|| ( www-servers/lighttpd www-servers/apache www-servers/nginx )"
1628 - echo
1629 - use mediawiki-experimental && ewarn "Using experimental git-mediawiki patches. The stability of cloned wiki filesystems is not guaranteed."
1630 -}
1631 -
1632 -pkg_postrm() {
1633 - use emacs && elisp-site-regen
1634 -}
1635
1636 diff --git a/dev-vcs/git/git-2.25.4.ebuild b/dev-vcs/git/git-2.25.4.ebuild
1637 deleted file mode 100644
1638 index 82ddfbb3bb5..00000000000
1639 --- a/dev-vcs/git/git-2.25.4.ebuild
1640 +++ /dev/null
1641 @@ -1,711 +0,0 @@
1642 -# Copyright 1999-2021 Gentoo Authors
1643 -# Distributed under the terms of the GNU General Public License v2
1644 -
1645 -EAPI=7
1646 -
1647 -GENTOO_DEPEND_ON_PERL=no
1648 -
1649 -# bug #329479: git-remote-testgit is not multiple-version aware
1650 -PYTHON_COMPAT=( python3_{6,7,8} )
1651 -
1652 -inherit toolchain-funcs elisp-common l10n perl-module bash-completion-r1 python-single-r1 systemd
1653 -
1654 -PLOCALES="bg ca de es fr is it ko pt_PT ru sv vi zh_CN"
1655 -if [[ ${PV} == *9999 ]]; then
1656 - inherit git-r3
1657 - EGIT_REPO_URI="git://git.kernel.org/pub/scm/git/git.git"
1658 - # Please ensure that all _four_ 9999 ebuilds get updated; they track the 4 upstream branches.
1659 - # See https://git-scm.com/docs/gitworkflows#_graduation
1660 - # In order of stability:
1661 - # 9999-r0: maint
1662 - # 9999-r1: master
1663 - # 9999-r2: next
1664 - # 9999-r3: pu
1665 - case "${PVR}" in
1666 - 9999) EGIT_BRANCH=maint ;;
1667 - 9999-r1) EGIT_BRANCH=master ;;
1668 - 9999-r2) EGIT_BRANCH=next;;
1669 - 9999-r3) EGIT_BRANCH=pu ;;
1670 - esac
1671 -fi
1672 -
1673 -MY_PV="${PV/_rc/.rc}"
1674 -MY_P="${PN}-${MY_PV}"
1675 -
1676 -DOC_VER="${MY_PV}"
1677 -
1678 -DESCRIPTION="stupid content tracker: distributed VCS designed for speed and efficiency"
1679 -HOMEPAGE="https://www.git-scm.com/"
1680 -if [[ ${PV} != *9999 ]]; then
1681 - SRC_URI_SUFFIX="xz"
1682 - SRC_URI_KORG="https://www.kernel.org/pub/software/scm/git"
1683 - [[ "${PV/rc}" != "${PV}" ]] && SRC_URI_KORG+='/testing'
1684 - SRC_URI="${SRC_URI_KORG}/${MY_P}.tar.${SRC_URI_SUFFIX}
1685 - ${SRC_URI_KORG}/${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
1686 - doc? (
1687 - ${SRC_URI_KORG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
1688 - )"
1689 - [[ "${PV}" == *_rc* ]] || \
1690 - KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 ~riscv s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
1691 -fi
1692 -
1693 -LICENSE="GPL-2"
1694 -SLOT="0"
1695 -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"
1696 -
1697 -# Common to both DEPEND and RDEPEND
1698 -DEPEND="
1699 - gnome-keyring? ( app-crypt/libsecret )
1700 - !libressl? ( dev-libs/openssl:0= )
1701 - libressl? ( dev-libs/libressl:= )
1702 - sys-libs/zlib
1703 - pcre? (
1704 - pcre-jit? ( dev-libs/libpcre2[jit(+)] )
1705 - !pcre-jit? ( dev-libs/libpcre )
1706 - )
1707 - perl? ( dev-lang/perl:=[-build(-)] )
1708 - tk? ( dev-lang/tk:0= )
1709 - curl? (
1710 - net-misc/curl
1711 - webdav? ( dev-libs/expat )
1712 - )
1713 - emacs? ( >=app-editors/emacs-23.1:* )
1714 - iconv? ( virtual/libiconv )
1715 -"
1716 -
1717 -RDEPEND="${DEPEND}
1718 - gpg? ( app-crypt/gnupg )
1719 - perl? (
1720 - dev-perl/Error
1721 - dev-perl/MailTools
1722 - dev-perl/Authen-SASL
1723 - cgi? (
1724 - dev-perl/CGI
1725 - highlight? ( app-text/highlight )
1726 - )
1727 - cvs? (
1728 - >=dev-vcs/cvsps-2.1:0
1729 - dev-perl/DBI
1730 - dev-perl/DBD-SQLite
1731 - )
1732 - mediawiki? (
1733 - dev-perl/DateTime-Format-ISO8601
1734 - dev-perl/HTML-Tree
1735 - dev-perl/MediaWiki-API
1736 - )
1737 - subversion? (
1738 - dev-vcs/subversion[-dso(-),perl]
1739 - dev-perl/libwww-perl
1740 - dev-perl/TermReadKey
1741 - )
1742 - )
1743 - perforce? ( ${PYTHON_DEPS} )
1744 -"
1745 -
1746 -# This is how info docs are created with Git:
1747 -# .txt/asciidoc --(asciidoc)---------> .xml/docbook
1748 -# .xml/docbook --(docbook2texi.pl)--> .texi
1749 -# .texi --(makeinfo)---------> .info
1750 -BDEPEND="
1751 - doc? (
1752 - app-text/asciidoc
1753 - app-text/docbook2X
1754 - app-text/xmlto
1755 - sys-apps/texinfo
1756 - )
1757 - nls? ( sys-devel/gettext )
1758 - test? ( app-crypt/gnupg )
1759 -"
1760 -
1761 -# Live ebuild builds man pages and HTML docs, additionally
1762 -if [[ ${PV} == *9999 ]]; then
1763 - BDEPEND="${BDEPEND}
1764 - app-text/asciidoc"
1765 -fi
1766 -
1767 -SITEFILE="50${PN}-gentoo.el"
1768 -S="${WORKDIR}/${MY_P}"
1769 -
1770 -REQUIRED_USE="
1771 - cgi? ( perl )
1772 - cvs? ( perl )
1773 - mediawiki? ( perl )
1774 - mediawiki-experimental? ( mediawiki )
1775 - subversion? ( perl )
1776 - webdav? ( curl )
1777 - pcre-jit? ( pcre )
1778 - perforce? ( ${PYTHON_REQUIRED_USE} )
1779 -"
1780 -
1781 -RESTRICT="!test? ( test )"
1782 -
1783 -PATCHES=(
1784 - # bug #350330 - automagic CVS when we don't want it is bad.
1785 - "${FILESDIR}"/git-2.22.0_rc0-optional-cvs.patch
1786 -
1787 - "${FILESDIR}"/git-2.2.0-svn-fe-linking.patch
1788 -
1789 - # Make submodule output quiet
1790 - "${FILESDIR}"/git-2.21.0-quiet-submodules-testcase.patch
1791 -)
1792 -
1793 -pkg_setup() {
1794 - if use subversion && has_version "dev-vcs/subversion[dso]"; then
1795 - ewarn "Per Gentoo bugs #223747, #238586, when subversion is built"
1796 - ewarn "with USE=dso, there may be weird crashes in git-svn. You"
1797 - ewarn "have been warned."
1798 - fi
1799 - if use perforce ; then
1800 - python-single-r1_pkg_setup
1801 - fi
1802 -}
1803 -
1804 -# This is needed because for some obscure reasons future calls to make don't
1805 -# pick up these exports if we export them in src_unpack()
1806 -exportmakeopts() {
1807 - local extlibs myopts
1808 -
1809 - myopts=(
1810 - ASCIIDOC_NO_ROFF=YesPlease
1811 - $(usex cvs '' NO_CVS=YesPlease)
1812 - $(usex elibc_musl NO_REGEX=YesPlease '')
1813 - $(usex iconv '' NO_ICONV=YesPlease)
1814 - $(usex nls '' NO_GETTEXT=YesPlease)
1815 - $(usex perl 'INSTALLDIRS=vendor NO_PERL_CPAN_FALLBACKS=YesPlease' NO_PERL=YesPlease)
1816 - $(usex perforce '' NO_PYTHON=YesPlease)
1817 - $(usex subversion '' NO_SVN_TESTS=YesPlease)
1818 - $(usex threads '' NO_PTHREADS=YesPlease)
1819 - $(usex tk '' NO_TCLTK=YesPlease)
1820 - )
1821 -
1822 - if use blksha1 ; then
1823 - myopts+=( BLK_SHA1=YesPlease )
1824 - elif use ppcsha1 ; then
1825 - myopts+=( PPC_SHA1=YesPlease )
1826 - fi
1827 -
1828 - if use curl ; then
1829 - use webdav || myopts+=( NO_EXPAT=YesPlease )
1830 - else
1831 - myopts+=( NO_CURL=YesPlease )
1832 - fi
1833 -
1834 - # broken assumptions, because of static build system ...
1835 - myopts+=(
1836 - NO_FINK=YesPlease
1837 - NO_DARWIN_PORTS=YesPlease
1838 - INSTALL=install
1839 - TAR=tar
1840 - SHELL_PATH="${EPREFIX}/bin/sh"
1841 - SANE_TOOL_PATH=
1842 - OLD_ICONV=
1843 - NO_EXTERNAL_GREP=
1844 - )
1845 -
1846 - # For svn-fe
1847 - extlibs=( -lz -lssl ${S}/xdiff/lib.a $(usex threads -lpthread '') )
1848 -
1849 - # can't define this to null, since the entire makefile depends on it
1850 - sed -i -e '/\/usr\/local/s/BASIC_/#BASIC_/' Makefile || die
1851 -
1852 - if use pcre; then
1853 - if use pcre-jit; then
1854 - myopts+=( USE_LIBPCRE2=YesPlease )
1855 - extlibs+=( -lpcre2-8 )
1856 - else
1857 - myopts+=(
1858 - USE_LIBPCRE1=YesPlease
1859 - NO_LIBPCRE1_JIT=YesPlease
1860 - )
1861 - extlibs+=( -lpcre )
1862 - fi
1863 - fi
1864 - if [[ ${CHOST} == *-solaris* ]]; then
1865 - myopts+=(
1866 - NEEDS_LIBICONV=YesPlease
1867 - HAVE_CLOCK_MONOTONIC=1
1868 - )
1869 - if grep -q getdelim "${EROOT}"/usr/include/stdio.h ; then
1870 - myopts+=( HAVE_GETDELIM=1 )
1871 - fi
1872 - fi
1873 -
1874 - if has_version '>=app-text/asciidoc-8.0' ; then
1875 - myopts+=( ASCIIDOC8=YesPlease )
1876 - fi
1877 -
1878 - # Bug 290465:
1879 - # builtin-fetch-pack.c:816: error: 'struct stat' has no member named 'st_mtim'
1880 - if [[ "${CHOST}" == *-uclibc* ]] ; then
1881 - myopts+=( NO_NSEC=YesPlease )
1882 - use iconv && myopts+=( NEEDS_LIBICONV=YesPlease )
1883 - fi
1884 -
1885 - export MY_MAKEOPTS="${myopts[@]}"
1886 - export EXTLIBS="${extlibs[@]}"
1887 -}
1888 -
1889 -src_unpack() {
1890 - if [[ ${PV} != *9999 ]]; then
1891 - unpack ${MY_P}.tar.${SRC_URI_SUFFIX}
1892 - cd "${S}" || die
1893 - unpack ${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
1894 - if use doc ; then
1895 - pushd "${S}"/Documentation &>/dev/null || die
1896 - unpack ${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
1897 - popd &>/dev/null || die
1898 - fi
1899 - else
1900 - git-r3_src_unpack
1901 - #cp "${FILESDIR}"/GIT-VERSION-GEN .
1902 - fi
1903 -
1904 -}
1905 -
1906 -src_prepare() {
1907 - # add experimental patches to improve mediawiki support
1908 - # see patches for origin
1909 - if use mediawiki-experimental ; then
1910 - PATCHES+=(
1911 - "${FILESDIR}"/git-2.7.0-mediawiki-namespaces.patch
1912 - "${FILESDIR}"/git-2.7.0-mediawiki-subpages.patch
1913 - "${FILESDIR}"/git-2.7.0-mediawiki-500pages.patch
1914 - )
1915 - fi
1916 -
1917 - default
1918 -
1919 - sed -i \
1920 - -e 's:^\(CFLAGS[[:space:]]*=\).*$:\1 $(OPTCFLAGS) -Wall:' \
1921 - -e 's:^\(LDFLAGS[[:space:]]*=\).*$:\1 $(OPTLDFLAGS):' \
1922 - -e 's:^\(CC[[:space:]]* =\).*$:\1$(OPTCC):' \
1923 - -e 's:^\(AR[[:space:]]* =\).*$:\1$(OPTAR):' \
1924 - -e "s:\(PYTHON_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
1925 - -e "s:\(PERL_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
1926 - Makefile contrib/svn-fe/Makefile || die
1927 -
1928 - # Fix docbook2texi command
1929 - sed -r -i 's/DOCBOOK2X_TEXI[[:space:]]*=[[:space:]]*docbook2x-texi/DOCBOOK2X_TEXI = docbook2texi.pl/' \
1930 - Documentation/Makefile || die
1931 -}
1932 -
1933 -git_emake() {
1934 - # bug #320647: PYTHON_PATH
1935 - local PYTHON_PATH=""
1936 - use perforce && PYTHON_PATH="${PYTHON}"
1937 - emake ${MY_MAKEOPTS} \
1938 - prefix="${EPREFIX}"/usr \
1939 - htmldir="${EPREFIX}"/usr/share/doc/${PF}/html \
1940 - perllibdir="$(use perl && perl_get_raw_vendorlib)" \
1941 - sysconfdir="${EPREFIX}"/etc \
1942 - DESTDIR="${D}" \
1943 - GIT_TEST_OPTS="--no-color" \
1944 - OPTAR="$(tc-getAR)" \
1945 - OPTCC="$(tc-getCC)" \
1946 - OPTCFLAGS="${CFLAGS}" \
1947 - OPTLDFLAGS="${LDFLAGS}" \
1948 - PERL_PATH="${EPREFIX}/usr/bin/perl" \
1949 - PERL_MM_OPT="" \
1950 - PYTHON_PATH="${PYTHON_PATH}" \
1951 - V=1 \
1952 - "$@"
1953 -}
1954 -
1955 -src_configure() {
1956 - exportmakeopts
1957 -}
1958 -
1959 -src_compile() {
1960 - git_emake || die "emake failed"
1961 -
1962 - if use emacs ; then
1963 - elisp-compile contrib/emacs/git{,-blame}.el
1964 - fi
1965 -
1966 - if use perl && use cgi ; then
1967 - git_emake \
1968 - gitweb \
1969 - || die "emake gitweb (cgi) failed"
1970 - fi
1971 -
1972 - if [[ ${CHOST} == *-darwin* ]]; then
1973 - pushd contrib/credential/osxkeychain &>/dev/null || die
1974 - git_emake CC=$(tc-getCC) CFLAGS="${CFLAGS}" \
1975 - || die "emake credential-osxkeychain"
1976 - popd &>/dev/null || die
1977 - fi
1978 -
1979 - pushd Documentation &>/dev/null || die
1980 - if [[ ${PV} == *9999 ]] ; then
1981 - git_emake man \
1982 - || die "emake man failed"
1983 - if use doc ; then
1984 - git_emake info html \
1985 - || die "emake info html failed"
1986 - fi
1987 - else
1988 - if use doc ; then
1989 - git_emake info \
1990 - || die "emake info html failed"
1991 - fi
1992 - fi
1993 - popd &>/dev/null || die
1994 -
1995 - if use subversion ; then
1996 - pushd contrib/svn-fe &>/dev/null || die
1997 - # by defining EXTLIBS we override the detection for libintl and
1998 - # libiconv, bug #516168
1999 - local nlsiconv=()
2000 - use nls && use !elibc_glibc && nlsiconv+=( -lintl )
2001 - use iconv && use !elibc_glibc && nlsiconv+=( -liconv )
2002 - git_emake EXTLIBS="${EXTLIBS} ${nlsiconv[@]}" \
2003 - || die "emake svn-fe failed"
2004 - if use doc ; then
2005 - # svn-fe.1 requires the full USE=doc dependency stack
2006 - git_emake svn-fe.1 \
2007 - || die "emake svn-fe.1 failed"
2008 - git_emake svn-fe.html \
2009 - || die "svn-fe.html failed"
2010 - fi
2011 - popd &>/dev/null || die
2012 - fi
2013 -
2014 - if use gnome-keyring ; then
2015 - pushd contrib/credential/libsecret &>/dev/null || die
2016 - git_emake || die "emake git-credential-libsecret failed"
2017 - popd &>/dev/null || die
2018 - fi
2019 -
2020 - pushd contrib/subtree &>/dev/null || die
2021 - git_emake git-subtree
2022 - # git-subtree.1 requires the full USE=doc dependency stack
2023 - use doc && git_emake git-subtree.html git-subtree.1
2024 - popd &>/dev/null || die
2025 -
2026 - pushd contrib/diff-highlight &>/dev/null || die
2027 - git_emake
2028 - popd &>/dev/null || die
2029 -
2030 - if use mediawiki ; then
2031 - pushd contrib/mw-to-git &>/dev/null || die
2032 - git_emake
2033 - popd &>/dev/null || die
2034 -
2035 - fi
2036 -}
2037 -
2038 -src_install() {
2039 - git_emake install || die "make install failed"
2040 -
2041 - if [[ ${CHOST} == *-darwin* ]]; then
2042 - dobin contrib/credential/osxkeychain/git-credential-osxkeychain
2043 - fi
2044 -
2045 - # Depending on the tarball and manual rebuild of the documentation, the
2046 - # manpages may exist in either OR both of these directories.
2047 - find man?/*.[157] >/dev/null 2>&1 && doman man?/*.[157]
2048 - find Documentation/*.[157] >/dev/null 2>&1 && doman Documentation/*.[157]
2049 - dodoc README* Documentation/{SubmittingPatches,CodingGuidelines}
2050 - use doc && dodir /usr/share/doc/${PF}/html
2051 - local d
2052 - for d in / /howto/ /technical/ ; do
2053 - docinto ${d}
2054 - dodoc Documentation${d}*.txt
2055 - if use doc ; then
2056 - docinto ${d}/html
2057 - dodoc Documentation${d}*.html
2058 - fi
2059 - done
2060 - docinto /
2061 - # Upstream does not ship this pre-built :-(
2062 - use doc && doinfo Documentation/{git,gitman}.info
2063 -
2064 - newbashcomp contrib/completion/git-completion.bash ${PN}
2065 - bashcomp_alias git gitk
2066 - # Not really a bash-completion file (bug #477920)
2067 - # but still needed uncompressed (bug #507480)
2068 - insinto /usr/share/${PN}
2069 - doins contrib/completion/git-prompt.sh
2070 -
2071 - if use emacs ; then
2072 - elisp-install ${PN} contrib/emacs/git.{el,elc}
2073 - elisp-install ${PN} contrib/emacs/git-blame.{el,elc}
2074 - #elisp-install ${PN}/compat contrib/emacs/vc-git.{el,elc}
2075 - # don't add automatically to the load-path, so the sitefile
2076 - # can do a conditional loading
2077 - touch "${ED}${SITELISP}/${PN}/compat/.nosearch"
2078 - elisp-site-file-install "${FILESDIR}"/${SITEFILE}
2079 - fi
2080 -
2081 - #dobin contrib/fast-import/git-p4 # Moved upstream
2082 - #dodoc contrib/fast-import/git-p4.txt # Moved upstream
2083 - newbin contrib/fast-import/import-tars.perl import-tars
2084 - exeinto /usr/libexec/git-core/
2085 - newexe contrib/git-resurrect.sh git-resurrect
2086 -
2087 - # git-subtree
2088 - pushd contrib/subtree &>/dev/null || die
2089 - git_emake install || die "Failed to emake install for git-subtree"
2090 - if use doc ; then
2091 - # Do not move git subtree install-man outside USE=doc!
2092 - git_emake install-man install-html || die "Failed to emake install-html install-man for git-subtree"
2093 - fi
2094 - newdoc README README.git-subtree
2095 - dodoc git-subtree.txt
2096 - popd &>/dev/null || die
2097 -
2098 - if use mediawiki ; then
2099 - pushd contrib/mw-to-git &>/dev/null || die
2100 - git_emake install
2101 - popd &>/dev/null || die
2102 - fi
2103 -
2104 - # diff-highlight
2105 - dobin contrib/diff-highlight/diff-highlight
2106 - newdoc contrib/diff-highlight/README README.diff-highlight
2107 -
2108 - # git-jump
2109 - exeinto /usr/libexec/git-core/
2110 - doexe contrib/git-jump/git-jump
2111 - newdoc contrib/git-jump/README git-jump.txt
2112 -
2113 - # git-contacts
2114 - exeinto /usr/libexec/git-core/
2115 - doexe contrib/contacts/git-contacts
2116 - dodoc contrib/contacts/git-contacts.txt
2117 -
2118 - if use gnome-keyring ; then
2119 - pushd contrib/credential/libsecret &>/dev/null || die
2120 - dobin git-credential-libsecret
2121 - popd &>/dev/null || die
2122 - fi
2123 -
2124 - if use subversion ; then
2125 - pushd contrib/svn-fe &>/dev/null || die
2126 - dobin svn-fe
2127 - dodoc svn-fe.txt
2128 - if use doc ; then
2129 - # Do not move svn-fe.1 outside USE=doc!
2130 - doman svn-fe.1
2131 - docinto html
2132 - dodoc svn-fe.html
2133 - fi
2134 - popd &>/dev/null || die
2135 - fi
2136 -
2137 - dodir /usr/share/${PN}/contrib
2138 - # The following are excluded:
2139 - # completion - installed above
2140 - # diff-highlight - done above
2141 - # emacs - installed above
2142 - # examples - these are stuff that is not used in Git anymore actually
2143 - # git-jump - done above
2144 - # gitview - installed above
2145 - # p4import - excluded because fast-import has a better one
2146 - # patches - stuff the Git guys made to go upstream to other places
2147 - # persistent-https - TODO
2148 - # mw-to-git - TODO
2149 - # subtree - build seperately
2150 - # svnimport - use git-svn
2151 - # thunderbird-patch-inline - fixes thunderbird
2152 - local contrib_objects=(
2153 - buildsystems
2154 - fast-import
2155 - hg-to-git
2156 - hooks
2157 - remotes2config.sh
2158 - rerere-train.sh
2159 - stats
2160 - workdir
2161 - )
2162 - local i
2163 - for i in "${contrib_objects[@]}" ; do
2164 - cp -rf \
2165 - "${S}"/contrib/${i} \
2166 - "${ED}"/usr/share/${PN}/contrib \
2167 - || die "Failed contrib ${i}"
2168 - done
2169 -
2170 - if use perl && use cgi ; then
2171 - # We used to install in /usr/share/${PN}/gitweb
2172 - # but upstream installs in /usr/share/gitweb
2173 - # so we will install a symlink and use their location for compat with other
2174 - # distros
2175 - dosym ../gitweb /usr/share/${PN}/gitweb
2176 -
2177 - # INSTALL discusses configuration issues, not just installation
2178 - docinto /
2179 - newdoc "${S}"/gitweb/INSTALL INSTALL.gitweb
2180 - newdoc "${S}"/gitweb/README README.gitweb
2181 -
2182 - for d in "${ED}"/usr/lib{,64}/perl5/ ; do
2183 - if test -d "${d}" ; then find "${d}" \
2184 - -name .packlist \
2185 - -delete || die
2186 - fi
2187 - done
2188 - else
2189 - rm -rf "${ED}"/usr/share/gitweb
2190 - fi
2191 -
2192 - if ! use subversion ; then
2193 - rm -f "${ED}"/usr/libexec/git-core/git-svn \
2194 - "${ED}"/usr/share/man/man1/git-svn.1*
2195 - fi
2196 -
2197 - if use xinetd ; then
2198 - insinto /etc/xinetd.d
2199 - newins "${FILESDIR}"/git-daemon.xinetd git-daemon
2200 - fi
2201 -
2202 - if use !prefix ; then
2203 - newinitd "${FILESDIR}"/git-daemon-r1.initd git-daemon
2204 - newconfd "${FILESDIR}"/git-daemon.confd git-daemon
2205 - systemd_newunit "${FILESDIR}/git-daemon_at-r1.service" "git-daemon@.service"
2206 - systemd_dounit "${FILESDIR}/git-daemon.socket"
2207 - fi
2208 -
2209 - perl_delete_localpod
2210 -
2211 - # Remove disabled linguas
2212 - # we could remove sources in src_prepare, but install does not
2213 - # handle missing locale dir well
2214 - rm_loc() {
2215 - if [[ -e "${ED}/usr/share/locale/${1}" ]]; then
2216 - rm -r "${ED}/usr/share/locale/${1}" || die
2217 - fi
2218 - }
2219 - l10n_for_each_disabled_locale_do rm_loc
2220 -}
2221 -
2222 -src_test() {
2223 - local disabled=()
2224 - local tests_cvs=(
2225 - t9200-git-cvsexportcommit.sh
2226 - t9400-git-cvsserver-server.sh
2227 - t9401-git-cvsserver-crlf.sh
2228 - t9402-git-cvsserver-refs.sh
2229 - t9600-cvsimport.sh
2230 - t9601-cvsimport-vendor-branch.sh
2231 - t9602-cvsimport-branches-tags.sh
2232 - t9603-cvsimport-patchsets.sh
2233 - t9604-cvsimport-timestamps.sh
2234 - )
2235 - local tests_perl=(
2236 - t3701-add-interactive.sh
2237 - t5502-quickfetch.sh
2238 - t5512-ls-remote.sh
2239 - t5520-pull.sh
2240 - t7106-reset-unborn-branch.sh
2241 - t7501-commit.sh
2242 - )
2243 - # Bug #225601 - t0004 is not suitable for root perm
2244 - # Bug #219839 - t1004 is not suitable for root perm
2245 - # t0001-init.sh - check for init notices EPERM* fails
2246 - local tests_nonroot=(
2247 - t0001-init.sh
2248 - t0004-unwritable.sh
2249 - t0070-fundamental.sh
2250 - t1004-read-tree-m-u-wf.sh
2251 - t3700-add.sh
2252 - t7300-clean.sh
2253 - )
2254 - # t9100 still fails with symlinks in SVN 1.7
2255 - local test_svn=( t9100-git-svn-basic.sh )
2256 -
2257 - # Unzip is used only for the testcase code, not by any normal parts of Git.
2258 - if ! has_version app-arch/unzip ; then
2259 - einfo "Disabling tar-tree tests"
2260 - disabled+=( t5000-tar-tree.sh )
2261 - fi
2262 -
2263 - local cvs=0
2264 - use cvs && let cvs=${cvs}+1
2265 - if [[ ${EUID} -eq 0 ]]; then
2266 - if [[ ${cvs} -eq 1 ]]; then
2267 - ewarn "Skipping CVS tests because CVS does not work as root!"
2268 - ewarn "You should retest with FEATURES=userpriv!"
2269 - disabled+=( ${tests_cvs[@]} )
2270 - fi
2271 - einfo "Skipping other tests that require being non-root"
2272 - disabled+=( ${tests_nonroot[@]} )
2273 - else
2274 - [[ ${cvs} -gt 0 ]] && \
2275 - has_version dev-vcs/cvs && \
2276 - let cvs=${cvs}+1
2277 - [[ ${cvs} -gt 1 ]] && \
2278 - has_version "dev-vcs/cvs[server]" && \
2279 - let cvs=${cvs}+1
2280 - if [[ ${cvs} -lt 3 ]]; then
2281 - einfo "Disabling CVS tests (needs dev-vcs/cvs[USE=server])"
2282 - disabled+=( ${tests_cvs[@]} )
2283 - fi
2284 - fi
2285 -
2286 - if ! use perl ; then
2287 - einfo "Disabling tests that need Perl"
2288 - disabled+=( ${tests_perl[@]} )
2289 - fi
2290 -
2291 - einfo "Disabling tests that fail with SVN 1.7"
2292 - disabled+=( ${test_svn[@]} )
2293 -
2294 - # Reset all previously disabled tests
2295 - pushd t &>/dev/null || die
2296 - local i
2297 - for i in *.sh.DISABLED ; do
2298 - [[ -f "${i}" ]] && mv -f "${i}" "${i%.DISABLED}"
2299 - done
2300 - einfo "Disabled tests:"
2301 - for i in ${disabled[@]} ; do
2302 - [[ -f "${i}" ]] && mv -f "${i}" "${i}.DISABLED" && einfo "Disabled ${i}"
2303 - done
2304 -
2305 - # Avoid the test system removing the results because we want them ourselves
2306 - sed -e '/^[[:space:]]*$(MAKE) clean/s,^,#,g' \
2307 - -i Makefile || die
2308 -
2309 - # Clean old results first, must always run
2310 - nonfatal git_emake clean
2311 - popd &>/dev/null || die
2312 -
2313 - # Now run the tests, keep going if we hit an error, and don't terminate on
2314 - # failure
2315 - local rc
2316 - einfo "Start test run"
2317 - #MAKEOPTS=-j1
2318 - nonfatal git_emake --keep-going test
2319 - rc=$?
2320 -
2321 - # Display nice results, now print the results
2322 - pushd t &>/dev/null || die
2323 - nonfatal git_emake aggregate-results
2324 -
2325 - # And bail if there was a problem
2326 - [[ ${rc} -eq 0 ]] || die "tests failed. Please file a bug."
2327 -}
2328 -
2329 -showpkgdeps() {
2330 - local pkg=$1
2331 - shift
2332 - elog " $(printf "%-17s:" ${pkg}) ${@}"
2333 -}
2334 -
2335 -pkg_postinst() {
2336 - use emacs && elisp-site-regen
2337 - elog "Please read /usr/share/bash-completion/completions/git for Git bash command"
2338 - elog "completion."
2339 - elog "Please read /usr/share/git/git-prompt.sh for Git bash prompt"
2340 - elog "Note that the prompt bash code is now in that separate script"
2341 - elog "These additional scripts need some dependencies:"
2342 - echo
2343 - showpkgdeps git-quiltimport "dev-util/quilt"
2344 - showpkgdeps git-instaweb \
2345 - "|| ( www-servers/lighttpd www-servers/apache www-servers/nginx )"
2346 - echo
2347 - use mediawiki-experimental && ewarn "Using experimental git-mediawiki patches. The stability of cloned wiki filesystems is not guaranteed."
2348 -}
2349 -
2350 -pkg_postrm() {
2351 - use emacs && elisp-site-regen
2352 -}
2353
2354 diff --git a/dev-vcs/git/git-2.27.0.ebuild b/dev-vcs/git/git-2.27.0.ebuild
2355 deleted file mode 100644
2356 index 8ff82385017..00000000000
2357 --- a/dev-vcs/git/git-2.27.0.ebuild
2358 +++ /dev/null
2359 @@ -1,711 +0,0 @@
2360 -# Copyright 1999-2021 Gentoo Authors
2361 -# Distributed under the terms of the GNU General Public License v2
2362 -
2363 -EAPI=7
2364 -
2365 -GENTOO_DEPEND_ON_PERL=no
2366 -
2367 -# bug #329479: git-remote-testgit is not multiple-version aware
2368 -PYTHON_COMPAT=( python3_{6,7,8} )
2369 -
2370 -inherit toolchain-funcs elisp-common l10n perl-module bash-completion-r1 python-single-r1 systemd
2371 -
2372 -PLOCALES="bg ca de es fr is it ko pt_PT ru sv vi zh_CN"
2373 -if [[ ${PV} == *9999 ]]; then
2374 - inherit git-r3
2375 - EGIT_REPO_URI="git://git.kernel.org/pub/scm/git/git.git"
2376 - # Please ensure that all _four_ 9999 ebuilds get updated; they track the 4 upstream branches.
2377 - # See https://git-scm.com/docs/gitworkflows#_graduation
2378 - # In order of stability:
2379 - # 9999-r0: maint
2380 - # 9999-r1: master
2381 - # 9999-r2: next
2382 - # 9999-r3: pu
2383 - case "${PVR}" in
2384 - 9999) EGIT_BRANCH=maint ;;
2385 - 9999-r1) EGIT_BRANCH=master ;;
2386 - 9999-r2) EGIT_BRANCH=next;;
2387 - 9999-r3) EGIT_BRANCH=pu ;;
2388 - esac
2389 -fi
2390 -
2391 -MY_PV="${PV/_rc/.rc}"
2392 -MY_P="${PN}-${MY_PV}"
2393 -
2394 -DOC_VER="${MY_PV}"
2395 -
2396 -DESCRIPTION="stupid content tracker: distributed VCS designed for speed and efficiency"
2397 -HOMEPAGE="https://www.git-scm.com/"
2398 -if [[ ${PV} != *9999 ]]; then
2399 - SRC_URI_SUFFIX="xz"
2400 - SRC_URI_KORG="https://www.kernel.org/pub/software/scm/git"
2401 - [[ "${PV/rc}" != "${PV}" ]] && SRC_URI_KORG+='/testing'
2402 - SRC_URI="${SRC_URI_KORG}/${MY_P}.tar.${SRC_URI_SUFFIX}
2403 - ${SRC_URI_KORG}/${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
2404 - doc? (
2405 - ${SRC_URI_KORG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
2406 - )"
2407 - [[ "${PV}" == *_rc* ]] || \
2408 - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
2409 -fi
2410 -
2411 -LICENSE="GPL-2"
2412 -SLOT="0"
2413 -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"
2414 -
2415 -# Common to both DEPEND and RDEPEND
2416 -DEPEND="
2417 - gnome-keyring? ( app-crypt/libsecret )
2418 - !libressl? ( dev-libs/openssl:0= )
2419 - libressl? ( dev-libs/libressl:= )
2420 - sys-libs/zlib
2421 - pcre? (
2422 - pcre-jit? ( dev-libs/libpcre2[jit(+)] )
2423 - !pcre-jit? ( dev-libs/libpcre )
2424 - )
2425 - perl? ( dev-lang/perl:=[-build(-)] )
2426 - tk? ( dev-lang/tk:0= )
2427 - curl? (
2428 - net-misc/curl
2429 - webdav? ( dev-libs/expat )
2430 - )
2431 - emacs? ( >=app-editors/emacs-23.1:* )
2432 - iconv? ( virtual/libiconv )
2433 -"
2434 -
2435 -RDEPEND="${DEPEND}
2436 - gpg? ( app-crypt/gnupg )
2437 - perl? (
2438 - dev-perl/Error
2439 - dev-perl/MailTools
2440 - dev-perl/Authen-SASL
2441 - cgi? (
2442 - dev-perl/CGI
2443 - highlight? ( app-text/highlight )
2444 - )
2445 - cvs? (
2446 - >=dev-vcs/cvsps-2.1:0
2447 - dev-perl/DBI
2448 - dev-perl/DBD-SQLite
2449 - )
2450 - mediawiki? (
2451 - dev-perl/DateTime-Format-ISO8601
2452 - dev-perl/HTML-Tree
2453 - dev-perl/MediaWiki-API
2454 - )
2455 - subversion? (
2456 - dev-vcs/subversion[-dso(-),perl]
2457 - dev-perl/libwww-perl
2458 - dev-perl/TermReadKey
2459 - )
2460 - )
2461 - perforce? ( ${PYTHON_DEPS} )
2462 -"
2463 -
2464 -# This is how info docs are created with Git:
2465 -# .txt/asciidoc --(asciidoc)---------> .xml/docbook
2466 -# .xml/docbook --(docbook2texi.pl)--> .texi
2467 -# .texi --(makeinfo)---------> .info
2468 -BDEPEND="
2469 - doc? (
2470 - app-text/asciidoc
2471 - app-text/docbook2X
2472 - app-text/xmlto
2473 - sys-apps/texinfo
2474 - )
2475 - nls? ( sys-devel/gettext )
2476 - test? ( app-crypt/gnupg )
2477 -"
2478 -
2479 -# Live ebuild builds man pages and HTML docs, additionally
2480 -if [[ ${PV} == *9999 ]]; then
2481 - BDEPEND="${BDEPEND}
2482 - app-text/asciidoc"
2483 -fi
2484 -
2485 -SITEFILE="50${PN}-gentoo.el"
2486 -S="${WORKDIR}/${MY_P}"
2487 -
2488 -REQUIRED_USE="
2489 - cgi? ( perl )
2490 - cvs? ( perl )
2491 - mediawiki? ( perl )
2492 - mediawiki-experimental? ( mediawiki )
2493 - subversion? ( perl )
2494 - webdav? ( curl )
2495 - pcre-jit? ( pcre )
2496 - perforce? ( ${PYTHON_REQUIRED_USE} )
2497 -"
2498 -
2499 -RESTRICT="!test? ( test )"
2500 -
2501 -PATCHES=(
2502 - # bug #350330 - automagic CVS when we don't want it is bad.
2503 - "${FILESDIR}"/git-2.22.0_rc0-optional-cvs.patch
2504 -
2505 - "${FILESDIR}"/git-2.2.0-svn-fe-linking.patch
2506 -
2507 - # Make submodule output quiet
2508 - "${FILESDIR}"/git-2.21.0-quiet-submodules-testcase.patch
2509 -)
2510 -
2511 -pkg_setup() {
2512 - if use subversion && has_version "dev-vcs/subversion[dso]"; then
2513 - ewarn "Per Gentoo bugs #223747, #238586, when subversion is built"
2514 - ewarn "with USE=dso, there may be weird crashes in git-svn. You"
2515 - ewarn "have been warned."
2516 - fi
2517 - if use perforce ; then
2518 - python-single-r1_pkg_setup
2519 - fi
2520 -}
2521 -
2522 -# This is needed because for some obscure reasons future calls to make don't
2523 -# pick up these exports if we export them in src_unpack()
2524 -exportmakeopts() {
2525 - local extlibs myopts
2526 -
2527 - myopts=(
2528 - ASCIIDOC_NO_ROFF=YesPlease
2529 - $(usex cvs '' NO_CVS=YesPlease)
2530 - $(usex elibc_musl NO_REGEX=YesPlease '')
2531 - $(usex iconv '' NO_ICONV=YesPlease)
2532 - $(usex nls '' NO_GETTEXT=YesPlease)
2533 - $(usex perl 'INSTALLDIRS=vendor NO_PERL_CPAN_FALLBACKS=YesPlease' NO_PERL=YesPlease)
2534 - $(usex perforce '' NO_PYTHON=YesPlease)
2535 - $(usex subversion '' NO_SVN_TESTS=YesPlease)
2536 - $(usex threads '' NO_PTHREADS=YesPlease)
2537 - $(usex tk '' NO_TCLTK=YesPlease)
2538 - )
2539 -
2540 - if use blksha1 ; then
2541 - myopts+=( BLK_SHA1=YesPlease )
2542 - elif use ppcsha1 ; then
2543 - myopts+=( PPC_SHA1=YesPlease )
2544 - fi
2545 -
2546 - if use curl ; then
2547 - use webdav || myopts+=( NO_EXPAT=YesPlease )
2548 - else
2549 - myopts+=( NO_CURL=YesPlease )
2550 - fi
2551 -
2552 - # broken assumptions, because of static build system ...
2553 - myopts+=(
2554 - NO_FINK=YesPlease
2555 - NO_DARWIN_PORTS=YesPlease
2556 - INSTALL=install
2557 - TAR=tar
2558 - SHELL_PATH="${EPREFIX}/bin/sh"
2559 - SANE_TOOL_PATH=
2560 - OLD_ICONV=
2561 - NO_EXTERNAL_GREP=
2562 - )
2563 -
2564 - # For svn-fe
2565 - extlibs=( -lz -lssl ${S}/xdiff/lib.a $(usex threads -lpthread '') )
2566 -
2567 - # can't define this to null, since the entire makefile depends on it
2568 - sed -i -e '/\/usr\/local/s/BASIC_/#BASIC_/' Makefile || die
2569 -
2570 - if use pcre; then
2571 - if use pcre-jit; then
2572 - myopts+=( USE_LIBPCRE2=YesPlease )
2573 - extlibs+=( -lpcre2-8 )
2574 - else
2575 - myopts+=(
2576 - USE_LIBPCRE1=YesPlease
2577 - NO_LIBPCRE1_JIT=YesPlease
2578 - )
2579 - extlibs+=( -lpcre )
2580 - fi
2581 - fi
2582 - if [[ ${CHOST} == *-solaris* ]]; then
2583 - myopts+=(
2584 - NEEDS_LIBICONV=YesPlease
2585 - HAVE_CLOCK_MONOTONIC=1
2586 - )
2587 - if grep -q getdelim "${EROOT}"/usr/include/stdio.h ; then
2588 - myopts+=( HAVE_GETDELIM=1 )
2589 - fi
2590 - fi
2591 -
2592 - if has_version '>=app-text/asciidoc-8.0' ; then
2593 - myopts+=( ASCIIDOC8=YesPlease )
2594 - fi
2595 -
2596 - # Bug 290465:
2597 - # builtin-fetch-pack.c:816: error: 'struct stat' has no member named 'st_mtim'
2598 - if [[ "${CHOST}" == *-uclibc* ]] ; then
2599 - myopts+=( NO_NSEC=YesPlease )
2600 - use iconv && myopts+=( NEEDS_LIBICONV=YesPlease )
2601 - fi
2602 -
2603 - export MY_MAKEOPTS="${myopts[@]}"
2604 - export EXTLIBS="${extlibs[@]}"
2605 -}
2606 -
2607 -src_unpack() {
2608 - if [[ ${PV} != *9999 ]]; then
2609 - unpack ${MY_P}.tar.${SRC_URI_SUFFIX}
2610 - cd "${S}" || die
2611 - unpack ${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
2612 - if use doc ; then
2613 - pushd "${S}"/Documentation &>/dev/null || die
2614 - unpack ${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
2615 - popd &>/dev/null || die
2616 - fi
2617 - else
2618 - git-r3_src_unpack
2619 - #cp "${FILESDIR}"/GIT-VERSION-GEN .
2620 - fi
2621 -
2622 -}
2623 -
2624 -src_prepare() {
2625 - # add experimental patches to improve mediawiki support
2626 - # see patches for origin
2627 - if use mediawiki-experimental ; then
2628 - PATCHES+=(
2629 - "${FILESDIR}"/git-2.7.0-mediawiki-namespaces.patch
2630 - "${FILESDIR}"/git-2.7.0-mediawiki-subpages.patch
2631 - "${FILESDIR}"/git-2.7.0-mediawiki-500pages.patch
2632 - )
2633 - fi
2634 -
2635 - default
2636 -
2637 - sed -i \
2638 - -e 's:^\(CFLAGS[[:space:]]*=\).*$:\1 $(OPTCFLAGS) -Wall:' \
2639 - -e 's:^\(LDFLAGS[[:space:]]*=\).*$:\1 $(OPTLDFLAGS):' \
2640 - -e 's:^\(CC[[:space:]]* =\).*$:\1$(OPTCC):' \
2641 - -e 's:^\(AR[[:space:]]* =\).*$:\1$(OPTAR):' \
2642 - -e "s:\(PYTHON_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
2643 - -e "s:\(PERL_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
2644 - Makefile contrib/svn-fe/Makefile || die
2645 -
2646 - # Fix docbook2texi command
2647 - sed -r -i 's/DOCBOOK2X_TEXI[[:space:]]*=[[:space:]]*docbook2x-texi/DOCBOOK2X_TEXI = docbook2texi.pl/' \
2648 - Documentation/Makefile || die
2649 -}
2650 -
2651 -git_emake() {
2652 - # bug #320647: PYTHON_PATH
2653 - local PYTHON_PATH=""
2654 - use perforce && PYTHON_PATH="${PYTHON}"
2655 - emake ${MY_MAKEOPTS} \
2656 - prefix="${EPREFIX}"/usr \
2657 - htmldir="${EPREFIX}"/usr/share/doc/${PF}/html \
2658 - perllibdir="$(use perl && perl_get_raw_vendorlib)" \
2659 - sysconfdir="${EPREFIX}"/etc \
2660 - DESTDIR="${D}" \
2661 - GIT_TEST_OPTS="--no-color" \
2662 - OPTAR="$(tc-getAR)" \
2663 - OPTCC="$(tc-getCC)" \
2664 - OPTCFLAGS="${CFLAGS}" \
2665 - OPTLDFLAGS="${LDFLAGS}" \
2666 - PERL_PATH="${EPREFIX}/usr/bin/perl" \
2667 - PERL_MM_OPT="" \
2668 - PYTHON_PATH="${PYTHON_PATH}" \
2669 - V=1 \
2670 - "$@"
2671 -}
2672 -
2673 -src_configure() {
2674 - exportmakeopts
2675 -}
2676 -
2677 -src_compile() {
2678 - git_emake || die "emake failed"
2679 -
2680 - if use emacs ; then
2681 - elisp-compile contrib/emacs/git{,-blame}.el
2682 - fi
2683 -
2684 - if use perl && use cgi ; then
2685 - git_emake \
2686 - gitweb \
2687 - || die "emake gitweb (cgi) failed"
2688 - fi
2689 -
2690 - if [[ ${CHOST} == *-darwin* ]]; then
2691 - pushd contrib/credential/osxkeychain &>/dev/null || die
2692 - git_emake CC=$(tc-getCC) CFLAGS="${CFLAGS}" \
2693 - || die "emake credential-osxkeychain"
2694 - popd &>/dev/null || die
2695 - fi
2696 -
2697 - pushd Documentation &>/dev/null || die
2698 - if [[ ${PV} == *9999 ]] ; then
2699 - git_emake man \
2700 - || die "emake man failed"
2701 - if use doc ; then
2702 - git_emake info html \
2703 - || die "emake info html failed"
2704 - fi
2705 - else
2706 - if use doc ; then
2707 - git_emake info \
2708 - || die "emake info html failed"
2709 - fi
2710 - fi
2711 - popd &>/dev/null || die
2712 -
2713 - if use subversion ; then
2714 - pushd contrib/svn-fe &>/dev/null || die
2715 - # by defining EXTLIBS we override the detection for libintl and
2716 - # libiconv, bug #516168
2717 - local nlsiconv=()
2718 - use nls && use !elibc_glibc && nlsiconv+=( -lintl )
2719 - use iconv && use !elibc_glibc && nlsiconv+=( -liconv )
2720 - git_emake EXTLIBS="${EXTLIBS} ${nlsiconv[@]}" \
2721 - || die "emake svn-fe failed"
2722 - if use doc ; then
2723 - # svn-fe.1 requires the full USE=doc dependency stack
2724 - git_emake svn-fe.1 \
2725 - || die "emake svn-fe.1 failed"
2726 - git_emake svn-fe.html \
2727 - || die "svn-fe.html failed"
2728 - fi
2729 - popd &>/dev/null || die
2730 - fi
2731 -
2732 - if use gnome-keyring ; then
2733 - pushd contrib/credential/libsecret &>/dev/null || die
2734 - git_emake || die "emake git-credential-libsecret failed"
2735 - popd &>/dev/null || die
2736 - fi
2737 -
2738 - pushd contrib/subtree &>/dev/null || die
2739 - git_emake git-subtree
2740 - # git-subtree.1 requires the full USE=doc dependency stack
2741 - use doc && git_emake git-subtree.html git-subtree.1
2742 - popd &>/dev/null || die
2743 -
2744 - pushd contrib/diff-highlight &>/dev/null || die
2745 - git_emake
2746 - popd &>/dev/null || die
2747 -
2748 - if use mediawiki ; then
2749 - pushd contrib/mw-to-git &>/dev/null || die
2750 - git_emake
2751 - popd &>/dev/null || die
2752 -
2753 - fi
2754 -}
2755 -
2756 -src_install() {
2757 - git_emake install || die "make install failed"
2758 -
2759 - if [[ ${CHOST} == *-darwin* ]]; then
2760 - dobin contrib/credential/osxkeychain/git-credential-osxkeychain
2761 - fi
2762 -
2763 - # Depending on the tarball and manual rebuild of the documentation, the
2764 - # manpages may exist in either OR both of these directories.
2765 - find man?/*.[157] >/dev/null 2>&1 && doman man?/*.[157]
2766 - find Documentation/*.[157] >/dev/null 2>&1 && doman Documentation/*.[157]
2767 - dodoc README* Documentation/{SubmittingPatches,CodingGuidelines}
2768 - use doc && dodir /usr/share/doc/${PF}/html
2769 - local d
2770 - for d in / /howto/ /technical/ ; do
2771 - docinto ${d}
2772 - dodoc Documentation${d}*.txt
2773 - if use doc ; then
2774 - docinto ${d}/html
2775 - dodoc Documentation${d}*.html
2776 - fi
2777 - done
2778 - docinto /
2779 - # Upstream does not ship this pre-built :-(
2780 - use doc && doinfo Documentation/{git,gitman}.info
2781 -
2782 - newbashcomp contrib/completion/git-completion.bash ${PN}
2783 - bashcomp_alias git gitk
2784 - # Not really a bash-completion file (bug #477920)
2785 - # but still needed uncompressed (bug #507480)
2786 - insinto /usr/share/${PN}
2787 - doins contrib/completion/git-prompt.sh
2788 -
2789 - if use emacs ; then
2790 - elisp-install ${PN} contrib/emacs/git.{el,elc}
2791 - elisp-install ${PN} contrib/emacs/git-blame.{el,elc}
2792 - #elisp-install ${PN}/compat contrib/emacs/vc-git.{el,elc}
2793 - # don't add automatically to the load-path, so the sitefile
2794 - # can do a conditional loading
2795 - touch "${ED}${SITELISP}/${PN}/compat/.nosearch"
2796 - elisp-site-file-install "${FILESDIR}"/${SITEFILE}
2797 - fi
2798 -
2799 - #dobin contrib/fast-import/git-p4 # Moved upstream
2800 - #dodoc contrib/fast-import/git-p4.txt # Moved upstream
2801 - newbin contrib/fast-import/import-tars.perl import-tars
2802 - exeinto /usr/libexec/git-core/
2803 - newexe contrib/git-resurrect.sh git-resurrect
2804 -
2805 - # git-subtree
2806 - pushd contrib/subtree &>/dev/null || die
2807 - git_emake install || die "Failed to emake install for git-subtree"
2808 - if use doc ; then
2809 - # Do not move git subtree install-man outside USE=doc!
2810 - git_emake install-man install-html || die "Failed to emake install-html install-man for git-subtree"
2811 - fi
2812 - newdoc README README.git-subtree
2813 - dodoc git-subtree.txt
2814 - popd &>/dev/null || die
2815 -
2816 - if use mediawiki ; then
2817 - pushd contrib/mw-to-git &>/dev/null || die
2818 - git_emake install
2819 - popd &>/dev/null || die
2820 - fi
2821 -
2822 - # diff-highlight
2823 - dobin contrib/diff-highlight/diff-highlight
2824 - newdoc contrib/diff-highlight/README README.diff-highlight
2825 -
2826 - # git-jump
2827 - exeinto /usr/libexec/git-core/
2828 - doexe contrib/git-jump/git-jump
2829 - newdoc contrib/git-jump/README git-jump.txt
2830 -
2831 - # git-contacts
2832 - exeinto /usr/libexec/git-core/
2833 - doexe contrib/contacts/git-contacts
2834 - dodoc contrib/contacts/git-contacts.txt
2835 -
2836 - if use gnome-keyring ; then
2837 - pushd contrib/credential/libsecret &>/dev/null || die
2838 - dobin git-credential-libsecret
2839 - popd &>/dev/null || die
2840 - fi
2841 -
2842 - if use subversion ; then
2843 - pushd contrib/svn-fe &>/dev/null || die
2844 - dobin svn-fe
2845 - dodoc svn-fe.txt
2846 - if use doc ; then
2847 - # Do not move svn-fe.1 outside USE=doc!
2848 - doman svn-fe.1
2849 - docinto html
2850 - dodoc svn-fe.html
2851 - fi
2852 - popd &>/dev/null || die
2853 - fi
2854 -
2855 - dodir /usr/share/${PN}/contrib
2856 - # The following are excluded:
2857 - # completion - installed above
2858 - # diff-highlight - done above
2859 - # emacs - installed above
2860 - # examples - these are stuff that is not used in Git anymore actually
2861 - # git-jump - done above
2862 - # gitview - installed above
2863 - # p4import - excluded because fast-import has a better one
2864 - # patches - stuff the Git guys made to go upstream to other places
2865 - # persistent-https - TODO
2866 - # mw-to-git - TODO
2867 - # subtree - build seperately
2868 - # svnimport - use git-svn
2869 - # thunderbird-patch-inline - fixes thunderbird
2870 - local contrib_objects=(
2871 - buildsystems
2872 - fast-import
2873 - hg-to-git
2874 - hooks
2875 - remotes2config.sh
2876 - rerere-train.sh
2877 - stats
2878 - workdir
2879 - )
2880 - local i
2881 - for i in "${contrib_objects[@]}" ; do
2882 - cp -rf \
2883 - "${S}"/contrib/${i} \
2884 - "${ED}"/usr/share/${PN}/contrib \
2885 - || die "Failed contrib ${i}"
2886 - done
2887 -
2888 - if use perl && use cgi ; then
2889 - # We used to install in /usr/share/${PN}/gitweb
2890 - # but upstream installs in /usr/share/gitweb
2891 - # so we will install a symlink and use their location for compat with other
2892 - # distros
2893 - dosym ../gitweb /usr/share/${PN}/gitweb
2894 -
2895 - # INSTALL discusses configuration issues, not just installation
2896 - docinto /
2897 - newdoc "${S}"/gitweb/INSTALL INSTALL.gitweb
2898 - newdoc "${S}"/gitweb/README README.gitweb
2899 -
2900 - for d in "${ED}"/usr/lib{,64}/perl5/ ; do
2901 - if test -d "${d}" ; then find "${d}" \
2902 - -name .packlist \
2903 - -delete || die
2904 - fi
2905 - done
2906 - else
2907 - rm -rf "${ED}"/usr/share/gitweb
2908 - fi
2909 -
2910 - if ! use subversion ; then
2911 - rm -f "${ED}"/usr/libexec/git-core/git-svn \
2912 - "${ED}"/usr/share/man/man1/git-svn.1*
2913 - fi
2914 -
2915 - if use xinetd ; then
2916 - insinto /etc/xinetd.d
2917 - newins "${FILESDIR}"/git-daemon.xinetd git-daemon
2918 - fi
2919 -
2920 - if use !prefix ; then
2921 - newinitd "${FILESDIR}"/git-daemon-r1.initd git-daemon
2922 - newconfd "${FILESDIR}"/git-daemon.confd git-daemon
2923 - systemd_newunit "${FILESDIR}/git-daemon_at-r1.service" "git-daemon@.service"
2924 - systemd_dounit "${FILESDIR}/git-daemon.socket"
2925 - fi
2926 -
2927 - perl_delete_localpod
2928 -
2929 - # Remove disabled linguas
2930 - # we could remove sources in src_prepare, but install does not
2931 - # handle missing locale dir well
2932 - rm_loc() {
2933 - if [[ -e "${ED}/usr/share/locale/${1}" ]]; then
2934 - rm -r "${ED}/usr/share/locale/${1}" || die
2935 - fi
2936 - }
2937 - l10n_for_each_disabled_locale_do rm_loc
2938 -}
2939 -
2940 -src_test() {
2941 - local disabled=()
2942 - local tests_cvs=(
2943 - t9200-git-cvsexportcommit.sh
2944 - t9400-git-cvsserver-server.sh
2945 - t9401-git-cvsserver-crlf.sh
2946 - t9402-git-cvsserver-refs.sh
2947 - t9600-cvsimport.sh
2948 - t9601-cvsimport-vendor-branch.sh
2949 - t9602-cvsimport-branches-tags.sh
2950 - t9603-cvsimport-patchsets.sh
2951 - t9604-cvsimport-timestamps.sh
2952 - )
2953 - local tests_perl=(
2954 - t3701-add-interactive.sh
2955 - t5502-quickfetch.sh
2956 - t5512-ls-remote.sh
2957 - t5520-pull.sh
2958 - t7106-reset-unborn-branch.sh
2959 - t7501-commit.sh
2960 - )
2961 - # Bug #225601 - t0004 is not suitable for root perm
2962 - # Bug #219839 - t1004 is not suitable for root perm
2963 - # t0001-init.sh - check for init notices EPERM* fails
2964 - local tests_nonroot=(
2965 - t0001-init.sh
2966 - t0004-unwritable.sh
2967 - t0070-fundamental.sh
2968 - t1004-read-tree-m-u-wf.sh
2969 - t3700-add.sh
2970 - t7300-clean.sh
2971 - )
2972 - # t9100 still fails with symlinks in SVN 1.7
2973 - local test_svn=( t9100-git-svn-basic.sh )
2974 -
2975 - # Unzip is used only for the testcase code, not by any normal parts of Git.
2976 - if ! has_version app-arch/unzip ; then
2977 - einfo "Disabling tar-tree tests"
2978 - disabled+=( t5000-tar-tree.sh )
2979 - fi
2980 -
2981 - local cvs=0
2982 - use cvs && let cvs=${cvs}+1
2983 - if [[ ${EUID} -eq 0 ]]; then
2984 - if [[ ${cvs} -eq 1 ]]; then
2985 - ewarn "Skipping CVS tests because CVS does not work as root!"
2986 - ewarn "You should retest with FEATURES=userpriv!"
2987 - disabled+=( ${tests_cvs[@]} )
2988 - fi
2989 - einfo "Skipping other tests that require being non-root"
2990 - disabled+=( ${tests_nonroot[@]} )
2991 - else
2992 - [[ ${cvs} -gt 0 ]] && \
2993 - has_version dev-vcs/cvs && \
2994 - let cvs=${cvs}+1
2995 - [[ ${cvs} -gt 1 ]] && \
2996 - has_version "dev-vcs/cvs[server]" && \
2997 - let cvs=${cvs}+1
2998 - if [[ ${cvs} -lt 3 ]]; then
2999 - einfo "Disabling CVS tests (needs dev-vcs/cvs[USE=server])"
3000 - disabled+=( ${tests_cvs[@]} )
3001 - fi
3002 - fi
3003 -
3004 - if ! use perl ; then
3005 - einfo "Disabling tests that need Perl"
3006 - disabled+=( ${tests_perl[@]} )
3007 - fi
3008 -
3009 - einfo "Disabling tests that fail with SVN 1.7"
3010 - disabled+=( ${test_svn[@]} )
3011 -
3012 - # Reset all previously disabled tests
3013 - pushd t &>/dev/null || die
3014 - local i
3015 - for i in *.sh.DISABLED ; do
3016 - [[ -f "${i}" ]] && mv -f "${i}" "${i%.DISABLED}"
3017 - done
3018 - einfo "Disabled tests:"
3019 - for i in ${disabled[@]} ; do
3020 - [[ -f "${i}" ]] && mv -f "${i}" "${i}.DISABLED" && einfo "Disabled ${i}"
3021 - done
3022 -
3023 - # Avoid the test system removing the results because we want them ourselves
3024 - sed -e '/^[[:space:]]*$(MAKE) clean/s,^,#,g' \
3025 - -i Makefile || die
3026 -
3027 - # Clean old results first, must always run
3028 - nonfatal git_emake clean
3029 - popd &>/dev/null || die
3030 -
3031 - # Now run the tests, keep going if we hit an error, and don't terminate on
3032 - # failure
3033 - local rc
3034 - einfo "Start test run"
3035 - #MAKEOPTS=-j1
3036 - nonfatal git_emake --keep-going test
3037 - rc=$?
3038 -
3039 - # Display nice results, now print the results
3040 - pushd t &>/dev/null || die
3041 - nonfatal git_emake aggregate-results
3042 -
3043 - # And bail if there was a problem
3044 - [[ ${rc} -eq 0 ]] || die "tests failed. Please file a bug."
3045 -}
3046 -
3047 -showpkgdeps() {
3048 - local pkg=$1
3049 - shift
3050 - elog " $(printf "%-17s:" ${pkg}) ${@}"
3051 -}
3052 -
3053 -pkg_postinst() {
3054 - use emacs && elisp-site-regen
3055 - elog "Please read /usr/share/bash-completion/completions/git for Git bash command"
3056 - elog "completion."
3057 - elog "Please read /usr/share/git/git-prompt.sh for Git bash prompt"
3058 - elog "Note that the prompt bash code is now in that separate script"
3059 - elog "These additional scripts need some dependencies:"
3060 - echo
3061 - showpkgdeps git-quiltimport "dev-util/quilt"
3062 - showpkgdeps git-instaweb \
3063 - "|| ( www-servers/lighttpd www-servers/apache www-servers/nginx )"
3064 - echo
3065 - use mediawiki-experimental && ewarn "Using experimental git-mediawiki patches. The stability of cloned wiki filesystems is not guaranteed."
3066 -}
3067 -
3068 -pkg_postrm() {
3069 - use emacs && elisp-site-regen
3070 -}