diff options
Diffstat (limited to 'dev-lang')
30 files changed, 3137 insertions, 556 deletions
diff --git a/dev-lang/Manifest.gz b/dev-lang/Manifest.gz Binary files differindex dd52d35bd359..48ca725b9d30 100644 --- a/dev-lang/Manifest.gz +++ b/dev-lang/Manifest.gz diff --git a/dev-lang/elixir/Manifest b/dev-lang/elixir/Manifest index dc4fde820524..76964df98c05 100644 --- a/dev-lang/elixir/Manifest +++ b/dev-lang/elixir/Manifest @@ -1,9 +1,6 @@ AUX elixir-1.10.3-epmd-daemon.patch 512 BLAKE2B c767cf4336214396d953efe568f0302d6852ec5332575202c167f38553deb9878b69d0744ed8a4062bbcb996df840f759f390ddc0c5e467aeab99250dee5a72e SHA512 dfe12ca0b47529a29d87871c9b31728099f816a0bd416512dd2409686fe6ceeb0e80e9da322ff38df27600da3235d174b365c80b8cae0e55eaee328b1260bc0d AUX elixir-1.10.3-no-Q.patch 355 BLAKE2B 903e5a7149f6e7f7030a533ae437b0e40b97c82c6baa7f90c1dff37fedf96c2e821e98529007e2300a92b8b3e9284428d91d6ee45888da7d79b18d35dfd89e58 SHA512 21d28b63fee2877337c0df095cfa200ae11ec2f0c76556e971957bb92e2b8e9d811c939b1efa458c633b61d3525f47a8b04d1b6f23df04e50ffb3ed5225f7c18 -AUX elixir-1.11.2-mksh.patch 2058 BLAKE2B 45e14921fc59f5707ee9bc2aaebea5f090a5995d07e1aa773d3751690230ded1abade17179f643e787ae3b53661c8ad7bafdf295fd1eb21d534c0b38a0083a1b SHA512 a888b73638873a5b7a6c5f2576c81d58e8df854e2ab3ecfbcf547da5aeea4eee0f43798a1c1308bc7f3515af2d28e78740c4016fde0f5e0eea2114dac7d98de6 AUX elixir-1.11.4-fix-elixir-test.patch 1170 BLAKE2B 05707d9d095f95d6d0fe3b21bd4078a933e3e2067596da5b1bc0a272d007abfe43317829d745c363a511a6b9e64a66727e92f64405a7ccbfb42aa0eae1a1a807 SHA512 2cef12a7339aab75368c24bb53764352bf6ad2275a51baef18e44e607f947cbd2829602587d849f9d6d7ad1c646f73db39d81bf331a38c95c259af8b483aece1 -AUX elixir-1.11.4-fix-logger-translator-with-otp-24-11222.patch 2355 BLAKE2B 4189a7f8189d595db3a194edbf54d448fbf13665d29a3ad6eb7a8c5909c17cd53958f5b675666f9219aff016dc0c6aa04f815e80ad7de919c05d5d515a82e717 SHA512 713af811385379982b35054301f4032fada4e27e63de7a8344323d36eee7b52bc519a73c61554c33ebba97b88b6abbc14daa65111ff53caec73b0c06c542230b -AUX elixir-1.11.4-update-warnings-for-OTP-master-10807.patch 5564 BLAKE2B a3e3a43c041df9842071beea4700f68fe4b2da0af4318711511e568599a31cd086544c8b2cb3b4a72232c1e26a8b2f29e97f80fa02e5c2a9de04c952c3c5fb92 SHA512 5c3f10588ad8c8f3bad92c500eb0db452ac2c72ac640674a0e6fecae6064ffd5a3d1cddea6e5bcb56d723043ce8586df4cb1538873f56854a5d05c70eebac12b AUX elixir-1.9.1-disable-network-tests.patch 569 BLAKE2B fda6b9b99f80e81883723280de31933c1740167d41ef4783dc663bad277cf58b8782326abc4a72e0d989c513afb9cdf4494e7d79754b18d62baf75255a74aa45 SHA512 465831a389891680412d51d9209497d5b750ff0a5ff72d45807a7dba6ec7757156ee96048bbc81f46c9c24a5b13cdd5161539fdeb4ffcea655c407e29f6675fc DIST elixir-1.12.3.tar.gz 2461828 BLAKE2B cdae9bd7f3463b89dd737ce943d57b7f9801bf382500a274332e1cb87902ecc37bd6e7a53af4dd5c1cd6e6d9d64171e226e676cd8023252c86fdf028d80dd383 SHA512 945e33ca9c3e50015531f87630c1bc1b9966acc64bbf7d01c8c4f8cfc104ee1e08113f572f0ad6a9f5e8ee37e33144e58b2ac33dc0a2b01e1355fc5f8b1b9329 DIST elixir-1.13.3.tar.gz 2922197 BLAKE2B 47c98ffe24d11ea161e9b9fa55d3c8ee1c2234848707aeeaf715eb02a61b7d3e8784bf2599b4129a824edf004d1edda2f0a42252710d957cc0213202f86dc06d SHA512 88bf585e18bfefa54c1c771247ec489bc96d16cc0f88384e9c0c981ddb665cd7efccd49383b4de1fbbd823ecd0a5e65d76e3065c9ce3c45f2f4feccd01ace48e diff --git a/dev-lang/elixir/files/elixir-1.11.2-mksh.patch b/dev-lang/elixir/files/elixir-1.11.2-mksh.patch deleted file mode 100644 index 3fda43156890..000000000000 --- a/dev-lang/elixir/files/elixir-1.11.2-mksh.patch +++ /dev/null @@ -1,81 +0,0 @@ -From 69bb81635a77afb28419103bdb02867b48994d4a Mon Sep 17 00:00:00 2001 -From: "Haelwenn (lanodan) Monnier" <contact@hacktivis.me> -Date: Wed, 9 Dec 2020 18:21:34 +0100 -Subject: [PATCH] bin/elixir: Rename erl() function to erl_set() -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -It conflicted with the erl executable for Korn-derived shells where a function -can be used in `exec command`. - -It isn't clear which behavior is expected from reading the POSIX specification -but "Shell Command Language § 2.9.1 Simple Commands" clears the usage of -the term `command` quite well. -And even with excluding functions from the `command` operand of `exec`, -why are aliases accepted? (in most if not all shells) - -See: https://bugs.gentoo.org/729964 ---- - bin/elixir | 28 ++++++++++++++-------------- - 1 file changed, 14 insertions(+), 14 deletions(-) - ---- a/bin/elixir -+++ b/bin/elixir -@@ -70,7 +70,7 @@ readlink_f () { - ERL="" - - # Stores erl arguments preserving spaces/quotes (mimics an array) --erl () { -+erl_set () { - eval "E${E}=\$1" - E=$((E + 1)) - } -@@ -137,34 +137,34 @@ while [ $I -le $LENGTH ]; do - ;; - --cookie) - S=2 -- erl "-setcookie" -- erl "$2" -+ erl_set "-setcookie" -+ erl_set "$2" - ;; - --sname|--name) - S=2 -- erl "$(echo "$1" | cut -c 2-)" -- erl "$2" -+ erl_set "$(echo "$1" | cut -c 2-)" -+ erl_set "$2" - ;; - --erl-config) - S=2 -- erl "-config" -- erl "$2" -+ erl_set "-config" -+ erl_set "$2" - ;; - --vm-args) - S=2 -- erl "-args_file" -- erl "$2" -+ erl_set "-args_file" -+ erl_set "$2" - ;; - --boot) - S=2 -- erl "-boot" -- erl "$2" -+ erl_set "-boot" -+ erl_set "$2" - ;; - --boot-var) - S=3 -- erl "-boot_var" -- erl "$2" -- erl "$3" -+ erl_set "-boot_var" -+ erl_set "$2" -+ erl_set "$3" - ;; - --pipe-to) - S=3 diff --git a/dev-lang/elixir/files/elixir-1.11.4-fix-logger-translator-with-otp-24-11222.patch b/dev-lang/elixir/files/elixir-1.11.4-fix-logger-translator-with-otp-24-11222.patch deleted file mode 100644 index 428e7ceb3ab4..000000000000 --- a/dev-lang/elixir/files/elixir-1.11.4-fix-logger-translator-with-otp-24-11222.patch +++ /dev/null @@ -1,64 +0,0 @@ -From b1492cb0cfa689c4c098761a375d5cb728d3c175 Mon Sep 17 00:00:00 2001 -From: Matteo <mbrancaleoni@gmail.com> -Date: Tue, 31 Aug 2021 23:46:27 +0200 -Subject: [PATCH 3/3] Fix logger translator with otp-24 (#11222) -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -* Handle new significant key in sasl reports - -* Add OTP-24.0 to CI matrix - -Co-authored-by: José Valim <jose.valim@dashbit.co> ---- - .github/workflows/ci.yml | 2 +- - lib/logger/lib/logger/translator.ex | 13 ++++++++++--- - 2 files changed, 11 insertions(+), 4 deletions(-) - -diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml -index f43a9ff62..a4bc8dbeb 100644 ---- a/.github/workflows/ci.yml -+++ b/.github/workflows/ci.yml -@@ -15,7 +15,7 @@ jobs: - strategy: - fail-fast: false - matrix: -- otp_release: ['OTP-23.0', 'OTP-22.3', 'OTP-22.0', 'OTP-21.3.8', 'OTP-21.0'] -+ otp_release: ['OTP-24.0', 'OTP-23.0', 'OTP-22.3', 'OTP-22.0', 'OTP-21.3.8', 'OTP-21.0'] - development: [false] - include: - - otp_release: master -diff --git a/lib/logger/lib/logger/translator.ex b/lib/logger/lib/logger/translator.ex -index d1d7e62f1..8afd79436 100644 ---- a/lib/logger/lib/logger/translator.ex -+++ b/lib/logger/lib/logger/translator.ex -@@ -357,15 +357,22 @@ defp child_info(_min_level, _child) do - [] - end - -- defp child_debug(:debug, restart_type: restart, shutdown: shutdown, child_type: type) do -- ["\nRestart: ", inspect(restart), "\nShutdown: ", inspect(shutdown)] ++ -- ["\nType: ", inspect(type)] -+ defp child_debug(:debug, opts) do -+ for {key, value} <- opts do -+ child_debug_key(key, value) -+ end - end - - defp child_debug(_min_level, _child) do - [] - end - -+ defp child_debug_key(:restart_type, value), do: ["\nRestart: " | inspect(value)] -+ defp child_debug_key(:shutdown, value), do: ["\nShutdown: " | inspect(value)] -+ defp child_debug_key(:child_type, value), do: ["\nType: " | inspect(value)] -+ defp child_debug_key(:significant, value), do: if(value, do: "\nSignificant: true", else: []) -+ defp child_debug_key(_, _), do: [] -+ - defp report_crash(min_level, [[{:initial_call, initial_call} | crashed], linked]) do - mfa = initial_call_to_mfa(initial_call) - report_crash(min_level, crashed, [{:initial_call, mfa}], linked) --- -2.31.1 - diff --git a/dev-lang/elixir/files/elixir-1.11.4-update-warnings-for-OTP-master-10807.patch b/dev-lang/elixir/files/elixir-1.11.4-update-warnings-for-OTP-master-10807.patch deleted file mode 100644 index 2cc0b217cbb1..000000000000 --- a/dev-lang/elixir/files/elixir-1.11.4-update-warnings-for-OTP-master-10807.patch +++ /dev/null @@ -1,125 +0,0 @@ -From 237a71311c5ae4fc5dd3c7a590a7b6dab97a664a Mon Sep 17 00:00:00 2001 -From: Wojtek Mach <wojtekmach@users.noreply.github.com> -Date: Tue, 23 Mar 2021 17:40:04 +0100 -Subject: [PATCH 2/3] Update warnings for OTP master (#10807) - ---- - lib/elixir/src/elixir_erl_compiler.erl | 34 ++++++++++++------- - .../test/elixir/kernel/warning_test.exs | 25 -------------- - 2 files changed, 21 insertions(+), 38 deletions(-) - -diff --git a/lib/elixir/src/elixir_erl_compiler.erl b/lib/elixir/src/elixir_erl_compiler.erl -index 7010b59fd..e0aa05114 100644 ---- a/lib/elixir/src/elixir_erl_compiler.erl -+++ b/lib/elixir/src/elixir_erl_compiler.erl -@@ -94,6 +94,8 @@ handle_file_warning(true, _File, {_Line, sys_core_fold, {nomatch_shadow, _}}) -> - - %% Those we implement ourselves - handle_file_warning(_, _File, {_Line, v3_core, {map_key_repeated, _}}) -> ok; -+handle_file_warning(_, _File, {_Line, sys_core_fold, {ignored, useless_building}}) -> ok; -+%% TODO: remove when we require Erlang/OTP 24 - handle_file_warning(_, _File, {_Line, sys_core_fold, useless_building}) -> ok; - - %% Ignore all linting errors (only come up on parse transforms) -@@ -112,11 +114,11 @@ handle_file_error(File, {Line, Module, Desc}) -> - elixir_errors:compile_error([{line, Line}], File, Message). - - %% Mention the capture operator in make_fun --custom_format(sys_core_fold, {no_effect, {erlang, make_fun, 3}}) -> -+custom_format(sys_core_fold, {ignored, {no_effect, {erlang, make_fun, 3}}}) -> - "the result of the capture operator & (:erlang.make_fun/3) is never used"; - - %% Make no_effect clauses pretty --custom_format(sys_core_fold, {no_effect, {erlang, F, A}}) -> -+custom_format(sys_core_fold, {ignored, {no_effect, {erlang, F, A}}}) -> - {Fmt, Args} = case erl_internal:comp_op(F, A) of - true -> {"use of operator ~ts has no effect", [elixir_utils:erlang_comparison_op_to_elixir(F)]}; - false -> -@@ -127,12 +129,20 @@ custom_format(sys_core_fold, {no_effect, {erlang, F, A}}) -> - end, - io_lib:format(Fmt, Args); - --%% Rewrite nomatch_guard to be more generic it can happen inside if, unless, and the like --custom_format(sys_core_fold, nomatch_guard) -> -+%% Rewrite nomatch to be more generic, it can happen inside if, unless, and the like -+custom_format(sys_core_fold, {nomatch, X}) when X == guard; X == no_clause -> - "this check/guard will always yield the same result"; - -+custom_format(sys_core_fold, {nomatch, {shadow, Line, {ErlName, ErlArity}}}) -> -+ {Name, Arity} = elixir_utils:erl_fa_to_elixir_fa(ErlName, ErlArity), -+ -+ io_lib:format( -+ "this clause for ~ts/~B cannot match because a previous clause at line ~B always matches", -+ [Name, Arity, Line] -+ ); -+ - %% Handle literal eval failures --custom_format(sys_core_fold, {eval_failure, {Mod, Name, Arity}, Error}) -> -+custom_format(sys_core_fold, {failed, {eval_failure, {Mod, Name, Arity}, Error}}) -> - #{'__struct__' := Struct} = 'Elixir.Exception':normalize(error, Error), - {ExMod, ExName, ExArgs} = elixir_rewrite:erl_to_ex(Mod, Name, lists:duplicate(Arity, nil)), - Call = 'Elixir.Exception':format_mfa(ExMod, ExName, length(ExArgs)), -@@ -143,18 +153,16 @@ custom_format(sys_core_fold, {eval_failure, {Mod, Name, Arity}, Error}) -> - ["the call to ", Trimmed, " will fail with ", elixir_aliases:inspect(Struct)]; - - %% TODO: remove when we require OTP 24 -+custom_format(sys_core_fold, {nomatch_shadow, Line, FA}) -> -+ custom_format(sys_core_fold, {nomatch, {shadow, Line, FA}}); -+custom_format(sys_core_fold, nomatch_guard) -> -+ custom_format(sys_core_fold, {nomatch, guard}); -+custom_format(sys_core_fold, {no_effect, X}) -> -+ custom_format(sys_core_fold, {ignored, {no_effect, X}}); - custom_format(sys_core_fold, {eval_failure, Error}) -> - #{'__struct__' := Struct} = 'Elixir.Exception':normalize(error, Error), - ["this expression will fail with ", elixir_aliases:inspect(Struct)]; - --custom_format(sys_core_fold, {nomatch_shadow,Line,{ErlName,ErlArity}}) -> -- {Name, Arity} = elixir_utils:erl_fa_to_elixir_fa(ErlName, ErlArity), -- -- io_lib:format( -- "this clause for ~ts/~B cannot match because a previous clause at line ~B always matches", -- [Name, Arity, Line] -- ); -- - custom_format([], Desc) -> - io_lib:format("~p", [Desc]); - -diff --git a/lib/elixir/test/elixir/kernel/warning_test.exs b/lib/elixir/test/elixir/kernel/warning_test.exs -index 15a984a54..37334ff65 100644 ---- a/lib/elixir/test/elixir/kernel/warning_test.exs -+++ b/lib/elixir/test/elixir/kernel/warning_test.exs -@@ -1154,31 +1154,6 @@ def foo(x), do: :ok - purge(Sample) - end - -- test "with and do clauses emit errors, else clauses do not" do -- assert capture_err(fn -> -- Code.compile_string(""" -- with {:first, int} when is_integer(int) <- {:second, Integer.gcd(2, 4)} do -- int -- end -- """) -- end) =~ "this clause cannot match" -- -- assert capture_err(fn -> -- Code.compile_string(""" -- with {:first, int1} when is_integer(int1) <- {:first, Integer.gcd(2, 4)}, -- {:second, int2} when is_integer(int2) <- {:second, Integer.gcd(2, 4)} do -- {:ok, int1 + int2} -- else -- {:first, nil} -> {:error, "first number is not integer"} -- {:second, nil} -> {:error, "second number is not integer"} -- end -- """) -- end) == "" -- after -- purge(Sample1) -- purge(Sample2) -- end -- - test "warning on code point escape" do - assert capture_err(fn -> - Code.eval_string("? ") --- -2.31.1 - diff --git a/dev-lang/erlang/Manifest b/dev-lang/erlang/Manifest index 1e8689ff17ff..cfa71cb9217a 100644 --- a/dev-lang/erlang/Manifest +++ b/dev-lang/erlang/Manifest @@ -1,4 +1,3 @@ -AUX 18.2.1-wx3.0.patch 3849 BLAKE2B 02912cf61094d8217eab7181a4cc35aead224df7872c412db0b40b072778cfb900bf18219baf52e29f609b72305d3a11ea1079b2e873cf56a0a3bd42e3303d2f SHA512 33d8b67542266ae224ffb2bc86fbf36fff6737252810cfb445662ecc418fb30b0b00cbddd2f706ca836f1a8809c505e61edfe221d29dbe91c78c371bff6cec15 AUX 50erlang-gentoo.el 134 BLAKE2B df2da5c0c4be3e6855b51b820e3304f5c212a92d13ec48aa5d73ea3a0e801a8dddd371fd8894d49aa9d5573def56b3a864e463734d72fcf5356d39753dbda1ba SHA512 7a862e0ef1e96e88a484e80aeb92eb4465c7e8661efb0291c28abc13225eb3aa69442fe29417f5ad0d264e54399d645d9cd4713bc9869b48e87a91e50b9b2473 AUX epmd.confd-r2 60 BLAKE2B 6d4c0ecc74218941281dd7235b34ef2fcca32fc26f3f282551a6d551153b53f77f42b5139dfbee2b02a966cdea03fa350270e6897a57405ca2ac256d1b7eae50 SHA512 e594ccdfef8473f9fccbdee6fe084c43a4fadd5ac47ffb98aaa223902e74290e749f28b88952aa83eb207de1393d44184f81244c233b7d6afde04fc8615dfd91 AUX epmd.init 536 BLAKE2B fc4d5058088e08f3ed17f4cfcff2190ec8b7fb922ca8ac1353b82f14319a443d23563c7d436b85946573f0313debcf5af4669caf013ea87d54af4f2da0692ff6 SHA512 e351892fe920d4dab4cc0bb1b448204f8b1e16b8e0ed687b285c52a8d5e00d6a39fb27e83d5c0b973b5b595f4b4274c64fa938a25853dcbae674edf1cae42d3d @@ -6,7 +5,6 @@ AUX epmd.init-r2 390 BLAKE2B eae80a5a919fe2511463f99f225bfde4e31d603552eac40164f AUX epmd.service 138 BLAKE2B f56c907ec51bb85c437235334cf01c6a43ccf2316be3b226ab557e3f71cab48baf59b5a9533a4dccb2cb61a4434e3a51d44eae06010718dbf9a732d605c40f73 SHA512 405740f8f9cd55d4ecd7420748399ab3f374b7cb09e53605f44ba49d0af86b70e4a1baf1fde05a703fb90c8a83dbcdd5cfbbf09185e9d7b58ff9612aefc2dd28 AUX epmd.service-r1 159 BLAKE2B ec50e4bfd89dc2d35fc2e549c695f9aae163d3df4d3c7a0d3f85f0f747c13a8aed9c8e9e57f3898ab31aec6795d7cd0565a7c563dc77f3f6154e53be88ec326d SHA512 4b99b2092fe447fa01e3badfce261bca6400ebda70f890efbacc40570019adfe9fc349a6d024955e2f1909c9068f37415b64d0a104399f2696eff6ccf6ad06ab AUX erlang-22.0-dont-ignore-LDFLAGS.patch 1174 BLAKE2B 64900c6b934ecbd11238e604f907e6f8b1ec2730d2b98aad5405383742563e050bc6ffaae22d55a22998658460109fac9f6628458f5e976e9fbfe71cc26f1d64 SHA512 0fd7cbef64a9a54e0959d49b50096f9abc6fcede4360c153631c7f649f5c41b35ffb1f2d06f80964bf49421464bcc43c96147c227d60cf413c51b3e89ae9ad24 -AUX erlang-23.3.4.14-emacs28-compat.patch 6237 BLAKE2B b5b8f0c7bfd1f217805d7279d85b7d09189d069814afde10b32446031c221aaac58aa7adaf993da7261c1d8889b5bef6cabbfc73b4062a6eeadae5e0d923c39d SHA512 e47364afaf8d29b1e9e1f6548bfe5efa110e56777d9db87fefd24ee201d5689f46e3e4d34c32b3a95353411500ae10fc1064f9ed155d5d6d97f442d749e38f9b AUX erlang-24.0.2-serial-configure.patch 586 BLAKE2B 3ad4fcbf35310dc11e8aaddca95a467414c60390a7e170c83d0775230a5a815212c6ddce55e98721b02e03511f80e67cfbd60e4b06bc86c615bb3a51d5015ec5 SHA512 abc81ef2a0b23fbe82542efefb1cbb12b1143e9282f7114ea929c18a5c02f2053caabb05ef9838d40b40f3ca59b06955528b122092438ee3d4ef6a8b567fc335 DIST erlang-24.3.3.tar.gz 59296830 BLAKE2B 1792274c77001b6f49e84f1584620a247cf3acdf075a8d581403f31a2b4cfe32e7b8104d325f3c1a999595d94484cb74b7996a35599e9ef8935931a133a554f6 SHA512 5e8ce0ebd50c1c67ca29ce9405fc18f5461793b20a1732418bc8fac404078044deb72526682aab92ee3e737bc9dc9e94e6be162a088e2cb7cc68c14b1d76454e DIST erlang-24.3.4.2.tar.gz 59532491 BLAKE2B 28c48f1a3197a151010a775286cf0b775567301411b8480b32cfb39c68978de5586b63c245fe58bff8034ebc04fcc3b002dee7c953127ecf581ed6d716587ae4 SHA512 78bc2dc67fe60d3ea6049c361a017c054e12b0adeeae890b0a1ee5301744505593bd19f3731acebff8312b323a3bd21a1359507d122fc34f0eb85eefb3aac88c diff --git a/dev-lang/erlang/files/18.2.1-wx3.0.patch b/dev-lang/erlang/files/18.2.1-wx3.0.patch deleted file mode 100644 index aada0d9eaa1e..000000000000 --- a/dev-lang/erlang/files/18.2.1-wx3.0.patch +++ /dev/null @@ -1,113 +0,0 @@ -Description: Fix constants for wxwidgets3.0 - The values of wx constants can change between stable release series (and - some have between 2.8 and 3.0), but erlang seems to hardcode these values. -Author: Olly Betts <olly@survex.com> -Bug-Debian: https://bugs.debian.org/766790 -Forwarded: no -Last-Update: 2014-11-25 - ---- a/lib/wx/include/wx.hrl -+++ b/lib/wx/include/wx.hrl -@@ -767,7 +767,7 @@ - % From "checkbox.h" - -define(wxCHK_ALLOW_3RD_STATE_FOR_USER, 8192). - -define(wxCHK_3STATE, 4096). ---define(wxCHK_2STATE, 0). -+-define(wxCHK_2STATE, 16384). - % From "checkbox.h": wxCheckBoxState - -define(wxCHK_UNCHECKED, 0). - -define(wxCHK_CHECKED, 1). -@@ -1014,10 +1014,10 @@ - -define(wxSIZE_AUTO_WIDTH, 1). - -define(wxSETUP, 131072). - -define(wxMORE, 65536). ---define(wxHELP, 32768). ---define(wxRESET, 16384). ---define(wxBACKWARD, 8192). ---define(wxFORWARD, 4096). -+-define(wxHELP, 4096). -+-define(wxRESET, 32768). -+-define(wxBACKWARD, 16384). -+-define(wxFORWARD, 8192). - -define(wxICON_MASK, (16#00000100 bor 16#00000200 bor 16#00000400 bor 16#00000800)). - -define(wxICON_ASTERISK, ?wxICON_INFORMATION). - -define(wxICON_STOP, ?wxICON_HAND). -@@ -1049,8 +1049,8 @@ - -define(wxTC_TOP, 0). - -define(wxTC_FIXEDWIDTH, 32). - -define(wxTC_RIGHTJUSTIFY, 16). ---define(wxSP_WRAP, 8192). ---define(wxSP_ARROW_KEYS, 4096). -+-define(wxSP_WRAP, 32768). -+-define(wxSP_ARROW_KEYS, 16384). - -define(wxSP_VERTICAL, ?wxVERTICAL). - -define(wxSP_HORIZONTAL, ?wxHORIZONTAL). - -define(wxSB_VERTICAL, ?wxVERTICAL). -@@ -1071,8 +1071,8 @@ - -define(wxCB_SIMPLE, 4). - -define(wxLB_INT_HEIGHT, 2048). - -define(wxLB_HSCROLL, ?wxHSCROLL). ---define(wxLB_ALWAYS_SB, 1024). ---define(wxLB_NEEDED_SB, 512). -+-define(wxLB_ALWAYS_SB, 512). -+-define(wxLB_NEEDED_SB, 0). - -define(wxLB_OWNERDRAW, 256). - -define(wxLB_EXTENDED, 128). - -define(wxLB_MULTIPLE, 64). -@@ -1548,7 +1548,7 @@ - -define(wxUPDATE_UI_FROMIDLE, 2). - % From "dialog.h" - -define(wxDEFAULT_DIALOG_STYLE, (?wxCAPTION bor ?wxSYSTEM_MENU bor ?wxCLOSE_BOX)). ---define(wxDIALOG_NO_PARENT, 1). -+-define(wxDIALOG_NO_PARENT, 32). - % From "dirctrlg.h" - -define(wxDIRCTRL_DIR_ONLY, 16). - -define(wxDIRCTRL_SELECT_FIRST, 32). -@@ -3728,7 +3728,7 @@ - -define(wxSTC_KEY_LEFT, 302). - -define(wxSTC_KEY_UP, 301). - -define(wxSTC_KEY_DOWN, 300). ---define(wxSTC_MODEVENTMASKALL, 8191). -+-define(wxSTC_MODEVENTMASKALL, 1048575). - -define(wxSTC_MULTILINEUNDOREDO, 4096). - -define(wxSTC_MOD_BEFOREDELETE, 2048). - -define(wxSTC_MOD_BEFOREINSERT, 1024). -@@ -3810,7 +3810,7 @@ - -define(wxSTC_INDIC_TT, 2). - -define(wxSTC_INDIC_SQUIGGLE, 1). - -define(wxSTC_INDIC_PLAIN, 0). ---define(wxSTC_INDIC_MAX, 7). -+-define(wxSTC_INDIC_MAX, 31). - -define(wxSTC_CASE_LOWER, 2). - -define(wxSTC_CASE_UPPER, 1). - -define(wxSTC_CASE_MIXED, 0). -@@ -3835,7 +3835,7 @@ - -define(wxSTC_CHARSET_BALTIC, 186). - -define(wxSTC_CHARSET_DEFAULT, 1). - -define(wxSTC_CHARSET_ANSI, 0). ---define(wxSTC_STYLE_MAX, 127). -+-define(wxSTC_STYLE_MAX, 255). - -define(wxSTC_STYLE_LASTPREDEFINED, 39). - -define(wxSTC_STYLE_CALLTIP, 38). - -define(wxSTC_STYLE_INDENTGUIDE, 37). -@@ -3934,9 +3934,9 @@ - -define(wxTE_PROCESS_TAB, 64). - -define(wxTE_MULTILINE, 32). - -define(wxTE_READONLY, 16). ---define(wxTE_AUTO_SCROLL, 8). -+-define(wxTE_AUTO_SCROLL, 0). - -define(wxTE_NO_VSCROLL, 2). ---define(wxHAS_TEXT_WINDOW_STREAM, 0). -+-define(wxHAS_TEXT_WINDOW_STREAM, 1). - % From "textctrl.h": wxTextAttrAlignment - -define(wxTEXT_ALIGNMENT_DEFAULT, 0). - -define(wxTEXT_ALIGNMENT_LEFT, 1). -@@ -3986,7 +3986,7 @@ - -define(wxDEFAULT_FRAME_STYLE, (?wxSYSTEM_MENU bor ?wxRESIZE_BORDER bor ?wxMINIMIZE_BOX bor ?wxMAXIMIZE_BOX bor ?wxCLOSE_BOX bor ?wxCAPTION bor ?wxCLIP_CHILDREN)). - -define(wxRESIZE_BORDER, 64). - -define(wxTINY_CAPTION_VERT, 128). ---define(wxTINY_CAPTION_HORIZ, 256). -+-define(wxTINY_CAPTION_HORIZ, 128). - -define(wxMAXIMIZE_BOX, 512). - -define(wxMINIMIZE_BOX, 1024). - -define(wxSYSTEM_MENU, 2048). diff --git a/dev-lang/erlang/files/erlang-23.3.4.14-emacs28-compat.patch b/dev-lang/erlang/files/erlang-23.3.4.14-emacs28-compat.patch deleted file mode 100644 index 32844d8dd1a8..000000000000 --- a/dev-lang/erlang/files/erlang-23.3.4.14-emacs28-compat.patch +++ /dev/null @@ -1,137 +0,0 @@ -From 22a7522ef3f0f3c13618214e61f60cb01d80eef4 Mon Sep 17 00:00:00 2001 -From: Justin Davis <jrcd83@gmail.com> -Date: Tue, 26 Oct 2021 13:28:16 -0400 -Subject: [PATCH] Fix emacs erlang-mode: xref switched to CL-Lib - -Fix for GitHub issue #5314. - -Xref is a package which is also bundled with emacs: -http://elpa.gnu.org/packages/xref.html - -Xref switched its own internally defined classes from EIEIO to -CL-lib (emacs-mirror/emacs@86da812afb2572c7fead2bb07570b976bffd7c55). -erlang-mode subclasses xref-file-location in order to add a function -arity slot to xrefs. - -If xref-file-location is a class, use defclass to subclass it. Otherwise -use cl-defstruct. Avoids referencing make-instance, slot-value functions -from EIEIO. Only references constructor, accessor, and predicate -functions. Updates comments that make references to classes. - -Testing: -- cd into lib/tools/emacs. -- Run the tests included with erlang-mode from the shell: - emacs -Q -batch -L . -l erlang.el -l erlang-test.el \ - -f ert-run-tests-batch-and-exit -- Copy xref.el from the xref package (>=1.3.1) into the - lib/tools/emacs directory. -- Run the tests again. This will load xref.el automatically - and use the new interface. ---- - lib/tools/emacs/erlang.el | 48 +++++++++++++++++++++++++-------------- - 1 file changed, 31 insertions(+), 17 deletions(-) - -diff --git a/lib/tools/emacs/erlang.el b/lib/tools/emacs/erlang.el -index 69a5fdaeb55..40fe32689e7 100644 ---- a/lib/tools/emacs/erlang.el -+++ b/lib/tools/emacs/erlang.el -@@ -5120,8 +5120,8 @@ about Erlang modules." - ;; - ;; As mentioned this xref implementation is based on the etags xref - ;; implementation. But in the cases where arity is considered the --;; etags information structures (class xref-etags-location) will be --;; translated to our own structures which include arity (class -+;; etags information structures (struct xref-etags-location) will be -+;; translated to our own structures which include arity (struct - ;; erlang-xref-location). This translation is started in the function - ;; `erlang-refine-xrefs'. - -@@ -5129,6 +5129,11 @@ about Erlang modules." - ;; with xref items with xref-etags-location and some deal with xref - ;; items with erlang-xref-location. - -+;; NOTE: Around Sept 2021, the xrefs package changed all of its defined types -+;; (i.e. xref-location, xref-file-location) from EIEIO classes to CL-Lib -+;; structures. These are both supported. Older Emacsen with earlier versions of -+;; xref will continue to use defclass. Newer Emacsen will use cl-defstruct. -+ - (defun erlang-etags--xref-backend () 'erlang-etags) - - (defun erlang-soft-require (feature) -@@ -5137,6 +5142,7 @@ about Erlang modules." - - (when (and (erlang-soft-require 'xref) - (erlang-soft-require 'cl-generic) -+ (erlang-soft-require 'cl-lib) - (erlang-soft-require 'eieio) - (erlang-soft-require 'etags)) - ;; The purpose of using eval here is to avoid compilation -@@ -5165,10 +5171,20 @@ about Erlang modules." - (let ((erlang-replace-etags-tags-completion-table t)) - (tags-completion-table))) - -- (defclass erlang-xref-location (xref-file-location) -- ((arity :type fixnum :initarg :arity -- :reader erlang-xref-location-arity)) -- :documentation "An erlang location is a file location plus arity.") -+ ;; Xref 1.3.1 bundled with Emacs 28+ switched from using EIEIO classes to -+ ;; using CL-Lib structs. -+ (if (find-class 'xref-file-location) -+ (progn -+ (defclass erlang-xref-location (xref-file-location) -+ ((arity :type fixnum :initarg :arity -+ :reader erlang-xref-location-arity)) -+ :documentation "An erlang location is a file location plus arity.") -+ ;; Make a constructor with the same name that a CL structure would have. -+ (defalias 'make-erlang-xref-location 'erlang-xref-location)) -+ (cl-defstruct (erlang-xref-location -+ (:include xref-file-location)) -+ "An erlang location is a file location plus arity." -+ (arity 0 :type fixnum))) - - ;; This method definition only calls the superclass which is - ;; the default behaviour if it was not defined. It is only -@@ -5331,8 +5347,7 @@ is non-nil then TAG is a regexp." - xrefs - (when (and xrefs - (fboundp 'xref-item-location) -- (fboundp 'xref-location-group) -- (fboundp 'slot-value)) -+ (fboundp 'xref-location-group)) - (let (files) - (cl-loop for xref in xrefs - for loc = (xref-item-location xref) -@@ -5357,7 +5372,8 @@ is non-nil then TAG is a regexp." - t)))) - - (defun erlang-xrefs-in-file (file kind tag is-regexp) -- (when (fboundp 'make-instance) -+ (when (and (fboundp 'make-erlang-xref-location) -+ (fboundp 'xref-make)) - (with-current-buffer (find-file-noselect file) - (save-excursion - (goto-char (point-min)) -@@ -5369,17 +5385,15 @@ is non-nil then TAG is a regexp." - for name = (match-string-no-properties 1) - for arity = (save-excursion - (erlang-get-arity)) -- for loc = (make-instance 'erlang-xref-location -- :file file -- :line (line-number-at-pos) -- :column 0 -- :arity arity) -+ for loc = (make-erlang-xref-location -+ :file file -+ :line (line-number-at-pos) -+ :column 0 -+ :arity arity) - for sum = (erlang-xref-summary kind name arity) - when (and arity - (not (eq arity last-arity))) -- collect (make-instance 'xref-item -- :summary sum -- :location loc) -+ collect (xref-make sum loc) - do (setq last-arity arity))))))) - - (defun erlang-xref-summary (kind tag arity) diff --git a/dev-lang/php/Manifest b/dev-lang/php/Manifest index a91137263547..4b8dfa2a72bd 100644 --- a/dev-lang/php/Manifest +++ b/dev-lang/php/Manifest @@ -8,6 +8,8 @@ DIST php-7.4.30.tar.xz 10419136 BLAKE2B 5860ead4051173d3139f93be24f15c7ed2044a9e DIST php-8.0.20.tar.xz 10879064 BLAKE2B 3b18d6593ddc78e1c289b87ba8bb65e55cbd815d2b06d4f9759265e9ae76ea6b78dc9f52652be1b1a721ccfe736f80d2a8f59c01ba4c38a8ff46710753bcc9ed SHA512 24153733111bb5104298679fb5ee02d8abad4e6b2a8e0a07c2a6076e1c9104309abe56bcb7b5fe17670c266e5e9981c520ed0ac12b699ae0050953ff99ef04fa DIST php-8.0.21.tar.xz 10785364 BLAKE2B ea8a640b47c96b235b49ce3a98accbfa4aa967c7e917684e19667a74ca0f77e070847dabdf15c3dbd56cff01ef662e79e9408d3e57e870e51893e969291a0932 SHA512 c1c1577f3d6af445d8ac15338877186f2a639a76ad980328011cb0a5e9592bdb24c1cda7ae8a0c495c881497d54cbca6e1373ede71bf097e69a040368841d567 DIST php-8.0.22.tar.xz 10785228 BLAKE2B 3dbbcd47d138ffe8765942fec820a654e8ebffacb912be82f007fa6b5afd2f8daa4378ffd09a910edbb05affb9983e1585f7b2cbb3f30f12f1d3e88ebcdef15a SHA512 e4f117331aed84542034524df96e14a73fe4770205c38576659cec90e376e205a8c4a16191119a73d1115e731b3d16cbdaac4a2e4267738e9b9beb22b0add5a7 +DIST php-8.0.23.tar.xz 10860624 BLAKE2B 421ea129075f674901c25c04665b773ea92ea403466cd56f00df7590bf5613c7d241fec3790e172df21e15e12687ea74ee5e1bb431e530dbb293b3d6d4546b1a SHA512 269020756d184fd72de9ccfc83746e01415ae0f37aaa57cfb3e524e49f0f2a6e6b22c95c09b451f9f54d2c82e1452caa9b8e9f178be546883dfc22a4c9e49575 +DIST php-8.1.10.tar.xz 11736192 BLAKE2B 3cf768a42d9491a7790844a1df430e780e3d857e3c111d8f43248ee7bf6e66233a39128b3a13c55167083a676bad42ab38aad6d96c67134a7d91035e2d973cff SHA512 d41595365a5a032a593dfaa13106ae66e78db59d3539a2d37cb5a536c38934b8a6ed90cf4e91fc4539cb2f018517ee4c6e696a4d2b6541bfa3c6fa5f1f9ca378 DIST php-8.1.8.tar.xz 11722100 BLAKE2B 117e0823b47485d4fc469edfbc5e9051b5d35588bf36a2d9e12282b83c12056cfc2a4376bf0e21b5f947190a906e3e4fdde7bec20b7ea7e9ab36912e865c2c13 SHA512 4ef03b4c412bdbcdf6c3dc4784b3218a0519e6b91a0682e796270d4426c05c62309b4835ea31271857a5f2535d00f20a9f9b4a79703a49c3e40f16fafa948dd4 DIST php-8.1.9.tar.xz 11787892 BLAKE2B f35911f272e0c0118841d713e52a347b001324d9456613b749e06031a6a2a292e4c813c950e329889af46f2e585eb3de92f825cff9bcb51f09b74e056fedda75 SHA512 a75731edbfa6e8841d4c836336b07fd7aec4668b3d38487e630015cfc9d76fdfd04bae946d4fe783679df05adee7e2617b42ca4d3c2415c0f88ed5bffad87d7d EBUILD php-7.4.30-r1.ebuild 21343 BLAKE2B e1e9f5ce53be28f14eb514d87227253176cf0b1274c443503c1e54de316092923f9eb5ed227621cc5ab67917bc56e848237bb8ca67d8bc153869628f9305ee85 SHA512 022484e6cf7bc14e17debdaa7d8e4a181e50423c10645dec2f6ad8ed49160afa75d1433a05d83c953036cfdcb04ae6e2a74d8d5093d89d3d58fd0f22af30d629 @@ -15,6 +17,8 @@ EBUILD php-7.4.30.ebuild 21310 BLAKE2B f2342deede65a4c66380a77b43d26ff7d09e31a13 EBUILD php-8.0.20.ebuild 21845 BLAKE2B 9bbc8fcd79a39502a50257ba00eb68abaa8313306d2554e3ade270203bd872fa66083a57fc10f6d4e7e46c8930efbfcf6de7c6562d2499dc262fb690db1aeb7d SHA512 af251c56145df7af13bbbcb73dce4f311af742245e5558cf062a6505526c77e45637adc99454471f5d30791ced2a9fd96438191bce71a1275df2137b85043c5c EBUILD php-8.0.21.ebuild 21852 BLAKE2B 11b093daf7700943d1349f68d2e0d6511b149eeeb0ea22669ad4df07cb743f6b27a1cc67a7bbf9d47a7aaba65daa44ad65755fe1185667dc7de9d4a0f8f40b57 SHA512 deb66942b30e5a2156218f9eee559d0ff9881e0d365e832f8e764f9febcfffa00021ccad3f500be60045deb6598a3f3b058eec3c99b886cbf2111c2c96c8647c EBUILD php-8.0.22.ebuild 21852 BLAKE2B 11b093daf7700943d1349f68d2e0d6511b149eeeb0ea22669ad4df07cb743f6b27a1cc67a7bbf9d47a7aaba65daa44ad65755fe1185667dc7de9d4a0f8f40b57 SHA512 deb66942b30e5a2156218f9eee559d0ff9881e0d365e832f8e764f9febcfffa00021ccad3f500be60045deb6598a3f3b058eec3c99b886cbf2111c2c96c8647c +EBUILD php-8.0.23.ebuild 21852 BLAKE2B 11b093daf7700943d1349f68d2e0d6511b149eeeb0ea22669ad4df07cb743f6b27a1cc67a7bbf9d47a7aaba65daa44ad65755fe1185667dc7de9d4a0f8f40b57 SHA512 deb66942b30e5a2156218f9eee559d0ff9881e0d365e832f8e764f9febcfffa00021ccad3f500be60045deb6598a3f3b058eec3c99b886cbf2111c2c96c8647c +EBUILD php-8.1.10.ebuild 21802 BLAKE2B 1beed9c3626102b03414da382bf1e52e05bacc2fc490d6cbeebe2b9d750338e2c43f417de63a7a0c5a1429becaf80e4b5e5224ff1d958ece27ce523529539fab SHA512 0040527b43e0a7b5bbfbc9e814a7d286a1c8e0a4cc99ad369ab0fb28fb90dc8cffa59e9b30ec5611bdc1111982524451d9c55d38a239f523dbbb2f30d9dc4c80 EBUILD php-8.1.8.ebuild 21858 BLAKE2B ee7b59351797d0e5819b3216b92975bec678941aa41da1b204c06f8fe55ac4e66efb032293c0afa7927ee7a6ef9b9d51c91531e80526df2a0ad1274e4d6a114e SHA512 7f3a23f64e997439b250d43a25dece1e15ce1f722c10f11d107ffa19cb68b3baf2c89cc67db53c10fe10833d855b21f608df5cd43bf9e0091e81d3dcfefb7f13 EBUILD php-8.1.9.ebuild 21802 BLAKE2B 1beed9c3626102b03414da382bf1e52e05bacc2fc490d6cbeebe2b9d750338e2c43f417de63a7a0c5a1429becaf80e4b5e5224ff1d958ece27ce523529539fab SHA512 0040527b43e0a7b5bbfbc9e814a7d286a1c8e0a4cc99ad369ab0fb28fb90dc8cffa59e9b30ec5611bdc1111982524451d9c55d38a239f523dbbb2f30d9dc4c80 MISC metadata.xml 3230 BLAKE2B 215062835c9f7ae9d570a40b3a6e59c7a2b7fb51e0fb9b89cd51888f54e2cbee1cbcf571b8ccfef3ed1970949dcac81bb411ca6536e972875b184caee688cb12 SHA512 03d948a300d3a29a113248b371be92fa9c1c4feb371886a9cab335e956a2ff9958cb9b5449aab88a5306bcafed42161ac88655115a1e286fa9e876920ad1d59a diff --git a/dev-lang/php/php-8.0.23.ebuild b/dev-lang/php/php-8.0.23.ebuild new file mode 100644 index 000000000000..c9ead2270c39 --- /dev/null +++ b/dev-lang/php/php-8.0.23.ebuild @@ -0,0 +1,758 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="7" + +WANT_AUTOMAKE="none" + +inherit flag-o-matic systemd autotools + +MY_PV=${PV/_rc/rc} +DESCRIPTION="The PHP language runtime engine" +HOMEPAGE="https://www.php.net/" +SRC_URI="https://www.php.net/distributions/${P}.tar.xz" + +LICENSE="PHP-3.01 + BSD + Zend-2.0 + bcmath? ( LGPL-2.1+ ) + fpm? ( BSD-2 ) + gd? ( gd ) + unicode? ( BSD-2 LGPL-2.1 )" + +SLOT="$(ver_cut 1-2)" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos" + +S="${WORKDIR}/${PN}-${MY_PV}" + +# We can build the following SAPIs in the given order +SAPIS="embed cli cgi fpm apache2 phpdbg" + +# SAPIs and SAPI-specific USE flags (cli SAPI is default on): +IUSE="${IUSE} + ${SAPIS/cli/+cli} + threads" + +IUSE="${IUSE} acl apparmor argon2 bcmath berkdb bzip2 calendar cdb cjk + coverage +ctype curl debug + enchant exif ffi +fileinfo +filter firebird + +flatfile ftp gd gdbm gmp +iconv imap inifile + intl iodbc ipv6 +jit kerberos ldap ldap-sasl libedit lmdb + mhash mssql mysql mysqli nls + oci8-instant-client odbc +opcache pcntl pdo +phar +posix postgres qdbm + readline selinux +session session-mm sharedmem + +simplexml snmp soap sockets sodium spell sqlite ssl + sysvipc systemd test tidy +tokenizer tokyocabinet truetype unicode webp + +xml xmlreader xmlwriter xpm xslt zip zlib" + +# Without USE=readline or libedit, the interactive "php -a" CLI will hang. +# The Oracle instant client provides its own incompatible ldap library. +REQUIRED_USE=" + || ( cli cgi fpm apache2 embed phpdbg ) + cli? ( ^^ ( readline libedit ) ) + !cli? ( ?? ( readline libedit ) ) + truetype? ( gd zlib ) + webp? ( gd zlib ) + cjk? ( gd zlib ) + exif? ( gd zlib ) + xpm? ( gd zlib ) + gd? ( zlib ) + simplexml? ( xml ) + soap? ( xml ) + xmlreader? ( xml ) + xmlwriter? ( xml ) + xslt? ( xml ) + ldap-sasl? ( ldap ) + oci8-instant-client? ( !ldap ) + qdbm? ( !gdbm ) + session-mm? ( session !threads ) + mysql? ( || ( mysqli pdo ) ) + firebird? ( pdo ) + mssql? ( pdo ) +" + +RESTRICT="!test? ( test )" + +# The supported (that is, autodetected) versions of BDB are listed in +# the ./configure script. Other versions *work*, but we need to stick to +# the ones that can be detected to avoid a repeat of bug #564824. +COMMON_DEPEND=" + >=app-eselect/eselect-php-0.9.7[apache2?,fpm?] + >=dev-libs/libpcre2-10.30[jit?,unicode] + fpm? ( acl? ( sys-apps/acl ) apparmor? ( sys-libs/libapparmor ) ) + apache2? ( www-servers/apache[apache2_modules_unixd(+),threads=] ) + argon2? ( app-crypt/argon2:= ) + berkdb? ( || ( sys-libs/db:5.3 sys-libs/db:4.8 ) ) + bzip2? ( app-arch/bzip2:0= ) + cdb? ( || ( dev-db/cdb dev-db/tinycdb ) ) + coverage? ( dev-util/lcov ) + curl? ( >=net-misc/curl-7.29.0 ) + enchant? ( app-text/enchant:2 ) + ffi? ( >=dev-libs/libffi-3.0.11:= ) + firebird? ( dev-db/firebird ) + gd? ( media-libs/libjpeg-turbo:0= media-libs/libpng:0= ) + gdbm? ( >=sys-libs/gdbm-1.8.0:0= ) + gmp? ( dev-libs/gmp:0= ) + iconv? ( virtual/libiconv ) + imap? ( >=virtual/imap-c-client-2[kerberos=,ssl=] ) + intl? ( dev-libs/icu:= ) + kerberos? ( virtual/krb5 ) + ldap? ( >=net-nds/openldap-1.2.11:= ) + ldap-sasl? ( dev-libs/cyrus-sasl ) + libedit? ( dev-libs/libedit ) + lmdb? ( dev-db/lmdb:= ) + mssql? ( dev-db/freetds[mssql] ) + nls? ( sys-devel/gettext ) + oci8-instant-client? ( dev-db/oracle-instantclient[sdk] ) + odbc? ( iodbc? ( dev-db/libiodbc ) !iodbc? ( >=dev-db/unixODBC-1.8.13 ) ) + postgres? ( >=dev-db/postgresql-9.1:* ) + qdbm? ( dev-db/qdbm ) + readline? ( sys-libs/readline:0= ) + session-mm? ( dev-libs/mm ) + snmp? ( >=net-analyzer/net-snmp-5.2 ) + sodium? ( dev-libs/libsodium:=[-minimal] ) + spell? ( >=app-text/aspell-0.50 ) + sqlite? ( >=dev-db/sqlite-3.7.6.3 ) + ssl? ( >=dev-libs/openssl-1.0.1:0= ) + tidy? ( app-text/htmltidy ) + tokyocabinet? ( dev-db/tokyocabinet ) + truetype? ( =media-libs/freetype-2* ) + unicode? ( dev-libs/oniguruma:= ) + webp? ( media-libs/libwebp:0= ) + xml? ( >=dev-libs/libxml2-2.9.0 ) + xpm? ( x11-libs/libXpm ) + xslt? ( dev-libs/libxslt ) + zip? ( >=dev-libs/libzip-1.2.0:= ) + zlib? ( >=sys-libs/zlib-1.2.0.4:0= ) +" + +RDEPEND="${COMMON_DEPEND} + virtual/mta + fpm? ( + selinux? ( sec-policy/selinux-phpfpm ) + systemd? ( sys-apps/systemd ) )" + +# Bison isn't actually needed when building from a release tarball +# However, the configure script will warn if it's absent or if you +# have an incompatible version installed. See bug 593278. +DEPEND="${COMMON_DEPEND} + app-arch/xz-utils + >=sys-devel/bison-3.0.1" + +BDEPEND="virtual/pkgconfig" + +PHP_MV="$(ver_cut 1)" + +PATCHES=( + "${FILESDIR}/php-iodbc-header-location.patch" + "${FILESDIR}/php80-firebird-warnings.patch" +) + +php_install_ini() { + local phpsapi="${1}" + + # work out where we are installing the ini file + php_set_ini_dir "${phpsapi}" + + # Always install the production INI file, bug 611214. + local phpinisrc="php.ini-production-${phpsapi}" + cp php.ini-production "${phpinisrc}" || die + + # default to /tmp for save_path, bug #282768 + sed -e 's|^;session.save_path .*$|session.save_path = "'"${EPREFIX}"'/tmp"|g' -i "${phpinisrc}" || die + + # Set the extension dir + sed -e "s|^extension_dir .*$|extension_dir = ${extension_dir}|g" \ + -i "${phpinisrc}" || die + + # Set the include path to point to where we want to find PEAR packages + sed -e 's|^;include_path = ".:/php/includes".*|include_path = ".:'"${EPREFIX}"'/usr/share/php'${PHP_MV}':'"${EPREFIX}"'/usr/share/php"|' -i "${phpinisrc}" || die + + insinto "${PHP_INI_DIR#${EPREFIX}}" + newins "${phpinisrc}" php.ini + + elog "Installing php.ini for ${phpsapi} into ${PHP_INI_DIR#${EPREFIX}}" + elog + + dodir "${PHP_EXT_INI_DIR#${EPREFIX}}" + dodir "${PHP_EXT_INI_DIR_ACTIVE#${EPREFIX}}" + + if use opcache; then + elog "Adding opcache to $PHP_EXT_INI_DIR" + echo "zend_extension=${PHP_DESTDIR}/$(get_libdir)/opcache.so" >> \ + "${D}/${PHP_EXT_INI_DIR}"/opcache.ini + dosym "../ext/opcache.ini" \ + "${PHP_EXT_INI_DIR_ACTIVE#${EPREFIX}}/opcache.ini" + fi + + # SAPI-specific handling + if [[ "${sapi}" == "fpm" ]] ; then + einfo "Installing FPM config files php-fpm.conf and www.conf" + insinto "${PHP_INI_DIR#${EPREFIX}}" + doins sapi/fpm/php-fpm.conf + insinto "${PHP_INI_DIR#${EPREFIX}}/fpm.d" + doins sapi/fpm/www.conf + fi + + dodoc php.ini-{development,production} +} + +php_set_ini_dir() { + PHP_INI_DIR="${EPREFIX}/etc/php/${1}-php${SLOT}" + PHP_EXT_INI_DIR="${PHP_INI_DIR}/ext" + PHP_EXT_INI_DIR_ACTIVE="${PHP_INI_DIR}/ext-active" +} + +src_prepare() { + default + + # In php-7.x, the FPM pool configuration files have been split off + # of the main config. By default the pool config files go in + # e.g. /etc/php-fpm.d, which isn't slotted. So here we move the + # include directory to a subdirectory "fpm.d" of $PHP_INI_DIR. Later + # we'll install the pool configuration file "www.conf" there. + php_set_ini_dir fpm + sed -i "s~^include=.*$~include=${PHP_INI_DIR}/fpm.d/*.conf~" \ + sapi/fpm/php-fpm.conf.in \ + || die 'failed to move the include directory in php-fpm.conf' + + # Emulate buildconf to support cross-compilation + rm -fr aclocal.m4 autom4te.cache config.cache \ + configure main/php_config.h.in || die + eautoconf --force + eautoheader + + # Remove false positive test failures + # stream_isatty fails due to portage redirects + # curl tests here fail for network sandbox issues + # session tests here fail because we set the session directory to $T + rm tests/output/stream_isatty_err.phpt \ + tests/output/stream_isatty_out-err.phpt \ + tests/output/stream_isatty_out.phpt \ + ext/curl/tests/bug76675.phpt \ + ext/curl/tests/bug77535.phpt \ + ext/curl/tests/curl_error_basic.phpt \ + ext/session/tests/bug74514.phpt \ + ext/session/tests/bug74936.phpt || die + +} + +src_configure() { + addpredict /usr/share/snmp/mibs/.index #nowarn + addpredict /var/lib/net-snmp/mib_indexes #nowarn + + PHP_DESTDIR="${EPREFIX}/usr/$(get_libdir)/php${SLOT}" + + # The php-fpm config file wants localstatedir to be ${EPREFIX}/var + # and not the Gentoo default ${EPREFIX}/var/lib. See bug 572002. + local our_conf=( + --prefix="${PHP_DESTDIR}" + --mandir="${PHP_DESTDIR}/man" + --infodir="${PHP_DESTDIR}/info" + --libdir="${PHP_DESTDIR}/lib" + --with-libdir="$(get_libdir)" + --localstatedir="${EPREFIX}/var" + --without-pear + $(use_enable threads zts) + ) + + our_conf+=( + $(use_with apparmor fpm-apparmor) + $(use_with argon2 password-argon2 "${EPREFIX}/usr") + $(use_enable bcmath) + $(use_with bzip2 bz2 "${EPREFIX}/usr") + $(use_enable calendar) + $(use_enable coverage gcov) + $(use_enable ctype) + $(use_with curl) + $(use_enable xml dom) + $(use_with enchant) + $(use_enable exif) + $(use_with ffi) + $(use_enable fileinfo) + $(use_enable filter) + $(use_enable ftp) + $(use_with nls gettext "${EPREFIX}/usr") + $(use_with gmp gmp "${EPREFIX}/usr") + $(use_with mhash mhash "${EPREFIX}/usr") + $(use_with iconv iconv \ + $(use elibc_glibc || use elibc_musl || echo "${EPREFIX}/usr")) + $(use_enable intl) + $(use_enable ipv6) + $(use_with kerberos) + $(use_with xml libxml) + $(use_enable unicode mbstring) + $(use_with ssl openssl) + $(use_enable pcntl) + $(use_enable phar) + $(use_enable pdo) + $(use_enable opcache) + $(use_with postgres pgsql "${EPREFIX}/usr") + $(use_enable posix) + $(use_with spell pspell "${EPREFIX}/usr") + $(use_enable simplexml) + $(use_enable sharedmem shmop) + $(use_with snmp snmp "${EPREFIX}/usr") + $(use_enable soap) + $(use_enable sockets) + $(use_with sodium) + $(use_with sqlite sqlite3) + $(use_enable sysvipc sysvmsg) + $(use_enable sysvipc sysvsem) + $(use_enable sysvipc sysvshm) + $(use_with tidy tidy "${EPREFIX}/usr") + $(use_enable tokenizer) + $(use_enable xml) + $(use_enable xmlreader) + $(use_enable xmlwriter) + $(use_with xslt xsl) + $(use_with zip) + $(use_with zlib zlib "${EPREFIX}/usr") + $(use_enable debug) + ) + + # DBA support + if use cdb || use berkdb || use flatfile || use gdbm || use inifile \ + || use qdbm || use lmdb || use tokyocabinet ; then + our_conf+=( "--enable-dba" ) + fi + + # DBA drivers support + our_conf+=( + $(use_with cdb) + $(use_with berkdb db4 "${EPREFIX}/usr") + $(use_enable flatfile) + $(use_with gdbm gdbm "${EPREFIX}/usr") + $(use_enable inifile) + $(use_with qdbm qdbm "${EPREFIX}/usr") + $(use_with tokyocabinet tcadb "${EPREFIX}/usr") + $(use_with lmdb lmdb "${EPREFIX}/usr") + ) + + # Support for the GD graphics library + our_conf+=( + $(use_with truetype freetype) + $(use_enable cjk gd-jis-conv) + $(use_with gd jpeg) + $(use_with xpm) + $(use_with webp) + ) + # enable gd last, so configure can pick up the previous settings + our_conf+=( $(use_enable gd) ) + + # IMAP support + if use imap ; then + our_conf+=( + $(use_with imap imap "${EPREFIX}/usr") + $(use_with ssl imap-ssl "${EPREFIX}/usr") + ) + fi + + # LDAP support + if use ldap ; then + our_conf+=( + $(use_with ldap ldap "${EPREFIX}/usr") + $(use_with ldap-sasl) + ) + fi + + # MySQL support + local mysqllib="mysqlnd" + local mysqlilib="mysqlnd" + + our_conf+=( $(use_with mysqli mysqli "${mysqlilib}") ) + + local mysqlsock="${EPREFIX}/var/run/mysqld/mysqld.sock" + if use mysql || use mysqli ; then + our_conf+=( $(use_with mysql mysql-sock "${mysqlsock}") ) + fi + + # ODBC support + if use odbc && use iodbc ; then + our_conf+=( + --without-unixODBC + --with-iodbc + $(use_with pdo pdo-odbc "iODBC,${EPREFIX}/usr") + ) + elif use odbc ; then + our_conf+=( + --with-unixODBC="${EPREFIX}/usr" + --without-iodbc + $(use_with pdo pdo-odbc "unixODBC,${EPREFIX}/usr") + ) + else + our_conf+=( + --without-unixODBC + --without-iodbc + --without-pdo-odbc + ) + fi + + # Oracle support + our_conf+=( $(use_with oci8-instant-client oci8) ) + + # PDO support + if use pdo ; then + our_conf+=( + $(use_with mssql pdo-dblib "${EPREFIX}/usr") + $(use_with mysql pdo-mysql "${mysqllib}") + $(use_with postgres pdo-pgsql) + $(use_with sqlite pdo-sqlite) + $(use_with firebird pdo-firebird "${EPREFIX}/usr") + $(use_with oci8-instant-client pdo-oci) + ) + fi + + # readline/libedit support + our_conf+=( + $(use_with readline readline "${EPREFIX}/usr") + $(use_with libedit) + ) + + # Session support + if use session ; then + our_conf+=( $(use_with session-mm mm "${EPREFIX}/usr") ) + else + our_conf+=( $(use_enable session) ) + fi + + # Use pic for shared modules such as apache2's mod_php + our_conf+=( --with-pic ) + + # we use the system copy of pcre + # --with-external-pcre affects ext/pcre + our_conf+=( + --with-external-pcre + $(use_with jit pcre-jit) + ) + + # Catch CFLAGS problems + # Fixes bug #14067. + # Changed order to run it in reverse for bug #32022 and #12021. + replace-cpu-flags "k6*" "i586" + + # Cache the ./configure test results between SAPIs. + our_conf+=( --cache-file="${T}/config.cache" ) + + # Support user-passed configuration parameters + our_conf+=( ${EXTRA_ECONF:-} ) + + # Support the Apache2 extras, they must be set globally for all + # SAPIs to work correctly, especially for external PHP extensions + + local one_sapi + local sapi + mkdir -p "${WORKDIR}/sapis-build" || die + for one_sapi in $SAPIS ; do + use "${one_sapi}" || continue + php_set_ini_dir "${one_sapi}" + + # The BUILD_DIR variable is used to determine where to output + # the files that autotools creates. This was all originally + # based on the autotools-utils eclass. + BUILD_DIR="${WORKDIR}/sapis-build/${one_sapi}" + cp -a "${S}" "${BUILD_DIR}" || die + cd "${BUILD_DIR}" || die + + local sapi_conf=( + --with-config-file-path="${PHP_INI_DIR}" + --with-config-file-scan-dir="${PHP_EXT_INI_DIR_ACTIVE}" + ) + + for sapi in $SAPIS ; do + case "$sapi" in + cli|cgi|embed|fpm|phpdbg) + if [[ "${one_sapi}" == "${sapi}" ]] ; then + sapi_conf+=( "--enable-${sapi}" ) + if [[ "fpm" == "${sapi}" ]] ; then + sapi_conf+=( + $(use_with acl fpm-acl) + $(use_with systemd fpm-systemd) + ) + fi + else + sapi_conf+=( "--disable-${sapi}" ) + fi + ;; + + apache2) + if [[ "${one_sapi}" == "${sapi}" ]] ; then + sapi_conf+=( --with-apxs2="${EPREFIX}/usr/bin/apxs" ) + else + sapi_conf+=( --without-apxs2 ) + fi + ;; + esac + done + + # Construct the $myeconfargs array by concatenating $our_conf + # (the common args) and $sapi_conf (the SAPI-specific args). + local myeconfargs=( "${our_conf[@]}" ) + myeconfargs+=( "${sapi_conf[@]}" ) + + pushd "${BUILD_DIR}" > /dev/null || die + econf "${myeconfargs[@]}" + popd > /dev/null || die + done +} + +src_compile() { + # snmp seems to run during src_compile, too (bug #324739) + addpredict /usr/share/snmp/mibs/.index #nowarn + addpredict /var/lib/net-snmp/mib_indexes #nowarn + + local sapi + for sapi in ${SAPIS} ; do + if use "${sapi}"; then + cd "${WORKDIR}/sapis-build/$sapi" || \ + die "Failed to change dir to ${WORKDIR}/sapis-build/$1" + emake + fi + done +} + +src_install() { + # see bug #324739 for what happens when we don't have that + addpredict /usr/share/snmp/mibs/.index #nowarn + + # grab the first SAPI that got built and install common files from there + local first_sapi="", sapi="" + for sapi in $SAPIS ; do + if use $sapi ; then + first_sapi=$sapi + break + fi + done + + # Makefile forgets to create this before trying to write to it... + dodir "${PHP_DESTDIR#${EPREFIX}}/bin" + + # Install php environment (without any sapis) + cd "${WORKDIR}/sapis-build/$first_sapi" || die + emake INSTALL_ROOT="${D}" \ + install-build install-headers install-programs + + local extension_dir="$("${ED}/${PHP_DESTDIR#${EPREFIX}}/bin/php-config" --extension-dir)" + + # Create the directory where we'll put version-specific php scripts + keepdir "/usr/share/php${PHP_MV}" + + local file="" + local sapi_list="" + + for sapi in ${SAPIS}; do + if use "${sapi}" ; then + einfo "Installing SAPI: ${sapi}" + cd "${WORKDIR}/sapis-build/${sapi}" || die + + if [[ "${sapi}" == "apache2" ]] ; then + # We're specifically not using emake install-sapi as libtool + # may cause unnecessary relink failures (see bug #351266) + insinto "${PHP_DESTDIR#${EPREFIX}}/apache2/" + newins ".libs/libphp$(get_libname)" \ + "libphp${PHP_MV}$(get_libname)" + keepdir "/usr/$(get_libdir)/apache2/modules" + else + # needed each time, php_install_ini would reset it + local dest="${PHP_DESTDIR#${EPREFIX}}" + into "${dest}" + case "$sapi" in + cli) + source="sapi/cli/php" + # Install the "phar" archive utility. + if use phar ; then + emake INSTALL_ROOT="${D}" install-pharcmd + dosym "..${dest#/usr}/bin/phar" "/usr/bin/phar${SLOT}" + fi + ;; + cgi) + source="sapi/cgi/php-cgi" + ;; + fpm) + source="sapi/fpm/php-fpm" + ;; + embed) + source="libs/libphp$(get_libname)" + ;; + phpdbg) + source="sapi/phpdbg/phpdbg" + ;; + *) + die "unhandled sapi in src_install" + ;; + esac + + if [[ "${source}" == *"$(get_libname)" ]]; then + dolib.so "${source}" + else + dobin "${source}" + local name="$(basename ${source})" + dosym "..${dest#/usr}/bin/${name}" "/usr/bin/${name}${SLOT}" + fi + fi + + php_install_ini "${sapi}" + + # construct correct SAPI string for php-config + # thanks to ferringb for the bash voodoo + if [[ "${sapi}" == "apache2" ]]; then + sapi_list="${sapi_list:+${sapi_list} }apache2handler" + else + sapi_list="${sapi_list:+${sapi_list} }${sapi}" + fi + fi + done + + # Installing opcache module + if use opcache ; then + into "${PHP_DESTDIR#${EPREFIX}}" + dolib.so "modules/opcache$(get_libname)" + fi + + # Install env.d files + newenvd "${FILESDIR}/20php5-envd" "20php${SLOT}" + sed -e "s|/lib/|/$(get_libdir)/|g" -i "${ED}/etc/env.d/20php${SLOT}" || die + sed -e "s|php5|php${SLOT}|g" -i "${ED}/etc/env.d/20php${SLOT}" || die + + # set php-config variable correctly (bug #278439) + sed -e "s:^\(php_sapis=\)\".*\"$:\1\"${sapi_list}\":" -i \ + "${ED}/usr/$(get_libdir)/php${SLOT}/bin/php-config" || die + + if use fpm ; then + if use systemd; then + systemd_newunit "${FILESDIR}/php-fpm_at.service" \ + "php-fpm@${SLOT}.service" + else + systemd_newunit "${FILESDIR}/php-fpm_at-simple.service" \ + "php-fpm@${SLOT}.service" + fi + fi +} + +src_test() { + echo ">>> Test phase [test]: ${CATEGORY}/${PF}" + PHP_BIN="${WORKDIR}/sapis-build/cli/sapi/cli/php" + if [[ ! -x "${PHP_BIN}" ]] ; then + ewarn "Test phase requires USE=cli, skipping" + return + else + export TEST_PHP_EXECUTABLE="${PHP_BIN}" + fi + + if [[ -x "${WORKDIR}/sapis-build/cgi/sapi/cgi/php-cgi" ]] ; then + export TEST_PHP_CGI_EXECUTABLE="${WORKDIR}/sapis-build/cgi/sapi/cgi/php-cgi" + fi + + if [[ -x "${WORKDIR}/sapis-build/phpdbg/sapi/phpdbg/phpdbg" ]] ; then + export TEST_PHPDBG_EXECUTABLE="${WORKDIR}/sapis-build/phpdbg/sapi/phpdbg/phpdbg" + fi + + SKIP_ONLINE_TESTS=1 REPORT_EXIT_STATUS=1 "${TEST_PHP_EXECUTABLE}" -n -d \ + "session.save_path=${T}" \ + "${WORKDIR}/sapis-build/cli/run-tests.php" -n -q -d \ + "session.save_path=${T}" + + for name in ${EXPECTED_TEST_FAILURES}; do + mv "${name}.out" "${name}.out.orig" 2>/dev/null || die + done + + local failed="$(find -name '*.out')" + if [[ ${failed} != "" ]] ; then + ewarn "The following test cases failed unexpectedly:" + for name in ${failed}; do + ewarn " ${name/.out/}" + done + else + einfo "No unexpected test failures, all fine" + fi + + if [[ ${PHP_SHOW_UNEXPECTED_TEST_PASS} == "1" ]] ; then + local passed="" + for name in ${EXPECTED_TEST_FAILURES}; do + [[ -f "${name}.diff" ]] && continue + passed="${passed} ${name}" + done + if [[ ${passed} != "" ]] ; then + einfo "The following test cases passed unexpectedly:" + for name in ${passed}; do + ewarn " ${passed}" + done + else + einfo "None of the known-to-fail tests passed, all fine" + fi + fi +} + +pkg_postinst() { + # Output some general info to the user + if use apache2 ; then + elog + elog "To enable PHP in apache, you will need to add \"-D PHP\" to" + elog "your apache2 command. OpenRC users can append that string to" + elog "APACHE2_OPTS in /etc/conf.d/apache2." + elog + elog "The apache module configuration file 70_mod_php.conf is" + elog "provided (and maintained) by eselect-php." + elog + fi + + # Create the symlinks for php + local m + for m in ${SAPIS}; do + [[ ${m} == 'embed' ]] && continue; + if use $m ; then + local ci=$(eselect php show $m) + if [[ -z $ci ]]; then + eselect php set $m php${SLOT} || die + einfo "Switched ${m} to use php:${SLOT}" + einfo + elif [[ $ci != "php${SLOT}" ]] ; then + elog "To switch $m to use php:${SLOT}, run" + elog " eselect php set $m php${SLOT}" + elog + fi + fi + done + + # Remove dead symlinks for SAPIs that were just disabled. For + # example, if the user has the cgi SAPI enabled, then he has an + # eselect-php symlink for it. If he later reinstalls PHP with + # USE="-cgi", that symlink will break. This call to eselect is + # supposed to remove that dead link per bug 572436. + eselect php cleanup || die + + if ! has "php${SLOT/./-}" ${PHP_TARGETS}; then + elog "To build extensions for this version of PHP, you will need to" + elog "add php${SLOT/./-} to your PHP_TARGETS USE_EXPAND variable." + elog + fi + + # Warn about the removal of PHP_INI_VERSION if the user has it set. + if [[ -n "${PHP_INI_VERSION}" ]]; then + ewarn 'The PHP_INI_VERSION variable has been phased out. You may' + ewarn 'remove it from your configuration at your convenience. See' + ewarn + ewarn ' https://bugs.gentoo.org/611214' + ewarn + ewarn 'for more information.' + fi + + elog "For details on how version slotting works, please see" + elog "the wiki:" + elog + elog " https://wiki.gentoo.org/wiki/PHP" + elog +} + +pkg_postrm() { + # This serves two purposes. First, if we have just removed the last + # installed version of PHP, then this will remove any dead symlinks + # belonging to eselect-php. Second, if a user upgrades slots from + # (say) 5.6 to 7.0 and depcleans the old slot, then this will update + # his existing symlinks to point to the new 7.0 installation. The + # latter is bug 432962. + # + # Note: the eselect-php package may not be installed at this point, + # so we can't die() if this command fails. + eselect php cleanup +} diff --git a/dev-lang/php/php-8.1.10.ebuild b/dev-lang/php/php-8.1.10.ebuild new file mode 100644 index 000000000000..08ae68bc439d --- /dev/null +++ b/dev-lang/php/php-8.1.10.ebuild @@ -0,0 +1,756 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="8" + +WANT_AUTOMAKE="none" + +inherit flag-o-matic systemd autotools + +MY_PV=${PV/_rc/RC} +DESCRIPTION="The PHP language runtime engine" +HOMEPAGE="https://www.php.net/" +SRC_URI="https://www.php.net/distributions/${P}.tar.xz" + +LICENSE="PHP-3.01 + BSD + Zend-2.0 + bcmath? ( LGPL-2.1+ ) + fpm? ( BSD-2 ) + gd? ( gd ) + unicode? ( BSD-2 LGPL-2.1 )" + +SLOT="$(ver_cut 1-2)" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos" + +S="${WORKDIR}/${PN}-${MY_PV}" + +# We can build the following SAPIs in the given order +SAPIS="embed cli cgi fpm apache2 phpdbg" + +# SAPIs and SAPI-specific USE flags (cli SAPI is default on): +IUSE="${IUSE} + ${SAPIS/cli/+cli} + threads" + +IUSE="${IUSE} acl apparmor argon2 bcmath berkdb bzip2 calendar cdb cjk + coverage +ctype curl debug + enchant exif ffi +fileinfo +filter firebird + +flatfile ftp gd gdbm gmp +iconv imap inifile + intl iodbc ipv6 +jit kerberos ldap ldap-sasl libedit lmdb + mhash mssql mysql mysqli nls + oci8-instant-client odbc +opcache pcntl pdo +phar +posix postgres qdbm + readline selinux +session session-mm sharedmem + +simplexml snmp soap sockets sodium spell sqlite ssl + sysvipc systemd test tidy +tokenizer tokyocabinet truetype unicode webp + +xml xmlreader xmlwriter xpm xslt zip zlib" + +# Without USE=readline or libedit, the interactive "php -a" CLI will hang. +# The Oracle instant client provides its own incompatible ldap library. +REQUIRED_USE=" + || ( cli cgi fpm apache2 embed phpdbg ) + cli? ( ^^ ( readline libedit ) ) + !cli? ( ?? ( readline libedit ) ) + truetype? ( gd zlib ) + webp? ( gd zlib ) + cjk? ( gd zlib ) + exif? ( gd zlib ) + xpm? ( gd zlib ) + gd? ( zlib ) + simplexml? ( xml ) + soap? ( xml ) + xmlreader? ( xml ) + xmlwriter? ( xml ) + xslt? ( xml ) + ldap-sasl? ( ldap ) + oci8-instant-client? ( !ldap ) + qdbm? ( !gdbm ) + session-mm? ( session !threads ) + mysql? ( || ( mysqli pdo ) ) + firebird? ( pdo ) + mssql? ( pdo ) +" + +RESTRICT="!test? ( test )" + +# The supported (that is, autodetected) versions of BDB are listed in +# the ./configure script. Other versions *work*, but we need to stick to +# the ones that can be detected to avoid a repeat of bug #564824. +COMMON_DEPEND=" + >=app-eselect/eselect-php-0.9.7[apache2?,fpm?] + >=dev-libs/libpcre2-10.30[jit?,unicode] + fpm? ( acl? ( sys-apps/acl ) apparmor? ( sys-libs/libapparmor ) ) + apache2? ( www-servers/apache[apache2_modules_unixd(+),threads=] ) + argon2? ( app-crypt/argon2:= ) + berkdb? ( || ( sys-libs/db:5.3 sys-libs/db:4.8 ) ) + bzip2? ( app-arch/bzip2:0= ) + cdb? ( || ( dev-db/cdb dev-db/tinycdb ) ) + coverage? ( dev-util/lcov ) + curl? ( >=net-misc/curl-7.29.0 ) + enchant? ( app-text/enchant:2 ) + ffi? ( >=dev-libs/libffi-3.0.11:= ) + firebird? ( dev-db/firebird ) + gd? ( media-libs/libjpeg-turbo:0= media-libs/libpng:0= ) + gdbm? ( >=sys-libs/gdbm-1.8.0:0= ) + gmp? ( dev-libs/gmp:0= ) + iconv? ( virtual/libiconv ) + imap? ( >=virtual/imap-c-client-2[kerberos=,ssl=] ) + intl? ( dev-libs/icu:= ) + kerberos? ( virtual/krb5 ) + ldap? ( >=net-nds/openldap-1.2.11:= ) + ldap-sasl? ( dev-libs/cyrus-sasl ) + libedit? ( dev-libs/libedit ) + lmdb? ( dev-db/lmdb:= ) + mssql? ( dev-db/freetds[mssql] ) + nls? ( sys-devel/gettext ) + oci8-instant-client? ( dev-db/oracle-instantclient[sdk] ) + odbc? ( iodbc? ( dev-db/libiodbc ) !iodbc? ( >=dev-db/unixODBC-1.8.13 ) ) + postgres? ( >=dev-db/postgresql-9.1:* ) + qdbm? ( dev-db/qdbm ) + readline? ( sys-libs/readline:0= ) + session-mm? ( dev-libs/mm ) + snmp? ( >=net-analyzer/net-snmp-5.2 ) + sodium? ( dev-libs/libsodium:=[-minimal] ) + spell? ( >=app-text/aspell-0.50 ) + sqlite? ( >=dev-db/sqlite-3.7.6.3 ) + ssl? ( >=dev-libs/openssl-1.0.2:0= ) + tidy? ( app-text/htmltidy ) + tokyocabinet? ( dev-db/tokyocabinet ) + truetype? ( =media-libs/freetype-2* ) + unicode? ( dev-libs/oniguruma:= ) + webp? ( media-libs/libwebp:0= ) + xml? ( >=dev-libs/libxml2-2.9.0 ) + xpm? ( x11-libs/libXpm ) + xslt? ( dev-libs/libxslt ) + zip? ( >=dev-libs/libzip-1.2.0:= ) + zlib? ( >=sys-libs/zlib-1.2.0.4:0= ) +" + +IDEPEND=">=app-eselect/eselect-php-0.9.7[apache2?,fpm?]" + +RDEPEND="${COMMON_DEPEND} + virtual/mta + fpm? ( + selinux? ( sec-policy/selinux-phpfpm ) + systemd? ( sys-apps/systemd ) )" + +# Bison isn't actually needed when building from a release tarball +# However, the configure script will warn if it's absent or if you +# have an incompatible version installed. See bug 593278. +DEPEND="${COMMON_DEPEND} + app-arch/xz-utils + >=sys-devel/bison-3.0.1" + +BDEPEND="virtual/pkgconfig" + +PHP_MV="$(ver_cut 1)" + +PATCHES=( + "${FILESDIR}/php-iodbc-header-location.patch" +) + +php_install_ini() { + local phpsapi="${1}" + + # work out where we are installing the ini file + php_set_ini_dir "${phpsapi}" + + # Always install the production INI file, bug 611214. + local phpinisrc="php.ini-production-${phpsapi}" + cp php.ini-production "${phpinisrc}" || die + + # default to /tmp for save_path, bug #282768 + sed -e 's|^;session.save_path .*$|session.save_path = "'"${EPREFIX}"'/tmp"|g' -i "${phpinisrc}" || die + + # Set the extension dir + sed -e "s|^extension_dir .*$|extension_dir = ${extension_dir}|g" \ + -i "${phpinisrc}" || die + + # Set the include path to point to where we want to find PEAR packages + sed -e 's|^;include_path = ".:/php/includes".*|include_path = ".:'"${EPREFIX}"'/usr/share/php'${PHP_MV}':'"${EPREFIX}"'/usr/share/php"|' -i "${phpinisrc}" || die + + insinto "${PHP_INI_DIR#${EPREFIX}}" + newins "${phpinisrc}" php.ini + + elog "Installing php.ini for ${phpsapi} into ${PHP_INI_DIR#${EPREFIX}}" + elog + + dodir "${PHP_EXT_INI_DIR#${EPREFIX}}" + dodir "${PHP_EXT_INI_DIR_ACTIVE#${EPREFIX}}" + + if use opcache; then + elog "Adding opcache to $PHP_EXT_INI_DIR" + echo "zend_extension=${PHP_DESTDIR}/$(get_libdir)/opcache.so" >> \ + "${D}/${PHP_EXT_INI_DIR}"/opcache.ini + dosym "../ext/opcache.ini" \ + "${PHP_EXT_INI_DIR_ACTIVE#${EPREFIX}}/opcache.ini" + fi + + # SAPI-specific handling + if [[ "${sapi}" == "fpm" ]] ; then + einfo "Installing FPM config files php-fpm.conf and www.conf" + insinto "${PHP_INI_DIR#${EPREFIX}}" + doins sapi/fpm/php-fpm.conf + insinto "${PHP_INI_DIR#${EPREFIX}}/fpm.d" + doins sapi/fpm/www.conf + fi + + dodoc php.ini-{development,production} +} + +php_set_ini_dir() { + PHP_INI_DIR="${EPREFIX}/etc/php/${1}-php${SLOT}" + PHP_EXT_INI_DIR="${PHP_INI_DIR}/ext" + PHP_EXT_INI_DIR_ACTIVE="${PHP_INI_DIR}/ext-active" +} + +src_prepare() { + default + + # In php-7.x, the FPM pool configuration files have been split off + # of the main config. By default the pool config files go in + # e.g. /etc/php-fpm.d, which isn't slotted. So here we move the + # include directory to a subdirectory "fpm.d" of $PHP_INI_DIR. Later + # we'll install the pool configuration file "www.conf" there. + php_set_ini_dir fpm + sed -i "s~^include=.*$~include=${PHP_INI_DIR}/fpm.d/*.conf~" \ + sapi/fpm/php-fpm.conf.in \ + || die 'failed to move the include directory in php-fpm.conf' + + # Emulate buildconf to support cross-compilation + rm -fr aclocal.m4 autom4te.cache config.cache \ + configure main/php_config.h.in || die + eautoconf --force + eautoheader + + # Remove false positive test failures + # stream_isatty fails due to portage redirects + # curl tests here fail for network sandbox issues + # session tests here fail because we set the session directory to $T + rm tests/output/stream_isatty_err.phpt \ + tests/output/stream_isatty_out-err.phpt \ + tests/output/stream_isatty_out.phpt \ + ext/curl/tests/bug76675.phpt \ + ext/curl/tests/bug77535.phpt \ + ext/curl/tests/curl_error_basic.phpt \ + ext/session/tests/bug74514.phpt \ + ext/session/tests/bug74936.phpt || die + +} + +src_configure() { + addpredict /usr/share/snmp/mibs/.index #nowarn + addpredict /var/lib/net-snmp/mib_indexes #nowarn + + PHP_DESTDIR="${EPREFIX}/usr/$(get_libdir)/php${SLOT}" + + # The php-fpm config file wants localstatedir to be ${EPREFIX}/var + # and not the Gentoo default ${EPREFIX}/var/lib. See bug 572002. + local our_conf=( + --prefix="${PHP_DESTDIR}" + --mandir="${PHP_DESTDIR}/man" + --infodir="${PHP_DESTDIR}/info" + --libdir="${PHP_DESTDIR}/lib" + --with-libdir="$(get_libdir)" + --localstatedir="${EPREFIX}/var" + --without-pear + $(use_enable threads zts) + ) + + our_conf+=( + $(use_with apparmor fpm-apparmor) + $(use_with argon2 password-argon2 "${EPREFIX}/usr") + $(use_enable bcmath) + $(use_with bzip2 bz2 "${EPREFIX}/usr") + $(use_enable calendar) + $(use_enable coverage gcov) + $(use_enable ctype) + $(use_with curl) + $(use_enable xml dom) + $(use_with enchant) + $(use_enable exif) + $(use_with ffi) + $(use_enable fileinfo) + $(use_enable filter) + $(use_enable ftp) + $(use_with nls gettext "${EPREFIX}/usr") + $(use_with gmp gmp "${EPREFIX}/usr") + $(use_with mhash mhash "${EPREFIX}/usr") + $(use_with iconv iconv \ + $(use elibc_glibc || use elibc_musl || echo "${EPREFIX}/usr")) + $(use_enable intl) + $(use_enable ipv6) + $(use_with kerberos) + $(use_with xml libxml) + $(use_enable unicode mbstring) + $(use_with ssl openssl) + $(use_enable pcntl) + $(use_enable phar) + $(use_enable pdo) + $(use_enable opcache) + $(use_with postgres pgsql "${EPREFIX}/usr") + $(use_enable posix) + $(use_with spell pspell "${EPREFIX}/usr") + $(use_enable simplexml) + $(use_enable sharedmem shmop) + $(use_with snmp snmp "${EPREFIX}/usr") + $(use_enable soap) + $(use_enable sockets) + $(use_with sodium) + $(use_with sqlite sqlite3) + $(use_enable sysvipc sysvmsg) + $(use_enable sysvipc sysvsem) + $(use_enable sysvipc sysvshm) + $(use_with tidy tidy "${EPREFIX}/usr") + $(use_enable tokenizer) + $(use_enable xml) + $(use_enable xmlreader) + $(use_enable xmlwriter) + $(use_with xslt xsl) + $(use_with zip) + $(use_with zlib zlib "${EPREFIX}/usr") + $(use_enable debug) + ) + + # DBA support + if use cdb || use berkdb || use flatfile || use gdbm || use inifile \ + || use qdbm || use lmdb || use tokyocabinet ; then + our_conf+=( "--enable-dba" ) + fi + + # DBA drivers support + our_conf+=( + $(use_with cdb) + $(use_with berkdb db4 "${EPREFIX}/usr") + $(use_enable flatfile) + $(use_with gdbm gdbm "${EPREFIX}/usr") + $(use_enable inifile) + $(use_with qdbm qdbm "${EPREFIX}/usr") + $(use_with tokyocabinet tcadb "${EPREFIX}/usr") + $(use_with lmdb lmdb "${EPREFIX}/usr") + ) + + # Support for the GD graphics library + our_conf+=( + $(use_with truetype freetype) + $(use_enable cjk gd-jis-conv) + $(use_with gd jpeg) + $(use_with xpm) + $(use_with webp) + ) + # enable gd last, so configure can pick up the previous settings + our_conf+=( $(use_enable gd) ) + + # IMAP support + if use imap ; then + our_conf+=( + $(use_with imap imap "${EPREFIX}/usr") + $(use_with ssl imap-ssl "${EPREFIX}/usr") + ) + fi + + # LDAP support + if use ldap ; then + our_conf+=( + $(use_with ldap ldap "${EPREFIX}/usr") + $(use_with ldap-sasl) + ) + fi + + # MySQL support + our_conf+=( $(use_with mysqli mysqli "mysqlnd") ) + + local mysqlsock="${EPREFIX}/var/run/mysqld/mysqld.sock" + if use mysql || use mysqli ; then + our_conf+=( $(use_with mysql mysql-sock "${mysqlsock}") ) + fi + + # ODBC support + if use odbc && use iodbc ; then + our_conf+=( + --without-unixODBC + --with-iodbc + $(use_with pdo pdo-odbc "iODBC,${EPREFIX}/usr") + ) + elif use odbc ; then + our_conf+=( + --with-unixODBC="${EPREFIX}/usr" + --without-iodbc + $(use_with pdo pdo-odbc "unixODBC,${EPREFIX}/usr") + ) + else + our_conf+=( + --without-unixODBC + --without-iodbc + --without-pdo-odbc + ) + fi + + # Oracle support + our_conf+=( $(use_with oci8-instant-client oci8) ) + + # PDO support + if use pdo ; then + our_conf+=( + $(use_with mssql pdo-dblib "${EPREFIX}/usr") + $(use_with mysql pdo-mysql "mysqlnd") + $(use_with postgres pdo-pgsql) + $(use_with sqlite pdo-sqlite) + $(use_with firebird pdo-firebird "${EPREFIX}/usr") + $(use_with oci8-instant-client pdo-oci) + ) + fi + + # readline/libedit support + our_conf+=( + $(use_with readline readline "${EPREFIX}/usr") + $(use_with libedit) + ) + + # Session support + if use session ; then + our_conf+=( $(use_with session-mm mm "${EPREFIX}/usr") ) + else + our_conf+=( $(use_enable session) ) + fi + + # Use pic for shared modules such as apache2's mod_php + our_conf+=( --with-pic ) + + # we use the system copy of pcre + # --with-external-pcre affects ext/pcre + our_conf+=( + --with-external-pcre + $(use_with jit pcre-jit) + ) + + # Catch CFLAGS problems + # Fixes bug #14067. + # Changed order to run it in reverse for bug #32022 and #12021. + replace-cpu-flags "k6*" "i586" + + # Cache the ./configure test results between SAPIs. + our_conf+=( --cache-file="${T}/config.cache" ) + + # Support user-passed configuration parameters + our_conf+=( ${EXTRA_ECONF:-} ) + + # Support the Apache2 extras, they must be set globally for all + # SAPIs to work correctly, especially for external PHP extensions + + local one_sapi + local sapi + mkdir -p "${WORKDIR}/sapis-build" || die + for one_sapi in $SAPIS ; do + use "${one_sapi}" || continue + php_set_ini_dir "${one_sapi}" + + # The BUILD_DIR variable is used to determine where to output + # the files that autotools creates. This was all originally + # based on the autotools-utils eclass. + BUILD_DIR="${WORKDIR}/sapis-build/${one_sapi}" + cp -a "${S}" "${BUILD_DIR}" || die + cd "${BUILD_DIR}" || die + + local sapi_conf=( + --with-config-file-path="${PHP_INI_DIR}" + --with-config-file-scan-dir="${PHP_EXT_INI_DIR_ACTIVE}" + ) + + for sapi in $SAPIS ; do + case "$sapi" in + cli|cgi|embed|fpm|phpdbg) + if [[ "${one_sapi}" == "${sapi}" ]] ; then + sapi_conf+=( "--enable-${sapi}" ) + if [[ "fpm" == "${sapi}" ]] ; then + sapi_conf+=( + $(use_with acl fpm-acl) + $(use_with systemd fpm-systemd) + ) + fi + else + sapi_conf+=( "--disable-${sapi}" ) + fi + ;; + + apache2) + if [[ "${one_sapi}" == "${sapi}" ]] ; then + sapi_conf+=( --with-apxs2="${EPREFIX}/usr/bin/apxs" ) + else + sapi_conf+=( --without-apxs2 ) + fi + ;; + esac + done + + # Construct the $myeconfargs array by concatenating $our_conf + # (the common args) and $sapi_conf (the SAPI-specific args). + local myeconfargs=( "${our_conf[@]}" ) + myeconfargs+=( "${sapi_conf[@]}" ) + + pushd "${BUILD_DIR}" > /dev/null || die + econf "${myeconfargs[@]}" + popd > /dev/null || die + done +} + +src_compile() { + # snmp seems to run during src_compile, too (bug #324739) + addpredict /usr/share/snmp/mibs/.index #nowarn + addpredict /var/lib/net-snmp/mib_indexes #nowarn + + local sapi + for sapi in ${SAPIS} ; do + if use "${sapi}"; then + cd "${WORKDIR}/sapis-build/$sapi" || \ + die "Failed to change dir to ${WORKDIR}/sapis-build/$1" + emake + fi + done +} + +src_install() { + # see bug #324739 for what happens when we don't have that + addpredict /usr/share/snmp/mibs/.index #nowarn + + # grab the first SAPI that got built and install common files from there + local first_sapi="", sapi="" + for sapi in $SAPIS ; do + if use $sapi ; then + first_sapi=$sapi + break + fi + done + + # Makefile forgets to create this before trying to write to it... + dodir "${PHP_DESTDIR#${EPREFIX}}/bin" + + # Install php environment (without any sapis) + cd "${WORKDIR}/sapis-build/$first_sapi" || die + emake INSTALL_ROOT="${D}" \ + install-build install-headers install-programs + + local extension_dir="$("${ED}/${PHP_DESTDIR#${EPREFIX}}/bin/php-config" --extension-dir)" + + # Create the directory where we'll put version-specific php scripts + keepdir "/usr/share/php${PHP_MV}" + + local file="" + local sapi_list="" + + for sapi in ${SAPIS}; do + if use "${sapi}" ; then + einfo "Installing SAPI: ${sapi}" + cd "${WORKDIR}/sapis-build/${sapi}" || die + + if [[ "${sapi}" == "apache2" ]] ; then + # We're specifically not using emake install-sapi as libtool + # may cause unnecessary relink failures (see bug #351266) + insinto "${PHP_DESTDIR#${EPREFIX}}/apache2/" + newins ".libs/libphp$(get_libname)" \ + "libphp${PHP_MV}$(get_libname)" + keepdir "/usr/$(get_libdir)/apache2/modules" + else + # needed each time, php_install_ini would reset it + local dest="${PHP_DESTDIR#${EPREFIX}}" + into "${dest}" + case "$sapi" in + cli) + source="sapi/cli/php" + # Install the "phar" archive utility. + if use phar ; then + emake INSTALL_ROOT="${D}" install-pharcmd + dosym "..${dest#/usr}/bin/phar" "/usr/bin/phar${SLOT}" + fi + ;; + cgi) + source="sapi/cgi/php-cgi" + ;; + fpm) + source="sapi/fpm/php-fpm" + ;; + embed) + source="libs/libphp$(get_libname)" + ;; + phpdbg) + source="sapi/phpdbg/phpdbg" + ;; + *) + die "unhandled sapi in src_install" + ;; + esac + + if [[ "${source}" == *"$(get_libname)" ]]; then + dolib.so "${source}" + else + dobin "${source}" + local name="$(basename ${source})" + dosym "..${dest#/usr}/bin/${name}" "/usr/bin/${name}${SLOT}" + fi + fi + + php_install_ini "${sapi}" + + # construct correct SAPI string for php-config + # thanks to ferringb for the bash voodoo + if [[ "${sapi}" == "apache2" ]]; then + sapi_list="${sapi_list:+${sapi_list} }apache2handler" + else + sapi_list="${sapi_list:+${sapi_list} }${sapi}" + fi + fi + done + + # Installing opcache module + if use opcache ; then + into "${PHP_DESTDIR#${EPREFIX}}" + dolib.so "modules/opcache$(get_libname)" + fi + + # Install env.d files + newenvd "${FILESDIR}/20php5-envd" "20php${SLOT}" + sed -e "s|/lib/|/$(get_libdir)/|g" -i "${ED}/etc/env.d/20php${SLOT}" || die + sed -e "s|php5|php${SLOT}|g" -i "${ED}/etc/env.d/20php${SLOT}" || die + + # set php-config variable correctly (bug #278439) + sed -e "s:^\(php_sapis=\)\".*\"$:\1\"${sapi_list}\":" -i \ + "${ED}/usr/$(get_libdir)/php${SLOT}/bin/php-config" || die + + if use fpm ; then + if use systemd; then + systemd_newunit "${FILESDIR}/php-fpm_at.service" \ + "php-fpm@${SLOT}.service" + else + systemd_newunit "${FILESDIR}/php-fpm_at-simple.service" \ + "php-fpm@${SLOT}.service" + fi + fi +} + +src_test() { + echo ">>> Test phase [test]: ${CATEGORY}/${PF}" + PHP_BIN="${WORKDIR}/sapis-build/cli/sapi/cli/php" + if [[ ! -x "${PHP_BIN}" ]] ; then + ewarn "Test phase requires USE=cli, skipping" + return + else + export TEST_PHP_EXECUTABLE="${PHP_BIN}" + fi + + if [[ -x "${WORKDIR}/sapis-build/cgi/sapi/cgi/php-cgi" ]] ; then + export TEST_PHP_CGI_EXECUTABLE="${WORKDIR}/sapis-build/cgi/sapi/cgi/php-cgi" + fi + + if [[ -x "${WORKDIR}/sapis-build/phpdbg/sapi/phpdbg/phpdbg" ]] ; then + export TEST_PHPDBG_EXECUTABLE="${WORKDIR}/sapis-build/phpdbg/sapi/phpdbg/phpdbg" + fi + + SKIP_ONLINE_TESTS=1 REPORT_EXIT_STATUS=1 "${TEST_PHP_EXECUTABLE}" -n -d \ + "session.save_path=${T}" \ + "${WORKDIR}/sapis-build/cli/run-tests.php" -n -q -d \ + "session.save_path=${T}" + + for name in ${EXPECTED_TEST_FAILURES}; do + mv "${name}.out" "${name}.out.orig" 2>/dev/null || die + done + + local failed="$(find -name '*.out')" + if [[ ${failed} != "" ]] ; then + ewarn "The following test cases failed unexpectedly:" + for name in ${failed}; do + ewarn " ${name/.out/}" + done + else + einfo "No unexpected test failures, all fine" + fi + + if [[ ${PHP_SHOW_UNEXPECTED_TEST_PASS} == "1" ]] ; then + local passed="" + for name in ${EXPECTED_TEST_FAILURES}; do + [[ -f "${name}.diff" ]] && continue + passed="${passed} ${name}" + done + if [[ ${passed} != "" ]] ; then + einfo "The following test cases passed unexpectedly:" + for name in ${passed}; do + ewarn " ${passed}" + done + else + einfo "None of the known-to-fail tests passed, all fine" + fi + fi +} + +pkg_postinst() { + # Output some general info to the user + if use apache2 ; then + elog + elog "To enable PHP in apache, you will need to add \"-D PHP\" to" + elog "your apache2 command. OpenRC users can append that string to" + elog "APACHE2_OPTS in /etc/conf.d/apache2." + elog + elog "The apache module configuration file 70_mod_php.conf is" + elog "provided (and maintained) by eselect-php." + elog + fi + + # Create the symlinks for php + local m + for m in ${SAPIS}; do + [[ ${m} == 'embed' ]] && continue; + if use $m ; then + local ci=$(eselect php show $m) + if [[ -z $ci ]]; then + eselect php set $m php${SLOT} || die + einfo "Switched ${m} to use php:${SLOT}" + einfo + elif [[ $ci != "php${SLOT}" ]] ; then + elog "To switch $m to use php:${SLOT}, run" + elog " eselect php set $m php${SLOT}" + elog + fi + fi + done + + # Remove dead symlinks for SAPIs that were just disabled. For + # example, if the user has the cgi SAPI enabled, then he has an + # eselect-php symlink for it. If he later reinstalls PHP with + # USE="-cgi", that symlink will break. This call to eselect is + # supposed to remove that dead link per bug 572436. + eselect php cleanup || die + + if ! has "php${SLOT/./-}" ${PHP_TARGETS}; then + elog "To build extensions for this version of PHP, you will need to" + elog "add php${SLOT/./-} to your PHP_TARGETS USE_EXPAND variable." + elog + fi + + # Warn about the removal of PHP_INI_VERSION if the user has it set. + if [[ -n "${PHP_INI_VERSION}" ]]; then + ewarn 'The PHP_INI_VERSION variable has been phased out. You may' + ewarn 'remove it from your configuration at your convenience. See' + ewarn + ewarn ' https://bugs.gentoo.org/611214' + ewarn + ewarn 'for more information.' + fi + + elog "For details on how version slotting works, please see" + elog "the wiki:" + elog + elog " https://wiki.gentoo.org/wiki/PHP" + elog +} + +pkg_postrm() { + # This serves two purposes. First, if we have just removed the last + # installed version of PHP, then this will remove any dead symlinks + # belonging to eselect-php. Second, if a user upgrades slots from + # (say) 5.6 to 7.0 and depcleans the old slot, then this will update + # his existing symlinks to point to the new 7.0 installation. The + # latter is bug 432962. + # + # Note: the eselect-php package may not be installed at this point, + # so we can't die() if this command fails. + eselect php cleanup +} diff --git a/dev-lang/python/Manifest b/dev-lang/python/Manifest index 2f2376ba71f7..d595c7d943dd 100644 --- a/dev-lang/python/Manifest +++ b/dev-lang/python/Manifest @@ -8,6 +8,8 @@ DIST Python-3.10.7.tar.xz 19618696 BLAKE2B 45e38e8b8a87ea5c041998a9be5e8fb25c2b5 DIST Python-3.10.7.tar.xz.asc 833 BLAKE2B 201ef40872ac8dc8886128b98fc13a0b14ab80db03ec467933fef0356f4a8728679eb77ae1044c51653cf3bd81e93f0a00f59c6f852e75499af95b34f2d6607d SHA512 a65d152d87870de763de3384a1c0ff0309068a2af0fcdfa39a6f968a52b59c56229553cf6a955ec0af1d3db5bf4641c4e91d6150764548d2e9fb0e9a01ab759d DIST Python-3.11.0rc1.tar.xz 19815524 BLAKE2B 7dae240dbed052667b46927ccbb483a717b0fe0ba199721d526354d1b89a6dd2842ab0f6c3b078385e4acb7557d06f252d61aacb07d70c7f5598ed91567d2053 SHA512 2a72ea59277f8115e418ced671969fc0d5ba271c7740f70c665a4b450a59d7752278d061bd59f136dacfa608ed167f983c6589b214a973b1b63ea2115ea298bb DIST Python-3.11.0rc1.tar.xz.asc 833 BLAKE2B da46a0ab62ef3f2b7a7921294a0d775ca6ab254e3229338232b3d11107aa1d74adc21911678f08f44cc1cd9184beada00d4b60dde60722ef91a247367b13e191 SHA512 d4cffc90c2ed7b8ea7228a21f7ac902a92f27003f1420ad751b1691de950974ea174cb0471b6e19ed1548dc5382012fa9ad5fcf83c34646c7ea2d73c88799e38 +DIST Python-3.11.0rc2.tar.xz 19828340 BLAKE2B c4e8578d967917fc6f19355c466ba8e5487e83a17b373dd03ae90f2a73f5f6d07c38ec308c03435d23454cdcb06e63b74fc9ceb3900079996ae71b9327a4a5b3 SHA512 8b37bc9df3c966bd35cffdb7d6406a3c1a5ccfbea10bd8dad498880e3b1492f8cdbbe227ab3a30557843eb05d8fb93077c791e25d71b33ed420992d54b6c9473 +DIST Python-3.11.0rc2.tar.xz.asc 833 BLAKE2B 80ea3e8a3565fef6552da2287a5bf07a764002c273842b7d03a417a75adfe616e1b7816c161c42751a495b32ab8d8c11efc6c90ade97c0b31be54f7391ee9c9d SHA512 13e6bfa719db29aa169763399203168923cbfbb01d209e18269399ca84723582f480134edd3bf9f24785cd5ab0486411132d6bbb354fa45ebbba68bf4c70021a DIST Python-3.8.13.tar.xz 19023016 BLAKE2B d3cb8624496e56d93d34f2aa5082746869a99210197529bc19e6a9d265f4ce246e0e83a3528a7602a28aac8855bf84e6bf6495b85e9202fcf04ef90600cb5e43 SHA512 5c732b5d21b189b99a0e9ccd3ae59466bed60a930d5d3f437a262d38f0797b776cecbf12a1852eaebcfb638a6f2e28e471cc2ebf94237cc728144be21842cb81 DIST Python-3.8.13.tar.xz.asc 833 BLAKE2B 918894777e1a783f2a7c7958a808610631cb7a6039df84675158e8d2fd66782f29921d44ab9b4625c4ca3821852e0d0e0005163b086c7d0c3d617e3a76cb7033 SHA512 6683c4ae6cf20a97a29165f96b9f5dd09d618892583650d803aa677240695968dfe344294fc33db68fd4669c82021afcc29a1f6afe49915be51fae281eeeedbe DIST Python-3.8.14.tar.xz 19031932 BLAKE2B 5044743ba4d0b9dd634b42c08e6693126ee396a75b4b728e80333aaac94ade447a12bed16e29d32c480fd670e75b44315ea6951489cc9b85c7fd385116b383ef SHA512 380de19b461e71e268943ef555b78ba68814f4ff77a7576fbcd45d6690db750590213171e1905326b8bcb217070adf66228a00792350293ec6575c20b27a6cc3 @@ -24,6 +26,7 @@ DIST python-gentoo-patches-3.10.7.tar.xz 12040 BLAKE2B fcbf07894376fff4145534d59 DIST python-gentoo-patches-3.11.0rc1.tar.xz 4384 BLAKE2B 31bcdc055bfaf3434dbb02543aaf66910eaccd01808d9a0e57bf7cb3b097fc0046c00ac44737d9c37e3b6d074c524f4dd3ab439a741e66d74a0425889ecaead5 SHA512 05b044e2d8f881c471528600ee300bfd9cf5160609dfb3d7cbdb8e43f47b681542582a85de97e28e6a3b89a3fb6c8d7398e029d31e20cea9c5a2a71700382d4e DIST python-gentoo-patches-3.11.0rc1_p1.tar.xz 19584 BLAKE2B 33c87e2e7141fa5cdf343df8cf30e8e0bd37fdfc7b4d84564b1131c57db27b5886184fd1291b2a898efafec60da5c01d16dce8b3c8792df7df15793d767d74cd SHA512 dc5547622a17bc899dfa7f55a4705f780fd3b731ccdb2c0a87e3d71b4490a32b54683ff862f412e2ac3480f0e84acf2e88176ecf89a8d62b97454e51258696ea DIST python-gentoo-patches-3.11.0rc1_p2-r1.tar.xz 22364 BLAKE2B 7069ae59e64214b269aa05e8ce86191743aa339fc78a57f5a6deaf79c009ce5011f73c4c30cdeb21cfce51b80fc75153549ae4c3ceaf200886c799faa07eb96e SHA512 43d811c57fe44bd90f468f0ce6fef1b57e44d4322313cf0323df25a3b9dc4489130edb09af50c4228506705e8e567a5b566cd273dc072f629e4bbcbecf41990f +DIST python-gentoo-patches-3.11.0rc2.tar.xz 5124 BLAKE2B 2e8150c45d8da16309902757f57c8433d871d531153e1b51aa6868dad36d16c1eaada4ba67bfa8057315ff6771f6d17502de8b9b07a5c7c734cbc8f9b379cba7 SHA512 f9d84262204a6eb4a76e4e7c16e9f2f0f23a5d0458e81648f4c5c79c83b865000d2d34ee65f01316e14b596fa68f8b036f558a6bbbb06c66b33db7d2b891a5b5 DIST python-gentoo-patches-3.8.13_p6.tar.xz 27968 BLAKE2B 0cafbdfed47e0d58a9798c1e090abb17428472f769ebe4125cf1210218b90bcfd2ad8790fafbfdc1daccc51078a6bf5e068157f05151c2283eb80d5fe128d85c SHA512 b23d51478cc126a6f7f3d1d6d2302a13f3e873a3fac19c7b2b86b79f4b25bd421b60e5ecbe9bb606ee0eedc0e6871d20c0befd1b6596b525bf6ef79a19230ae2 DIST python-gentoo-patches-3.8.13_p7.tar.xz 41332 BLAKE2B e61fe83b1260fbdc3086384834914625ae361c3ab2365f5f86c454423f4738b1aa20f46cf95b8a64b54b7cc000761964d5db65383bba9bdcc2a86894aacbdd5b SHA512 e71fff8291c4dfec43d3609e84de2fe6afc29ee6087410f047e972294e555e5a17b7f8d19778a79e67bad66855fd7a163b5a047aee99ee357d5306d7cd01f989 DIST python-gentoo-patches-3.8.13_p8.tar.xz 43204 BLAKE2B 6fb162bfcd2ab8c1fb4208716382aa144bf21b1bd8c2f00a2bd60e7cd0b0d8e034803e8f4129cf49cf6e594467aa2e4a45eb4cb72ddd8516ffd8f797570d59cd SHA512 41ec04e3257021fdcc848587c2275b241d0b31d1d6c10162e30b86920109286c92171d6143bb8be6d1f1c9070d43d31dc0290bdffac50d09d32c2493e631637c @@ -36,17 +39,18 @@ EBUILD python-2.7.18_p15-r1.ebuild 8315 BLAKE2B cc31d031262c95e2e8a187017e05bc90 EBUILD python-2.7.18_p15.ebuild 9827 BLAKE2B 77ebeacfa236e518ec0c0a791e0da60f8158d369e870c88ce69d1eef25cdc99e658903abf313452b849254e97b4c9f583e0edb75ec845faf5b47fb2fc3173ce4 SHA512 19219cd43391d8d53838c9b0e15b30f8ccb5d5a23503a213cc961ff2fa545cd17a5ecc6ce253e2a01534db3bc931be212969c40885c2e99f203c23a5ecb689a1 EBUILD python-3.10.6_p2.ebuild 11181 BLAKE2B f8180bd07e43dffedafd7d912bcb9a002e93c1514c72055b24c65f36b7ef477e748bb777fa02da4c6d2c6391a1eaa9f59266b09fafb2e7ca8a67a96efd6f423c SHA512 4613ab1e7336e38a91877d4b1c5558e5221a770d8171d92fff319c6a4f64127bd9cb6dd8c56d84e70558de8ac647a315d740336834cdfa1ad3b86b184408c54b EBUILD python-3.10.6_p3.ebuild 11161 BLAKE2B b1d379be929e3a5ef8eb45beff1581e99085fdfc3af2aad29c9202284b73c225b82ba8ae81fe1db6191bc97f45d59ad9de2bcf664407269e890bb658da4072e5 SHA512 724f964f56c8c8e7859719eaf3b009f84371b5c70c509147f2a010959e93455daf469399c4159a3cba61de80ab08c327e908d8ffdbbbdb2e9893e88172969a41 -EBUILD python-3.10.6_p4.ebuild 11161 BLAKE2B 8fb60e5fb1ac4f4cfb1fe750ba01febf36c2a75f33d29c06c33f19de1515ca5591bb36aa1bdfe202d8e43aff9e827f5cc39355923b829aa08ebe23de80b5991f SHA512 3f6a51eabc57fcb440944239496107dc95ab080e940eb59875774df56de650ed8e9408754539ff527549ba894ad323df84623eb817bb3e88f73d5f2b3763abb9 +EBUILD python-3.10.6_p4.ebuild 11159 BLAKE2B 2e28fb753053556f4e9adb12172b084732e7152399e02e1ec531ecd3217a8d80f929fe031610249450365bc14236ef693bf4220867ce3e0cbcfe85dac3ac80c4 SHA512 55a9eeb51b9ce426fe1e44f3c2500f1c3ee35120dff23b528a8716bbcac386aec19d433bcd00113f868a0ff1dd7587b4b858ffac5cbb2b68fa812dfa46f1608d EBUILD python-3.10.7.ebuild 11162 BLAKE2B c8ac4f31a628990997d8b30e903d677770eda055c7d7296bf28543814a7d05e4be65791e355e43feccda58a60952428cc05abb01de5814463614c34486235da1 SHA512 82922d217eefe559fbddde7c628a087167262070e451f4fe6dce98491781a0f9d4a403c6e6d799e112fd4fecf60e9652a92958b5966c3849b17f29130ee2ef49 EBUILD python-3.11.0_rc1.ebuild 13384 BLAKE2B 7ac3f74190fafd1321f2ae9b478cb1b7381f13ce88d1839bbe2eea12a9abb0f14286f3e6036ca65c2d37ca6b07b62c14f557a7af080f6f05f119e7bbd77764cc SHA512 3b94a9e45017c0ec3d2bb2ca346d423a0e31d3b1f2c1fa098aa2c4f0af58e49f3626688dacde9740b2c1f44c63f143bf43ec305d0ce69c3e68de3ff6ae0a88c3 EBUILD python-3.11.0_rc1_p1.ebuild 13357 BLAKE2B fac65a9fba93a49af0ed0dd91f532e6cd729b815ae71b06dcdc40391dbf5252c56067be5a8085576cee41bf96d011fe9264ec0c390bb22db2265579d8b696092 SHA512 faa9b3067f81e57d8969825fa7851ac74690fdaab8b380f963f8567a09ce69a250592ee23df42f584c25261a49e93bafcecd23ab9d392d90ad4794e2c532d7e7 EBUILD python-3.11.0_rc1_p2.ebuild 13360 BLAKE2B 20debe9759b033b1c2a54e991cfba8beb164e8b7eb37c2df235f31041c4e3d859a65d626d68b151455a746506b28b9a8df4812e1e62faae19f66aa79187db246 SHA512 1cefca94317fdd87dab7a4fc8db0aaba62e8c5a9f95f2c5d8962c67ce5ee89287290e194e3b085cf89fa74a5cc6f191a4c0334e5a13c0a60290b4ab0bb3f2a46 +EBUILD python-3.11.0_rc2.ebuild 13357 BLAKE2B fac65a9fba93a49af0ed0dd91f532e6cd729b815ae71b06dcdc40391dbf5252c56067be5a8085576cee41bf96d011fe9264ec0c390bb22db2265579d8b696092 SHA512 faa9b3067f81e57d8969825fa7851ac74690fdaab8b380f963f8567a09ce69a250592ee23df42f584c25261a49e93bafcecd23ab9d392d90ad4794e2c532d7e7 EBUILD python-3.8.13_p6.ebuild 9731 BLAKE2B 0660743997da89023e3192c16bee0c1a14289ddc2f3fa43e19f105d208359eed8155a8345f29c214322ada0aa5c7e5eb50a564546f506abc3ea2204f44d1217c SHA512 b47a01911ed23390ef2091b1f09edf16d2398178ba0d9ec792f8afd06fcf1fb472c020a908af3a6b7c20396f8c6049767d2f11cfe9d15afa4df135b2cc0ee046 EBUILD python-3.8.13_p7.ebuild 9708 BLAKE2B d622c26fbc1791c567ea5db09e1f85e7b3c50f9894e7734c4f50de99142f029a47ffb2ce81808ab773958f44ea34d2dc110318589c950f4ee70144702d2ca20c SHA512 76b37e2a085df15d02ca285fa3f0980a043067591e70ab47d44bd010b609c34a521f0a2f7cebf34d349c9e4275f3a9b8bd09439eb16e5e7ea84b55d4d3b01ef1 -EBUILD python-3.8.13_p8.ebuild 9707 BLAKE2B a0e6ffa6192d57e95736585c7c66c3b231e5435b9018762e97bdbb01039cb71b5be77b2d131d7eef7a5191ce36c76b647d73c821d231697ae58a5a5ab6888445 SHA512 8539d615307c7b839e16e22402404316f1906d98d1e0554cc48191db65330c729e2bfb2a608137d4e6618a1228eb32e32963b6e16169d2dff9f0ab01d1a734a6 +EBUILD python-3.8.13_p8.ebuild 9706 BLAKE2B cfd142aa35bca9c8f1197be3804fce6a881093a8577540983b3d8303906838faa1ea037d79c4ff2d2ca320c5fae0c9077a26f25e38b579fddbc9bdbd4c3750e2 SHA512 a3f08649dc76a9832841e9eb0c5711d330db78d5deaa8ec14a0332e372e50b80167f2fca7a6e187e00504d1ddce166944c914aec3f61b0475b5300a18413d700 EBUILD python-3.8.14.ebuild 9712 BLAKE2B 1fc6b71d1bfc7f508fe722c2370ce0d841bcc9c9248143b90ea5cdd6ac5db52fcecf19d213b7b79a4fe0aa2964814bc99674838a5de682d814351d6b390c2688 SHA512 89de4861a64051de93b226aa61cc4afc39db0207692455b5772556885f33904f129b48e3be3f919b704225a680c49791169e4ff97c197c3a37c450dd83080b59 EBUILD python-3.9.13_p4.ebuild 10984 BLAKE2B 8743da1a832eb69289727f94f19a9ca7c9e42156847d25168adb1bee66cbc980d28f2969260baf5ddca124c01498f085bb9fd50c5e80083609a5d987337429b4 SHA512 d8cf0aae2e36445efb4a0d0df4a028ab7d990f017196a18127973b7d88dc4979585901102106c32d8281f640334b079a8efedea8f45fca75a13c2453cff4b64c EBUILD python-3.9.13_p5.ebuild 10964 BLAKE2B 367eff5f5f1fde3114ae2c6e215291911b90575d5705e144694d365d76e1a0ee95ce08e984125b6b0e769c17075da5cf4314d82f0f97d2845708df5fe0e49263 SHA512 042cd5aa72265de612c45e1c457f72e027e3752e31ecf7ff1bfee685115b2512aee43b4e65145ec482bb0ec31229d9b4855fe4d420f0aa9fd7d29a0251d00690 -EBUILD python-3.9.13_p6.ebuild 10963 BLAKE2B 482f9d357f9cbd73cd1e4e86bcd0938e3b7a65ac0770e2b8735fae64e32cf2221fc75b917b7688cd5ad5cd0380b92e2e4c5bc957442cc3547ce5b69f8002cdb3 SHA512 efb1ae2cf7d1a527f0efc949d61da970ed2ddb1a517e3640a2f918671fae2a9f247bdaa1bbcfc85199cf7e56c0fb8d6d1c7de967e59ebfe62984dddcad07a745 +EBUILD python-3.9.13_p6.ebuild 10961 BLAKE2B a0bfad52faaada3048cc9c017f7fb77850834ca9afca54e81c9a983365cb8c96385848e13a3aeef9af1247faf192e002be187f29cba0bf52cb3a6045dbbd7b4b SHA512 ff31a7af1763f50d2c2c800189cc246fa88db18188b5dbede944691aa5315a60483e4d3d2a07221c79ba5d7133fca2050d727e3f266c62d1408d3620a550961f EBUILD python-3.9.14.ebuild 10965 BLAKE2B 971e8c4cffb53ce7b45971b171bb9552b7187f81e88322e774931b9d0e3619fbc6508cb9f847656bfdb227702aca298bf1b42715696692dd4ea5b37dd7a91d2d SHA512 7ea76b2370612035ea5f95059f7314aca8b7c3c8c128b86d0e42f55ab3dd350e132e020ae629d05e493fba16384cdf0e5a68028f0c2d9aaa1f1c04941afb06ce MISC metadata.xml 1068 BLAKE2B 3c3511739ae8251d11bde32aa3a21225fd3468f2b1f31c459de956c5bb7dbc2de4103a288dd29b26d1023e40bac62631fa953d1515513e934f5c3962d9c715a7 SHA512 0f7d3f9305cc539619568aea7e54cdb9a3319579e811108cf03d7c66290e4f21080a87ca02f1a62264d4ecd41a243c91f0a639e6c064ccf2b24b460508c848b8 diff --git a/dev-lang/python/python-3.10.6_p4.ebuild b/dev-lang/python/python-3.10.6_p4.ebuild index 504666f90ada..b0101122b6cc 100644 --- a/dev-lang/python/python-3.10.6_p4.ebuild +++ b/dev-lang/python/python-3.10.6_p4.ebuild @@ -28,7 +28,7 @@ S="${WORKDIR}/${MY_P}" LICENSE="PSF-2" SLOT="${PYVER}" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 sparc ~x86" +KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 sparc x86" IUSE=" bluetooth build +ensurepip examples gdbm hardened libedit lto +ncurses pgo +readline +sqlite +ssl test tk +xml diff --git a/dev-lang/python/python-3.11.0_rc2.ebuild b/dev-lang/python/python-3.11.0_rc2.ebuild new file mode 100644 index 000000000000..bba860f7875a --- /dev/null +++ b/dev-lang/python/python-3.11.0_rc2.ebuild @@ -0,0 +1,481 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="7" +WANT_LIBTOOL="none" + +inherit autotools check-reqs flag-o-matic multiprocessing pax-utils +inherit python-utils-r1 toolchain-funcs verify-sig + +MY_PV=${PV/_rc/rc} +MY_P="Python-${MY_PV%_p*}" +PYVER=$(ver_cut 1-2) +PATCHSET="python-gentoo-patches-${MY_PV}" + +DESCRIPTION="An interpreted, interactive, object-oriented programming language" +HOMEPAGE=" + https://www.python.org/ + https://github.com/python/cpython/ +" +SRC_URI=" + https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz + https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz + verify-sig? ( + https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.asc + ) +" +S="${WORKDIR}/${MY_P}" + +LICENSE="PSF-2" +SLOT="${PYVER}" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE=" + bluetooth build +ensurepip examples gdbm hardened libedit lto + +ncurses pgo +readline +sqlite +ssl test tk +" +RESTRICT="!test? ( test )" + +# Do not add a dependency on dev-lang/python to this ebuild. +# If you need to apply a patch which requires python for bootstrapping, please +# run the bootstrap code on your dev box and include the results in the +# patchset. See bug 447752. + +RDEPEND=" + app-arch/bzip2:= + app-arch/xz-utils:= + app-crypt/libb2 + >=dev-libs/expat-2.1:= + dev-libs/libffi:= + sys-apps/util-linux:= + >=sys-libs/zlib-1.1.3:= + virtual/libcrypt:= + virtual/libintl + ensurepip? ( dev-python/ensurepip-wheels ) + gdbm? ( sys-libs/gdbm:=[berkdb] ) + ncurses? ( >=sys-libs/ncurses-5.2:= ) + readline? ( + !libedit? ( >=sys-libs/readline-4.1:= ) + libedit? ( dev-libs/libedit:= ) + ) + sqlite? ( >=dev-db/sqlite-3.3.8:3= ) + ssl? ( >=dev-libs/openssl-1.1.1:= ) + tk? ( + >=dev-lang/tcl-8.0:= + >=dev-lang/tk-8.0:= + dev-tcltk/blt:= + dev-tcltk/tix + ) + !!<sys-apps/sandbox-2.21 +" +# bluetooth requires headers from bluez +DEPEND=" + ${RDEPEND} + bluetooth? ( net-wireless/bluez ) + test? ( app-arch/xz-utils[extra-filters(+)] ) +" +# autoconf-archive needed to eautoreconf +BDEPEND=" + sys-devel/autoconf-archive + virtual/awk + virtual/pkgconfig + verify-sig? ( sec-keys/openpgp-keys-python ) +" +RDEPEND+=" + !build? ( app-misc/mime-types ) +" +if [[ ${PV} != *_alpha* ]]; then + RDEPEND+=" + dev-lang/python-exec[python_targets_python${PYVER/./_}(-)] + " +fi + +VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/usr/share/openpgp-keys/python.org.asc + +# large file tests involve a 2.5G file being copied (duplicated) +CHECKREQS_DISK_BUILD=5500M + +QA_PKGCONFIG_VERSION=${PYVER} + +pkg_pretend() { + use test && check-reqs_pkg_pretend +} + +pkg_setup() { + use test && check-reqs_pkg_setup +} + +src_unpack() { + if use verify-sig; then + verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc} + fi + default +} + +src_prepare() { + # Ensure that internal copies of expat and libffi are not used. + rm -r Modules/expat || die + rm -r Modules/_ctypes/libffi* || die + + local PATCHES=( + "${WORKDIR}/${PATCHSET}" + ) + + default + + # https://bugs.gentoo.org/850151 + sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" setup.py || die + + # force the correct number of jobs + # https://bugs.gentoo.org/737660 + local jobs=$(makeopts_jobs) + sed -i -e "s:-j0:-j${jobs}:" Makefile.pre.in || die + sed -i -e "/self\.parallel/s:True:${jobs}:" setup.py || die + + eautoreconf +} + +src_configure() { + local disable + # disable automagic bluetooth headers detection + if ! use bluetooth; then + local -x ac_cv_header_bluetooth_bluetooth_h=no + fi + + append-flags -fwrapv + filter-flags -malign-double + + # https://bugs.gentoo.org/700012 + if is-flagq -flto || is-flagq '-flto=*'; then + append-cflags $(test-flags-CC -ffat-lto-objects) + fi + + # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile. + # PKG_CONFIG needed for cross. + tc-export CXX PKG_CONFIG + + # Fix implicit declarations on cross and prefix builds. Bug #674070. + if use ncurses; then + append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw + fi + + local dbmliborder= + if use gdbm; then + dbmliborder+="${dbmliborder:+:}gdbm" + fi + + if use pgo; then + local profile_task_flags=( + -m test + "-j$(makeopts_jobs)" + --pgo-extended + -x test_gdb + -u-network + + # All of these seem to occasionally hang for PGO inconsistently + # They'll even hang here but be fine in src_test sometimes. + # bug #828535 (and related: bug #788022) + -x test_asyncio + -x test_httpservers + -x test_logging + -x test_multiprocessing_fork + -x test_socket + -x test_xmlrpc + ) + + if has_version "app-arch/rpm" ; then + # Avoid sandbox failure (attempts to write to /var/lib/rpm) + profile_task_flags+=( + -x test_distutils + ) + fi + local -x PROFILE_TASK="${profile_task_flags[*]}" + fi + + local myeconfargs=( + # glibc-2.30 removes it; since we can't cleanly force-rebuild + # Python on glibc upgrade, remove it proactively to give + # a chance for users rebuilding python before glibc + ac_cv_header_stropts_h=no + + --enable-shared + --without-static-libpython + --enable-ipv6 + --infodir='${prefix}/share/info' + --mandir='${prefix}/share/man' + --with-computed-gotos + --with-dbmliborder="${dbmliborder}" + --with-libc= + --enable-loadable-sqlite-extensions + --without-ensurepip + --with-system-expat + --with-system-ffi + --with-platlibdir=lib + --with-pkg-config=yes + --with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip + + $(use_with lto) + $(use_enable pgo optimizations) + $(use_with readline readline "$(usex libedit editline readline)") + ) + + # disable implicit optimization/debugging flags + local -x OPT= + # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get + # propagated to sysconfig for built extensions + local -x CFLAGS_NODIST=${CFLAGS} + local -x LDFLAGS_NODIST=${LDFLAGS} + local -x CFLAGS= LDFLAGS= + + if tc-is-cross-compiler ; then + # We need to build our own Python on CBUILD first, and feed it in. + # bug #847910 + local myeconfargs_cbuild=( + "${myeconfargs[@]}" + + # As minimal as possible for the mini CBUILD Python + # we build just for cross to satisfy --with-build-python. + --without-lto + --without-readline + --disable-optimizations + ) + + myeconfargs+=( + # Point the imminent CHOST build to the Python we just + # built for CBUILD. + --with-build-python="${WORKDIR}"/${P}-${CBUILD}/python + ) + + mkdir "${WORKDIR}"/${P}-${CBUILD} || die + pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die + ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}" + + # Avoid as many dependencies as possible for the cross build. + cat >> Makefile <<-EOF || die + MODULE_NIS_STATE=disabled + MODULE__DBM_STATE=disabled + MODULE__GDBM_STATE=disabled + MODULE__DBM_STATE=disabled + MODULE__SQLITE3_STATE=disabled + MODULE__HASHLIB_STATE=disabled + MODULE__SSL_STATE=disabled + MODULE__CURSES_STATE=disabled + MODULE__CURSES_PANEL_STATE=disabled + MODULE_READLINE_STATE=disabled + MODULE__TKINTER_STATE=disabled + MODULE_PYEXPAT_STATE=disabled + MODULE_ZLIB_STATE=disabled + EOF + + # Unfortunately, we do have to build this immediately, and + # not in src_compile, because CHOST configure for Python + # will check the existence of the --with-build-python value + # immediately. + emake + popd &> /dev/null || die + fi + + econf "${myeconfargs[@]}" + + if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then + eerror "configure has detected that the sem_open function is broken." + eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777." + die "Broken sem_open function (bug 496328)" + fi + + # force-disable modules we don't want built + local disable_modules=( NIS ) + use gdbm || disable_modules+=( _GDBM _DBM ) + use sqlite || disable_modules+=( _SQLITE3 ) + use ssl || disable_modules+=( _HASHLIB _SSL ) + use ncurses || disable_modules+=( _CURSES _CURSES_PANEL ) + use readline || disable_modules+=( READLINE ) + use tk || disable_modules+=( _TKINTER ) + + local mod + for mod in "${disable_modules[@]}"; do + echo "MODULE_${mod}_STATE=disabled" + done >> Makefile || die + + # install epython.py as part of stdlib + echo "EPYTHON='python${PYVER}'" > Lib/epython.py || die +} + +src_compile() { + # Ensure sed works as expected + # https://bugs.gentoo.org/594768 + local -x LC_ALL=C + # Prevent using distutils bundled by setuptools. + # https://bugs.gentoo.org/823728 + export SETUPTOOLS_USE_DISTUTILS=stdlib + export PYTHONSTRICTEXTENSIONBUILD=1 + + # Save PYTHONDONTWRITEBYTECODE so that 'has_version' doesn't + # end up writing bytecode & violating sandbox. + # bug #831897 + local -x _PYTHONDONTWRITEBYTECODE=${PYTHONDONTWRITEBYTECODE} + + if use pgo ; then + # bug 660358 + local -x COLUMNS=80 + local -x PYTHONDONTWRITEBYTECODE= + + addpredict /usr/lib/python3.11/site-packages + fi + + # also need to clear the flags explicitly here or they end up + # in _sysconfigdata* + emake CPPFLAGS= CFLAGS= LDFLAGS= + + # Restore saved value from above. + local -x PYTHONDONTWRITEBYTECODE=${_PYTHONDONTWRITEBYTECODE} + + # Work around bug 329499. See also bug 413751 and 457194. + if has_version dev-libs/libffi[pax-kernel]; then + pax-mark E python + else + pax-mark m python + fi +} + +src_test() { + # Tests will not work when cross compiling. + if tc-is-cross-compiler; then + elog "Disabling tests due to crosscompiling." + return + fi + + # this just happens to skip test_support.test_freeze that is broken + # without bundled expat + # TODO: get a proper skip for it upstream + local -x LOGNAME=buildbot + + local test_opts=( + -u-network + -j "$(makeopts_jobs)" + + # fails + -x test_gdb + ) + + if use sparc ; then + # bug #788022 + test_opts+=( + -x test_multiprocessing_fork + -x test_multiprocessing_forkserver + ) + fi + + # bug 660358 + local -x COLUMNS=80 + local -x PYTHONDONTWRITEBYTECODE= + # workaround https://bugs.gentoo.org/775416 + addwrite /usr/lib/python3.11/site-packages + + emake test EXTRATESTOPTS="${test_opts[*]}" \ + CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty || die "emake test failed" +} + +src_install() { + local libdir=${ED}/usr/lib/python${PYVER} + + # -j1 hack for now for bug #843458 + emake -j1 DESTDIR="${D}" altinstall + + # Fix collisions between different slots of Python. + rm "${ED}/usr/$(get_libdir)/libpython3.so" || die + + # Cheap hack to get version with ABIFLAGS + local abiver=$(cd "${ED}/usr/include"; echo python*) + if [[ ${abiver} != python${PYVER} ]]; then + # Replace python3.X with a symlink to python3.Xm + rm "${ED}/usr/bin/python${PYVER}" || die + dosym "${abiver}" "/usr/bin/python${PYVER}" + # Create python3.X-config symlink + dosym "${abiver}-config" "/usr/bin/python${PYVER}-config" + # Create python-3.5m.pc symlink + dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc" + fi + + # python seems to get rebuilt in src_install (bug 569908) + # Work around it for now. + if has_version dev-libs/libffi[pax-kernel]; then + pax-mark E "${ED}/usr/bin/${abiver}" + else + pax-mark m "${ED}/usr/bin/${abiver}" + fi + + rm -r "${libdir}"/ensurepip/_bundled || die + if ! use ensurepip; then + rm -r "${libdir}"/ensurepip || die + fi + if ! use sqlite; then + rm -r "${libdir}/"sqlite3 || die + fi + if ! use tk; then + rm -r "${ED}/usr/bin/idle${PYVER}" || die + rm -r "${libdir}/"{idlelib,tkinter,test/test_tk*} || die + fi + + dodoc Misc/{ACKS,HISTORY,NEWS} + + if use examples; then + docinto examples + find Tools -name __pycache__ -exec rm -fr {} + || die + dodoc -r Tools + fi + insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510 + local libname=$( + printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' | + emake --no-print-directory -s -f - 2>/dev/null + ) + newins Tools/gdb/libpython.py "${libname}"-gdb.py + + newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER} + newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER} + sed \ + -e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \ + -e "s:@PYDOC@:pydoc${PYVER}:" \ + -i "${ED}/etc/conf.d/pydoc-${PYVER}" \ + "${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed" + + # python-exec wrapping support + local pymajor=${PYVER%.*} + local EPYTHON=python${PYVER} + local scriptdir=${D}$(python_get_scriptdir) + mkdir -p "${scriptdir}" || die + # python and pythonX + ln -s "../../../bin/${abiver}" "${scriptdir}/python${pymajor}" || die + ln -s "python${pymajor}" "${scriptdir}/python" || die + # python-config and pythonX-config + # note: we need to create a wrapper rather than symlinking it due + # to some random dirname(argv[0]) magic performed by python-config + cat > "${scriptdir}/python${pymajor}-config" <<-EOF || die + #!/bin/sh + exec "${abiver}-config" "\${@}" + EOF + chmod +x "${scriptdir}/python${pymajor}-config" || die + ln -s "python${pymajor}-config" "${scriptdir}/python-config" || die + # 2to3, pydoc + ln -s "../../../bin/2to3-${PYVER}" "${scriptdir}/2to3" || die + ln -s "../../../bin/pydoc${PYVER}" "${scriptdir}/pydoc" || die + # idle + if use tk; then + ln -s "../../../bin/idle${PYVER}" "${scriptdir}/idle" || die + fi +} + +pkg_postinst() { + local v + for v in ${REPLACING_VERSIONS}; do + if ver_test "${v}" -lt 3.11.0_beta4-r2; then + ewarn "Python 3.11.0b4 has changed its module ABI. The .pyc files" + ewarn "installed previously are no longer valid and will be regenerated" + ewarn "(or ignored) on the next import. This may cause sandbox failures" + ewarn "when installing some packages and checksum mismatches when removing" + ewarn "old versions. To actively prevent this, rebuild all packages" + ewarn "installing Python 3.11 modules, e.g. using:" + ewarn + ewarn " emerge -1v /usr/lib/python3.11/site-packages" + fi + done +} diff --git a/dev-lang/python/python-3.8.13_p8.ebuild b/dev-lang/python/python-3.8.13_p8.ebuild index 2c6fcd3c9107..38ed52e1b2db 100644 --- a/dev-lang/python/python-3.8.13_p8.ebuild +++ b/dev-lang/python/python-3.8.13_p8.ebuild @@ -28,7 +28,7 @@ S="${WORKDIR}/${MY_P}" LICENSE="PSF-2" SLOT="${PYVER}" -KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" +KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86" IUSE=" bluetooth build +ensurepip examples gdbm hardened lto +ncurses pgo +readline +sqlite +ssl test tk wininst +xml diff --git a/dev-lang/python/python-3.9.13_p6.ebuild b/dev-lang/python/python-3.9.13_p6.ebuild index c951d23430ae..65eb49f7725f 100644 --- a/dev-lang/python/python-3.9.13_p6.ebuild +++ b/dev-lang/python/python-3.9.13_p6.ebuild @@ -28,7 +28,7 @@ S="${WORKDIR}/${MY_P}" LICENSE="PSF-2" SLOT="${PYVER}" -KEYWORDS="~alpha ~amd64 ~arm arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86" +KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 sparc x86" IUSE=" bluetooth build +ensurepip examples gdbm hardened lto +ncurses pgo +readline +sqlite +ssl test tk +xml diff --git a/dev-lang/rust-bin/Manifest b/dev-lang/rust-bin/Manifest index 2583768e0a4f..69c8529bc521 100644 --- a/dev-lang/rust-bin/Manifest +++ b/dev-lang/rust-bin/Manifest @@ -161,14 +161,48 @@ DIST rust-1.62.1-x86_64-unknown-linux-gnu.tar.xz 154112528 BLAKE2B 8843b7837f380 DIST rust-1.62.1-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 51d37c6313aee4cc1a972df80e3e2b373b78198e88905f63bc81417eb1275872df6a689ad61250fd2fdae667e8c6bb2a2ff0d6b67056d11a58db516e5597dac9 SHA512 e7f1ef525306380114bb7e2dc4ef80e29e3f0bea2f4dfddda4da8681553eeda28cc7938c9dbbb08ab2446fff498c73878ceef1c26b93d5995fc7d5eb86c93599 DIST rust-1.62.1-x86_64-unknown-linux-musl.tar.xz 254113564 BLAKE2B 0f16d4054bd869d3226517349f6b1d7e6722c6c4c208b2c6cef540fefec5afb3763d821be8f436c17fdba4e35c7f2a3c7d70d7584af546b5fbd7b7e769245d1f SHA512 af99627a2e50fbb066747041fbe64c05cdf277beaade48ab3e43f8c0d78e146b6f0c729d76517d83b5be76b33c1051637d51cbaeacb65139f37244511693a7a3 DIST rust-1.62.1-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B f810303e14116ec3968d621baab776ecfcd42b4c214affd761a9f68c0062a5cd0db16a26ed499c9981b63ec12b56b580ee2335ae69a2fb8c7e1eadf0b9bd09d4 SHA512 9bde24b4db99b956f22aa9919ee962052c93e67ec03ff9f2da5651a044405369f49345796f04f08f77f2d574c0c297e9cd9bfd320ab20ec6240c8b404d2d0b8b +DIST rust-1.63.0-aarch64-unknown-linux-gnu.tar.xz 230083616 BLAKE2B 2b66b809d53cc971c9cd44435c10c4bf0faa20dcc3782b47955d0fac252c370c670f0adb59f51b6842b46277d584c5fd44b94202e57aed078480f5cb6952d815 SHA512 c9f7b885008c58f7aac0edd5b6cd0295d768215e2b26cb1f590206248d468fa78409f42f48d505080ee14e2a59dd887cfc564db5a41e91ed36d738a90961f89e +DIST rust-1.63.0-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B a323669f0587c9785c587ac0eac72915e421a61d2b5252c2dcc7f637176d5d425fc8cbcfa6ef848fd0d7acfa17cd430e4d42e8c03729c563dda59aa13e6d5c5b SHA512 be2e1eff9228576b66e0a0434e1edbb4525d0ef66743082afef1ef55565e312e63fed7274d01298128fda0c7ab63827d5aed90f50e184582781a4e10ee311de1 +DIST rust-1.63.0-aarch64-unknown-linux-musl.tar.xz 224541836 BLAKE2B b32b7886ddc5da3af0c6e394ecb167288897b2c44b0108e33aeabb3842ff563c769e635413b092a36246bbcf137d692e94c6ce66cccad34c7e728c4cf4af7bc2 SHA512 e462c8b94defc5ac5dfe923c3a6273c3d414cf576840d46a680a4f333bc34fea874c4ec4363c4e1891a6fe95087bf4a68bba7f316bfed9db6313be989afd7428 +DIST rust-1.63.0-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B ccac24e85deb6089468b763bce6cd54ec1c5ce506d10c8e84d3e8b0c9ee21946ac575a4aab5205c5a2d8328488641806a7dc1b15bd8cc48f3701630f223580f4 SHA512 9d41f34e507271e26e6ff7ce03d6a215a99971df77b246fa64b3518d70c2ec82142e96c4d0cf9641405065ec672f663316a93fe0e9183bd1e8f5af4de1ef41f1 +DIST rust-1.63.0-arm-unknown-linux-gnueabi.tar.xz 203850320 BLAKE2B 2a0f4e195d6e7ca66119b2bd45d58127b6aa305c77349c06d8ee109066ede59288ce067e222fca12f1414224a74ec9f33e7de1a18bf7b1e91e216e852e574a90 SHA512 d55ee6201bc4c3cd698396f08d4247b7578778b3c82da8ef496512e0f8cb1758009af6286230a1b26849b5f27101a242d7e04851ae41a41f7547589103f5c0ce +DIST rust-1.63.0-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B 26bdf2e38262d3e4b23c72f86325dd1275c08b5ccccd99c82b91a05cf800e3e6a2500bdc6d89a3582311292f6ba1ddd65b8a081b608c83adcb39faa708f8376d SHA512 0f1213cf05bbbf659103c7178f20780fa3ef807cd03417edcb901d6560411c3f96bfeeb0dcf555460675573cfb9d402fa3882d787015ecfbf83765ae9fc35325 +DIST rust-1.63.0-arm-unknown-linux-gnueabihf.tar.xz 204273564 BLAKE2B 4a3730dc3d1cc08c8a0a687328e19e7a78265eb81cc1a3312cc547bd4823951c28ab57ac87919aab346994a6f96ce9803f7429c6b1831e4fdb3a7f7f086a2a87 SHA512 d53bc819c7ca2e5fc116fec5a731d280ac701f19fd9a8707ee5e69fdc41544d3dce17f8cd61f9ad0b59a89409c9859634e5d91444a0361add69c36c3f47a379d +DIST rust-1.63.0-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B e71f5d6f404a408774f6246fe72596c59255ba1f1b52c4ef6fdef08da63178fefa46966370a1f4e04b95a68b119f166e01d2d2d347f9e4517908e87146a56d83 SHA512 c70a350de8d378ed8dcec42d697143e4cce18dfd176b4fbcea25e7c608ff3db51642ab1be3b13d277d7eeec5a0262aaf9c38527f7f14c02fc64f760d6438efb2 +DIST rust-1.63.0-armv7-unknown-linux-gnueabihf.tar.xz 209545116 BLAKE2B 2cb5610fc665f50505fa8b0d18b88cf79abca6a6b8503d46f76fc58b74e7d58e3b7aa1a790e7ba555b250d0f0bd48acd176ff1cf463eb7f37b34780b04b2c838 SHA512 e809ac29a9b24c82f7d950ebbad5d3c01dafba9554c55716a28e728b0218c6f8b3b7f1e31c277be3946da1a0e4228717d7a1a63db66716c19a79b2c5ac11fb92 +DIST rust-1.63.0-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B c6f1e717a7cb746dfe3d9b109d77bdf7cd918c2d60491d83b2d7cebf412140b9cae257df850587c16a7b1c8faa16ef029f628c6c2c7e5b6f1d088e1a03c33899 SHA512 c832521179dd7b7cda0e979bfbfe491d3a255cb47f03fe113ac1290540fdc7134ea08a2815c9ec422919579fff3db995aa0e7f72249e2d00d4790a58f1142680 +DIST rust-1.63.0-i686-unknown-linux-gnu.tar.xz 224058112 BLAKE2B 6a83fa3bd0fe2a7f0cdbf8b8c7a6662235f9690177c9ed06af7be969b08959d2c58a8689247cd61a9d9ff765e6946f2bb12b9d278a0701d4764bdf8d141dd4cf SHA512 8441267b1fb1cec3c9a2e226f6f6c5d66cdf9fa2026df272374432c501aefb515b8d21266ddee5297f8570de72c55fa5bf485c5a9790ad7687e5ad1811c72cad +DIST rust-1.63.0-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 5c2e92bdf15c1dbfdb2715fd4b1874a270e21bedad1c84967c4bf92a2818935dfdfc48673e3b52d991ae9557378a62a5905e8f3005f1bf12f6eb93415cc47b1c SHA512 f42f5e65f76c72f7dd6bfdbc730b3c4da50d1444df2b1282334a6a3e6cb0af175536b037c6a5f1fc4000640756e57a3176315e288fe23ba56abe8a6f4c763525 +DIST rust-1.63.0-mips-unknown-linux-gnu.tar.xz 161238712 BLAKE2B a60f7b8a190fb90e123c18fafde9fbfa6e27bedc849175351ec9871ea705c2a54eae59b5597e71e20d2e63c73065717ccb56eea59ed46d12c13ae4fe8125ae5e SHA512 dc7ec2f92bdcd52af83c71b07df0f31187b8f195e9900ba0ffa3688175cdd22e81c34ef45b5e84c2cb9b47adf990de20a2c9296b46c17cc06176c19e956923cb +DIST rust-1.63.0-mips-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 7803d7c07170d1a9af4e83add8f9b42caec19f5c8af4163dd541069f8b3f86087a09e4c3447c0faba19d1c2173c2411503856254b34d7c57320be250dd5b72ab SHA512 a9e80d1417353298656b99137a20478265458c95914c9d547bb57905ac9b654127fbf6e7a4292bfe74afd0aaae20730a126910383822d0c75b2da164bf60341e +DIST rust-1.63.0-mips64-unknown-linux-gnuabi64.tar.xz 166872588 BLAKE2B 3a052d6f4196cbf55feb173e36c22cd3316abf6081d6a94dd6a7ab3a675f447471555b721e162ca15cbc485c4571b647a9257649a1d23b69b9a0ef262827b2d7 SHA512 db23d30021d6f8a5fbec50b6dac13264e3aac003ff0604185999318b47370b4476ce9e6034ab9ab5f4fba03b393898968b8c9a698f2b71bc1f58b452b030d1c4 +DIST rust-1.63.0-mips64-unknown-linux-gnuabi64.tar.xz.asc 801 BLAKE2B f30125c52883076251a22bb8a90fdd642167ebd0688ceb8e349555491824cffbc0873526b0269419fbc6421c5976aab18f5c3bbf35b997b4afc5d48b1e080c03 SHA512 d86940292aa891f7f0fc10d14b5ee386f8481448b6ed26bd8aabf21a7341c0916b08eae0e26bcd1dcc0fad1fbc0d216a767d8eba3dcc2ed47c4bb0aab107ab80 +DIST rust-1.63.0-mipsel-unknown-linux-gnu.tar.xz 165974484 BLAKE2B 4dcbcb3e6255c9266c4476e62aa9a6d31c4ba48b9a830789d9cf245002b4fec762f86fb6713507dfac8227a4e9da32347e5ce9d029d53220f8b3037e2dcf47c5 SHA512 2fb7e3bdc925abfc8efc4ee30f19bf6eb5d5afc803332059cf855eee7ba7c6a85c578701798fd1b9f9b07a4a7b091283406ca02c797fdafc9e437b0ea85de8be +DIST rust-1.63.0-mipsel-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B c42a76a7902234490f33b520494d85c5000592cb781d97c9def132fce39f3e582cfbe6c868a7dc494ce550228ee0c4195500a17489323c22f9aecc74d4915135 SHA512 62fa9ace175d1359ae61229e6618972ff1db42b8e826113af247fccd67c4f49dd4ad4d93eefa3801a20a164332404f9fa5002c75ede2b81eb277e64d1a29396a +DIST rust-1.63.0-powerpc-unknown-linux-gnu.tar.xz 184571616 BLAKE2B 452ee709ba25db4569e4ed20f88ea4a14c8b45c85803b065b5bc6e005473c02dc745ae531b8e0c7642dbe50880dd2f9d359520a3f0fc09628327613ed706dd38 SHA512 2dd3ab750044501e882442e54fc78fe73f36758458c6107df7afd55f8333c01a2e69bde181ca1bf3a1529a3a2bf616d4f69708081c494cc1781be5fd2a58df29 +DIST rust-1.63.0-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 13796a48f4ae628c2242ce4632ebdf4106899aa0713b469e4ad4457f0bad23638626bdf6de6a2f6d1d84b8408872c5a4cc97ae4fa0409458d8bec6eb43adf9a5 SHA512 813601cbe547add62345d4a9ed1a31e364310724c2bddf9f76404095b9fa1ab3c33f9480953d22136635afc8d6f7d4a9df2839f2e3d9d5f74a6594ae3d7f9537 +DIST rust-1.63.0-powerpc64-unknown-linux-gnu.tar.xz 192446060 BLAKE2B 28a6c8a94caab7d23d203e55ad1ad1b689f07ea9d4bdb0a618833b36378ea731ca85f906c8fe0de2727001471fef9b30b8f12a241d9cd257851b2b0a8a94f15b SHA512 42a39558352c1cbdf7c9e9fa1aecae160b43e1bf74ace0df844d95bd43743642be7107bbb60a574de7219da355cf64939509d4f028f32d555a90900e962df6e8 +DIST rust-1.63.0-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B ed2a82a7a04f1d831480f7aa32ef8f0524424aec50ae8f75d2c186937b1c3e3bd953306dafa026a492b1792043ccace535f26b4911691d58b27d799585d2f024 SHA512 c740ad1bd86074b27c233167e2a66b20a9e79d2505e6e00b38a1f8053f136218dc21618968c4d709c8c2936311449187ce15d16d078832b7107303b56ba9c55e +DIST rust-1.63.0-powerpc64le-unknown-linux-gnu.tar.xz 202613736 BLAKE2B eb0fcc0c0a615dc1d48591e9d34bdfcdac5adbe2b5953faa8e11b0147a09a56fac3161e2c0f5c4c0d399a3a9431effdc84b938f00469f262c24f06d1c0489a08 SHA512 9c9927b9c22d8561a9b45b237e64d3afc1725cace695fa6623db65731e9ec2cd56e105949d866f5feb62c6ec717852461ef0153fc9d028fbc5323ef231eba69e +DIST rust-1.63.0-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B efdb321cae9af3c3ff8854b52281211c80833f30785004c70df79bb73b094a21fd63687372dd1cb192a2547fcb7d8bbc7c4ae27851695aecce71e085bad34396 SHA512 c876eedce00ef013d2af89218a6ab5108d9ab5e3a60d7afc5afacd39e5a017ab99ef12a0ff954e8861c42a3ff9bc9030077bd9801f575620e015590a82ea0f25 +DIST rust-1.63.0-riscv64gc-unknown-linux-gnu.tar.xz 195670272 BLAKE2B 487ce5fd3dfa59914264953792d8f44433d88d9ca29bb647effda24e170a55470cca35fe653f6706f78e6b0c70265d0735585b17d7108bd62b71cd84e7f1312a SHA512 b6da4a3651b205f819e002157d196b014e4ad9923f854271dd6b306d8c69dc3d619b9a3e51c56ea2d2402566fac775d42719a67952c8f3e93933594aadc67831 +DIST rust-1.63.0-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 822415e792104724494f29dee1a9730fc0328e00ee613c163d3cc8298fd3f85465d5c31d2c94b479271dde0721690c78056ec3828e14087a5c5b82c0dee0d4b8 SHA512 9b2d8239708baefb075470aeb37d5b62fb934d4074c745d89467d4f9efb91c10b7c999b726c4edef720b58e95e525cc72fa20d4cfbe6d0ba1352f5fca5d1e195 +DIST rust-1.63.0-s390x-unknown-linux-gnu.tar.xz 219060812 BLAKE2B 8087db6ae903fed440bddfe4a07fee35292b16fdb847155cf584dc1a7adbeb4a8f55bd17afeb015dba53c29a05bfbd3f5373b2e30018e4a56d400fdbd1cedc3f SHA512 11bed7ebd8bf977aa34ef9f9dabee8428baede670885b4f268335fe87b81e41b426e94ca60db218e82be2e6e73ec33123c77922bfee7ae9373bfd9227417214c +DIST rust-1.63.0-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 3f656cd12927155b4debb68e821d9db3fa880ee49c557246c34390c44ab6e2c456d8b29b1c15c933de868d0884a83b2b419501af06d4244830d59032d5ce82a5 SHA512 521f95024624200c67d556c533d307468007c01a7de37cbd65d4af949275933cfee51334338838f5e4a9136a363b65bec47bcf399ebacff7f5558ae59c1d006c +DIST rust-1.63.0-x86_64-unknown-linux-gnu.tar.xz 155435832 BLAKE2B d5427a7380a214a7b1ad2f075b162f6f49056a96a3a1153df794025d9a1456083dd3e7ab9eb3c71982982701cc1f8a93405640f8b622fde60819ee022413446f SHA512 9e538980b6a42d14b7ec08bd1a3ddecfea24e5d3068226edf212486bb5a20bfcac22f1f917a06536f6f26dcffedd65c7049870bc3d70b9c972075bcbe58eb8d9 +DIST rust-1.63.0-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 0b4465f1afbf2f5f9135cf722632ffd7df9ef4e92c65e9ef6d4aede5b1ff392973949a6737e88685033ee571dfefe9b099d477480d7aaec2a329926a87a6f5b2 SHA512 0c8d339204a23000cdebfaee7faaa576673bd8d98111ea187f5e19f03f7231f3bbec8158c5b04d8d903877f1addeebc9f4fdc6b1de0fc0ad2995742987eafb1c +DIST rust-1.63.0-x86_64-unknown-linux-musl.tar.xz 254705824 BLAKE2B 8d35bbc3ffa53b52d7d7aacc51b90283d9703a40d5623c184a79195799aa3768a34942e235e2002a0b72d76110c0d66fb5ea403f9d0c81021ead52cea2a51e40 SHA512 995530319a14bd6674d5be145e777b7fd482953e62ecf672a29e2c5b4bf567e010d7db4d5c6acef1603d79135e74f21955d9fc13ed7e1c33279d05aae39bdfec +DIST rust-1.63.0-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 2681d77ffb4c40305ff532f975a9e31ea72a50fa2a25661ecd721a50f081a4ab3a659b2a06500540dbf21357af098add2a4a4dec63f50d5b3ed4c041fe4b49dd SHA512 012b2cb560e0d2514eb288960e6a3703f9be9a7e611b915f07f1150645b8527fe653d3fbb795ad62c5e431cb4ca175a915710913eb2b9f2912c188d17baa0d14 DIST rust-src-1.59.0.tar.xz 2861676 BLAKE2B 83c7c9f222cdc5de787243154aec1b62914badbd65c8defd7c0e48dad9018806d7befb0e419204c5a782d83e386609071c11a6e445df80ab593917b58f7712e5 SHA512 006cb2b29e0db69f4f241a6b44b1491f840503d953919722da5924eba4fbc13d09f8f20d35614e4069bc745facecfb20ef771ddc95560c94b5745b66047c5a0e DIST rust-src-1.60.0.tar.xz 2898184 BLAKE2B 5810f14110398bc41342ec620a77da34c805b8c2bfb6c45c869c8d41a464b83825936a596f286c9c3f69a7453afd2542eb2971b768c923afdd24444a62359061 SHA512 42a45093bdcfe6ca5fde7701cd17e15438c8f064ac87c5606527b2196258a9285dbd195137ad41c43d77afade34e30061ad36ce58db783fa61037ec146f0e501 DIST rust-src-1.61.0.tar.xz 2353184 BLAKE2B 6f5671173b89eddc4e1a36e58e5937b832ab6952c2601b16427c614c5e7bc7ab60b28d54f33e9c2578ce2d5b3db641097ddbf912ba0145c4f77a1d14115ed703 SHA512 8eb1462896cfd0c731de4f4be6fe68127bb4faa443c53289a34b92ff7778ee8711281cfe29b2c1367c0b3fdb9f6b7dba21dfbd40b968aebaaa51eb219357b4a3 DIST rust-src-1.62.0.tar.xz 2380276 BLAKE2B a7425a18fa52157f4a594e4ba804034c7fa9e6fae33ccfa3c4c2125386cfadf0ea1673bd1c41f8d2f712b06ea45f8dd2ca748d45e009dfd06101a05228a27440 SHA512 4795c7d25c28ce875b418e836c004152d9094cd637ef808900dd1afd3f96dbc4435a6a4e042bdf9843271a2195b961f484a21299bc2f60f3f5f1cc3b676c39bf DIST rust-src-1.62.1.tar.xz 2381560 BLAKE2B 61bccb515428605ad9f1b4905e04b9e33034379038d8173a95aeb37cce0f3a38d8c5ffe47ddc515a772373f1d864c53421cee931569d8a31feed402095d35129 SHA512 bb566f5457ce949bf5b13a69892e0d4bef7e307d4e5840c1811a243bb35621c60a1d4eac558f3a0e4a76a7a90e4463bec1703758984965eaecb67cf245172b06 +DIST rust-src-1.63.0.tar.xz 2407504 BLAKE2B ddb866da32a56fe3ae4c4b918cb3272283572d59f57592f0af3a49fcd6f7783f2e2df14dd371bcb53998e62b74d39a207a3438afeefd8ab9f837273dc0f699c9 SHA512 9fcde63bbfe07bfdc938f7c5bfa7ab602bf46300b62adef7b8a40db11d3134bf3c354238a1969a98360fde64cd58b64f119f0f4b5329fa3a58a6af23d823032c EBUILD rust-bin-1.59.0.ebuild 6408 BLAKE2B 6e90ac8111f916b0314508392292a4ceb92ff55add41d27dfb6a2338c7baa8f19a4f5626673ad1780078f43357d1654950df2b23b998dc117dbaf49f168be6d1 SHA512 4fbe98143c4ee4131505ee5b4d8a5a463919d9e172931798b540bd79d6203b550d09473df80128844b6cdb6f8fd2b293ecc5f8b0c7634e5723b2d54a9980140a EBUILD rust-bin-1.60.0.ebuild 6441 BLAKE2B 20e13211584ff99a3f26f146e9d08dba49534a3ad9700280f9240dbe9ab6534e01e2f00ec4ff8c692fd24608be7e39f63886dfade88251ab659e888f10581718 SHA512 312fb2999e1e0ae51c0c3b17965438af8e7002ef6901e9245471aa5c8387f55a09402231f0ba258b359bac5245e6cc287a0bd3e145f8773797ea442af583b45b EBUILD rust-bin-1.61.0.ebuild 6636 BLAKE2B ec6cb60a496aa25093e64e1bbf8987dde73979cf450772962d5ea346dc338ded919acf3a75c273ac468240b248877c157f1f434490b89afffc1cb2c1e88764d9 SHA512 9b828c3d6873e315cf105c5a7d97a6185ebbe3889f2cd410aec3d47d80e4ff018600d970d4421321faddcf713bbc89bca8c110b16e4687b10a1fde89031560f3 EBUILD rust-bin-1.62.0.ebuild 6633 BLAKE2B 81c2d3ba738cd054efdf4362f61905726a99a3521a2188918694987999fb32bc129538b03734826bfa33f9545c118844d49a1ce2404bc77c9a54a774f321026d SHA512 15d5ef538ae16bb10b6fa323e6b8ad334c5cd67d00e5f2cde5ae7f9e7a2a268facbf609fca9b544f3fde38b68df7b1fc15eeeab4178433cb016ee0ec68d03282 EBUILD rust-bin-1.62.1.ebuild 6620 BLAKE2B d8b27d5e314f42b0af2aa17e24567d1b51250b8b42415f8f6649a2dfcfd64606fa32ce8c66a4e5cbce5de5919af45f2b39950902c50d8ac12e368bc74faa1ee8 SHA512 7eaa162b689e437f5abb541c2be57c9d69cab493071b05f30dfb7072c5287be0f3b6cb86ace1e7ce44707ad20cdac59251388ffcd6f01bdadb86df8cce56d58c +EBUILD rust-bin-1.63.0.ebuild 6620 BLAKE2B c250eb4e7bdcf3cb365dd58e5f1f39a87b59b43b369812aeccdef7b0a5d1dcfe664bf245d1433158680f7caa045456ad5cde8eeee3dbbf6eb8af800d47753771 SHA512 6e1f11d66ccd7e4fb4fb4da06d17277847a203fd94f3d01715a60e3b9700bb959204de7aa425e50809eed23ce0c0b36a78008c77edffe279eeeec1b0d42e9785 MISC metadata.xml 591 BLAKE2B 6f9d494e400400b8b957eaa3c242b5f096808cc8372360eac0d9ae4bffcd2aa75b35bad4acc7248543b08466d8616b0145ae8a9b1534db1ad5ee838f07f9dc51 SHA512 9f59ea60d8ec9b748eac0789fa6750f32e4867e1c2cbe106ce270acdb7306d40fe8754315f8c65a924af43d5b3e88f4f50dec6361299de80ef1a25665aa03182 diff --git a/dev-lang/rust-bin/rust-bin-1.63.0.ebuild b/dev-lang/rust-bin/rust-bin-1.63.0.ebuild new file mode 100644 index 000000000000..109ea87b6a37 --- /dev/null +++ b/dev-lang/rust-bin/rust-bin-1.63.0.ebuild @@ -0,0 +1,221 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal + +MY_P="rust-${PV}" +# curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src" +MY_SRC_URI="${RUST_TOOLCHAIN_BASEURL%/}/2022-08-11/rust-src-${PV}.tar.xz" +GENTOO_BIN_BASEURI="https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}" # omit leading slash + +DESCRIPTION="Systems programming language from Mozilla" +HOMEPAGE="https://www.rust-lang.org/" +SRC_URI="$(rust_all_arch_uris ${MY_P}) + rust-src? ( ${MY_SRC_URI} ) +" +#sparc? ( ${GENTOO_BIN_BASEURI}/${MY_P}-sparc64-unknown-linux-gnu.tar.xz ) + +LICENSE="|| ( MIT Apache-2.0 ) BSD-1 BSD-2 BSD-4 UoI-NCSA" +SLOT="stable" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~s390 ~x86" +IUSE="clippy cpu_flags_x86_sse2 doc prefix rls rust-src rustfmt" + +DEPEND="" + +RDEPEND=" + >=app-eselect/eselect-rust-20190311 + sys-apps/lsb-release +" + +BDEPEND=" + prefix? ( dev-util/patchelf ) + verify-sig? ( sec-keys/openpgp-keys-rust ) +" + +REQUIRED_USE="x86? ( cpu_flags_x86_sse2 )" + +QA_PREBUILT=" + opt/${P}/bin/.* + opt/${P}/lib/.*.so + opt/${P}/libexec/.* + opt/${P}/lib/rustlib/.*/bin/.* + opt/${P}/lib/rustlib/.*/lib/.* +" + +# An rmeta file is custom binary format that contains the metadata for the crate. +# rmeta files do not support linking, since they do not contain compiled object files. +# so we can safely silence the warning for this QA check. +QA_EXECSTACK="opt/${P}/lib/rustlib/*/lib*.rlib:lib.rmeta" + +VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}/usr/share/openpgp-keys/rust.asc" + +pkg_pretend() { + if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then + die "${CHOST} is not supported by upstream Rust. You must use a hard float version." + fi +} + +src_unpack() { + # sadly rust-src tarball does not have corresponding .asc file + # so do partial verification + if use verify-sig; then + for f in ${A}; do + if [[ -f ${DISTDIR}/${f}.asc ]]; then + verify-sig_verify_detached "${DISTDIR}/${f}" "${DISTDIR}/${f}.asc" + fi + done + fi + + default_src_unpack + + mv "${WORKDIR}/${MY_P}-$(rust_abi)" "${S}" || die +} + +patchelf_for_bin() { + local filetype=$(file -b ${1}) + if [[ ${filetype} == *ELF*interpreter* ]]; then + einfo "${1}'s interpreter changed" + patchelf ${1} --set-interpreter ${2} || die + elif [[ ${filetype} == *script* ]]; then + hprefixify ${1} + fi +} + +multilib_src_install() { + if multilib_is_native_abi; then + + # start native abi install + pushd "${S}" >/dev/null || die + local analysis std + analysis="$(grep 'analysis' ./components)" + std="$(grep 'std' ./components)" + local components="rustc,cargo,${std}" + use doc && components="${components},rust-docs" + use clippy && components="${components},clippy-preview" + use rls && components="${components},rls-preview,${analysis}" + use rustfmt && components="${components},rustfmt-preview" + # Rust component 'rust-src' is extracted from separate archive + if use rust-src; then + einfo "Combining rust and rust-src installers" + mv -v "${WORKDIR}/rust-src-${PV}/rust-src" "${S}" || die + echo rust-src >> ./components || die + components="${components},rust-src" + fi + ./install.sh \ + --components="${components}" \ + --disable-verify \ + --prefix="${ED}/opt/${P}" \ + --mandir="${ED}/opt/${P}/man" \ + --disable-ldconfig \ + || die + + if use prefix; then + local interpreter=$(patchelf --print-interpreter ${EPREFIX}/bin/bash) + ebegin "Changing interpreter to ${interpreter} for Gentoo prefix at ${ED}/opt/${P}/bin" + find "${ED}/opt/${P}/bin" -type f -print0 | \ + while IFS= read -r -d '' filename; do + patchelf_for_bin ${filename} ${interpreter} \; || die + done + eend $? + fi + + local symlinks=( + cargo + rustc + rustdoc + rust-gdb + rust-gdbgui + rust-lldb + ) + + use clippy && symlinks+=( clippy-driver cargo-clippy ) + use rls && symlinks+=( rls ) + use rustfmt && symlinks+=( rustfmt cargo-fmt ) + + einfo "installing eselect-rust symlinks and paths" + local i + for i in "${symlinks[@]}"; do + # we need realpath on /usr/bin/* symlink return version-appended binary path. + # so /usr/bin/rustc should point to /opt/rust-bin-<ver>/bin/rustc-<ver> + local ver_i="${i}-bin-${PV}" + ln -v "${ED}/opt/${P}/bin/${i}" "${ED}/opt/${P}/bin/${ver_i}" + dosym "../../opt/${P}/bin/${ver_i}" "/usr/bin/${ver_i}" + done + + # symlinks to switch components to active rust in eselect + dosym "../../../opt/${P}/lib" "/usr/lib/rust/lib-bin-${PV}" + dosym "../../../opt/${P}/man" "/usr/lib/rust/man-bin-${PV}" + dosym "../../opt/${P}/lib/rustlib" "/usr/lib/rustlib-bin-${PV}" + dosym "../../../opt/${P}/share/doc/rust" "/usr/share/doc/${P}" + + # musl logic can be improved a bit, but fine as is for now + cat <<-_EOF_ > "${T}/50${P}" + LDPATH="${EPREFIX}/usr/lib/rust/lib" + MANPATH="${EPREFIX}/usr/lib/rust/man" + $(use amd64 && usex elibc_musl 'CARGO_TARGET_X86_64_UNKNOWN_LINUX_MUSL_RUSTFLAGS="-C target-feature=-crt-static"' '') + $(use arm64 && usex elibc_musl 'CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_RUSTFLAGS="-C target-feature=-crt-static"' '') + _EOF_ + doenvd "${T}/50${P}" + + # note: eselect-rust adds EROOT to all paths below + cat <<-_EOF_ > "${T}/provider-${P}" + /usr/bin/cargo + /usr/bin/rustdoc + /usr/bin/rust-gdb + /usr/bin/rust-gdbgui + /usr/bin/rust-lldb + /usr/lib/rustlib + /usr/lib/rust/lib + /usr/lib/rust/man + /usr/share/doc/rust + _EOF_ + + if use clippy; then + echo /usr/bin/clippy-driver >> "${T}/provider-${P}" + echo /usr/bin/cargo-clippy >> "${T}/provider-${P}" + fi + if use rls; then + echo /usr/bin/rls >> "${T}/provider-${P}" + fi + if use rustfmt; then + echo /usr/bin/rustfmt >> "${T}/provider-${P}" + echo /usr/bin/cargo-fmt >> "${T}/provider-${P}" + fi + + insinto /etc/env.d/rust + doins "${T}/provider-${P}" + popd >/dev/null || die + #end native abi install + + else + local rust_target + rust_target="$(rust_abi $(get_abi_CHOST ${v##*.}))" + dodir "/opt/${P}/lib/rustlib" + cp -vr "${WORKDIR}/rust-${PV}-${rust_target}/rust-std-${rust_target}/lib/rustlib/${rust_target}"\ + "${ED}/opt/${P}/lib/rustlib" || die + fi + + # BUG: installs x86_64 binary on other arches + rm -f "${ED}/opt/${P}/lib/rustlib/"*/bin/rust-llvm-dwp || die +} + +pkg_postinst() { + eselect rust update + + elog "Rust installs a helper script for calling GDB now," + elog "for your convenience it is installed under /usr/bin/rust-gdb-bin-${PV}." + + if has_version app-editors/emacs; then + elog "install app-emacs/rust-mode to get emacs support for rust." + fi + + if has_version app-editors/gvim || has_version app-editors/vim; then + elog "install app-vim/rust-vim to get vim support for rust." + fi +} + +pkg_postrm() { + eselect rust cleanup +} diff --git a/dev-lang/rust/Manifest b/dev-lang/rust/Manifest index b6d357da21b5..a4e3fe518606 100644 --- a/dev-lang/rust/Manifest +++ b/dev-lang/rust/Manifest @@ -4,6 +4,7 @@ AUX 1.61.0-gentoo-musl-target-specs.patch 6319 BLAKE2B e29e1e5642707948fb9c7ecc5 AUX 1.61.0-llvm_addrspacecast.patch 2677 BLAKE2B c766eb78a21cdb840a74814118e8ca3076ed85f09ef73115472972766d7a288ed3a20a5c2bcb25e6348a61c37524285e7cacd8b73f3dbf29a62867d0001a0043 SHA512 25e3462755507ae11b1cf937765a4e07ae6bdbbadf519c3d2636c855d0204a828bcf7632cf4dc05ecf28c86aa38ce714f25fc7f8875752738a49adef41189b4f AUX 1.61.0-llvm_selectInterleaveCount.patch 2915 BLAKE2B 65bc017d45bcdce2834d040da3e0aa86d9062458a9e1838604c9a8bc567c5cf2a6a61a72658c200c82af794e7f1f749a7b046d917df7879fbd3752be78f0342a SHA512 101ad16196b6c02ce8b7818b9188e2f43b870c4ca44294be533416f16e98c05c3426ed2249c43963a7aa32cf344e2d1c5da5d7a5d520c4d6c014ab2696f55302 AUX 1.61.0-miri-cow.patch 5183 BLAKE2B 090557b73e6aa4e078ce99ad8689c52ce755a4ea0b10963cf8a675ef1d893a537a7217ec2ec857c5d1e407b2653824c32cc55600a89a5ebcbe2aba8ea83966f3 SHA512 c3bee73084e5515304dba4fea4bdc36ef4ad44db6c3be5c3d5b2f3f22ab9f79f6d4cdf6b98c8b3cc362901caf6631f646337c061e43efcebd4341d5ab27f169a +AUX 1.62.1-musl-dynamic-linking.patch 897 BLAKE2B cc9805c648754366a49270f12a1a6036bc7059ca09e2524c2836f7af2f221b448b971e43670c2cf0aa80cd930a51ea11e4e3c637f3d80ec46333388cd64c3b50 SHA512 71bd459a9f4daaeb215ba13005eee85502bc5a1d60794f01765990fd183819513c3c8d5c5efe27c9d7e1d15af765492fef8ba6b20ea7ebd1a2228104886928f8 DIST rust-1.58.1-aarch64-unknown-linux-gnu.tar.xz 229585460 BLAKE2B 301b201cb40249005a1a8adf34ffdb0bacd22e1d919a24dec9bb8331c2243de1b7cc312c91a87fc9e11091cd9ad517347ff09143000d9de051b3c9a6e0780f9d SHA512 04e2cf2116e16fa293c7f2d29816012520b41df44b54657e289e7affbb91af5a5001d140a49aab1286451b93e93b0171edea77f61f01085136d1be1a3baac4a2 DIST rust-1.58.1-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 6da55597fddd643350c73f28a15dcfa935529c0878a199819b9bad6f3ea2542f9021e24bc1a6c8724ff14d36007c00f8906dd1aeaff33b0a99ef6982e8f711b3 SHA512 57debe0afe52c3af3eb53e4efe70ba194ddad449d9952174f8a775531b83f8ab0d66462e7bdd06712547e8f675d330a151d20d183daefe1dda2f0e3805695714 DIST rust-1.58.1-aarch64-unknown-linux-musl.tar.xz 226068748 BLAKE2B 7f9680b0ad3f9a8349f3032f63d23b6d96ab43245d3025d0e4307a29b4353fd2408e7de572a10a77b261634b8fd4e9e6054ba9955b2440b608fdad2c88c12bfa SHA512 6400221a8ae04aea91f9df0f8d82585bcd380f22e80fe813eaa1cadbf592c5207665ad008d938b399e34fc2cb0485b16f993f94d431c290a69a696a4faf89e05 @@ -132,6 +133,38 @@ DIST rust-1.61.0-x86_64-unknown-linux-gnu.tar.xz 157592468 BLAKE2B 0877c0794280a DIST rust-1.61.0-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 5296a8df210a4cf2fd7dffcba1ae6bd8cda9e408ff4c55d997199c2890b9faab9e8d6d22a3c0961786bb80231836047929621edf9043d474b352fe28bd9192e8 SHA512 cb97e84cd793aa8676c41297d8da14125855c008815e65d8191868eb88241ccb408c6f9ae85b7ba8de1a02ea8923f5e042f4fea662fa593e5ec03505b41ee52d DIST rust-1.61.0-x86_64-unknown-linux-musl.tar.xz 259724324 BLAKE2B d005bd2794d196136c42842fbb7bc64d827898b5713f768cf0e88be5a40e3906139027ee58571cfccd8d2c864f672d1986da28c72f0d1c4a7f78d18efe14385e SHA512 96d09ac3a48bb2956dd6bf219e605c68327a94d09e72290ee74781c4886dce93b217163fb08dac0ce69bfaa2e3ab8cccd4a26d10b9df4c3162822a38e355bdb6 DIST rust-1.61.0-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B e1c8061c80cd5445f7df9c44044ccb47731704b93d4e86cf95bd3b1b08a3c3cdb61e21349088cd0127632c63a0f7c22f0fa209809450dd81607bf7353d61a7b4 SHA512 587f487a3c8159a4b102f15a484a0ffa4f32c2abd2fb4ca078c27d36f6ff365c95015a99494e852631e9f92bfc9f33a0266c5f62b7edfce823c34993ff6a836b +DIST rust-1.62.0-aarch64-unknown-linux-gnu.tar.xz 228388556 BLAKE2B 2b2d8428c97bfeb64bd999670e4ef2b6c4732cdfd7cac0cf37c5adb8ee83fd467e1e94bcb6a9edf28838fd052d19a7cbc273175c8360696bbec4523e1ff069a6 SHA512 10964fe48ee59ef2e44e9d0a0daa750cd06cc52198664b544166a846667366e7f0000129612f4d68e1530dab28987f62ccacd82f6d5663d0091cf7a451469219 +DIST rust-1.62.0-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 6cf85d71d188bc931cbb21dac1387fa9fb8b45bcf0984bfd5af1a3f1ac581b74e37df337138b05b2d74ed1572d6e859418c33c2fe4bb72f5a3b15cb6302060d4 SHA512 452610627d8d01474ed38b7d3ff7c3c0174cc5b3468cbd0f274b6124ff6497dcae6f0abb6b9688f64be89c524c8fe18aaf5fd56dcd2530df6c247688cac1a230 +DIST rust-1.62.0-aarch64-unknown-linux-musl.tar.xz 223168712 BLAKE2B 9007a612ed5ec279c346abaeb4213a71d3acae9e5b1934380c9959e74db8b196b59f1197d1714a076040ff68f2b4f0e4937feb226cfaa0bdd272838d67eb07cb SHA512 253ba647102cb5599cfbfbfaf5f77ab2389e4bc77bce6cfd8aba037f6bd349081965d505fc30e9538df9353e923e66fa451ab73076d7224703cab1e24a81cf1f +DIST rust-1.62.0-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 54d54528fed34d0325d50a44ea732c99268d0acd2d78fe778dee369e18e9d7f6a8164617715a8c73aae59d2e856ff437343087542d2eeba9e613cd0418e9cf43 SHA512 79a049aad9cf0d50455747bbd2809611ca9d8eb2890c4a0dda71b64842c75cc4503f9f308d6f418e0f207d5cea04d21b352d45c1774a24b9270071d232dfb1d6 +DIST rust-1.62.0-arm-unknown-linux-gnueabi.tar.xz 203832692 BLAKE2B 964278ec2d9375d864cd03f7ec4fae1ca89fceebad51ccc2a017fbdf5ed354bd599d8c3eaf9eb9e86870f3d4b7fae8bb9011ae630742b3cc9e6ed38e14e8eae4 SHA512 d388e752fe7fa67c91719858be9ffc872c2b8fa45f6d63ae18298a79bc242e640784722d82461629bd0f07ce56a7dd850376ca9882bf0a084a5a19b01e5d59f3 +DIST rust-1.62.0-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B 1f24c48e0648f80d7107db921917372bd51ff4b630bd36830d5bb76386b486776311c67854bd4d6366e820003b89ba1a4c8eecbe001f2221c1063661c71ab513 SHA512 f134e874d59bc7979e821f881098f9d91eb81a1c5c68db80d738def722273ecf4957d842c3f0ee9f9b415448477bcd0b022624cea95f99850bd2267dc545423f +DIST rust-1.62.0-arm-unknown-linux-gnueabihf.tar.xz 203946052 BLAKE2B b0e2a8a0068dc758d772f3dbc8003a57fdb43ead64e30bdf338c60b195bb2f78ef7e7a6df6dd2f02f13f47b9e913ab2fc010ce9fc6d39d5014709a71886e7eb6 SHA512 515d16b3ec5e8ec4af24c6baaf4e5443774c2140e5379019f29ce8a63eb1fd908408f42092e0fc0c3dd5e62ac7d43357af13fd74678cd2635451a2d775934386 +DIST rust-1.62.0-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 661439263a89d2206fbb7c3e00ac42e5975403670953df6be12dbf10e624a3bce0a16a846084aa621284e1d2dbb997af19b0f45808a2ddf7bb65af306a1745ba SHA512 bade26ccb646cc16822ae3235c00d048373f6c38eea79af128e3f299e8a69086fd254b4cd7c602c653d6573232594a27c7f8eb915797b8f1afbf56db3efb5008 +DIST rust-1.62.0-armv7-unknown-linux-gnueabihf.tar.xz 209318492 BLAKE2B 959488e4a957e19e5fe44e9b2b83406e135d7598cf4fa9db3b132c80cc40a54a73dee3c0b3db6f2f9299adf1b2d80fe453d1f0dab73fe46cacd5fa2ebf45b3ac SHA512 2c447c39f22f1f11f1e58d6adfea440a7d0bb91ffbb60df555b4e3eb41379b586f531a31c3ef86bb5e7a5b46889071f509157dc031fa174d93942d21dd241180 +DIST rust-1.62.0-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B a1e12a459d62fccd35bbc34d043f8a7512dfe3edb6563f02b84bfdd1e4cdf9c16570302644d71dc208dfe9782f48d4310a13b748d22571d1d43dcf7b61b2819a SHA512 82d2d1eb7ee0f8ba0bfaf93cd2ef0899973f535080af960a2b0f54049285df43e758a9bbe2f0e36e64e85bd530e4511e8ed828ce046c82b74a252b92e7dd42db +DIST rust-1.62.0-i686-unknown-linux-gnu.tar.xz 223720860 BLAKE2B 117364630b38f4a97f9b7183ca7e9f30836ffd0f73c4e3ce2af97ad3c837edc7fa247afba70858009b5ba34bcb7adc87f29b8c87f03f79d060d9bab68b0625ba SHA512 99a87fef7870ee3478ac2faf1ebaec9fde28737ddc2423ec3da4173051f542e24b5666b0e276b3fdd2f02259f16bd119bf79515d057c63da2f6659c0e7ea2fd3 +DIST rust-1.62.0-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B b9b4289aa38ad09d7f5098665a490dfa934676c37385f966d10c978f5320e374976617fb31a5e835661a81edab1ff244c74d8f8f5748954817db8171ed251b0d SHA512 9c44413bf71c416ad08289b4fa0223cb2a5299609ea5c94aff4f0bf7e793a9794155ee0c12a9f19c1c6e20112eb642f22be357d287adcea4e53e0285214c9661 +DIST rust-1.62.0-mips-unknown-linux-gnu.tar.xz 161572400 BLAKE2B b1f4b797319574b4e7cfb0d591988444238f3a735466e336b4c13e3af6754d18962f6f282011147c35ea48df375651d4cad3c368042073ff4da35c9ea6ab4855 SHA512 8c3cbb699f1a821889b70c56653380ad2a6d42d2ed444610cad5971230f3cbe5b7e71f1775f21788f0f54dad2f9c2c7eaa81ecde1a319d98ffcdb3701d6ef144 +DIST rust-1.62.0-mips-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B b68152d3a6221cb57d03826055477be0701c6520228ef2c67cf856a4d5bee5854ecc7dfe3e062121ba5d1e82be0eda0691e0d133ba5d644fed78fbf328021a9f SHA512 eedc2ba881ae0e2d709c8f2cb92ad360c091953b48bf77ce5eb1c93e296f0d532e29f9613d21327e8ca388cc5db7d26a8e612300bb3f94195db08d1d40f15909 +DIST rust-1.62.0-mips64-unknown-linux-gnuabi64.tar.xz 166210748 BLAKE2B d3a612e44132db49ab41eaf822a472f11b24b250ad1c5ca61a85b161d0a892d392d9a4789b42b4f35968887895e964ffbb5dfa69a8205b2ee94baf02cb2ef311 SHA512 f3ea74fad41c197c8af69d65ff6024832ddfeb3c7fd4913b35219b1954fc7b6d3ebc345686043ee3250c17624e133b6c8680272b5b73c38dce1d6c39b763b002 +DIST rust-1.62.0-mips64-unknown-linux-gnuabi64.tar.xz.asc 801 BLAKE2B 15806c5684651c2920692d36c733ad8b8a6b8d39e901889457988205e04dd425083bf119053040b73ddba65a44d9330db021a85094d2c84e60c7cd1724d95116 SHA512 46f83dc667361cf4bd10103b1aa990796c1a45ee1af02c142f068fee7aa235c9d982189757184378b2230940134b1462116c09a3c0c043810e077fcf33bac316 +DIST rust-1.62.0-mipsel-unknown-linux-gnu.tar.xz 165275936 BLAKE2B a875ff4675559f9a4b7ff87c271dc4f51112a68c06677b78bbd97f7b4af8f69c75407ef711a9d700ddbf9d85863e24c2f3e27956181bbe00e4afd83220290998 SHA512 9e489cb27b9b8f00e9fd2210b3bf5c1e60ddc83c5fe3d9a381fc4469badda89c02948554d70710d8438333d6629c24282a8a9855241e46ded9c6cf368dce1c2e +DIST rust-1.62.0-mipsel-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 63b7d7487a7dd561a95a175584b798fea1b4157e59b660ec2063724e6ef4ceb7455a1912fb73a88c9315de0d80e6e622ef5c81258b670833e15c421cc3bbc562 SHA512 83420778147112aec58ad81f39f61a13fef97dbae6ff927c55a360588cab56cb58c48c31d19ed6b3b77d73277b044559db6184224d4e4d5bd5371e4cd3f701c2 +DIST rust-1.62.0-powerpc-unknown-linux-gnu.tar.xz 183062288 BLAKE2B c987b07862687203f716494cf5dde444d150628ae021f7a0ed990b47c892b7c247a6f8e790a2a88d49c3abcfe6236b18bbebaf76e0f2720a8c318b8f8e3e5a01 SHA512 d0db86e475fadf2535bc6955abb7b6e397553ad6843ddd369e15c9c35800866f27dcd0515a898a65f7ca868672cf458114320769cd14db258a279cfd3de3c57b +DIST rust-1.62.0-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 7398231bfc5624f6e7ef8af55405b861fc06fbfbca9159b9c60a1ab27a5bee6551d228958e6f56abfb598c6f24f53d35f510e863176d03639c47703bd8064c7c SHA512 8713ef73a1a9f30f246dc61086993f2f4a8d6f04595401b312c43fc97f667b44126e4b7f176001b68622d452bb74ee460d60ae2e6d44938e02c4da4fcdfc7855 +DIST rust-1.62.0-powerpc64-unknown-linux-gnu.tar.xz 191619800 BLAKE2B 276f427d0ceed4926f46081c57f6aba69e3c541d896dbbd0375da0d1f6461840e20ab8b7cbb9dec53b67dfff668e91fc8c68ea70aa3d9f333e2b21ec345a876f SHA512 039d321f90f960276ad06ccdcc2549d2c07335d61b21abcc534b33ff406e130d54dd3d79d471be9588546e30f5e1d4952e33c7890cb2d66eac80436471d3db89 +DIST rust-1.62.0-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 8ca8447d2c69ba58439ed36077882da80696427190761e5dcde99c8957fd476c73fbcc8111ebb3409c86e0a7c315dfbf7f1202204f7755a9ed87eb523bf34e38 SHA512 0f8efdf23aacf435e06854aed7f4366f5fe0f83a9a256d1026b02c2817badbd072a726bce052b0333e8cdc2907fd0e5b81a9cdef617a34e7d963d9d3c4742fb5 +DIST rust-1.62.0-powerpc64le-unknown-linux-gnu.tar.xz 201394312 BLAKE2B 60bc2fc5beee3f6d0ce695fed0c2148982b6ae3936bbf44fe0ccb97be80e9a2532f20c7234c924f500c4edc3bf82d4ca25b1f1dadc89bb29718c4a9e41bb8894 SHA512 4a8cfcffb7069e2bc4679a8da9acecf12514c512854bb9eef6f3f861e319b0098fd206d743ef7a0f25ef5b65892ad9dcc0adc1bc19525900c3edf5ea5489849e +DIST rust-1.62.0-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 55391a58d2ffd6c21b1ff6d77595e424cf269ad44d59f7c2a29d149306563028b402e7393e4d802a47818d7e831455768e86d4f9d882ad0ca70cf216ed72c9db SHA512 c1cf19959de1348ed34448a3f9999ef53324be81d1c99967e4091406463dc0dc28a384f8f04e07e4b54791d1d4a2b1c4aea570503abb0c91c83eafdb5e389243 +DIST rust-1.62.0-riscv64gc-unknown-linux-gnu.tar.xz 194848260 BLAKE2B 35a283e87bd0d338500ed71d539760cc19a1522875d20f7cdf8cce7ac79fdf993530082e0078a9f12c2df41d3366dec30f5326f9584ab9dd0bc37811bc931e1b SHA512 60a9e4a0ffec3763e6e5f4f9a7f3f52f423b6af86eeb4eddbd5fa00682ec3f6881a6d0be717079f508c1d0ef94f3d794b7da2884ed5b7c88219aabd49bf20662 +DIST rust-1.62.0-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 2cc8e9724e3d0f3af2d5c8e8c9f51f7f5e2d36a9e8cda23bf16fdcce0ecbd1a8965b0fc7b339dc27c779346cfe3f26fe8a2d3e1929431a2190452cbe4a949978 SHA512 587b6ab43a3c0258b0393e13f9f231f086527dd28f7f65fa6f00ac61c974e1d8c0305c2cc154a8a106d506b17f505ec8d8e6e5d39d4512072ab39da680fa1574 +DIST rust-1.62.0-s390x-unknown-linux-gnu.tar.xz 218505248 BLAKE2B 6f8026b1779527f0dd781843e2f2deb423c2b541711d3e8efb981ea972cd5405568e6ca274e1b78cc6427e038d59e147652da26cedaa83b02f5daa79491db2f3 SHA512 10c99efe46acbe2bdbd27f28cae28d6db223c3cee2abc835d04f7ff1662c8b998d354ae22af9dcf00c078e96cdbb1f01df5f6c9e9c587d3459ea88f9acf37267 +DIST rust-1.62.0-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 7053c6f041695ad7b9c5ea304a0d71b9b17c5737b7d7082ef2de6e52dc52bc18c170c3fe7e7a658823abc5f80ab775b544dd2b2b3e27690bd8209357945b0f04 SHA512 8bc1d64180f55b0ed93fd506bc193a51e4519a66ed8d6f4e331395bcdb8584171d81397d594460952d7983129aa08e278ee15a584571d404f2f6a304d1d7241d +DIST rust-1.62.0-x86_64-unknown-linux-gnu.tar.xz 153662720 BLAKE2B ff19ebb8a0607b5a3a29b2676dc12466e0c9969f6ac31a588a5dff2d3c10ade70e705873e2606ed84efeaeeb87b8afe6c88285edbdd2bf1a8433f24c48009c21 SHA512 b329dc015dc70ceae0a3b9b8d8e674fb443769bf82f88ed06ca306cedaa52e26756a2491c92315e51b63d4272c0a1f43b2150d5636101814f6e2b59772f1f048 +DIST rust-1.62.0-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B a1602b9cfbdf1b66c479f13b7171cb445068b5f18eae620435b25c3ab1e762e41977e31f02158d259acf16b0c8cdf895af16d6f68904939333b030f21b6c7a01 SHA512 2d79af9fca5a7e19448aeefd330fcc436c3ecb8e617662f144b12303ef2a214a3ae3ec4d9a42f68a4d0d6e343b81b495deddf3df23031aacfbead0c97b083174 +DIST rust-1.62.0-x86_64-unknown-linux-musl.tar.xz 254266584 BLAKE2B f566cdc94726532c50726ccf081eb2b825e52a56c74eb9d9e846f9933dafedef0a8a1b7c485938f96ae9945706192218cc318750738596923329bc23ef770ce1 SHA512 9cd01f0539db8cd344e9dd39fc5ffcd5b65c9c8c95ed692b9f7c23bc19c970c9f0056f8c8bb61813f1402143177a5b1c20bf844e64af8cf0be110e17e30aa4af +DIST rust-1.62.0-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 46f38806b5a6b67953c607d4a3074a9177e14245e746771d876530c398ea98019e534a22a099c087ea2386124cc952f0a488e45f8175922b19b42441d6607938 SHA512 bc30af1e75cbfc8b488782af26d91ccee6e3b3220913af8d2ca3fc6beb5790bd81e3348f8da5c0c542bd13ab6c4cee77f50f4ba0d48e9600620034acc2dafe15 DIST rustc-1.59.0-src.tar.xz 128942756 BLAKE2B b28114f14c9a0fec7db56fde79a985360fd8438c3b14eede49ed12e540c2636be960d0fd800c569af193886ac76fe8bf604d5dae59214ae08cb0cc6cc0ca404e SHA512 acace866871d13a55d365f65d7e15c192c3cd33096862571df6317e066b7474d668b95ae281e0244967778c05f1e33966c3c55616218bd25d3770a2b2d4f0365 DIST rustc-1.59.0-src.tar.xz.asc 801 BLAKE2B 061701c4fdbde930798f9f938ca3642204ae4a2ad9396937ca7d604268813d6d68f4979f20d35abdbbfeec0bb389acd86c9d3d84256db85861f6b11e3dbef80e SHA512 1b90bc01f9d68ba1f70591c4ae707295d7727b790d170a0b757d654684e59d3c26c45b66a21f9ac762debb6867494660c73daaf10be9bd567a38be44c0009f72 DIST rustc-1.60.0-src.tar.xz 136183048 BLAKE2B 8030f32c21f81af6abc7a282aab1189cb7d680c6bce58c119a1beaad71a3eeb36a696eef46a22d366e2c41a2f9182a9a5aa527426f2c8db05278184c37297dd0 SHA512 d0c113e8c2c67bf10773c9403dc4c4700c4deb2fb287bfec51e565d3473d2b481d8ae2c90b272cd67b3a87d7443ea25a34c7b40ba8cd7106bf5d71126ab141c3 @@ -142,9 +175,12 @@ DIST rustc-1.62.0-src.tar.xz 135644992 BLAKE2B f9133310dc951361588bdc0b631c7fc9e DIST rustc-1.62.0-src.tar.xz.asc 801 BLAKE2B 1d9a6fcafdfc2f46b098403e36e401cc6b3834d4f7fffaa82f20a332f8843a0af10c814c3f585c6e062fd5e9fab3d231ab03cc0caa449acd1c8a9eea077c1932 SHA512 646a895d19847ab0cc1d2f85ce1643625a1785acda31d37ed9776257f8e4625b65e16e4b9f3210e816d4516633d963a0d7b520e35582366ee75059dcb2f1313f DIST rustc-1.62.1-src.tar.xz 135644156 BLAKE2B ff8428362153770c57d53cb7eef07b75944d47ec747d9c337cc7ba9f38dfd749415c9a00acf9d9d8743874ba1c51da7915315bd25e011eeb8a2aaa8812773850 SHA512 6f7fa855acdf20525e907a6fc8c7aa8b206603e3bcbd532d3bdce165380f0019f45dba2b2b06d20b541381accf67ca0d256fbddfcb1642a2e60e1237807d5410 DIST rustc-1.62.1-src.tar.xz.asc 801 BLAKE2B dd0e917f8b587eb8318a9c820df5ee9a052f14e7dea05d8afcb3cf687fa2e362e6d2f4d20fa94a19bdf97227c9ef29548a6e267ffd9113bfdc36cc42f341d8b8 SHA512 698bfd419c218a6cccce04869279708cf6084adc464a64d7dd1c981c0577249cd06b4de132634085c792c838aa1e1beaa11a5a06ea0e5f4c1a6f4e28afe65a3c +DIST rustc-1.63.0-src.tar.xz 136597192 BLAKE2B 52eb64ee11e7d9724a4c2654f7eea13521959ac5e04a4925eed5c89ec3661a7827146d6f9a9d05c98466bd4b74393af7bb18d9f418c785924f559833434dfe38 SHA512 0dd3cd1546bd9c1438afe0c4694e1ed80507f6b437674682c0474e13f83457e9ced4560ddeee58602e01837140f9e34a9e24c6828643dd6f613e07755af6997c +DIST rustc-1.63.0-src.tar.xz.asc 801 BLAKE2B b6c133768e368a7aeb0a4612a4c824d13f91ccdca6660feb5774ed6d79537084020780532c882ae3c9e4b6be3d36ceb0652eb134a580293ba8d8be74c4ba3c6e SHA512 f8807d46b9a3ca2a15a60f8062d63b3ee6e3210657cc752c948b3c7aa1626ec63cbd57529d010ad33f07ac47cf70dbf2cb50f200587338f77c631fc9e6786b17 EBUILD rust-1.59.0.ebuild 21229 BLAKE2B 3815eb3dc1c30d776b1a5715759d44f62c92a5d1bc1f37772c5061b99b882ef13962805d2b7685e828b106bd6027dadf5fe03d81b70469c5ecf87217fed6086f SHA512 1e8e14d9d9352b5b4a84ef1622903786265f185a0664d8906b6174561f2113799436882e152adc4dc6e3507c8d68952f1381affa0a71559cc7e571c5cfd2a0ce EBUILD rust-1.60.0.ebuild 21452 BLAKE2B 82752fda269d87718a5c51f22b2dd6be41665152d07da8ae4c4ae5663ede1646ce90c836dbe2bde17f8981ecb6a0ad56d71cfe986a6e460e8c889d0aca7b6d3f SHA512 c94037ab2e4d2ff396b1676d1ac63f2038ff3ee8849339cffd9d2c24586761c717e2148fce769e4006a29f8c57b8dbf6c9f021acffadae02361af3fe10305ed3 EBUILD rust-1.61.0-r2.ebuild 22375 BLAKE2B 6662f32074219bff329268ce638d622bb982f9c04558180fd1fcaf97f6a9bf1bc526b64fbf3ed85c803fe10dc7e642b4a558c5f4f962b854bffd4018eba6f031 SHA512 510ffc53ad8d5d5fd41377cc0d66459a267537d9402d4a8747d80168a49550db66039170582f1f91a8a3b02a09b11d6cd6e814d21bc82dd139a13a78254378ab EBUILD rust-1.62.0.ebuild 22245 BLAKE2B 569dfa03db6a73f66162ced3171af6a49a36c56fbf3100fd1c42825a565275c69fba473f831daf293061bf9b7a10723d4f94e2b8a5800ff683154e37e221faa3 SHA512 7d9e9847594e8da16cac61a6129782c37e6362ecb0ee7886728ddb33318ce6afb32575fdd3c0ef201d90c577d46ed2ba3dd5ce1003cd20ff744e33a05167b826 EBUILD rust-1.62.1.ebuild 22239 BLAKE2B 71e56ea01ad7f97bb5121f3509e94fe02cea33f7d04cbe23d30efa21ce05d646409533e1f69f33b2c9867358a258155e646a01dd7b295d8c59767e8b51c2be67 SHA512 79eca27ca6013e128635a242c77a02ad5c8aa1664e6993dfee1857e56e384251a651a8254f04056e7e007987113112738c799c9052e81ca0a8906563cfd39fa9 +EBUILD rust-1.63.0.ebuild 22294 BLAKE2B 5653d54b0970a6014591a4793e79d68d25d30f3e039e99ff654a8fb60f31de75137d27af0f550cc10914896bb3aef9ac7849b4935e247c3a887d88bff38264fb SHA512 431676d9194f08d545b54fbd7aba193d58d3250e31092f93b36c3fbb1352574162cbde2113bfa3ec9d63e782b1c132b4a07774e907243b0395e255bcd382fcb3 MISC metadata.xml 1665 BLAKE2B 190ef3c0b543d0d865c63c6c9776fa456c7a2d27a6f9072be9f3be7f127c955df6c7542e1d7a4c4504c582130f6001dc8cbe3e613769bf150fe30c706ea90a6c SHA512 2fc6289f8eb882e24bfeac71ec7a29d567c814703cc20366393791ab5123b6460be0855f7351b2c28738d3724e47137ec80597738a1a8e86a20a979cc46f1baf diff --git a/dev-lang/rust/files/1.62.1-musl-dynamic-linking.patch b/dev-lang/rust/files/1.62.1-musl-dynamic-linking.patch new file mode 100644 index 000000000000..6d53487a0bfc --- /dev/null +++ b/dev-lang/rust/files/1.62.1-musl-dynamic-linking.patch @@ -0,0 +1,25 @@ +From e42709c46647dab342b826d30324f3e6e5590e00 Mon Sep 17 00:00:00 2001 +From: Jory Pratt <anarchy@gentoo.org> +Date: Tue, 2 Aug 2022 18:32:53 -0500 +Subject: [PATCH] Enable dynamic linking by default for musl + +Signed-off-by: Jory Pratt <anarchy@gentoo.org> +--- + compiler/rustc_target/src/spec/linux_musl_base.rs | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/compiler/rustc_target/src/spec/linux_musl_base.rs b/compiler/rustc_target/src/spec/linux_musl_base.rs +index 207a87ab0..8a5a43363 100644 +--- a/compiler/rustc_target/src/spec/linux_musl_base.rs ++++ b/compiler/rustc_target/src/spec/linux_musl_base.rs +@@ -10,7 +10,7 @@ pub fn opts() -> TargetOptions { + base.crt_objects_fallback = Some(CrtObjectsFallback::Musl); + + // These targets statically link libc by default +- base.crt_static_default = true; ++ base.crt_static_default = false; + + base + } +-- +2.35.1
\ No newline at end of file diff --git a/dev-lang/rust/rust-1.63.0.ebuild b/dev-lang/rust/rust-1.63.0.ebuild new file mode 100644 index 000000000000..55f67445ef7e --- /dev/null +++ b/dev-lang/rust/rust-1.63.0.ebuild @@ -0,0 +1,738 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{8..11} ) + +inherit bash-completion-r1 check-reqs estack flag-o-matic llvm multiprocessing \ + multilib multilib-build python-any-r1 rust-toolchain toolchain-funcs verify-sig + +if [[ ${PV} = *beta* ]]; then + betaver=${PV//*beta} + BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}" + MY_P="rustc-beta" + SLOT="beta/${PV}" + SRC="${BETA_SNAPSHOT}/rustc-beta-src.tar.xz -> rustc-${PV}-src.tar.xz" +else + ABI_VER="$(ver_cut 1-2)" + SLOT="stable/${ABI_VER}" + MY_P="rustc-${PV}" + SRC="${MY_P}-src.tar.xz" + KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~sparc ~x86" +fi + +RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).0" + +DESCRIPTION="Systems programming language from Mozilla" +HOMEPAGE="https://www.rust-lang.org/" + +SRC_URI=" + https://static.rust-lang.org/dist/${SRC} + verify-sig? ( https://static.rust-lang.org/dist/${SRC}.asc ) + !system-bootstrap? ( $(rust_all_arch_uris rust-${RUST_STAGE0_VERSION}) ) +" + +# keep in sync with llvm ebuild of the same version as bundled one. +ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM AVR BPF Hexagon Lanai Mips MSP430 + NVPTX PowerPC RISCV Sparc SystemZ WebAssembly X86 XCore ) +ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" ) +LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?} + +LICENSE="|| ( MIT Apache-2.0 ) BSD-1 BSD-2 BSD-4 UoI-NCSA" + +IUSE="clippy cpu_flags_x86_sse2 debug dist doc miri nightly parallel-compiler profiler rls rustfmt rust-src system-bootstrap system-llvm test wasm ${ALL_LLVM_TARGETS[*]}" + +# Please keep the LLVM dependency block separate. Since LLVM is slotted, +# we need to *really* make sure we're not pulling more than one slot +# simultaneously. + +# How to use it: +# List all the working slots in LLVM_VALID_SLOTS, newest first. +LLVM_VALID_SLOTS=( 14 ) +LLVM_MAX_SLOT="${LLVM_VALID_SLOTS[0]}" + +# splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation +# (-) usedep needed because we may build with older llvm without that target +LLVM_DEPEND="|| ( " +for _s in ${LLVM_VALID_SLOTS[@]}; do + LLVM_DEPEND+=" ( " + for _x in ${ALL_LLVM_TARGETS[@]}; do + LLVM_DEPEND+=" + ${_x}? ( sys-devel/llvm:${_s}[${_x}(-)] )" + done + LLVM_DEPEND+=" )" +done +unset _s _x +LLVM_DEPEND+=" ) + <sys-devel/llvm-$(( LLVM_MAX_SLOT + 1 )):= + wasm? ( sys-devel/lld ) +" + +# to bootstrap we need at least exactly previous version, or same. +# most of the time previous versions fail to bootstrap with newer +# for example 1.47.x, requires at least 1.46.x, 1.47.x is ok, +# but it fails to bootstrap with 1.48.x +# https://github.com/rust-lang/rust/blob/${PV}/src/stage0.txt +RUST_DEP_PREV="$(ver_cut 1).$(($(ver_cut 2) - 1))*" +RUST_DEP_CURR="$(ver_cut 1).$(ver_cut 2)*" +BOOTSTRAP_DEPEND="|| + ( + =dev-lang/rust-"${RUST_DEP_PREV}" + =dev-lang/rust-bin-"${RUST_DEP_PREV}" + =dev-lang/rust-"${RUST_DEP_CURR}" + =dev-lang/rust-bin-"${RUST_DEP_CURR}" + ) +" + +BDEPEND="${PYTHON_DEPS} + app-eselect/eselect-rust + || ( + >=sys-devel/gcc-4.7 + >=sys-devel/clang-3.5 + ) + system-bootstrap? ( ${BOOTSTRAP_DEPEND} ) + !system-llvm? ( + >=dev-util/cmake-3.13.4 + dev-util/ninja + ) + test? ( sys-devel/gdb ) + verify-sig? ( sec-keys/openpgp-keys-rust ) +" + +DEPEND=" + >=app-arch/xz-utils-5.2 + net-misc/curl:=[http2,ssl] + sys-libs/zlib:= + dev-libs/openssl:0= + elibc_musl? ( sys-libs/libunwind:= ) + system-llvm? ( ${LLVM_DEPEND} ) +" + +RDEPEND="${DEPEND} + app-eselect/eselect-rust + sys-apps/lsb-release +" + +REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} ) + miri? ( nightly ) + parallel-compiler? ( nightly ) + rls? ( rust-src ) + test? ( ${ALL_LLVM_TARGETS[*]} ) + wasm? ( llvm_targets_WebAssembly ) + x86? ( cpu_flags_x86_sse2 ) +" + +# we don't use cmake.eclass, but can get a warning +CMAKE_WARN_UNUSED_CLI=no + +QA_FLAGS_IGNORED=" + usr/lib/${PN}/${PV}/bin/.* + usr/lib/${PN}/${PV}/libexec/.* + usr/lib/${PN}/${PV}/lib/lib.*.so + usr/lib/${PN}/${PV}/lib/rustlib/.*/bin/.* + usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/lib.*.so +" + +QA_SONAME=" + usr/lib/${PN}/${PV}/lib/lib.*.so.* + usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/lib.*.so +" + +QA_PRESTRIPPED=" + usr/lib/${PN}/${PV}/lib/rustlib/.*/bin/rust-llvm-dwp +" + +# An rmeta file is custom binary format that contains the metadata for the crate. +# rmeta files do not support linking, since they do not contain compiled object files. +# so we can safely silence the warning for this QA check. +QA_EXECSTACK="usr/lib/${PN}/${PV}/lib/rustlib/*/lib*.rlib:lib.rmeta" + +# causes double bootstrap +RESTRICT="test" + +VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/usr/share/openpgp-keys/rust.asc + +PATCHES=( + "${FILESDIR}"/1.55.0-ignore-broken-and-non-applicable-tests.patch + "${FILESDIR}"/1.62.1-musl-dynamic-linking.patch + "${FILESDIR}"/1.61.0-gentoo-musl-target-specs.patch +) + +S="${WORKDIR}/${MY_P}-src" + +toml_usex() { + usex "${1}" true false +} + +bootstrap_rust_version_check() { + # never call from pkg_pretend. eselect-rust may be not installed yet. + [[ ${MERGE_TYPE} == binary ]] && return + local rustc_wanted="$(ver_cut 1).$(($(ver_cut 2) - 1))" + local rustc_toonew="$(ver_cut 1).$(($(ver_cut 2) + 1))" + local rustc_version=( $(eselect --brief rust show 2>/dev/null) ) + rustc_version=${rustc_version[0]#rust-bin-} + rustc_version=${rustc_version#rust-} + + [[ -z "${rustc_version}" ]] && die "Failed to determine rust version, check 'eselect rust' output" + + if ver_test "${rustc_version}" -lt "${rustc_wanted}" ; then + eerror "Rust >=${rustc_wanted} is required" + eerror "please run 'eselect rust' and set correct rust version" + die "selected rust version is too old" + elif ver_test "${rustc_version}" -ge "${rustc_toonew}" ; then + eerror "Rust <${rustc_toonew} is required" + eerror "please run 'eselect rust' and set correct rust version" + die "selected rust version is too new" + else + einfo "Using rust ${rustc_version} to build" + fi +} + +pre_build_checks() { + local M=8192 + # multiply requirements by 1.3 if we are doing x86-multilib + if use amd64; then + M=$(( $(usex abi_x86_32 13 10) * ${M} / 10 )) + fi + M=$(( $(usex clippy 128 0) + ${M} )) + M=$(( $(usex miri 128 0) + ${M} )) + M=$(( $(usex rls 512 0) + ${M} )) + M=$(( $(usex rustfmt 256 0) + ${M} )) + # add 2G if we compile llvm and 256M per llvm_target + if ! use system-llvm; then + M=$(( 2048 + ${M} )) + local ltarget + for ltarget in ${ALL_LLVM_TARGETS[@]}; do + M=$(( $(usex ${ltarget} 256 0) + ${M} )) + done + fi + M=$(( $(usex wasm 256 0) + ${M} )) + M=$(( $(usex debug 2 1) * ${M} )) + eshopts_push -s extglob + if is-flagq '-g?(gdb)?([1-9])'; then + M=$(( 15 * ${M} / 10 )) + fi + eshopts_pop + M=$(( $(usex system-bootstrap 0 1024) + ${M} )) + M=$(( $(usex doc 256 0) + ${M} )) + CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE} +} + +llvm_check_deps() { + has_version -r "sys-devel/llvm:${LLVM_SLOT}[${LLVM_TARGET_USEDEPS// /,}]" +} + +pkg_pretend() { + pre_build_checks +} + +pkg_setup() { + pre_build_checks + python-any-r1_pkg_setup + + export LIBGIT2_NO_PKG_CONFIG=1 #749381 + + use system-bootstrap && bootstrap_rust_version_check + + if use system-llvm; then + llvm_pkg_setup + + local llvm_config="$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config" + export LLVM_LINK_SHARED=1 + export RUSTFLAGS="${RUSTFLAGS} -Lnative=$("${llvm_config}" --libdir)" + fi +} + +src_prepare() { + if ! use system-bootstrap; then + local rust_stage0_root="${WORKDIR}"/rust-stage0 + local rust_stage0="rust-${RUST_STAGE0_VERSION}-$(rust_abi)" + + "${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig \ + --without=rust-docs --destdir="${rust_stage0_root}" --prefix=/ || die + fi + + default +} + +src_configure() { + use system-llvm && filter-flags '-flto*' # https://bugs.gentoo.org/862109 + + local rust_target="" rust_targets="" arch_cflags use_libcxx="false" + + # Collect rust target names to compile standard libs for all ABIs. + for v in $(multilib_get_enabled_abi_pairs); do + rust_targets="${rust_targets},\"$(rust_abi $(get_abi_CHOST ${v##*.}))\"" + done + if use wasm; then + rust_targets="${rust_targets},\"wasm32-unknown-unknown\"" + if use system-llvm; then + # un-hardcode rust-lld linker for this target + # https://bugs.gentoo.org/715348 + sed -i '/linker:/ s/rust-lld/wasm-ld/' compiler/rustc_target/src/spec/wasm_base.rs || die + fi + fi + rust_targets="${rust_targets#,}" + + local tools="\"cargo\"," + if use clippy; then + tools="\"clippy\",$tools" + fi + if use miri; then + tools="\"miri\",$tools" + fi + if use profiler; then + tools="\"rust-demangler\",$tools" + fi + if use rls; then + tools="\"rls\",\"analysis\",$tools" + fi + if use rustfmt; then + tools="\"rustfmt\",$tools" + fi + if use rust-src; then + tools="\"src\",$tools" + fi + + local rust_stage0_root + if use system-bootstrap; then + local printsysroot + printsysroot="$(rustc --print sysroot || die "Can't determine rust's sysroot")" + rust_stage0_root="${printsysroot}" + else + rust_stage0_root="${WORKDIR}"/rust-stage0 + fi + # in case of prefix it will be already prefixed, as --print sysroot returns full path + [[ -d ${rust_stage0_root} ]] || die "${rust_stage0_root} is not a directory" + + rust_target="$(rust_abi)" + + # https://bugs.gentoo.org/732632 + if tc-is-clang; then + local clang_slot="$(clang-major-version)" + if { has_version "sys-devel/clang:${clang_slot}[default-libcxx]" || is-flagq -stdlib=libc++; }; then + use_libcxx="true" + fi + fi + + local cm_btype="$(usex debug DEBUG RELEASE)" + cat <<- _EOF_ > "${S}"/config.toml + changelog-seen = 2 + [llvm] + download-ci-llvm = false + optimize = $(toml_usex !debug) + release-debuginfo = $(toml_usex debug) + assertions = $(toml_usex debug) + ninja = true + targets = "${LLVM_TARGETS// /;}" + experimental-targets = "" + link-shared = $(toml_usex system-llvm) + $(if [[ ${use_libcxx} == true ]]; then + echo "use-libcxx = true" + echo "static-libstdcpp = false" + fi) + $(case "${rust_target}" in + i586-*-linux-*) + # https://github.com/rust-lang/rust/issues/93059 + echo 'cflags = "-fcf-protection=none"' + echo 'cxxflags = "-fcf-protection=none"' + echo 'ldflags = "-fcf-protection=none"' + ;; + *) + ;; + esac) + [llvm.build-config] + CMAKE_VERBOSE_MAKEFILE = "ON" + CMAKE_C_FLAGS_${cm_btype} = "${CFLAGS}" + CMAKE_CXX_FLAGS_${cm_btype} = "${CXXFLAGS}" + CMAKE_EXE_LINKER_FLAGS_${cm_btype} = "${LDFLAGS}" + CMAKE_MODULE_LINKER_FLAGS_${cm_btype} = "${LDFLAGS}" + CMAKE_SHARED_LINKER_FLAGS_${cm_btype} = "${LDFLAGS}" + CMAKE_STATIC_LINKER_FLAGS_${cm_btype} = "${ARFLAGS}" + [build] + build-stage = 2 + test-stage = 2 + doc-stage = 2 + build = "${rust_target}" + host = ["${rust_target}"] + target = [${rust_targets}] + cargo = "${rust_stage0_root}/bin/cargo" + rustc = "${rust_stage0_root}/bin/rustc" + rustfmt = "${rust_stage0_root}/bin/rustfmt" + docs = $(toml_usex doc) + compiler-docs = false + submodules = false + python = "${EPYTHON}" + locked-deps = true + vendor = true + extended = true + tools = [${tools}] + verbose = 2 + sanitizers = false + profiler = $(toml_usex profiler) + cargo-native-static = false + [install] + prefix = "${EPREFIX}/usr/lib/${PN}/${PV}" + sysconfdir = "etc" + docdir = "share/doc/rust" + bindir = "bin" + libdir = "lib" + mandir = "share/man" + [rust] + # https://github.com/rust-lang/rust/issues/54872 + codegen-units-std = 1 + optimize = true + debug = $(toml_usex debug) + debug-assertions = $(toml_usex debug) + debug-assertions-std = $(toml_usex debug) + debuginfo-level = $(usex debug 2 0) + debuginfo-level-rustc = $(usex debug 2 0) + debuginfo-level-std = $(usex debug 2 0) + debuginfo-level-tools = $(usex debug 2 0) + debuginfo-level-tests = 0 + backtrace = true + incremental = false + default-linker = "$(tc-getCC)" + parallel-compiler = $(toml_usex parallel-compiler) + channel = "$(usex nightly nightly stable)" + description = "gentoo" + rpath = false + verbose-tests = true + optimize-tests = $(toml_usex !debug) + codegen-tests = true + dist-src = false + remap-debuginfo = true + lld = $(usex system-llvm false $(toml_usex wasm)) + # only deny warnings if doc+wasm are NOT requested, documenting stage0 wasm std fails without it + # https://github.com/rust-lang/rust/issues/74976 + # https://github.com/rust-lang/rust/issues/76526 + deny-warnings = $(usex wasm $(usex doc false true) true) + backtrace-on-ice = true + jemalloc = false + [dist] + src-tarball = false + compression-formats = ["xz"] + _EOF_ + + for v in $(multilib_get_enabled_abi_pairs); do + rust_target=$(rust_abi $(get_abi_CHOST ${v##*.})) + arch_cflags="$(get_abi_CFLAGS ${v##*.})" + + cat <<- _EOF_ >> "${S}"/config.env + CFLAGS_${rust_target}=${arch_cflags} + _EOF_ + + cat <<- _EOF_ >> "${S}"/config.toml + [target.${rust_target}] + ar = "$(tc-getAR)" + cc = "$(tc-getCC)" + cxx = "$(tc-getCXX)" + linker = "$(tc-getCC)" + ranlib = "$(tc-getRANLIB)" + _EOF_ + # librustc_target/spec/linux_musl_base.rs sets base.crt_static_default = true; + if use elibc_musl; then + cat <<- _EOF_ >> "${S}"/config.toml + crt-static = false + _EOF_ + fi + if use system-llvm; then + cat <<- _EOF_ >> "${S}"/config.toml + llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config" + _EOF_ + fi + done + if use wasm; then + cat <<- _EOF_ >> "${S}"/config.toml + [target.wasm32-unknown-unknown] + linker = "$(usex system-llvm lld rust-lld)" + # wasm target does not have profiler_builtins https://bugs.gentoo.org/848483 + profiler = false + _EOF_ + fi + + if [[ -n ${I_KNOW_WHAT_I_AM_DOING_CROSS} ]]; then # whitespace intentionally shifted below + # experimental cross support + # discussion: https://bugs.gentoo.org/679878 + # TODO: c*flags, clang, system-llvm, cargo.eclass target support + # it would be much better if we could split out stdlib + # complilation to separate ebuild and abuse CATEGORY to + # just install to /usr/lib/rustlib/<target> + + # extra targets defined as a bash array + # spec format: <LLVM target>:<rust-target>:<CTARGET> + # best place would be /etc/portage/env/dev-lang/rust + # Example: + # RUST_CROSS_TARGETS=( + # "AArch64:aarch64-unknown-linux-gnu:aarch64-unknown-linux-gnu" + # ) + # no extra hand holding is done, no target transformations, all + # values are passed as-is with just basic checks, so it's up to user to supply correct values + # valid rust targets can be obtained with + # rustc --print target-list + # matching cross toolchain has to be installed + # matching LLVM_TARGET has to be enabled for both rust and llvm (if using system one) + # only gcc toolchains installed with crossdev are checked for now. + + # BUG: we can't pass host flags to cross compiler, so just filter for now + # BUG: this should be more fine-grained. + filter-flags '-mcpu=*' '-march=*' '-mtune=*' + + local cross_target_spec + for cross_target_spec in "${RUST_CROSS_TARGETS[@]}";do + # extracts first element form <LLVM target>:<rust-target>:<CTARGET> + local cross_llvm_target="${cross_target_spec%%:*}" + # extracts toolchain triples, <rust-target>:<CTARGET> + local cross_triples="${cross_target_spec#*:}" + # extracts first element after before : separator + local cross_rust_target="${cross_triples%%:*}" + # extracts last element after : separator + local cross_toolchain="${cross_triples##*:}" + use llvm_targets_${cross_llvm_target} || die "need llvm_targets_${cross_llvm_target} target enabled" + command -v ${cross_toolchain}-gcc > /dev/null 2>&1 || die "need ${cross_toolchain} cross toolchain" + + cat <<- _EOF_ >> "${S}"/config.toml + [target.${cross_rust_target}] + ar = "${cross_toolchain}-ar" + cc = "${cross_toolchain}-gcc" + cxx = "${cross_toolchain}-g++" + linker = "${cross_toolchain}-gcc" + ranlib = "${cross_toolchain}-ranlib" + _EOF_ + if use system-llvm; then + cat <<- _EOF_ >> "${S}"/config.toml + llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config" + _EOF_ + fi + if [[ "${cross_toolchain}" == *-musl* ]]; then + cat <<- _EOF_ >> "${S}"/config.toml + musl-root = "$(${cross_toolchain}-gcc -print-sysroot)/usr" + _EOF_ + fi + + # append cross target to "normal" target list + # example 'target = ["powerpc64le-unknown-linux-gnu"]' + # becomes 'target = ["powerpc64le-unknown-linux-gnu","aarch64-unknown-linux-gnu"]' + + rust_targets="${rust_targets},\"${cross_rust_target}\"" + sed -i "/^target = \[/ s#\[.*\]#\[${rust_targets}\]#" config.toml || die + + ewarn + ewarn "Enabled ${cross_rust_target} rust target" + ewarn "Using ${cross_toolchain} cross toolchain" + ewarn + if ! has_version -b 'sys-devel/binutils[multitarget]' ; then + ewarn "'sys-devel/binutils[multitarget]' is not installed" + ewarn "'strip' will be unable to strip cross libraries" + ewarn "cross targets will be installed with full debug information" + ewarn "enable 'multitarget' USE flag for binutils to be able to strip object files" + ewarn + ewarn "Alternatively llvm-strip can be used, it supports stripping any target" + ewarn "define STRIP=\"llvm-strip\" to use it (experimental)" + ewarn + fi + done + fi # I_KNOW_WHAT_I_AM_DOING_CROSS + + einfo "Rust configured with the following flags:" + echo + echo RUSTFLAGS="${RUSTFLAGS:-}" + echo RUSTFLAGS_BOOTSTRAP="${RUSTFLAGS_BOOTSTRAP:-}" + echo RUSTFLAGS_NOT_BOOTSTRAP="${RUSTFLAGS_NOT_BOOTSTRAP:-}" + env | grep "CARGO_TARGET_.*_RUSTFLAGS=" + cat "${S}"/config.env || die + echo + einfo "config.toml contents:" + cat "${S}"/config.toml || die + echo +} + +src_compile() { + # we need \n IFS to have config.env with spaces loaded properly. #734018 + ( + IFS=$'\n' + env $(cat "${S}"/config.env) RUST_BACKTRACE=1\ + "${EPYTHON}" ./x.py build -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die + ) +} + +src_test() { + # https://rustc-dev-guide.rust-lang.org/tests/intro.html + + # those are basic and codegen tests. + local tests=( + codegen + codegen-units + compile-fail + incremental + mir-opt + pretty + run-make + ) + + # fails if llvm is not built with ALL targets. + # and known to fail with system llvm sometimes. + use system-llvm || tests+=( assembly ) + + # fragile/expensive/less important tests + # or tests that require extra builds + # TODO: instead of skipping, just make some nonfatal. + if [[ ${ERUST_RUN_EXTRA_TESTS:-no} != no ]]; then + tests+=( + rustdoc + rustdoc-js + rustdoc-js-std + rustdoc-ui + run-make-fulldeps + ui + ui-fulldeps + ) + fi + + local i failed=() + einfo "rust_src_test: enabled tests ${tests[@]/#/src/test/}" + for i in "${tests[@]}"; do + local t="src/test/${i}" + einfo "rust_src_test: running ${t}" + if ! ( + IFS=$'\n' + env $(cat "${S}"/config.env) RUST_BACKTRACE=1 \ + "${EPYTHON}" ./x.py test -vv --config="${S}"/config.toml \ + -j$(makeopts_jobs) --no-doc --no-fail-fast "${t}" + ) + then + failed+=( "${t}" ) + eerror "rust_src_test: ${t} failed" + fi + done + + if [[ ${#failed[@]} -ne 0 ]]; then + eerror "rust_src_test: failure summary: ${failed[@]}" + die "aborting due to test failures" + fi +} + +src_install() { + ( + IFS=$'\n' + env $(cat "${S}"/config.env) DESTDIR="${D}" \ + "${EPYTHON}" ./x.py install -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die + ) + + # bug #689562, #689160 + rm -v "${ED}/usr/lib/${PN}/${PV}/etc/bash_completion.d/cargo" || die + rmdir -v "${ED}/usr/lib/${PN}/${PV}"/etc{/bash_completion.d,} || die + newbashcomp src/tools/cargo/src/etc/cargo.bashcomp.sh cargo + + local symlinks=( + cargo + rustc + rustdoc + rust-gdb + rust-gdbgui + rust-lldb + ) + + use clippy && symlinks+=( clippy-driver cargo-clippy ) + use miri && symlinks+=( miri cargo-miri ) + use profiler && symlinks+=( rust-demangler ) + use rls && symlinks+=( rls ) + use rustfmt && symlinks+=( rustfmt cargo-fmt ) + + einfo "installing eselect-rust symlinks and paths: ${symlinks[@]}" + local i + for i in "${symlinks[@]}"; do + # we need realpath on /usr/bin/* symlink return version-appended binary path. + # so /usr/bin/rustc should point to /usr/lib/rust/<ver>/bin/rustc-<ver> + # need to fix eselect-rust to remove this hack. + local ver_i="${i}-${PV}" + if [[ -f "${ED}/usr/lib/${PN}/${PV}/bin/${i}" ]]; then + einfo "Installing ${i} symlink" + ln -v "${ED}/usr/lib/${PN}/${PV}/bin/${i}" "${ED}/usr/lib/${PN}/${PV}/bin/${ver_i}" || die + else + ewarn "${i} symlink requested, but source file not found" + ewarn "please report this" + fi + dosym "../lib/${PN}/${PV}/bin/${ver_i}" "/usr/bin/${ver_i}" + done + + # symlinks to switch components to active rust in eselect + dosym "${PV}/lib" "/usr/lib/${PN}/lib-${PV}" + dosym "${PV}/libexec" "/usr/lib/${PN}/libexec-${PV}" + dosym "${PV}/share/man" "/usr/lib/${PN}/man-${PV}" + dosym "rust/${PV}/lib/rustlib" "/usr/lib/rustlib-${PV}" + dosym "../../lib/${PN}/${PV}/share/doc/rust" "/usr/share/doc/${P}" + + newenvd - "50${P}" <<-_EOF_ + LDPATH="${EPREFIX}/usr/lib/rust/lib" + MANPATH="${EPREFIX}/usr/lib/rust/man" + $(use amd64 && usex elibc_musl 'CARGO_TARGET_X86_64_UNKNOWN_LINUX_MUSL_RUSTFLAGS="-C target-feature=-crt-static"' '') + $(use arm64 && usex elibc_musl 'CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_RUSTFLAGS="-C target-feature=-crt-static"' '') + _EOF_ + + rm -rf "${ED}/usr/lib/${PN}/${PV}"/*.old || die + rm -rf "${ED}/usr/lib/${PN}/${PV}/doc"/*.old || die + + # note: eselect-rust adds EROOT to all paths below + cat <<-_EOF_ > "${T}/provider-${P}" + /usr/bin/cargo + /usr/bin/rustdoc + /usr/bin/rust-gdb + /usr/bin/rust-gdbgui + /usr/bin/rust-lldb + /usr/lib/rustlib + /usr/lib/rust/lib + /usr/lib/rust/libexec + /usr/lib/rust/man + /usr/share/doc/rust + _EOF_ + + if use clippy; then + echo /usr/bin/clippy-driver >> "${T}/provider-${P}" + echo /usr/bin/cargo-clippy >> "${T}/provider-${P}" + fi + if use miri; then + echo /usr/bin/miri >> "${T}/provider-${P}" + echo /usr/bin/cargo-miri >> "${T}/provider-${P}" + fi + if use profiler; then + echo /usr/bin/rust-demangler >> "${T}/provider-${P}" + fi + if use rls; then + echo /usr/bin/rls >> "${T}/provider-${P}" + fi + if use rustfmt; then + echo /usr/bin/rustfmt >> "${T}/provider-${P}" + echo /usr/bin/cargo-fmt >> "${T}/provider-${P}" + fi + + insinto /etc/env.d/rust + doins "${T}/provider-${P}" + + if use dist; then + insinto "/usr/lib/${PN}/${PV}/dist" + doins -r "${S}/build/dist/." + fi +} + +pkg_postinst() { + eselect rust update + + if has_version sys-devel/gdb || has_version dev-util/lldb; then + elog "Rust installs a helper script for calling GDB and LLDB," + elog "for your convenience it is installed under /usr/bin/rust-{gdb,lldb}-${PV}." + fi + + if has_version app-editors/emacs; then + elog "install app-emacs/rust-mode to get emacs support for rust." + fi + + if has_version app-editors/gvim || has_version app-editors/vim; then + elog "install app-vim/rust-vim to get vim support for rust." + fi +} + +pkg_postrm() { + eselect rust cleanup +} diff --git a/dev-lang/vala/Manifest b/dev-lang/vala/Manifest index 043b47f2da21..78cc9037b36e 100644 --- a/dev-lang/vala/Manifest +++ b/dev-lang/vala/Manifest @@ -9,5 +9,5 @@ EBUILD vala-0.52.10.ebuild 1325 BLAKE2B 7a86df69fc88acb215accc50b924f15f9135d767 EBUILD vala-0.54.7.ebuild 1325 BLAKE2B f681f5b0a71383e45054dce545ace081ae8253e76bc173a629c6454210d98f4ad6966409abf3e01845904cab576acddfa82dea7a537a9cbd7218dacda31ba1a1 SHA512 7314f8a2981f22d88604e2dac5874493ff01421e6b9c6eabf828b6968d945d795b45b977d774d10282626bb18f538240b6a82292d53e3b8d5d2ffc9781193d9f EBUILD vala-0.56.1.ebuild 1332 BLAKE2B f7fd73b5d47db04da76edff116bab099c145fc6e113542876700b567ed67561a59f82f8d6a7027c47b9f8074f5400eb01b2f8bd6ad51055efd3050fdfaed773d SHA512 add48080a20e19a3b93563940fa83ee23daf3f82430e0bda39522478d440fe89b34181cfbe414edfb368225d77cae48ccc0927542477f78ccfe7416049c26cbb EBUILD vala-0.56.2.ebuild 1339 BLAKE2B fd7152b34dde000ae64d44410e24bd9730f990348196591f86f13a18698e0f1a1dd6567ffbfc9e33d163ad2aab9a02296b0ff7265d1af0521f81fa0e86e0247a SHA512 d55408622d9230d126c7e0c7a071ea2d978434b24e6380134c970644c41325136ded2a22c3438d7534bcf051d9f05d95e9bc30e0721b28c400ca098b2386cd8b -EBUILD vala-0.56.3.ebuild 997 BLAKE2B 92c1183a9c8d84f899b4cc2a715a70182fc4a6090855a07f193c79973ea91deb3add9d5cc7271b393b2468e34e7eb3870c4666a1516e407556506b3b20af9be1 SHA512 4a160e1ccd66a9e34d10fdd2bf14935147feb4513a64ac01299abad8f992fd8e8ee831c210836078ede748b876f720cf232ec64f7a3cf83a001fe72b20dc63fe +EBUILD vala-0.56.3.ebuild 995 BLAKE2B d9bf8b49a05580d15fa7186dd7e7e9ce9f901f4d26845cb8d9dfb9eb3ab6e2990cd14caca74367688872f221189dee99111881195da61e81b3aec738be31b87f SHA512 5b5500b03e8901815ec541f369adea5c15799901988276333b694f33e736b15ed4bebdaffa2027470ac710e850887eda0012d01132d0c8b03dea0d3d5cddf9c7 MISC metadata.xml 346 BLAKE2B 277f10c368556c7d571d77958bde8a421a85f772ccdb5e9abebf2c7c86cc26c33a79a7e552aa76016c7cb8c32cd4435d8779befd42b1e9c8f904e28a0dac5be1 SHA512 a4092a8421609b743fbca75c329df84030f0debef4f6614a399af9a7b331c758a130a91e5eeb2815e56b9b3af6ba7509a3f39e8168bb4c482ef9158a58b69cb8 diff --git a/dev-lang/vala/vala-0.56.3.ebuild b/dev-lang/vala/vala-0.56.3.ebuild index 31e33510b2e4..ebde8c52098f 100644 --- a/dev-lang/vala/vala-0.56.3.ebuild +++ b/dev-lang/vala/vala-0.56.3.ebuild @@ -10,7 +10,7 @@ HOMEPAGE="https://wiki.gnome.org/Projects/Vala https://gitlab.gnome.org/GNOME/va LICENSE="LGPL-2.1+" SLOT="0.56" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x86-linux" +KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86 ~x86-linux" IUSE="test valadoc" RESTRICT="!test? ( test )" diff --git a/dev-lang/zig-bin/Manifest b/dev-lang/zig-bin/Manifest index 6e3b461c41a5..fcf53452fe03 100644 --- a/dev-lang/zig-bin/Manifest +++ b/dev-lang/zig-bin/Manifest @@ -1,7 +1,8 @@ -AUX zig-bin-0.9.1-fix-detecting-abi.patch 1008 BLAKE2B b2556e70039cd73720d5f2518930a31baab483ab4a9212ff0edb6573f2c91c377f0912def0fbcadf5193d9eef6c48505035e447e811eea9d562de4ce667c8c62 SHA512 5ebd53548d589a1412d5991118ea1c253a846bb2eebcbeb42e69ca42690dc38a839dd1b2d6902e0a3a1aefdd1dfd5b350193da32b1e48652ba0c523c6b6e5c7c +AUX zig-bin-0.9.1-fix-bad-hostname-segfault.patch 935 BLAKE2B c1c54ccf40b4db9a8f9f68991e1ebafd81c2b996b41bd904ef842f5feed2d4ec19d61960ed1bda95873cb04a9fc58df7daa5d311537c9711f5100fb095eeb6db SHA512 c620da70b632e5a85d3136d6d54e42fe905ce8b5d899ca5ca9423ac7e7eaff036eea1f90a925c244794c0505469bf1320f5fd5d19d465c66505154ca78bcf519 +DIST zig-0.9.1-fix-detecting-abi.patch 22233 BLAKE2B fa523c4c4c23a74c0b4f85c6d2d91ef98b31d25694bb9dbc7988b82db972a16ab273aa9f1883cfa8ca79ef7fc56fca67d0a8656ba248b6db47bc902b7ac64a93 SHA512 259967f88f54c20f556bd9d67189ce3a2cfeb0250f0cee4dffb29020d976d61265a5dd9ae9cfcadfb7b1e152b47ee17f4184eafac2b80495f4ee8f98733cd692 DIST zig-linux-aarch64-0.9.1.tar.xz 37034860 BLAKE2B 3b984198d74ee01570e4e10175dc4471268970cc5bd66d732042f17f1cf31301cec9237df756b7fa589915ed4c4f29dcd9ba61fb8e65ce7e9b579762773fe26d SHA512 ca647f04a67a45ad9e869e335266fad9a4a0f3f377da31d54a6f022727404db6cf2386d33315df20d5da0b6883f59e27bb0d73e18856e571cf4bc8f890565639 DIST zig-linux-armv7a-0.9.1.tar.xz 37974652 BLAKE2B 5d51260d8322d1400719d97c7cac2d12555622272900533128e20d45ea7a1c321b8a3eb9c7c406bbfd459da24d19451c65011bc2cac0b0c29a0372c56ea73a2b SHA512 239c5f02aeb1c85bc2c43374d610e27722c434d23cf3adf43b3923772dfe5800e340d6a6b3672bd307c159c2cccce5137aabb5b6648148c351e29c171de9e333 DIST zig-linux-i386-0.9.1.tar.xz 44969172 BLAKE2B 7051242284f1ceca662a64257adf64b7383b71b475f27abd3377bdaf8335d56d8cbb9a961ebceb6ae26058258216848dcbde2f50f95a74e0b64578a9522f33d5 SHA512 5bdf0ebffe45023b5a28331137458d258048c7974311c8e8090bc610f0ec262dc0004f0a939cff443b1d94a9cca4035de8e6e98dad9d668413888da02b325b6d DIST zig-linux-x86_64-0.9.1.tar.xz 41011464 BLAKE2B 053fc1c3d30e5798b7d30c9a4f9b5609b9b080e9f237dab52ae661b183663fca6582dcc37458e8a51dd7eb4fbd1d3a9946f7c67cb756b69460f0e23b03cc96eb SHA512 0e5f5971dc9e586911f98122a410c98d8aaef2795d2d68488a1e9468ea45135479dac7f92708c973db4f8efce78cb0c6b3759cf239fba6237052434a2120d4d3 -EBUILD zig-bin-0.9.1.ebuild 915 BLAKE2B c4b465f7342216ef2cbd9485bc821f4e3611d26861f1dde99b8f7f54ba7e8796f798e2f457fc10b47b6a8e2fd3a0e7fd7f4ee276ef60ba99a7f18fd2cfd8c5e4 SHA512 45e65d01e738e87b7a5f4c2cd892cc10eb723e17dfcb551f96990050f77ef14d6f144bc81207e5d30ee473af593c02c9df589f7f775d4012a04186af89378418 +EBUILD zig-bin-0.9.1-r1.ebuild 1482 BLAKE2B 1feaede767f5be72609d75c748d17d0b6df948014937887cb07f96381af9715a3dae9a192c4133501348a264bc19fee032eeaf1b33b657b819fe6bc849749117 SHA512 116e69284f2c65e7e7f75c609a742bbb858cb8e308d14563c159a62cb6e9778cdaba34e5c120bb876d2c693a3739250ff70d6dd0ce1788ec7bf1e07c5a8f4cd1 MISC metadata.xml 541 BLAKE2B 6f5c7fbf759f0430f69073a17a0dae4b8bebf335b54c3b43da6b24104dc3de05a3b686cddbbd31e4dae1fc31695a2f08d000d22437ed6f1847de8fa95e3b1952 SHA512 d49cf0a8ad76ac9a6f6fb091effddbbcd812b56f91df6d3c782e15197cb4ff4423fb1076671a232aabcb9833af19ef8c820ad6df312a1e4d72e665680314c083 diff --git a/dev-lang/zig-bin/files/zig-bin-0.9.1-fix-bad-hostname-segfault.patch b/dev-lang/zig-bin/files/zig-bin-0.9.1-fix-bad-hostname-segfault.patch new file mode 100644 index 000000000000..2e87ecc6d6ee --- /dev/null +++ b/dev-lang/zig-bin/files/zig-bin-0.9.1-fix-bad-hostname-segfault.patch @@ -0,0 +1,26 @@ +https://github.com/ziglang/zig/commit/601d8f721d6dc90ac390bf5ecc7d8bafdd6a30d8 +Bug https://bugs.gentoo.org/829959 + +From 601d8f721d6dc90ac390bf5ecc7d8bafdd6a30d8 Mon Sep 17 00:00:00 2001 +From: Veikka Touminen <git@vexu.eu> +Date: Sun, 10 Jul 2022 04:27:23 -0600 +Subject: [PATCH] std.net.getAddressList: fix segfault on bad hostname + +Fixes #12065 +--- + lib/std/net.zig | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lib/std/net.zig b/lib/std/net.zig +index 235ad8496a1..c381df9bce7 100644 +--- a/lib/std/net.zig ++++ b/lib/std/net.zig +@@ -731,7 +731,7 @@ pub fn getAddressList(allocator: mem.Allocator, name: []const u8, port: u16) !*A + break :blk result; + }; + const arena = result.arena.allocator(); +- errdefer result.arena.deinit(); ++ errdefer result.deinit(); + + if (builtin.target.os.tag == .windows or builtin.link_libc) { + const name_c = try std.cstr.addNullByte(allocator, name); diff --git a/dev-lang/zig-bin/files/zig-bin-0.9.1-fix-detecting-abi.patch b/dev-lang/zig-bin/files/zig-bin-0.9.1-fix-detecting-abi.patch deleted file mode 100644 index 6aa2f49b379a..000000000000 --- a/dev-lang/zig-bin/files/zig-bin-0.9.1-fix-detecting-abi.patch +++ /dev/null @@ -1,19 +0,0 @@ -From: Eric Joldasov <bratishkaerik@getgoogleoff.me> - -Upstream parses /usr/bin/env ELF file for detecting C ABI and the dynamic linker. -However, if sys-apps/coreutils was merged with "multicall" USE flag, it would be a script and not a ELF file. -This will raise error.UnexpectedEndOfFile, and Zig will fallback to default dynamic linker (i.e. musl), -which breaks building programs with Zig on glibc systems. This patch changes file from -/usr/bin/env to /bin/bash, because it is more reliable on Gentoo systems. - ---- a/lib/std/zig/system/NativeTargetInfo.zig -+++ b/lib/std/zig/system/NativeTargetInfo.zig -@@ -355,7 +355,7 @@ fn detectAbiAndDynamicLinker( - return result; - } - -- const env_file = std.fs.openFileAbsoluteZ("/usr/bin/env", .{}) catch |err| switch (err) { -+ const env_file = std.fs.openFileAbsoluteZ("/bin/bash", .{}) catch |err| switch (err) { - error.NoSpaceLeft => unreachable, - error.NameTooLong => unreachable, - error.PathAlreadyExists => unreachable, diff --git a/dev-lang/zig-bin/zig-bin-0.9.1.ebuild b/dev-lang/zig-bin/zig-bin-0.9.1-r1.ebuild index 7aa14d86a3ea..b731f0d2c5d7 100644 --- a/dev-lang/zig-bin/zig-bin-0.9.1.ebuild +++ b/dev-lang/zig-bin/zig-bin-0.9.1-r1.ebuild @@ -17,7 +17,17 @@ KEYWORDS="-* ~amd64 ~arm ~arm64 ~x86" RDEPEND="!dev-lang/zig" -PATCHES=( "${FILESDIR}/${P}-fix-detecting-abi.patch" ) +SRC_URI+=" https://codeberg.org/BratishkaErik/distfiles/media/branch/master/zig-0.9.1-fix-detecting-abi.patch" + +# Zig provides its standard library in source form "/opt/zig-bin-{PV}/lib/", +# and all other Zig libraries are meant to be consumed in source form, +# because they can use compile-time mechanics (and it is easier for distributions to patch them) +# Here we use this feature for fixing programs that use standard library +# Note: Zig build system is also part of standard library, so we can fix it too +PATCHES=( + "${FILESDIR}/${P}-fix-bad-hostname-segfault.patch" + "${DISTDIR}/zig-0.9.1-fix-detecting-abi.patch" +) QA_PREBUILT="opt/${P}/zig" diff --git a/dev-lang/zig/Manifest b/dev-lang/zig/Manifest index 68ff7750a6f3..49ce3f69896b 100644 --- a/dev-lang/zig/Manifest +++ b/dev-lang/zig/Manifest @@ -1,7 +1,9 @@ +AUX zig-0.9.1-fix-bad-hostname-segfault.patch 935 BLAKE2B c1c54ccf40b4db9a8f9f68991e1ebafd81c2b996b41bd904ef842f5feed2d4ec19d61960ed1bda95873cb04a9fc58df7daa5d311537c9711f5100fb095eeb6db SHA512 c620da70b632e5a85d3136d6d54e42fe905ce8b5d899ca5ca9423ac7e7eaff036eea1f90a925c244794c0505469bf1320f5fd5d19d465c66505154ca78bcf519 AUX zig-0.9.1-fix-riscv.patch 1853 BLAKE2B 0d0c9e1d639ed1a5228ad7db3182f848d9f6deba0e8e091d993256b90fdf152def7f80446ba19aeee0bd4c6d6a87dfcba5df311a54ede2b79510b6552cb2da9c SHA512 5c85a7fed80b5d157c99f80cf9971cdd91c93477de49ad01d163956ebc17d267d6a0002212fe16f5ca04b35c96e5f4721d1be44c6f4955429940763d924cc92f AUX zig-0.9.1-fix-single-threaded.patch 390 BLAKE2B 443a5ab709aa90ed92636310c204a15cbb60a997ff39f7f7102fdd4f21f66e64bd79516653729ecbd719aeb39809457c3db2d1c3c9d0614d1fb637307cc2a892 SHA512 f4e6f87a3aae5380c3f3e1eda85f10914119a378dd08c8375d18dd038dc0b131234a62fd86f46f64cd2038e5abd787e4a7876929fceac85b01bd6e4bce3b3263 AUX zig-9999-stage2-fix.patch 502 BLAKE2B 9f4b8a31bac02ec2895a865f4a724b8431311c4656cbe1a19cb8f861020e2408fe9a7ce5f753ef3ca8f30adf178467b9d16e0019edbfb9b5227d7a4619345fa4 SHA512 d76b13adc6f594693099c4d45c50430cfde4c7c4b7baeededc1272c2284da81758efc91d7282b3e3a5adae4846ae697b4593e80b3e1241c0ba6b936f56c54592 +DIST zig-0.9.1-fix-detecting-abi.patch 22233 BLAKE2B fa523c4c4c23a74c0b4f85c6d2d91ef98b31d25694bb9dbc7988b82db972a16ab273aa9f1883cfa8ca79ef7fc56fca67d0a8656ba248b6db47bc902b7ac64a93 SHA512 259967f88f54c20f556bd9d67189ce3a2cfeb0250f0cee4dffb29020d976d61265a5dd9ae9cfcadfb7b1e152b47ee17f4184eafac2b80495f4ee8f98733cd692 DIST zig-0.9.1.tar.xz 13940828 BLAKE2B 996b0e945f61b01dddbb7c8674a9e2d2d01b93eb48fdfd2c986496330990ffa64cba15f8bd8518b90ef6f514759ba6cc3fd31d6044c5b11b92bf92e3f7f15303 SHA512 0b8a5f9b7e34e4252536f59bc91429f1e76b2bf8e01f024095919f6ecf34db56b5c86c554fbb94bdcb5255394c87f2c87519c8f34c631f53816927ec0882ae2d -EBUILD zig-0.9.1.ebuild 1345 BLAKE2B 6a7b7477f9e3d8c7b54a1352870d844b3eb5655baf02fa1491c008f53591137db0347323fabdb549c97085ca67f85c7c3ffc48e7182ab8ebfb041bd234a44166 SHA512 eb3df8a8e086406305c2e00409cbf309a9cc7d518e6776360ecf6916b2a641a3640bb5321d264ccf0f454beda000d57762d81114dab0e0d1f7629c98c8d5edbf +EBUILD zig-0.9.1-r1.ebuild 1556 BLAKE2B a34a4d359ed56a5a056a6c0d2dcc50ea51004b124bee21f258601aa13d3a8901ad52bf1abfe30e748ed1b396a60764d02b2fca468078a6824a463135cd24d36b SHA512 4a051bab1ecbb431f0fcabfabf9c5fc758313001d85bd9b15f3cecbfd1a1ee65877563c85150220acc19d5601730669bf356f0caa12cd9a47705aed599f3f283 EBUILD zig-9999.ebuild 1852 BLAKE2B 9d22f4948566d50cdef2a8d14ef0c08e97e62c15687626c99a39ed27a734e0cc4e01c979996b471f9616189d520ab82d8147a63d065dcee622cfc112cb48d9f6 SHA512 adcfb7fa6297c131ac0f846f29c7c9475a897311acf16531c2dfbd7393af7f7355dffb45917c31550423768644688a1e79ac3cc50557349ab00feb2b65d9d892 MISC metadata.xml 541 BLAKE2B 6f5c7fbf759f0430f69073a17a0dae4b8bebf335b54c3b43da6b24104dc3de05a3b686cddbbd31e4dae1fc31695a2f08d000d22437ed6f1847de8fa95e3b1952 SHA512 d49cf0a8ad76ac9a6f6fb091effddbbcd812b56f91df6d3c782e15197cb4ff4423fb1076671a232aabcb9833af19ef8c820ad6df312a1e4d72e665680314c083 diff --git a/dev-lang/zig/files/zig-0.9.1-fix-bad-hostname-segfault.patch b/dev-lang/zig/files/zig-0.9.1-fix-bad-hostname-segfault.patch new file mode 100644 index 000000000000..2e87ecc6d6ee --- /dev/null +++ b/dev-lang/zig/files/zig-0.9.1-fix-bad-hostname-segfault.patch @@ -0,0 +1,26 @@ +https://github.com/ziglang/zig/commit/601d8f721d6dc90ac390bf5ecc7d8bafdd6a30d8 +Bug https://bugs.gentoo.org/829959 + +From 601d8f721d6dc90ac390bf5ecc7d8bafdd6a30d8 Mon Sep 17 00:00:00 2001 +From: Veikka Touminen <git@vexu.eu> +Date: Sun, 10 Jul 2022 04:27:23 -0600 +Subject: [PATCH] std.net.getAddressList: fix segfault on bad hostname + +Fixes #12065 +--- + lib/std/net.zig | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lib/std/net.zig b/lib/std/net.zig +index 235ad8496a1..c381df9bce7 100644 +--- a/lib/std/net.zig ++++ b/lib/std/net.zig +@@ -731,7 +731,7 @@ pub fn getAddressList(allocator: mem.Allocator, name: []const u8, port: u16) !*A + break :blk result; + }; + const arena = result.arena.allocator(); +- errdefer result.arena.deinit(); ++ errdefer result.deinit(); + + if (builtin.target.os.tag == .windows or builtin.link_libc) { + const name_c = try std.cstr.addNullByte(allocator, name); diff --git a/dev-lang/zig/zig-0.9.1.ebuild b/dev-lang/zig/zig-0.9.1-r1.ebuild index 0c78b3e76b08..10a957c326e9 100644 --- a/dev-lang/zig/zig-0.9.1.ebuild +++ b/dev-lang/zig/zig-0.9.1-r1.ebuild @@ -16,6 +16,7 @@ else KEYWORDS="~amd64 ~arm ~arm64" fi +SRC_URI+=" https://codeberg.org/BratishkaErik/distfiles/media/branch/master/zig-0.9.1-fix-detecting-abi.patch" LICENSE="MIT" SLOT="0" IUSE="test +threads" @@ -24,6 +25,8 @@ RESTRICT="!test? ( test )" PATCHES=( "${FILESDIR}/${P}-fix-single-threaded.patch" "${FILESDIR}/${P}-fix-riscv.patch" + "${FILESDIR}/${P}-fix-bad-hostname-segfault.patch" + "${DISTDIR}/zig-0.9.1-fix-detecting-abi.patch" ) BUILD_DIR="${S}/build" |