Gentoo Archives: gentoo-commits

From: "Anthony G. Basile" <blueness@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/musl:master commit in: dev-java/icedtea/files/, dev-java/icedtea/
Date: Tue, 04 Dec 2018 12:45:11
Message-Id: 1543927387.6840035f005256e8e1f643cae3e7ee381d441ea8.blueness@gentoo
1 commit: 6840035f005256e8e1f643cae3e7ee381d441ea8
2 Author: callmetango <callmetango <AT> users <DOT> noreply <DOT> github <DOT> com>
3 AuthorDate: Tue Dec 4 11:29:33 2018 +0000
4 Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
5 CommitDate: Tue Dec 4 12:43:07 2018 +0000
6 URL: https://gitweb.gentoo.org/proj/musl.git/commit/?id=6840035f
7
8 dev-java/icedtea: version bump to 3.9.0
9
10 * added 3.9.0 ebuild
11 * added PPC and getmntent patches of Alpine Linux OpenJDK
12 * renamed icedtea8-jdk-fix-ipv6-init.patch to be consistent with other patches
13
14 Signed-off-by: Anthony G. Basile <blueness <AT> gentoo.org>
15
16 dev-java/icedtea/Manifest | 22 +-
17 .../icedtea/files/icedtea8-hotspot-musl-ppc.patch | 169 ++++++++
18 ...init.patch => icedtea8-jdk-fix-ipv6-init.patch} | 0
19 .../files/icedtea8-jdk-getmntent-buffer.patch | 88 +++++
20 dev-java/icedtea/icedtea-3.9.0.ebuild | 424 +++++++++++++++++++++
21 5 files changed, 692 insertions(+), 11 deletions(-)
22
23 diff --git a/dev-java/icedtea/Manifest b/dev-java/icedtea/Manifest
24 index 93cd640..8dc5ffb 100644
25 --- a/dev-java/icedtea/Manifest
26 +++ b/dev-java/icedtea/Manifest
27 @@ -1,13 +1,13 @@
28 -DIST icedtea-3.8-aarch32-bd08b7f27e11.tar.xz 6762428 BLAKE2B d5c6b97ad133faf21f16328e1a86fe22a1e3bdcba73d43728cceddb6341f529661202e5384f3a7bc9f0de4bac9af897b86f942cbfaa310a44b959b0be5b55fde SHA512 99715812bf7b71e2031e96e27b27745d6963ee9749886a61a982628b5d95b9491a7696cf733d06adedef75dbb8dabecf5ffb72531e6b19329121b0e4f1b08afb
29 -DIST icedtea-3.8-corba-75fd375dd38a.tar.xz 942152 BLAKE2B 86ca4a62d8dfe7b8fec3a90471b48e2d0711fe708654695ddddbbc400bf71f1f3a3926f28989940ff325c0e171989336082d271ab468a13e38dfd93d680437d5 SHA512 a41d53d2d6471b94878ba18caf525f1b64e72c2ae6926a9f1f5dac2e9a9366151d35156fb519cca8aeeda97d8e42cc258a93390170859b3035de4da69e48e321
30 -DIST icedtea-3.8-hotspot-cb5711bf53d9.tar.xz 6838240 BLAKE2B a2419e93d736458c7853800c0efbd8a5035b2baa2b239e4326bdf70c5b6f08d36a96ae53b29de978e493c40ccf146f2c2115a08413b1fbf25c51850eb83fc4c2 SHA512 8c4b060611b867c43fbe6cac3d2f06f6979950781872b387220e12c7066b3efde24160b7bd03189350a6518615b492703425c2ea67a26c6b4d187f843093a780
31 -DIST icedtea-3.8-jaxp-2b279bb3475b.tar.xz 2287836 BLAKE2B 3705c8137a29a706aefe3dbb32fb0042e81c50cddcc54c31448d2c6f2c5a27ab3ea7e7f03f82990c379b9f39368aaeb6d8ee8adb56ecbf21faddb35d1727be07 SHA512 3eb04788776612f0de0b058908417c4735e6b1cfb56afaf73748e1f3121b25d6eea710cd1d72ed19f8788c8e00b701265d79237da3542d0947c00d37b4308e9c
32 -DIST icedtea-3.8-jaxws-c54a27559acb.tar.xz 2270928 BLAKE2B 2c5adb94aabd276fb00840ef6b0dfd04a36d728c603c8281bdbcc3d13b393144fb2336d4da54085ab999ef6725b6f706d727645a36b77f4a1294177947b6059f SHA512 1431e71e2281eef893904e686c8d33587c4332ed7cfacd5fd2e278fe0a4e6f225e03d22b8ca73517b030e3e33ffba964f023bed9b9e4f4a6f14b8cced43ce0a5
33 -DIST icedtea-3.8-jdk-9c9ff65b03b6.tar.xz 39146448 BLAKE2B 1f9a4efcc5697ce73af9018d39c632cecbca6945c4065f089db027d1fa86b6c315ead93f3acd291615c68edc057b470abe1cd0316300f54113eada7789b3a5cd SHA512 9f6b6e42e8bea6a00c9833bd9775bfa5c63d1126e25fc376f4ba2cf5601dea8ab6a3f1d442d5fb188de3f74ce0a6410dc3a8463f798b1aa23822a272faa5aa73
34 -DIST icedtea-3.8-langtools-21524ad5b914.tar.xz 2070064 BLAKE2B 5a5dcc0e40e08330e29850d99810fe62fc233390347ebb21fe12f606ddc6e8b5fe2060fe181210626d1e2ddc92828779f8fc138bdfda90f7b66f88e75f80ea43 SHA512 fd57023505d69246593ed24d90ad7052a88362ef7106900eca59e61ad5cadc247215cc9e8d410f9150e33a72126247ce1bb809540985062515b3d31d77d1535e
35 -DIST icedtea-3.8-nashorn-bb3e3345d3ec.tar.xz 2317148 BLAKE2B 9d85532853dfde6fcbf406d52f29e3b8130e5435e38200a48aadb16b4aa8a9dfe70fe6f7f83c4bd170e25a61fbaf3a8499893ae247239594e004f1a4aa37e708 SHA512 7c6d51a6565fe8c670a59caf001b1c0821b7fb2e42b2bbe24b35e337df4fc664c87868e0c55dcaa168f9c3e973ab9e75bca93d660e242c07d0f21eff83d674b5
36 -DIST icedtea-3.8-openjdk-499b993b345a.tar.xz 335928 BLAKE2B bb49fd086851110e9beb993167f2cb9b217800086070a1ba04a6b96b9e130157a2d8420a056e2e71e98144cd94454aa4c3a568c038f1b282cbc06b25df49a54c SHA512 e438a7ab0eb4e4374278afdbd40cab66875c9704f80a8963f0c965ce995744bcf23814c734ffd10e95329c7b767337fff18e3478c3f03481f8e15a5a9bfc853f
37 -DIST icedtea-3.8-shenandoah-c44a9eef4985.tar.xz 6954776 BLAKE2B 348735f8a2ecd656c4d323dd870fa63d028757a57babe0f4ffa0977d0446f17cd80a6709147b98d6712e1b5d26719cfad1ea01536930dddcf7389947b43a7d7d SHA512 2e84c6b398f35e59d3819e5ce23dd573e76c385c47f9971d6b77def1cfc1b19a86288e3cdbd78aa6dcdab068128852f4a1c82cf13229a760b1f625095cd51514
38 -DIST icedtea-3.8.0.tar.xz 1496972 BLAKE2B 9a376539ca2c4c8560aeaaa2fbc65c61a90519b9c87e924e2d54ef150401676e90df0fb5143fd90e9e4c6d254db56617456a668bf886573854f299402af378d8 SHA512 6336d35c11dbe16c96bc07eaa760fd849a2cd317416aba72b0732f8f1e52c9e3fedde5398d4a7f5a3057d4b6ae229965d597b3f5df09a76b5f31bbad0ad02a9a
39 +DIST icedtea-3.9-aarch32-891d70e93fb0.tar.xz 6771692 BLAKE2B 915e3287b7a3f251e3f274e84c127e16c3145e550305d1f5dabae56367e3f118810fccd3be3c0f773f02556e9411812f30964bc38f6b44234f5e08b69c0362e3 SHA512 a15670f1c3593367aec89d40946115f6bc03bf4ba439cbcc0544293f46cbc5c0bbd4bb1b644fc00c29d8c82cdcabd00d993615b1852fabade097b433de0190fa
40 +DIST icedtea-3.9-corba-c120c4fb7b31.tar.xz 944220 BLAKE2B 545430b398f6f33591faaf436a294c11d6a1ae83ed2c4ca474407568c01709aad0ecb3f7fe2a8b84900f1257b627890439439e200322b7c7d1d410c8f25a39c6 SHA512 644203f6b951b8a6af1291f732c0c1fd5a060ba87e0e371e77e6d40c8e36a094799ce8b29cbf094dd9a53a91aaaeea38f63c7340c8adba162ceff7a2695863ff
41 +DIST icedtea-3.9-hotspot-d78088224b98.tar.xz 6851860 BLAKE2B 1006b9840e7e0a76fda362a47503ffdb689a0a2ed025696dd57cafc5a17167b21373b6c225d01c1d6ad8583e39d4eaac99157cea361daf193c9d992972764630 SHA512 e7e333695e5871a7ebf9d663d5c5a7d16a31e3eca33a7f974d7d6941598732bb8514cff8f0da8baffa2cff639d404f27aca23f450198e8a45262acc69d89f25f
42 +DIST icedtea-3.9-jaxp-55420c5cc9f3.tar.xz 2289624 BLAKE2B acdc7ec79393178b7d8a7f46605e8114858f2040e445e1c6388e9ebf21bd2367d21a65d3f1f041b316f45978fae970af1c7340679c9fefb8385a45e19564a98f SHA512 98792ceeea825c91c6642bab14f43dfa8c3aeffcf9091c1b5c9587d154c6613c24bfa9d83a362393baf1eb0a71e424baaca4302729d1a8a30c0eb17c3688b6be
43 +DIST icedtea-3.9-jaxws-f824de94c42e.tar.xz 2272684 BLAKE2B 150d3ced87a87096eee0d4aee40a9f055047d4af1cbfa71a77902599bcc3addc6808e99538bfec21337909a3cd4240e79ee8fa28bd946abdae0f8ba6a5b6ddfc SHA512 d97f86bc8775cf83b7931f2503fc2c824e4433be46587416b314f6fc114e5d1117071625344305eb99101576e4639c8b24afa8be9c57387c9dd12b376150e835
44 +DIST icedtea-3.9-jdk-7b289a33ab97.tar.xz 39194584 BLAKE2B d08416b2757847f4218412dd8854b3488c4040e782dc672d77bd556869a91d6a7c4f529c79b5d3f3c69dad9996869c3d94359514b572ede879a2b1afb2d44b01 SHA512 192093916f442cac6d7a756f831a71e13407b327bb772031a795cb4578d82215c7eb38623e26781064f049ec7532bfac09bacda1d5241aba41f675ec84aa6730
45 +DIST icedtea-3.9-langtools-8496472630c5.tar.xz 2071464 BLAKE2B 321bc7817d437b93ddec6e1f2167521acc1b54a33338937352c3f4c59d3fba4ea06d6fc4a67d58e14b47d7357f4bec11dd657b5731b42676ce04a62c9cd0ba96 SHA512 20f7a53701621a827f45f8ec18b3a186b4d8ec2e58c11283a253c54e1182878e6c9ca0b6004c9c487c701ead9533912b7fe0d66339cdc8a39dab12a6da909064
46 +DIST icedtea-3.9-nashorn-79a2c8e2babc.tar.xz 2314292 BLAKE2B 813a16728ca48c7cf9c414caab721f5ff46878d41bf05221d85c7da27dc3bdcc1c9ca4da5acde5b030fe04a466dca950fddf0f0771557bf73f7e868979365e15 SHA512 e149ee35efff265074e57351d5ba4870ec241516e4d73d23cf75a3420f07e666e610847c996f9c1f742586af49d23518776c4c60d8d1051a4e05b39be163ddd0
47 +DIST icedtea-3.9-openjdk-3b2d372838b9.tar.xz 338056 BLAKE2B 1118cf74d6728685b7d9dcbee8351f462ef7c19020e7596e38e4b3b080d6108966c0f280e866e8925c620292592dc39e627808cde15dea47a01a39bcd675493b SHA512 775930ee4806ddcf39d37ddf0f7fbacad1e1bb174cb2754a830bb1f7941a636e013ff5d844e431c4840c423480238fdb88a6c28d345e3c1326ec1dbb1c511c85
48 +DIST icedtea-3.9-shenandoah-b8b742251e42.tar.xz 6990872 BLAKE2B e3ac745923932de3e5c8e41f418234a698ad06e1d4a9256c8b9bc0b07157259afc5abafa12f015e3dc3fe117e08d469f600de74f18f68891240b6e5927bcd478 SHA512 399406402e6f7a268e5ec837b4f8d4cb0a775c177596a71a964d8a5bb2ac915fcff050a521e8342d036a1ff48e8902dc22d8c1439237073f5983fc38201d38f3
49 +DIST icedtea-3.9.0.tar.xz 1513688 BLAKE2B 1e983a844cc45397d2c2b238a2a788b49aeedf69e6b2c9ac8210cee135aeb06490363a7d59d047dededdde6f9f2dce4eae7d8c66605e9ba1989e6aa7f16e80aa SHA512 a35b600f7fa7ef19bf980e26e4cc22b57ad7daf363c91ffcf4ab1a52af48bfb316bb5dcba75d0d9966b799d25f71bae2d04fe89ae28103c82f7711ba1e346465
50 DIST icedtea-cacao-c182f119eaad.tar.xz 3056520 BLAKE2B 6b1be66ce19f491d49f1591babcd8c088e8e327f828dca3f30b8f8b04c132140f8b9f487ef6d91aed212aebab2c7c3052d79fa3f2d76d3832341d94d48e77089 SHA512 22e8a031db5f93f82b276b310c175f1e926e48d64e1e50bebe51138e0f66391cd005501491a959d31663f338f27a29ec984ac29f77078f59472856e4d08edef7
51 DIST icedtea-jamvm-ec18fb9e49e62dce16c5094ef1527eed619463aa.tar.gz 317187 BLAKE2B 1ca581a02be4cf5c09162687bbc90ec01b58b4910d866d11512cf17a1caff181fdc69e42f7498b2df9deb875ddc6efc6bc2888428f411da94bbc2313ddf5a2c9 SHA512 a31348481e1c02747f5bb9db333f855c45a1555aa187ee35de5ef553a10a8a47dfcc1beb1e69502046c1758438b91958a328e0a0015812c153221f67734a70a6
52
53 diff --git a/dev-java/icedtea/files/icedtea8-hotspot-musl-ppc.patch b/dev-java/icedtea/files/icedtea8-hotspot-musl-ppc.patch
54 new file mode 100644
55 index 0000000..eca6848
56 --- /dev/null
57 +++ b/dev-java/icedtea/files/icedtea8-hotspot-musl-ppc.patch
58 @@ -0,0 +1,169 @@
59 +--- openjdk.orig/hotspot/src/os_cpu/linux_ppc/vm/os_linux_ppc.cpp
60 ++++ openjdk/hotspot/src/os_cpu/linux_ppc/vm/os_linux_ppc.cpp
61 +@@ -110,11 +110,19 @@
62 + // it because the volatile registers are not needed to make setcontext() work.
63 + // Hopefully it was zero'd out beforehand.
64 + guarantee(uc->uc_mcontext.regs != NULL, "only use ucontext_get_pc in sigaction context");
65 ++#if defined(__GLIBC__) || defined(__UCLIBC__)
66 + return (address)uc->uc_mcontext.regs->nip;
67 ++#else // Musl
68 ++ return (address)uc->uc_mcontext.gp_regs[32];
69 ++#endif
70 + }
71 +
72 + intptr_t* os::Linux::ucontext_get_sp(ucontext_t * uc) {
73 ++#if defined(__GLIBC__) || defined(__UCLIBC__)
74 + return (intptr_t*)uc->uc_mcontext.regs->gpr[1/*REG_SP*/];
75 ++#else // Musl
76 ++ return (intptr_t*)uc->uc_mcontext.gp_regs[1/*REG_SP*/];
77 ++#endif
78 + }
79 +
80 + intptr_t* os::Linux::ucontext_get_fp(ucontext_t * uc) {
81 +@@ -213,7 +221,11 @@
82 + if (uc) {
83 + address const pc = os::Linux::ucontext_get_pc(uc);
84 + if (pc && StubRoutines::is_safefetch_fault(pc)) {
85 ++#if defined(__GLIBC__) || defined(__UCLIBC__)
86 + uc->uc_mcontext.regs->nip = (unsigned long)StubRoutines::continuation_for_safefetch_fault(pc);
87 ++#else // Musl
88 ++ uc->uc_mcontext.gp_regs[32] = (unsigned long)StubRoutines::continuation_for_safefetch_fault(pc);
89 ++#endif
90 + return true;
91 + }
92 + }
93 +@@ -364,7 +376,11 @@
94 + // continue at the next instruction after the faulting read. Returning
95 + // garbage from this read is ok.
96 + thread->set_pending_unsafe_access_error();
97 ++#if defined(__GLIBC__) || defined(__UCLIBC__)
98 + uc->uc_mcontext.regs->nip = ((unsigned long)pc) + 4;
99 ++#else // Musl
100 ++ uc->uc_mcontext.gp_regs[32] = ((unsigned long)pc) + 4;
101 ++#endif
102 + return true;
103 + }
104 + }
105 +@@ -383,7 +399,11 @@
106 + // continue at the next instruction after the faulting read. Returning
107 + // garbage from this read is ok.
108 + thread->set_pending_unsafe_access_error();
109 ++#if defined(__GLIBC__) || defined(__UCLIBC__)
110 + uc->uc_mcontext.regs->nip = ((unsigned long)pc) + 4;
111 ++#else // Musl
112 ++ uc->uc_mcontext.gp_regs[32] = ((unsigned long)pc) + 4;
113 ++#endif
114 + return true;
115 + }
116 + }
117 +@@ -406,7 +426,11 @@
118 + if (stub != NULL) {
119 + // Save all thread context in case we need to restore it.
120 + if (thread != NULL) thread->set_saved_exception_pc(pc);
121 ++#if defined(__GLIBC__) || defined(__UCLIBC__)
122 + uc->uc_mcontext.regs->nip = (unsigned long)stub;
123 ++#else
124 ++ uc->uc_mcontext.gp_regs[32] = (unsigned long)stub;
125 ++#endif
126 + return true;
127 + }
128 +
129 +@@ -564,6 +588,7 @@
130 + ucontext_t* uc = (ucontext_t*)context;
131 +
132 + st->print_cr("Registers:");
133 ++#if defined(__GLIBC__) || defined(__UCLIBC__)
134 + st->print("pc =" INTPTR_FORMAT " ", uc->uc_mcontext.regs->nip);
135 + st->print("lr =" INTPTR_FORMAT " ", uc->uc_mcontext.regs->link);
136 + st->print("ctr=" INTPTR_FORMAT " ", uc->uc_mcontext.regs->ctr);
137 +@@ -572,8 +597,18 @@
138 + st->print("r%-2d=" INTPTR_FORMAT " ", i, uc->uc_mcontext.regs->gpr[i]);
139 + if (i % 3 == 2) st->cr();
140 + }
141 ++#else // Musl
142 ++ st->print("pc =" INTPTR_FORMAT " ", uc->uc_mcontext.gp_regs[32]);
143 ++ st->print("lr =" INTPTR_FORMAT " ", uc->uc_mcontext.gp_regs[36]);
144 ++ st->print("ctr=" INTPTR_FORMAT " ", uc->uc_mcontext.gp_regs[35]);
145 + st->cr();
146 ++ for (int i = 0; i < 32; i++) {
147 ++ st->print("r%-2d=" INTPTR_FORMAT " ", i, uc->uc_mcontext.gp_regs[i]);
148 ++ if (i % 3 == 2) st->cr();
149 ++ }
150 ++#endif
151 + st->cr();
152 ++ st->cr();
153 +
154 + intptr_t *sp = (intptr_t *)os::Linux::ucontext_get_sp(uc);
155 + st->print_cr("Top of Stack: (sp=" PTR_FORMAT ")", p2i(sp));
156 +@@ -600,7 +635,11 @@
157 + // this is only for the "general purpose" registers
158 + for (int i = 0; i < 32; i++) {
159 + st->print("r%-2d=", i);
160 ++#if defined(__GLIBC__) || defined(__UCLIBC__)
161 + print_location(st, uc->uc_mcontext.regs->gpr[i]);
162 ++#else // Musl
163 ++ print_location(st, uc->uc_mcontext.gp_regs[i]);
164 ++#endif
165 + }
166 + st->cr();
167 + }
168 +--- openjdk.orig/hotspot.orig/src/cpu/ppc/vm/macroAssembler_ppc.cpp
169 ++++ openjdk/hotspot/src/cpu/ppc/vm/macroAssembler_ppc.cpp
170 +@@ -1242,7 +1242,11 @@
171 + // the safepoing polling page.
172 + ucontext_t* uc = (ucontext_t*) ucontext;
173 + // Set polling address.
174 ++#if defined(__GLIBC__) || defined(__UCLIBC__)
175 + address addr = (address)uc->uc_mcontext.regs->gpr[ra] + (ssize_t)ds;
176 ++#else // Musl
177 ++ address addr = (address)uc->uc_mcontext.gp_regs[ra] + (ssize_t)ds;
178 ++#endif
179 + if (polling_address_ptr != NULL) {
180 + *polling_address_ptr = addr;
181 + }
182 +@@ -1263,15 +1267,24 @@
183 + int rb = inv_rb_field(instruction);
184 +
185 + // look up content of ra and rb in ucontext
186 ++#if defined(__GLIBC__) || defined(__UCLIBC__)
187 + address ra_val=(address)uc->uc_mcontext.regs->gpr[ra];
188 + long rb_val=(long)uc->uc_mcontext.regs->gpr[rb];
189 ++#else // Musl
190 ++ address ra_val=(address)uc->uc_mcontext.gp_regs[ra];
191 ++ long rb_val=(long)uc->uc_mcontext.gp_regs[rb];
192 ++#endif
193 + return os::is_memory_serialize_page(thread, ra_val+rb_val);
194 + } else if (is_stw(instruction) || is_stwu(instruction)) {
195 + int ra = inv_ra_field(instruction);
196 + int d1 = inv_d1_field(instruction);
197 +
198 + // look up content of ra in ucontext
199 ++#if defined(__GLIBC__) || defined(__UCLIBC__)
200 + address ra_val=(address)uc->uc_mcontext.regs->gpr[ra];
201 ++#else // Musl
202 ++ address ra_val=(address)uc->uc_mcontext.gp_regs[ra];
203 ++#endif
204 + return os::is_memory_serialize_page(thread, ra_val+d1);
205 + } else {
206 + return false;
207 +@@ -1334,11 +1347,20 @@
208 + || (is_stdu(instruction) && rs == 1)) {
209 + int ds = inv_ds_field(instruction);
210 + // return banged address
211 ++#if defined(__GLIBC__) || defined(__UCLIBC__)
212 + return ds+(address)uc->uc_mcontext.regs->gpr[ra];
213 ++#else // Musl
214 ++ return ds+(address)uc->uc_mcontext.gp_regs[ra];
215 ++#endif
216 + } else if (is_stdux(instruction) && rs == 1) {
217 + int rb = inv_rb_field(instruction);
218 ++#if defined(__GLIBC__) || defined(__UCLIBC__)
219 + address sp = (address)uc->uc_mcontext.regs->gpr[1];
220 + long rb_val = (long)uc->uc_mcontext.regs->gpr[rb];
221 ++#else // Musl
222 ++ address sp = (address)uc->uc_mcontext.gp_regs[1];
223 ++ long rb_val = (long)uc->uc_mcontext.gp_regs[rb];
224 ++#endif
225 + return ra != 1 || rb_val >= 0 ? NULL // not a stack bang
226 + : sp + rb_val; // banged address
227 + }
228
229 diff --git a/dev-java/icedtea/files/icedtea-jdk-fix-ipv6-init.patch b/dev-java/icedtea/files/icedtea8-jdk-fix-ipv6-init.patch
230 similarity index 100%
231 rename from dev-java/icedtea/files/icedtea-jdk-fix-ipv6-init.patch
232 rename to dev-java/icedtea/files/icedtea8-jdk-fix-ipv6-init.patch
233
234 diff --git a/dev-java/icedtea/files/icedtea8-jdk-getmntent-buffer.patch b/dev-java/icedtea/files/icedtea8-jdk-getmntent-buffer.patch
235 new file mode 100644
236 index 0000000..075a9d4
237 --- /dev/null
238 +++ b/dev-java/icedtea/files/icedtea8-jdk-getmntent-buffer.patch
239 @@ -0,0 +1,88 @@
240 +Give a much bigger buffer to getmntent_r.
241 +
242 +https://bugs.alpinelinux.org/issues/7093
243 +
244 +diff --git a/openjdk/jdk/src/solaris/native/sun/nio/fs/LinuxNativeDispatcher.c b/openjdk/jdk/src/solaris/native/sun/nio/fs/LinuxNativeDispatcher.c
245 +index c8500db..d0b85d6 100644
246 +--- openjdk/jdk/src/solaris/native/sun/nio/fs/LinuxNativeDispatcher.c
247 ++++ openjdk/jdk/src/solaris/native/sun/nio/fs/LinuxNativeDispatcher.c
248 +@@ -33,6 +33,7 @@
249 + #include <dlfcn.h>
250 + #include <errno.h>
251 + #include <mntent.h>
252 ++#include <limits.h>
253 +
254 + #include "sun_nio_fs_LinuxNativeDispatcher.h"
255 +
256 +@@ -173,8 +174,8 @@ Java_sun_nio_fs_LinuxNativeDispatcher_getmntent(JNIEnv* env, jclass this,
257 + jlong value, jobject entry)
258 + {
259 + struct mntent ent;
260 +- char buf[1024];
261 +- int buflen = sizeof(buf);
262 ++ char *buf = NULL;
263 ++ const size_t buflen = PATH_MAX * 4;
264 + struct mntent* m;
265 + FILE* fp = jlong_to_ptr(value);
266 + jsize len;
267 +@@ -183,10 +184,17 @@ Java_sun_nio_fs_LinuxNativeDispatcher_getmntent(JNIEnv* env, jclass this,
268 + char* dir;
269 + char* fstype;
270 + char* options;
271 ++ jint res = -1;
272 +
273 +- m = getmntent_r(fp, &ent, (char*)&buf, buflen);
274 +- if (m == NULL)
275 ++ buf = malloc(buflen);
276 ++ if (buf == NULL) {
277 ++ JNU_ThrowOutOfMemoryError(env, "native heap");
278 + return -1;
279 ++ }
280 ++ m = getmntent_r(fp, &ent, buf, buflen);
281 ++ if (m == NULL)
282 ++ goto out;
283 ++
284 + name = m->mnt_fsname;
285 + dir = m->mnt_dir;
286 + fstype = m->mnt_type;
287 +@@ -195,32 +203,35 @@ Java_sun_nio_fs_LinuxNativeDispatcher_getmntent(JNIEnv* env, jclass this,
288 + len = strlen(name);
289 + bytes = (*env)->NewByteArray(env, len);
290 + if (bytes == NULL)
291 +- return -1;
292 ++ goto out;
293 + (*env)->SetByteArrayRegion(env, bytes, 0, len, (jbyte*)name);
294 + (*env)->SetObjectField(env, entry, entry_name, bytes);
295 +
296 + len = strlen(dir);
297 + bytes = (*env)->NewByteArray(env, len);
298 + if (bytes == NULL)
299 +- return -1;
300 ++ goto out;
301 + (*env)->SetByteArrayRegion(env, bytes, 0, len, (jbyte*)dir);
302 + (*env)->SetObjectField(env, entry, entry_dir, bytes);
303 +
304 + len = strlen(fstype);
305 + bytes = (*env)->NewByteArray(env, len);
306 + if (bytes == NULL)
307 +- return -1;
308 ++ goto out;
309 + (*env)->SetByteArrayRegion(env, bytes, 0, len, (jbyte*)fstype);
310 + (*env)->SetObjectField(env, entry, entry_fstype, bytes);
311 +
312 + len = strlen(options);
313 + bytes = (*env)->NewByteArray(env, len);
314 + if (bytes == NULL)
315 +- return -1;
316 ++ goto out;
317 + (*env)->SetByteArrayRegion(env, bytes, 0, len, (jbyte*)options);
318 + (*env)->SetObjectField(env, entry, entry_options, bytes);
319 +
320 +- return 0;
321 ++ res = 0;
322 ++out:
323 ++ free(buf);
324 ++ return res;
325 + }
326 +
327 + JNIEXPORT void JNICALL
328
329 diff --git a/dev-java/icedtea/icedtea-3.9.0.ebuild b/dev-java/icedtea/icedtea-3.9.0.ebuild
330 new file mode 100644
331 index 0000000..7318589
332 --- /dev/null
333 +++ b/dev-java/icedtea/icedtea-3.9.0.ebuild
334 @@ -0,0 +1,424 @@
335 +# Copyright 1999-2018 Gentoo Authors
336 +# Distributed under the terms of the GNU General Public License v2
337 +
338 +# Build written by Andrew John Hughes (gnu_andrew@××××××××××.org)
339 +
340 +EAPI="6"
341 +SLOT="8"
342 +
343 +inherit check-reqs flag-o-matic gnome2-utils java-pkg-2 java-vm-2 multiprocessing pax-utils prefix versionator
344 +
345 +ICEDTEA_VER=$(get_version_component_range 1-3)
346 +ICEDTEA_BRANCH=$(get_version_component_range 1-2)
347 +ICEDTEA_PKG=icedtea-${ICEDTEA_VER}
348 +ICEDTEA_PRE=$(get_version_component_range _)
349 +
350 +CORBA_TARBALL="c120c4fb7b31.tar.xz"
351 +JAXP_TARBALL="55420c5cc9f3.tar.xz"
352 +JAXWS_TARBALL="f824de94c42e.tar.xz"
353 +JDK_TARBALL="7b289a33ab97.tar.xz"
354 +LANGTOOLS_TARBALL="8496472630c5.tar.xz"
355 +OPENJDK_TARBALL="3b2d372838b9.tar.xz"
356 +NASHORN_TARBALL="79a2c8e2babc.tar.xz"
357 +HOTSPOT_TARBALL="d78088224b98.tar.xz"
358 +SHENANDOAH_TARBALL="b8b742251e42.tar.xz"
359 +AARCH32_TARBALL="891d70e93fb0.tar.xz"
360 +
361 +CACAO_TARBALL="cacao-c182f119eaad.tar.xz"
362 +JAMVM_TARBALL="jamvm-ec18fb9e49e62dce16c5094ef1527eed619463aa.tar.gz"
363 +
364 +CORBA_GENTOO_TARBALL="icedtea-${ICEDTEA_BRANCH}-corba-${CORBA_TARBALL}"
365 +JAXP_GENTOO_TARBALL="icedtea-${ICEDTEA_BRANCH}-jaxp-${JAXP_TARBALL}"
366 +JAXWS_GENTOO_TARBALL="icedtea-${ICEDTEA_BRANCH}-jaxws-${JAXWS_TARBALL}"
367 +JDK_GENTOO_TARBALL="icedtea-${ICEDTEA_BRANCH}-jdk-${JDK_TARBALL}"
368 +LANGTOOLS_GENTOO_TARBALL="icedtea-${ICEDTEA_BRANCH}-langtools-${LANGTOOLS_TARBALL}"
369 +OPENJDK_GENTOO_TARBALL="icedtea-${ICEDTEA_BRANCH}-openjdk-${OPENJDK_TARBALL}"
370 +NASHORN_GENTOO_TARBALL="icedtea-${ICEDTEA_BRANCH}-nashorn-${NASHORN_TARBALL}"
371 +HOTSPOT_GENTOO_TARBALL="icedtea-${ICEDTEA_BRANCH}-hotspot-${HOTSPOT_TARBALL}"
372 +SHENANDOAH_GENTOO_TARBALL="icedtea-${ICEDTEA_BRANCH}-shenandoah-${SHENANDOAH_TARBALL}"
373 +AARCH32_GENTOO_TARBALL="icedtea-${ICEDTEA_BRANCH}-aarch32-${AARCH32_TARBALL}"
374 +
375 +CACAO_GENTOO_TARBALL="icedtea-${CACAO_TARBALL}"
376 +JAMVM_GENTOO_TARBALL="icedtea-${JAMVM_TARBALL}"
377 +
378 +DROP_URL="http://icedtea.classpath.org/download/drops"
379 +ICEDTEA_URL="${DROP_URL}/icedtea${SLOT}/${ICEDTEA_VER}"
380 +
381 +DESCRIPTION="A harness to build OpenJDK using Free Software build tools and dependencies"
382 +HOMEPAGE="http://icedtea.classpath.org"
383 +SRC_PKG="${ICEDTEA_PKG}.tar.xz"
384 +SRC_URI="
385 + http://icedtea.classpath.org/download/source/${SRC_PKG}
386 + ${ICEDTEA_URL}/openjdk.tar.xz -> ${OPENJDK_GENTOO_TARBALL}
387 + ${ICEDTEA_URL}/corba.tar.xz -> ${CORBA_GENTOO_TARBALL}
388 + ${ICEDTEA_URL}/jaxp.tar.xz -> ${JAXP_GENTOO_TARBALL}
389 + ${ICEDTEA_URL}/jaxws.tar.xz -> ${JAXWS_GENTOO_TARBALL}
390 + ${ICEDTEA_URL}/jdk.tar.xz -> ${JDK_GENTOO_TARBALL}
391 + ${ICEDTEA_URL}/hotspot.tar.xz -> ${HOTSPOT_GENTOO_TARBALL}
392 + ${ICEDTEA_URL}/nashorn.tar.xz -> ${NASHORN_GENTOO_TARBALL}
393 + ${ICEDTEA_URL}/langtools.tar.xz -> ${LANGTOOLS_GENTOO_TARBALL}
394 + shenandoah? ( ${ICEDTEA_URL}/shenandoah.tar.xz -> ${SHENANDOAH_GENTOO_TARBALL} )
395 + arm? ( ${ICEDTEA_URL}/aarch32.tar.xz -> ${AARCH32_GENTOO_TARBALL} )
396 + ${DROP_URL}/cacao/${CACAO_TARBALL} -> ${CACAO_GENTOO_TARBALL}
397 + ${DROP_URL}/jamvm/${JAMVM_TARBALL} -> ${JAMVM_GENTOO_TARBALL}"
398 +
399 +LICENSE="Apache-1.1 Apache-2.0 GPL-1 GPL-2 GPL-2-with-linking-exception LGPL-2 MPL-1.0 MPL-1.1 public-domain W3C"
400 +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
401 +
402 +IUSE="+alsa cacao +cups doc examples +gtk headless-awt
403 + jamvm +jbootstrap kerberos libressl nsplugin pax_kernel +pch
404 + pulseaudio sctp selinux shenandoah smartcard +source +sunec +system-lcms test +webstart zero"
405 +
406 +REQUIRED_USE="gtk? ( !headless-awt )"
407 +
408 +# Ideally the following were optional at build time.
409 +ALSA_COMMON_DEP="
410 + >=media-libs/alsa-lib-1.0"
411 +CUPS_COMMON_DEP="
412 + >=net-print/cups-1.2.12"
413 +X_COMMON_DEP="
414 + >=media-libs/giflib-4.1.6:0=
415 + >=media-libs/libpng-1.2:0=
416 + >=x11-libs/libX11-1.1.3
417 + >=x11-libs/libXext-1.1.1
418 + >=x11-libs/libXi-1.1.3
419 + >=x11-libs/libXrender-0.9.4
420 + >=x11-libs/libXtst-1.0.3
421 + x11-libs/libXcomposite"
422 +X_DEPEND="
423 + x11-base/xorg-proto
424 + >=x11-libs/libXau-1.0.3
425 + >=x11-libs/libXdmcp-1.0.2
426 + >=x11-libs/libXinerama-1.0.2"
427 +
428 +# The Javascript requirement is obsolete; OpenJDK 8+ has Nashorn
429 +COMMON_DEP="
430 + >=dev-libs/glib-2.26:2=
431 + >=dev-util/systemtap-1
432 + media-libs/fontconfig:1.0=
433 + >=media-libs/freetype-2.5.3:2=
434 + >=sys-libs/zlib-1.2.3
435 + virtual/jpeg:0=
436 + kerberos? ( virtual/krb5 )
437 + sctp? ( net-misc/lksctp-tools )
438 + smartcard? ( sys-apps/pcsc-lite )
439 + sunec? ( >=dev-libs/nss-3.16.1-r1 )
440 + system-lcms? ( >=media-libs/lcms-2.9:2= )"
441 +
442 +# Gtk+ will move to COMMON_DEP in time; PR1982
443 +# gsettings-desktop-schemas will be needed for native proxy support; PR1976
444 +RDEPEND="${COMMON_DEP}
445 + !dev-java/icedtea:0
446 + !dev-java/icedtea-web:7
447 + >=gnome-base/gsettings-desktop-schemas-3.12.2
448 + virtual/ttf-fonts
449 + alsa? ( ${ALSA_COMMON_DEP} )
450 + cups? ( ${CUPS_COMMON_DEP} )
451 + gtk? (
452 + >=dev-libs/atk-1.30.0
453 + >=x11-libs/cairo-1.8.8
454 + x11-libs/gdk-pixbuf:2
455 + >=x11-libs/gtk+-2.8:2
456 + >=x11-libs/pango-1.24.5
457 + )
458 + !headless-awt? ( ${X_COMMON_DEP} )
459 + selinux? ( sec-policy/selinux-java )"
460 +
461 +# ca-certificates, perl and openssl are used for the cacerts keystore generation
462 +# perl is needed for running the SystemTap tests and the bootstrap javac
463 +# lsb-release is used to obtain distro information for the version & crash dump output
464 +# attr is needed for xattr.h which defines the extended attribute syscalls used by NIO2
465 +# x11-libs/libXt is needed for headers only (Intrinsic.h, IntrinsicP.h, Shell.h, StringDefs.h)
466 +# Ant is no longer needed under the new build system
467 +DEPEND="${COMMON_DEP} ${ALSA_COMMON_DEP} ${CUPS_COMMON_DEP} ${X_COMMON_DEP} ${X_DEPEND}
468 + || (
469 + dev-java/icedtea-bin:8
470 + dev-java/icedtea:8
471 + )
472 + app-arch/cpio
473 + app-arch/unzip
474 + app-arch/zip
475 + app-misc/ca-certificates
476 + dev-lang/perl
477 + !libressl? ( dev-libs/openssl:0 )
478 + libressl? ( dev-libs/libressl:0 )
479 + sys-apps/attr
480 + sys-apps/lsb-release
481 + x11-libs/libXt
482 + virtual/pkgconfig
483 + pax_kernel? ( sys-apps/elfix )"
484 +
485 +PDEPEND="webstart? ( >=dev-java/icedtea-web-1.6.1:0 )
486 + nsplugin? ( >=dev-java/icedtea-web-1.6.1:0[nsplugin] )
487 + pulseaudio? ( dev-java/icedtea-sound )"
488 +
489 +S="${WORKDIR}"/${ICEDTEA_PKG}
490 +
491 +icedtea_check_requirements() {
492 + local CHECKREQS_DISK_BUILD
493 +
494 + if use doc; then
495 + CHECKREQS_DISK_BUILD="9000M"
496 + else
497 + CHECKREQS_DISK_BUILD="8500M"
498 + fi
499 +
500 + check-reqs_pkg_${EBUILD_PHASE}
501 +}
502 +
503 +pkg_pretend() {
504 + icedtea_check_requirements
505 +}
506 +
507 +pkg_setup() {
508 + icedtea_check_requirements
509 +
510 + JAVA_PKG_WANT_BUILD_VM="
511 + icedtea-8 icedtea-bin-8
512 + icedtea-7 icedtea-bin-7"
513 + JAVA_PKG_WANT_SOURCE="1.5"
514 + JAVA_PKG_WANT_TARGET="1.5"
515 +
516 + java-vm-2_pkg_setup
517 + java-pkg-2_pkg_setup
518 +}
519 +
520 +src_unpack() {
521 + unpack ${SRC_PKG}
522 +}
523 +
524 +src_configure() {
525 + # Link MUSL patches into icedtea build tree
526 + ln -s "${FILESDIR}/${PN}8-autoconf-config.patch" patches || die
527 + ln -s "${FILESDIR}/${PN}8-gcc-triple.patch" patches || die
528 + ln -s "${FILESDIR}/${PN}8-hotspot-musl-ppc.patch" patches || die
529 + ln -s "${FILESDIR}/${PN}8-hotspot-musl.patch" patches || die
530 + ln -s "${FILESDIR}/${PN}8-hotspot-noagent-musl.patch" patches || die
531 + ln -s "${FILESDIR}/${PN}8-hotspot-uclibc-fixes.patch" patches || die
532 + ln -s "${FILESDIR}/${PN}8-jdk-execinfo.patch" patches || die
533 + ln -s "${FILESDIR}/${PN}8-jdk-fix-ipv6-init.patch" patches || die
534 + ln -s "${FILESDIR}/${PN}8-jdk-fix-libjvm-load.patch" patches || die
535 + ln -s "${FILESDIR}/${PN}8-jdk-getmntent-buffer.patch" patches || die
536 + ln -s "${FILESDIR}/${PN}8-jdk-musl.patch" patches || die
537 +
538 + # For bootstrap builds as the sandbox control file might not yet exist.
539 + addpredict /proc/self/coredump_filter
540 +
541 + # icedtea doesn't like some locales. #330433 #389717
542 + export LANG="C" LC_ALL="C"
543 +
544 + local cacao_config config hotspot_port hs_config jamvm_config use_cacao use_jamvm use_zero zero_config
545 + local vm=$(java-pkg_get-current-vm)
546 +
547 + # Export MUSL patches for configure
548 + DISTRIBUTION_PATCHES=""
549 +
550 + DISTRIBUTION_PATCHES+="patches/${PN}8-hotspot-musl-ppc.patch "
551 + DISTRIBUTION_PATCHES+="patches/${PN}8-hotspot-musl.patch "
552 + DISTRIBUTION_PATCHES+="patches/${PN}8-hotspot-noagent-musl.patch "
553 + DISTRIBUTION_PATCHES+="patches/${PN}8-hotspot-uclibc-fixes.patch "
554 + DISTRIBUTION_PATCHES+="patches/${PN}8-jdk-execinfo.patch "
555 + DISTRIBUTION_PATCHES+="patches/${PN}8-jdk-fix-ipv6-init.patch "
556 + DISTRIBUTION_PATCHES+="patches/${PN}8-jdk-fix-libjvm-load.patch "
557 + DISTRIBUTION_PATCHES+="patches/${PN}8-jdk-getmntent-buffer.patch "
558 + DISTRIBUTION_PATCHES+="patches/${PN}8-jdk-musl.patch "
559 + DISTRIBUTION_PATCHES+="patches/${PN}8-autoconf-config.patch "
560 + DISTRIBUTION_PATCHES+="patches/${PN}8-gcc-triple.patch "
561 +
562 + export DISTRIBUTION_PATCHES
563 +
564 + # gcj-jdk ensures ecj is present.
565 + if use jbootstrap || has "${vm}" gcj-jdk; then
566 + use jbootstrap || einfo "bootstrap is necessary when building with ${vm}, ignoring USE=\"-jbootstrap\""
567 + config+=" --enable-bootstrap"
568 + else
569 + config+=" --disable-bootstrap"
570 + fi
571 +
572 + # Use Zero if requested
573 + if use zero; then
574 + use_zero="yes"
575 + fi
576 +
577 + # Use JamVM if requested
578 + if use jamvm; then
579 + use_jamvm="yes"
580 + fi
581 +
582 + # Use CACAO if requested
583 + if use cacao; then
584 + use_cacao="yes"
585 + fi
586 +
587 + # Are we on a architecture with a HotSpot port?
588 + # In-tree JIT ports are available for amd64, arm, arm64, ppc64 (be&le), SPARC and x86.
589 + if { use amd64 || use arm || use arm64 || use ppc64 || use sparc || use x86; }; then
590 + hotspot_port="yes"
591 +
592 + # Work around stack alignment issue, bug #647954.
593 + use x86 && append-flags -mincoming-stack-boundary=2
594 + fi
595 +
596 + # Always use HotSpot as the primary VM if available. #389521 #368669 #357633 ...
597 + # Otherwise use Zero for now until alternate VMs are working
598 + if test "x${hotspot_port}" != "xyes"; then
599 + use_zero="yes"
600 + fi
601 +
602 + if use shenandoah; then
603 + if { use amd64 || use arm64; }; then
604 + hs_config="--with-hotspot-build=shenandoah"
605 + hs_config+=" --with-hotspot-src-zip="${DISTDIR}/${SHENANDOAH_GENTOO_TARBALL}""
606 + else
607 + eerror "Shenandoah is only supported on arm64 and x86_64. Please re-build with USE="-shenandoah""
608 + fi
609 + else
610 + if use arm ; then
611 + hs_config="--with-hotspot-src-zip="${DISTDIR}/${AARCH32_GENTOO_TARBALL}""
612 + else
613 + hs_config="--with-hotspot-src-zip="${DISTDIR}/${HOTSPOT_GENTOO_TARBALL}""
614 + fi
615 + fi
616 +
617 + # Turn on JamVM if needed (non-HS archs) or requested
618 + if test "x${use_jamvm}" = "xyes"; then
619 + if test "x${hotspot_port}" = "xyes"; then
620 + ewarn 'Enabling JamVM on an architecture with HotSpot support; issues may result.'
621 + ewarn 'If so, please rebuild with USE="-jamvm"'
622 + fi
623 + ewarn 'JamVM is known to still have issues with IcedTea 3.x; please rebuild with USE="-jamvm"'
624 + jamvm_config="--enable-jamvm"
625 + fi
626 +
627 + # Turn on CACAO if needed (non-HS archs) or requested
628 + if test "x${use_cacao}" = "xyes"; then
629 + if test "x${hotspot_port}" = "xyes"; then
630 + ewarn 'Enabling CACAO on an architecture with HotSpot support; issues may result.'
631 + ewarn 'If so, please rebuild with USE="-cacao"'
632 + fi
633 + ewarn 'CACAO is known to still have issues with IcedTea 3.x; please rebuild with USE="-cacao"'
634 + cacao_config="--enable-cacao"
635 + fi
636 +
637 + # Turn on Zero if needed (non-HS/CACAO archs) or requested
638 + if test "x${use_zero}" = "xyes"; then
639 + if test "x${hotspot_port}" = "xyes"; then
640 + ewarn 'Enabling Zero on an architecture with HotSpot support; performance will be significantly reduced.'
641 + fi
642 + zero_config="--enable-zero"
643 + fi
644 +
645 + # PaX breaks pch, bug #601016
646 + if use pch && ! host-is-pax; then
647 + config+=" --enable-precompiled-headers"
648 + else
649 + config+=" --disable-precompiled-headers"
650 + fi
651 +
652 + config+=" --with-parallel-jobs=$(makeopts_jobs)"
653 +
654 + unset JAVA_HOME JDK_HOME CLASSPATH JAVAC JAVACFLAGS
655 +
656 + econf ${config} \
657 + --with-openjdk-src-zip="${DISTDIR}/${OPENJDK_GENTOO_TARBALL}" \
658 + --with-corba-src-zip="${DISTDIR}/${CORBA_GENTOO_TARBALL}" \
659 + --with-jaxp-src-zip="${DISTDIR}/${JAXP_GENTOO_TARBALL}" \
660 + --with-jaxws-src-zip="${DISTDIR}/${JAXWS_GENTOO_TARBALL}" \
661 + --with-jdk-src-zip="${DISTDIR}/${JDK_GENTOO_TARBALL}" \
662 + --with-langtools-src-zip="${DISTDIR}/${LANGTOOLS_GENTOO_TARBALL}" \
663 + --with-nashorn-src-zip="${DISTDIR}/${NASHORN_GENTOO_TARBALL}" \
664 + --with-cacao-src-zip="${DISTDIR}/${CACAO_GENTOO_TARBALL}" \
665 + --with-jamvm-src-zip="${DISTDIR}/${JAMVM_GENTOO_TARBALL}" \
666 + --with-jdk-home="$(java-config -O)" \
667 + --prefix="${EPREFIX}/usr/$(get_libdir)/icedtea${SLOT}" \
668 + --mandir="${EPREFIX}/usr/$(get_libdir)/icedtea${SLOT}/man" \
669 + --docdir="${EPREFIX}/usr/share/doc/${PF}" \
670 + --htmldir="${EPREFIX}/usr/share/doc/${PF}/html" \
671 + --with-pkgversion="Gentoo ${PF}" \
672 + --disable-ccache \
673 + --disable-downloading --disable-Werror --disable-tests \
674 + --disable-systemtap-tests --enable-improved-font-rendering \
675 + --enable-system-jpeg --enable-system-zlib \
676 + $(use_enable headless-awt headless) \
677 + $(use_enable !headless-awt system-gif) \
678 + $(use_enable !headless-awt system-png) \
679 + $(use_enable doc docs) \
680 + $(use_enable kerberos system-kerberos) \
681 + $(use_enable system-lcms) \
682 + $(use_with pax_kernel pax "${EPREFIX}/usr/sbin/paxmark.sh") \
683 + $(use_enable sctp system-sctp) \
684 + $(use_enable smartcard system-pcsc) \
685 + $(use_enable sunec) \
686 + ${zero_config} ${cacao_config} ${jamvm_config} ${hs_config}
687 +}
688 +
689 +src_compile() {
690 + default
691 +}
692 +
693 +src_test() {
694 + default
695 +}
696 +
697 +src_install() {
698 + default
699 +
700 + local dest="/usr/$(get_libdir)/icedtea${SLOT}"
701 + local ddest="${ED}${dest#/}"
702 +
703 + if ! use alsa; then
704 + rm -v "${ddest}"/jre/lib/$(get_system_arch)/libjsoundalsa.* || die
705 + fi
706 +
707 + if ! use examples; then
708 + rm -r "${ddest}"/demo "${ddest}"/sample || die
709 + fi
710 +
711 + if ! use source; then
712 + rm -v "${ddest}"/src.zip || die
713 + fi
714 +
715 + dosym /usr/share/doc/${PF} /usr/share/doc/${PN}${SLOT}
716 +
717 + # Fix the permissions.
718 + find "${ddest}" \! -type l \( -perm /111 -exec chmod 755 {} \; -o -exec chmod 644 {} \; \) || die
719 +
720 + # We need to generate keystore - bug #273306
721 + einfo "Generating cacerts file from certificates in ${EPREFIX}/usr/share/ca-certificates/"
722 + mkdir "${T}/certgen" && cd "${T}/certgen" || die
723 + cp "${FILESDIR}/generate-cacerts.pl" . && chmod +x generate-cacerts.pl || die
724 + for c in "${EPREFIX}"/usr/share/ca-certificates/*/*.crt; do
725 + openssl x509 -text -in "${c}" >> all.crt || die
726 + done
727 + ./generate-cacerts.pl "${ddest}/bin/keytool" all.crt || die
728 + cp -vRP cacerts "${ddest}/jre/lib/security/" || die
729 + chmod 644 "${ddest}/jre/lib/security/cacerts" || die
730 +
731 + java-vm_install-env "${FILESDIR}/icedtea.env.sh"
732 + java-vm_sandbox-predict /proc/self/coredump_filter
733 +}
734 +
735 +pkg_preinst() {
736 + # From 3.4.0 onwards, the arm directory is a symlink to the aarch32
737 + # directory. We need to clear the old directory for a clean upgrade.
738 + if use arm; then
739 + local dir
740 + for dir in "${EROOT}usr/$(get_libdir)/icedtea${SLOT}"/{lib,jre/lib}/arm; do
741 + if [[ -d ${dir} && ! -L ${dir} ]]; then
742 + rm -r "${dir}" || die
743 + fi
744 + done
745 + fi
746 +
747 + gnome2_icon_savelist
748 +}
749 +
750 +pkg_postinst() {
751 + gnome2_icon_cache_update
752 + java-vm-2_pkg_postinst
753 +}
754 +
755 +pkg_postrm() {
756 + gnome2_icon_cache_update
757 + java-vm-2_pkg_postrm
758 +}