summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-lang')
-rw-r--r--dev-lang/R/Manifest5
-rw-r--r--dev-lang/R/R-3.4.1.ebuild203
-rw-r--r--dev-lang/R/R-4.3.1-r1.ebuild (renamed from dev-lang/R/R-3.6.3-r1.ebuild)172
-rw-r--r--dev-lang/R/R-4.3.2-r1.ebuild (renamed from dev-lang/R/R-4.0.2.ebuild)177
-rw-r--r--dev-lang/R/files/R-3.4.1-rmath-shared.patch21
-rw-r--r--dev-lang/R/files/R-4.3.0-no-LDFLAGS-in-libR-pkg-config.patch (renamed from dev-lang/R/files/R-3.6.2-no-LDFLAGS-in-libR-pkg-config.patch)4
-rw-r--r--dev-lang/R/files/R-4.3.0-no-gzip-doc.patch (renamed from dev-lang/R/files/R-3.6.2-no-gzip-doc.patch)4
-rw-r--r--dev-lang/R/files/R-4.3.0-parallel.patch (renamed from dev-lang/R/files/R-3.4.1-parallel.patch)4
-rw-r--r--dev-lang/R/metadata.xml43
-rw-r--r--dev-lang/abs/Manifest2
-rw-r--r--dev-lang/abs/abs-2.6.0.ebuild30
-rw-r--r--dev-lang/abs/metadata.xml14
-rw-r--r--dev-lang/algol68g/Manifest1
-rw-r--r--dev-lang/algol68g/algol68g-3.5.1.ebuild41
-rw-r--r--dev-lang/algol68g/files/algol68g-3.3.21-configure-implicit.patch13
-rw-r--r--dev-lang/algol68g/metadata.xml20
-rw-r--r--dev-lang/ammonite-repl-bin/Manifest8
-rw-r--r--dev-lang/ammonite-repl-bin/ammonite-repl-bin-2.5.11.ebuild49
-rw-r--r--dev-lang/ammonite-repl-bin/ammonite-repl-bin-2.5.9.ebuild49
-rw-r--r--dev-lang/ammonite-repl-bin/metadata.xml23
-rw-r--r--dev-lang/arc/Manifest1
-rw-r--r--dev-lang/arc/arc-3.2.ebuild39
-rw-r--r--dev-lang/arc/metadata.xml18
-rw-r--r--dev-lang/ats/Manifest1
-rw-r--r--dev-lang/ats/ats-0.2.9.ebuild33
-rw-r--r--dev-lang/ats/metadata.xml11
-rw-r--r--dev-lang/ats2/Manifest1
-rw-r--r--dev-lang/ats2/ats2-0.4.2.ebuild94
-rw-r--r--dev-lang/ats2/files/50ats2-gentoo.el4
-rw-r--r--dev-lang/ats2/metadata.xml22
-rw-r--r--dev-lang/bas/metadata.xml2
-rw-r--r--dev-lang/bashforth/Manifest1
-rw-r--r--dev-lang/bashforth/bashforth-0.58a.ebuild25
-rw-r--r--dev-lang/bashforth/metadata.xml8
-rw-r--r--dev-lang/bff/Manifest2
-rw-r--r--dev-lang/bff/bff-1.0.7.ebuild (renamed from dev-lang/bff/bff-1.0.5.ebuild)6
-rw-r--r--dev-lang/bff/metadata.xml2
-rw-r--r--dev-lang/boogie/Manifest193
-rw-r--r--dev-lang/boogie/boogie-3.1.3.ebuild303
-rw-r--r--dev-lang/boogie/boogie-3.1.4.ebuild303
-rw-r--r--dev-lang/boogie/boogie-3.1.5.ebuild303
-rw-r--r--dev-lang/boogie/files/boogie-3.0.4-disable-analyzers.patch18
-rw-r--r--dev-lang/boogie/metadata.xml24
-rw-r--r--dev-lang/c-intercal/c-intercal-31.0.ebuild6
-rw-r--r--dev-lang/c-intercal/metadata.xml2
-rw-r--r--dev-lang/cfortran/Manifest4
-rw-r--r--dev-lang/cfortran/cfortran-20110621.ebuild62
-rw-r--r--dev-lang/cfortran/cfortran-20210827.ebuild65
-rw-r--r--dev-lang/cfortran/cfortran-4.4-r4.ebuild (renamed from dev-lang/cfortran/cfortran-4.4-r3.ebuild)17
-rw-r--r--dev-lang/cfortran/metadata.xml15
-rw-r--r--dev-lang/clips/Manifest1
-rw-r--r--dev-lang/clips/clips-6.40.ebuild33
-rw-r--r--dev-lang/clips/files/clips-makefile-remove_hardcoded.patch33
-rw-r--r--dev-lang/clips/metadata.xml18
-rw-r--r--dev-lang/clipsjni/Manifest1
-rw-r--r--dev-lang/clipsjni/clipsjni-6.40-r1.ebuild79
-rw-r--r--dev-lang/clipsjni/files/clipsjni-library-src_makefile.lnx-remove_hardcoded.patch34
-rw-r--r--dev-lang/clipsjni/files/clipsjni-makefile.lnx-java.patch64
-rw-r--r--dev-lang/clipsjni/metadata.xml19
-rw-r--r--dev-lang/cll1h/metadata.xml2
-rw-r--r--dev-lang/clojure/Manifest22
-rw-r--r--dev-lang/clojure/clojure-1.10.0.ebuild50
-rw-r--r--dev-lang/clojure/clojure-1.11.1-r1.ebuild93
-rw-r--r--dev-lang/clojure/clojure-1.11.2-r1.ebuild108
-rw-r--r--dev-lang/clojure/clojure-1.11.3.ebuild110
-rw-r--r--dev-lang/clojure/clojure-1.8.0.ebuild32
-rw-r--r--dev-lang/clojure/clojure-1.9.0-r1.ebuild50
-rw-r--r--dev-lang/clojure/files/add-compile-spec-ant-build-target.patch54
-rw-r--r--dev-lang/clojure/metadata.xml8
-rw-r--r--dev-lang/closure-compiler-bin/Manifest2
-rw-r--r--dev-lang/closure-compiler-bin/closure-compiler-bin-20170218.ebuild29
-rw-r--r--dev-lang/closure-compiler-bin/closure-compiler-bin-20240317.ebuild43
-rw-r--r--dev-lang/closure-compiler-bin/metadata.xml17
-rw-r--r--dev-lang/coffee-script/Manifest2
-rw-r--r--dev-lang/coffee-script/coffee-script-2.7.0.ebuild (renamed from dev-lang/coffee-script/coffee-script-2.5.1.ebuild)26
-rw-r--r--dev-lang/coffee-script/metadata.xml24
-rw-r--r--dev-lang/crystal/Manifest7
-rw-r--r--dev-lang/crystal/crystal-0.35.1.ebuild121
-rw-r--r--dev-lang/crystal/crystal-1.11.2.ebuild120
-rw-r--r--dev-lang/crystal/crystal-1.12.1.ebuild120
-rw-r--r--dev-lang/crystal/files/crystal-0.22.0-blocking-stdio-hack.patch20
-rw-r--r--dev-lang/crystal/files/crystal-0.26.1-gentoo-tests-sandbox.patch22
-rw-r--r--dev-lang/crystal/files/crystal-0.27.0-extra-spec-flags.patch11
-rw-r--r--dev-lang/crystal/files/crystal-0.27.0-max-age-0-test.patch14
-rw-r--r--dev-lang/crystal/files/crystal-0.31.0-verbose.patch7
-rw-r--r--dev-lang/crystal/files/crystal-1.7.2-extra-spec-flags.patch11
-rw-r--r--dev-lang/crystal/metadata.xml48
-rw-r--r--dev-lang/cue/Manifest2
-rw-r--r--dev-lang/cue/cue-0.7.0.ebuild24
-rw-r--r--dev-lang/cue/metadata.xml8
-rw-r--r--dev-lang/cxprolog/cxprolog-0.98.2-r1.ebuild (renamed from dev-lang/cxprolog/cxprolog-0.98.2.ebuild)18
-rw-r--r--dev-lang/cxprolog/files/cxprolog-0.98.2-printf-musl.patch14
-rw-r--r--dev-lang/cxprolog/metadata.xml2
-rw-r--r--dev-lang/dafny-bin/Manifest3
-rw-r--r--dev-lang/dafny-bin/dafny-bin-4.4.0-r1.ebuild56
-rw-r--r--dev-lang/dafny-bin/dafny-bin-4.5.0-r1.ebuild56
-rw-r--r--dev-lang/dafny-bin/dafny-bin-4.6.0.ebuild56
-rw-r--r--dev-lang/dafny-bin/metadata.xml33
-rw-r--r--dev-lang/dafny/Manifest371
-rw-r--r--dev-lang/dafny/dafny-4.4.0-r1.ebuild592
-rw-r--r--dev-lang/dafny/dafny-4.5.0.ebuild624
-rw-r--r--dev-lang/dafny/dafny-4.6.0.ebuild627
-rw-r--r--dev-lang/dafny/files/dafny-3.12.0-DafnyCore-csproj.patch13
-rw-r--r--dev-lang/dafny/files/dafny-3.12.0-DafnyRuntime-csproj.patch11
-rw-r--r--dev-lang/dafny/files/dafny-4.4.0-lit-config.patch14
-rw-r--r--dev-lang/dafny/files/dafny-4.4.0-lit-system-boogie.patch11
-rw-r--r--dev-lang/dafny/files/dafny-4.5.0-lit-config.patch20
-rw-r--r--dev-lang/dafny/metadata.xml34
-rw-r--r--dev-lang/duktape/Manifest4
-rw-r--r--dev-lang/duktape/duktape-2.4.0.ebuild43
-rw-r--r--dev-lang/duktape/duktape-2.5.0-r1.ebuild49
-rw-r--r--dev-lang/duktape/duktape-2.6.0.ebuild51
-rw-r--r--dev-lang/duktape/duktape-2.7.0-r3.ebuild37
-rw-r--r--dev-lang/duktape/files/duktape-2.6.0-respect-tc-env.patch33
-rw-r--r--dev-lang/duktape/files/duktape-2.7.0-respect-tc-env.patch24
-rw-r--r--dev-lang/duktape/files/duktape-2.7.0-underlinked-libm.patch25
-rw-r--r--dev-lang/duktape/files/duktape.pc10
-rw-r--r--dev-lang/duktape/metadata.xml16
-rw-r--r--dev-lang/dzaima-bqn/Manifest1
-rw-r--r--dev-lang/dzaima-bqn/dzaima-bqn-0.2.1.ebuild61
-rw-r--r--dev-lang/dzaima-bqn/dzaima-bqn-9999.ebuild61
-rw-r--r--dev-lang/dzaima-bqn/metadata.xml13
-rw-r--r--dev-lang/eisl/Manifest3
-rw-r--r--dev-lang/eisl/eisl-3.70.ebuild52
-rw-r--r--dev-lang/eisl/eisl-3.72.ebuild52
-rw-r--r--dev-lang/eisl/eisl-3.90.ebuild52
-rw-r--r--dev-lang/eisl/eisl-9999.ebuild48
-rw-r--r--dev-lang/eisl/files/eisl-3.60-Makefile.patch32
-rw-r--r--dev-lang/eisl/metadata.xml18
-rw-r--r--dev-lang/elixir/Manifest8
-rw-r--r--dev-lang/elixir/elixir-1.13.4-r1.ebuild (renamed from dev-lang/elixir/elixir-1.11.2.ebuild)12
-rw-r--r--dev-lang/elixir/elixir-1.14.3-r1.ebuild (renamed from dev-lang/elixir/elixir-1.11.3.ebuild)12
-rw-r--r--dev-lang/elixir/elixir-1.14.5-r2.ebuild41
-rw-r--r--dev-lang/elixir/elixir-1.15.7.ebuild (renamed from dev-lang/elixir/elixir-1.10.4.ebuild)10
-rw-r--r--dev-lang/elixir/elixir-1.16.2.ebuild40
-rw-r--r--dev-lang/elixir/files/elixir-1.11.2-mksh.patch81
-rw-r--r--dev-lang/elixir/files/elixir-1.14.1-make44-parallel-build.patch27
-rw-r--r--dev-lang/elixir/files/elixir-1.14.5-otp26-tests.patch107
-rw-r--r--dev-lang/elixir/files/elixir-1.16.1-skip-tests-requiring-erlang-docs.patch90
-rw-r--r--dev-lang/elixir/metadata.xml18
-rw-r--r--dev-lang/elpi/Manifest2
-rw-r--r--dev-lang/elpi/elpi-1.17.0.ebuild47
-rw-r--r--dev-lang/elpi/elpi-1.17.4.ebuild47
-rw-r--r--dev-lang/elpi/metadata.xml27
-rw-r--r--dev-lang/erlang/Manifest27
-rw-r--r--dev-lang/erlang/erlang-23.0.4.ebuild158
-rw-r--r--dev-lang/erlang/erlang-23.2.ebuild159
-rw-r--r--dev-lang/erlang/erlang-25.3.ebuild (renamed from dev-lang/erlang/erlang-23.1.4.ebuild)57
-rw-r--r--dev-lang/erlang/erlang-26.0.ebuild (renamed from dev-lang/erlang/erlang-23.2.2.ebuild)56
-rw-r--r--dev-lang/erlang/erlang-26.1.2.ebuild (renamed from dev-lang/erlang/erlang-23.2.1.ebuild)61
-rw-r--r--dev-lang/erlang/erlang-26.2.1.ebuild (renamed from dev-lang/erlang/erlang-23.1.5.ebuild)70
-rw-r--r--dev-lang/erlang/erlang-26.2.2.ebuild186
-rw-r--r--dev-lang/erlang/erlang-26.2.4.ebuild187
-rw-r--r--dev-lang/erlang/erlang-26.2.ebuild183
-rw-r--r--dev-lang/erlang/files/18.2.1-wx3.0.patch113
-rw-r--r--dev-lang/erlang/files/epmd.confd-r22
-rw-r--r--dev-lang/erlang/files/epmd.init26
-rw-r--r--dev-lang/erlang/files/epmd.init-r3 (renamed from dev-lang/erlang/files/epmd.init-r2)4
-rw-r--r--dev-lang/erlang/files/epmd.service9
-rw-r--r--dev-lang/erlang/files/erlang-23.1.2-ac2.70.patch99
-rw-r--r--dev-lang/erlang/files/erlang-24.0.2-serial-configure.patch12
-rw-r--r--dev-lang/erlang/files/erlang-25.1.2-c99.patch101
-rw-r--r--dev-lang/erlang/files/erlang-26.2.4-test-errorinfo.patch14
-rw-r--r--dev-lang/erlang/metadata.xml18
-rw-r--r--dev-lang/esco/Manifest2
-rw-r--r--dev-lang/esco/esco-0.513.ebuild (renamed from dev-lang/esco/esco-0.512.ebuild)13
-rw-r--r--dev-lang/esco/metadata.xml18
-rw-r--r--dev-lang/execline/Manifest9
-rw-r--r--dev-lang/execline/execline-2.1.1.0.ebuild54
-rw-r--r--dev-lang/execline/execline-2.3.0.3.ebuild55
-rw-r--r--dev-lang/execline/execline-2.3.0.4.ebuild55
-rw-r--r--dev-lang/execline/execline-2.5.0.1.ebuild44
-rw-r--r--dev-lang/execline/execline-2.5.1.0.ebuild42
-rw-r--r--dev-lang/execline/execline-2.5.3.0.ebuild42
-rw-r--r--dev-lang/execline/execline-2.6.1.1.ebuild42
-rw-r--r--dev-lang/execline/execline-2.9.4.0.ebuild51
-rw-r--r--dev-lang/execline/execline-2.9.5.1.ebuild51
-rw-r--r--dev-lang/execline/metadata.xml6
-rw-r--r--dev-lang/f2c/Manifest2
-rw-r--r--dev-lang/f2c/f2c-20100827-r1.ebuild10
-rw-r--r--dev-lang/f2c/f2c-20240130.ebuild48
-rw-r--r--dev-lang/f2c/f2c-20240312.ebuild39
-rw-r--r--dev-lang/f2c/metadata.xml2
-rw-r--r--dev-lang/fennel/Manifest2
-rw-r--r--dev-lang/fennel/fennel-1.4.0-r2.ebuild56
-rw-r--r--dev-lang/fennel/fennel-1.4.2-r1.ebuild56
-rw-r--r--dev-lang/fennel/metadata.xml25
-rw-r--r--dev-lang/ferite/Manifest1
-rw-r--r--dev-lang/ferite/ferite-1.1.17-r1.ebuild83
-rw-r--r--dev-lang/ferite/files/ferite-pcre.patch26
-rw-r--r--dev-lang/ferite/metadata.xml8
-rw-r--r--dev-lang/fpc/Manifest12
-rw-r--r--dev-lang/fpc/files/fpc-3.2.2-sparc-find-libs.patch16
-rw-r--r--dev-lang/fpc/fpc-3.0.4.ebuild165
-rw-r--r--dev-lang/fpc/fpc-3.2.2.ebuild199
-rw-r--r--dev-lang/fpc/metadata.xml5
-rw-r--r--dev-lang/fuzion/Manifest1
-rw-r--r--dev-lang/fuzion/fuzion-0.086.ebuild81
-rw-r--r--dev-lang/fuzion/metadata.xml19
-rw-r--r--dev-lang/gdl/Manifest3
-rw-r--r--dev-lang/gdl/files/gdl-1.0.1-cmake.patch (renamed from dev-lang/gdl/files/gdl-1.0.0_rc3-cmake.patch)56
-rw-r--r--dev-lang/gdl/files/gdl-1.0.4-cmake.patch100
-rw-r--r--dev-lang/gdl/gdl-1.0.1-r2.ebuild (renamed from dev-lang/gdl/gdl-1.0.0_rc3.ebuild)99
-rw-r--r--dev-lang/gdl/gdl-1.0.4-r1.ebuild149
-rw-r--r--dev-lang/gdl/gdl-1.0.4.ebuild149
-rw-r--r--dev-lang/gdl/metadata.xml4
-rw-r--r--dev-lang/gforth/files/gforth-0.7.3-CFLAGS-LDFLAGS.patch27
-rw-r--r--dev-lang/gforth/gforth-0.7.3-r2.ebuild (renamed from dev-lang/gforth/gforth-0.7.3-r1.ebuild)14
-rw-r--r--dev-lang/gforth/metadata.xml16
-rw-r--r--dev-lang/ghc/Manifest99
-rw-r--r--dev-lang/ghc/files/ghc-7.10.1-rc3-ghc-7.10-bootstrap.patch78
-rw-r--r--dev-lang/ghc/files/ghc-7.10.3-hardfloat.patch26
-rw-r--r--dev-lang/ghc/files/ghc-7.10.3-relnotes.patch45
-rw-r--r--dev-lang/ghc/files/ghc-7.6.3-preserve-inplace-xattr.patch14
-rw-r--r--dev-lang/ghc/files/ghc-7.8.1_rc1-libbfd.patch81
-rw-r--r--dev-lang/ghc/files/ghc-7.8.2-cgen-constify.patch34
-rw-r--r--dev-lang/ghc/files/ghc-7.8.3-linker-warn.patch35
-rw-r--r--dev-lang/ghc/files/ghc-7.8.3-pic-sparc.patch31
-rw-r--r--dev-lang/ghc/files/ghc-7.8.3-ppc32-fPIC.patch351
-rw-r--r--dev-lang/ghc/files/ghc-7.8.3-prim-lm.patch12
-rw-r--r--dev-lang/ghc/files/ghc-7.8.4-gold.patch27
-rw-r--r--dev-lang/ghc/files/ghc-7.8.4-ia64-CLOSUREs.patch66
-rw-r--r--dev-lang/ghc/files/ghc-8.0.1-limit-jN.patch50
-rw-r--r--dev-lang/ghc/files/ghc-8.0.1-par-g0-on-A32.patch65
-rw-r--r--dev-lang/ghc/files/ghc-8.0.1-ww-args-limit.patch127
-rw-r--r--dev-lang/ghc/files/ghc-8.0.1_rc1-cgen-constify.patch34
-rw-r--r--dev-lang/ghc/files/ghc-8.0.2-O2-unreg.patch35
-rw-r--r--dev-lang/ghc/files/ghc-8.0.2-binutils-2.30.patch65
-rw-r--r--dev-lang/ghc/files/ghc-8.0.2-libffi-alpha.patch57
-rw-r--r--dev-lang/ghc/files/ghc-8.0.2-no-relax-everywhere.patch17
-rw-r--r--dev-lang/ghc/files/ghc-8.0.2_rc2-old-sphinx.patch12
-rw-r--r--dev-lang/ghc/files/ghc-8.10.1-no-relax-everywhere.patch19
-rw-r--r--dev-lang/ghc/files/ghc-8.10.2-revert-linker-rtsSymbols_more_linker_symbols.patch296
-rw-r--r--dev-lang/ghc/files/ghc-8.2.1_rc1-cgen-constify.patch378
-rw-r--r--dev-lang/ghc/files/ghc-8.2.1_rc1-ghci-cross.patch60
-rw-r--r--dev-lang/ghc/files/ghc-8.2.1_rc1-hp2ps-cross.patch104
-rw-r--r--dev-lang/ghc/files/ghc-8.2.1_rc1-stage2-cross.patch81
-rw-r--r--dev-lang/ghc/files/ghc-8.2.1_rc1-staged-cross.patch43
-rw-r--r--dev-lang/ghc/files/ghc-8.2.1_rc1-unphased-cross.patch30
-rw-r--r--dev-lang/ghc/files/ghc-8.2.1_rc1-win32-cross-1.patch124
-rw-r--r--dev-lang/ghc/files/ghc-8.2.1_rc2-O2-unreg.patch35
-rw-r--r--dev-lang/ghc/files/ghc-8.2.1_rc3-any-vendor.patch44
-rw-r--r--dev-lang/ghc/files/ghc-8.2.1_rc3-stginit-data.patch27
-rw-r--r--dev-lang/ghc/files/ghc-8.4.2-allow-cross-bootstrap.patch23
-rw-r--r--dev-lang/ghc/files/ghc-8.6.5-numa.patch22
-rw-r--r--dev-lang/ghc/files/ghc-8.8.1-no-alex.patch33
-rw-r--r--dev-lang/ghc/files/ghc-8.8.1-revert-CPP.patch52
-rw-r--r--dev-lang/ghc/files/ghc-9.0.2-CHOST-prefix.patch (renamed from dev-lang/ghc/files/ghc-7.0.4-CHOST-prefix.patch)4
-rw-r--r--dev-lang/ghc/files/ghc-9.0.2-darwin.patch (renamed from dev-lang/ghc/files/ghc-8.2.1-darwin.patch)4
-rw-r--r--dev-lang/ghc/files/ghc-9.0.2-disable-unboxed-arrays.patch39
-rw-r--r--dev-lang/ghc/files/ghc-9.0.2-fix-tests-python310.patch33
-rw-r--r--dev-lang/ghc/files/ghc-9.0.2-fptools.patch26
-rw-r--r--dev-lang/ghc/files/ghc-9.0.2-llvm-13.patch26
-rw-r--r--dev-lang/ghc/files/ghc-9.0.2-llvm-14.patch15
-rw-r--r--dev-lang/ghc/files/ghc-9.0.2-modorigin-semigroup.patch27
-rw-r--r--dev-lang/ghc/files/ghc-9.0.2-sphinx-6.patch41
-rw-r--r--dev-lang/ghc/files/ghc-9.0.2-verbose-modunusable.patch12
-rw-r--r--dev-lang/ghc/files/ghc-9.2.6-fix-alignment-of-capability.patch249
-rw-r--r--dev-lang/ghc/files/ghc-9.2.7-modorigin-semigroup.patch33
-rw-r--r--dev-lang/ghc/files/latomic-subword87
-rw-r--r--dev-lang/ghc/ghc-7.10.3.ebuild674
-rw-r--r--dev-lang/ghc/ghc-7.8.4.ebuild600
-rw-r--r--dev-lang/ghc/ghc-8.0.2.ebuild672
-rw-r--r--dev-lang/ghc/ghc-8.10.1.ebuild797
-rw-r--r--dev-lang/ghc/ghc-8.2.1.ebuild754
-rw-r--r--dev-lang/ghc/ghc-8.2.2.ebuild755
-rw-r--r--dev-lang/ghc/ghc-8.4.1.ebuild755
-rw-r--r--dev-lang/ghc/ghc-8.4.2.ebuild760
-rw-r--r--dev-lang/ghc/ghc-8.4.3.ebuild759
-rw-r--r--dev-lang/ghc/ghc-8.6.4.ebuild775
-rw-r--r--dev-lang/ghc/ghc-8.6.5.ebuild784
-rw-r--r--dev-lang/ghc/ghc-8.8.1.ebuild804
-rw-r--r--dev-lang/ghc/ghc-8.8.2.ebuild803
-rw-r--r--dev-lang/ghc/ghc-8.8.3.ebuild808
-rw-r--r--dev-lang/ghc/ghc-8.8.4.ebuild809
-rw-r--r--dev-lang/ghc/ghc-9.0.2-r4.ebuild (renamed from dev-lang/ghc/ghc-8.10.3.ebuild)292
-rw-r--r--dev-lang/ghc/ghc-9.2.8.ebuild (renamed from dev-lang/ghc/ghc-8.10.2.ebuild)354
-rw-r--r--dev-lang/ghc/metadata.xml7
-rw-r--r--dev-lang/gleam/Manifest2
-rw-r--r--dev-lang/gleam/gleam-1.1.0.ebuild33
-rw-r--r--dev-lang/gleam/metadata.xml11
-rw-r--r--dev-lang/gnat-gpl/Manifest26
-rw-r--r--dev-lang/gnat-gpl/files/gcc-configure-LANG.patch64
-rw-r--r--dev-lang/gnat-gpl/files/gcc-spec-env-r1.patch87
-rw-r--r--dev-lang/gnat-gpl/files/gnat-gpl-2016-bootstrap.patch66
-rw-r--r--dev-lang/gnat-gpl/files/gnat-gpl-2016-finalization.patch220
-rw-r--r--dev-lang/gnat-gpl/files/gnat-gpl-2016-gentoo.patch57
-rw-r--r--dev-lang/gnat-gpl/files/gnat-gpl-2016-profile.patch113
-rw-r--r--dev-lang/gnat-gpl/files/gnat-gpl-2017-gentoo.patch98
-rw-r--r--dev-lang/gnat-gpl/files/gnat-gpl-2017-libatomic-Werror.patch19
-rw-r--r--dev-lang/gnat-gpl/files/gnat-gpl-2017-libgomp-Werror.patch20
-rw-r--r--dev-lang/gnat-gpl/files/gnat-gpl-2017-libitm-Werror.patch19
-rw-r--r--dev-lang/gnat-gpl/files/gnat-gpl-2017-ustat.patch31
-rw-r--r--dev-lang/gnat-gpl/files/gnat-gpl-2018-gentoo.patch18
-rw-r--r--dev-lang/gnat-gpl/files/gnat-gpl-2018-libsanitizer-p1.patch32
-rw-r--r--dev-lang/gnat-gpl/files/gnat-gpl-2018-libsanitizer-p2.patch59
-rw-r--r--dev-lang/gnat-gpl/files/gnat-gpl-2019-gentoo.patch42
-rw-r--r--dev-lang/gnat-gpl/files/gnat-gpl-2021-gentoo.patch95
-rw-r--r--dev-lang/gnat-gpl/gnat-gpl-2016-r4.ebuild161
-rw-r--r--dev-lang/gnat-gpl/gnat-gpl-2017-r1.ebuild147
-rw-r--r--dev-lang/gnat-gpl/gnat-gpl-2018-r3.ebuild144
-rw-r--r--dev-lang/gnat-gpl/gnat-gpl-2019-r2.ebuild141
-rw-r--r--dev-lang/gnat-gpl/gnat-gpl-2021-r5.ebuild161
-rw-r--r--dev-lang/gnat-gpl/metadata.xml16
-rw-r--r--dev-lang/gnucobol/Manifest2
-rw-r--r--dev-lang/gnucobol/files/gnucobol-3.1.2-gentoo.patch10
-rw-r--r--dev-lang/gnucobol/files/gnucobol-3.1.2-ncurses.patch20
-rw-r--r--dev-lang/gnucobol/files/gnucobol-3.2-libxml.patch10
-rw-r--r--dev-lang/gnucobol/gnucobol-3.1.2.ebuild50
-rw-r--r--dev-lang/gnucobol/gnucobol-3.2.ebuild52
-rw-r--r--dev-lang/gnucobol/metadata.xml14
-rw-r--r--dev-lang/gnuprologjava/gnuprologjava-0.2.6-r1.ebuild46
-rw-r--r--dev-lang/gnuprologjava/gnuprologjava-0.2.6-r2.ebuild54
-rw-r--r--dev-lang/gnuprologjava/metadata.xml13
-rw-r--r--dev-lang/go-bootstrap/Manifest25
-rwxr-xr-xdev-lang/go-bootstrap/files/make-go-bootstraps55
-rw-r--r--dev-lang/go-bootstrap/go-bootstrap-1.13.6.ebuild35
-rw-r--r--dev-lang/go-bootstrap/go-bootstrap-1.20.14.ebuild51
-rw-r--r--dev-lang/go-bootstrap/metadata.xml2
-rw-r--r--dev-lang/go/Manifest6
-rw-r--r--dev-lang/go/files/go-never-download-newer-toolchains.patch13
-rw-r--r--dev-lang/go/files/go-sets.conf6
-rw-r--r--dev-lang/go/go-1.14.14.ebuild197
-rw-r--r--dev-lang/go/go-1.15.6-r1.ebuild197
-rw-r--r--dev-lang/go/go-1.21.9.ebuild (renamed from dev-lang/go/go-1.14.13-r1.ebuild)121
-rw-r--r--dev-lang/go/go-1.22.2.ebuild (renamed from dev-lang/go/go-1.15.7.ebuild)122
-rw-r--r--dev-lang/go/go-9999.ebuild122
-rw-r--r--dev-lang/go/metadata.xml8
-rw-r--r--dev-lang/gprolog/Manifest1
-rw-r--r--dev-lang/gprolog/files/gprolog-1.4.5-links.patch2
-rw-r--r--dev-lang/gprolog/files/gprolog-1.4.5-llvm-as.patch38
-rw-r--r--dev-lang/gprolog/files/gprolog-1.5.0-destdir.patch61
-rw-r--r--dev-lang/gprolog/files/gprolog-1.5.0-ldflags.patch104
-rw-r--r--dev-lang/gprolog/files/gprolog-1.5.0-links.patch15
-rw-r--r--dev-lang/gprolog/files/gprolog-1.5.0-llvm-as.patch38
-rw-r--r--dev-lang/gprolog/gprolog-1.4.5.ebuild41
-rw-r--r--dev-lang/gprolog/gprolog-1.5.0-r1.ebuild88
-rw-r--r--dev-lang/gprolog/metadata.xml5
-rw-r--r--dev-lang/haxe/Manifest2
-rw-r--r--dev-lang/haxe/haxe-4.3.3.ebuild67
-rw-r--r--dev-lang/haxe/haxe-4.3.4.ebuild67
-rw-r--r--dev-lang/haxe/metadata.xml19
-rw-r--r--dev-lang/hy/Manifest1
-rw-r--r--dev-lang/hy/files/hy-0.15.0-do-not-install-get_version.py.patch22
-rw-r--r--dev-lang/hy/hy-0.17.0.ebuild45
-rw-r--r--dev-lang/hy/metadata.xml11
-rw-r--r--dev-lang/icon/Manifest5
-rw-r--r--dev-lang/icon/files/icon-9.5.1-flags.patch75
-rw-r--r--dev-lang/icon/files/icon-9.5.1-fpoll.patch27
-rw-r--r--dev-lang/icon/files/icon-9.5.1-musl.patch24
-rw-r--r--dev-lang/icon/icon-9.5.1-r1.ebuild108
-rw-r--r--dev-lang/icon/icon-9.5.20i.ebuild123
-rw-r--r--dev-lang/icon/icon-9.5.21b.ebuild (renamed from dev-lang/icon/icon-9.5.20h.ebuild)36
-rw-r--r--dev-lang/icon/icon-9.5.22e.ebuild (renamed from dev-lang/icon/icon-9.5.1-r2.ebuild)75
-rw-r--r--dev-lang/icon/metadata.xml9
-rw-r--r--dev-lang/idris2/Manifest2
-rw-r--r--dev-lang/idris2/files/idris2-0.7.0-disable-allbackends-tests.patch10
-rw-r--r--dev-lang/idris2/idris2-0.6.0.ebuild104
-rw-r--r--dev-lang/idris2/idris2-0.7.0.ebuild135
-rw-r--r--dev-lang/idris2/metadata.xml30
-rw-r--r--dev-lang/inform/Manifest1
-rw-r--r--dev-lang/inform/inform-6.33.1_p2.ebuild26
-rw-r--r--dev-lang/inform/inform-6.35_p4.ebuild51
-rw-r--r--dev-lang/inform/metadata.xml52
-rw-r--r--dev-lang/interprolog/files/interprolog-2.1.2-java17.patch13
-rw-r--r--dev-lang/interprolog/interprolog-2.1.2-r2.ebuild (renamed from dev-lang/interprolog/interprolog-2.1.2.ebuild)15
-rw-r--r--dev-lang/interprolog/metadata.xml2
-rw-r--r--dev-lang/ispc/Manifest2
-rw-r--r--dev-lang/ispc/files/ispc-1.13.0-cmake-gentoo-release.patch13
-rw-r--r--dev-lang/ispc/files/ispc-1.13.0-werror.patch13
-rw-r--r--dev-lang/ispc/files/ispc-1.14.0-llvm-10.patch106
-rw-r--r--dev-lang/ispc/ispc-1.14.1.ebuild82
-rw-r--r--dev-lang/ispc/ispc-1.23.0.ebuild101
-rw-r--r--dev-lang/ispc/ispc-9999.ebuild81
-rw-r--r--dev-lang/ispc/metadata.xml15
-rw-r--r--dev-lang/janet/Manifest3
-rw-r--r--dev-lang/janet/janet-1.32.1.ebuild (renamed from dev-lang/janet/janet-1.12.2.ebuild)53
-rw-r--r--dev-lang/janet/janet-1.9.1.ebuild51
-rw-r--r--dev-lang/janet/metadata.xml6
-rw-r--r--dev-lang/jerryscript/Manifest1
-rw-r--r--dev-lang/jerryscript/files/jerryscript-2.4.0-no-werror.patch33
-rw-r--r--dev-lang/jerryscript/files/jerryscript-2.4.0-python3-r4.patch236
-rw-r--r--dev-lang/jerryscript/jerryscript-2.4.0-r4.ebuild75
-rw-r--r--dev-lang/jerryscript/metadata.xml15
-rw-r--r--dev-lang/jimtcl/Manifest3
-rw-r--r--dev-lang/jimtcl/files/jimtcl-0.75-bootstrap.patch15
-rw-r--r--dev-lang/jimtcl/jimtcl-0.76.ebuild69
-rw-r--r--dev-lang/jimtcl/jimtcl-0.78-r2.ebuild12
-rw-r--r--dev-lang/jimtcl/jimtcl-0.81.ebuild40
-rw-r--r--dev-lang/jimtcl/jimtcl-0.82.ebuild51
-rw-r--r--dev-lang/jimtcl/metadata.xml2
-rw-r--r--dev-lang/jint/Manifest199
-rw-r--r--dev-lang/jint/jint-3.0.0_beta2051.ebuild252
-rw-r--r--dev-lang/jint/metadata.xml17
-rw-r--r--dev-lang/jsonnet/Manifest6
-rw-r--r--dev-lang/jsonnet/files/jsonnet-0.14.0-makefile.patch16
-rw-r--r--dev-lang/jsonnet/files/jsonnet-0.18.0-unbundle.patch75
-rw-r--r--dev-lang/jsonnet/jsonnet-0.15.0.ebuild63
-rw-r--r--dev-lang/jsonnet/jsonnet-0.16.0-r2.ebuild77
-rw-r--r--dev-lang/jsonnet/jsonnet-0.16.0.ebuild70
-rw-r--r--dev-lang/jsonnet/jsonnet-0.19.0-r1.ebuild (renamed from dev-lang/jsonnet/jsonnet-0.17.0-r1.ebuild)65
-rw-r--r--dev-lang/jsonnet/jsonnet-0.19.1.ebuild107
-rw-r--r--dev-lang/jsonnet/jsonnet-0.20.0-r1.ebuild109
-rw-r--r--dev-lang/jsonnet/metadata.xml4
-rw-r--r--dev-lang/julia-bin/Manifest34
-rw-r--r--dev-lang/julia-bin/julia-bin-1.10.0.ebuild56
-rw-r--r--dev-lang/julia-bin/julia-bin-1.6.7.ebuild (renamed from dev-lang/julia-bin/julia-bin-1.5.2.ebuild)24
-rw-r--r--dev-lang/julia-bin/julia-bin-1.7.3.ebuild (renamed from dev-lang/julia-bin/julia-bin-1.5.3.ebuild)26
-rw-r--r--dev-lang/julia-bin/julia-bin-1.8.3.ebuild56
-rw-r--r--dev-lang/julia-bin/julia-bin-1.8.5.ebuild56
-rw-r--r--dev-lang/julia-bin/julia-bin-1.9.4.ebuild56
-rw-r--r--dev-lang/julia-bin/julia-bin-9999.ebuild51
-rw-r--r--dev-lang/julia-bin/metadata.xml10
-rw-r--r--dev-lang/julia/Manifest30
-rw-r--r--dev-lang/julia/files/julia-1.1.0-fix_build_system.patch53
-rw-r--r--dev-lang/julia/files/julia-1.1.0-fix_llvm_install.patch15
-rw-r--r--dev-lang/julia/files/julia-1.4.0-no_symlink_llvm.patch10
-rw-r--r--dev-lang/julia/files/julia-1.8.0-llvm-no-bindings.patch11
-rw-r--r--dev-lang/julia/files/julia-1.8.3-gcc13.patch10
-rw-r--r--dev-lang/julia/files/julia-1.9.4-no-doc-install.patch13
-rw-r--r--dev-lang/julia/files/julia-1.9.4-string-replace.patch13
-rw-r--r--dev-lang/julia/julia-1.5.2-r1.ebuild208
-rw-r--r--dev-lang/julia/julia-1.5.3.ebuild213
-rw-r--r--dev-lang/julia/julia-1.8.3-r4.ebuild182
-rw-r--r--dev-lang/julia/julia-1.8.5-r1.ebuild230
-rw-r--r--dev-lang/julia/julia-1.9.0.ebuild210
-rw-r--r--dev-lang/julia/julia-1.9.4.ebuild197
-rw-r--r--dev-lang/julia/metadata.xml11
-rw-r--r--dev-lang/jwasm/metadata.xml10
-rw-r--r--dev-lang/kotlin-bin/Manifest2
-rw-r--r--dev-lang/kotlin-bin/kotlin-bin-1.9.23.ebuild59
-rw-r--r--dev-lang/kotlin-bin/kotlin-bin-1.9.24.ebuild59
-rw-r--r--dev-lang/kotlin-bin/metadata.xml19
-rw-r--r--dev-lang/lazarus/Manifest8
-rw-r--r--dev-lang/lazarus/lazarus-1.8.4-r2.ebuild106
-rw-r--r--dev-lang/lazarus/lazarus-2.0.12.ebuild (renamed from dev-lang/lazarus/lazarus-2.0.6.ebuild)10
-rw-r--r--dev-lang/lazarus/lazarus-2.2.0.ebuild (renamed from dev-lang/lazarus/lazarus-1.0.12.ebuild)47
-rw-r--r--dev-lang/lazarus/lazarus-2.2.4-r1.ebuild106
-rw-r--r--dev-lang/lazarus/metadata.xml9
-rw-r--r--dev-lang/lfe/Manifest4
-rw-r--r--dev-lang/lfe/files/70lfe-gentoo.el6
-rw-r--r--dev-lang/lfe/lfe-1.1.1.ebuild36
-rw-r--r--dev-lang/lfe/lfe-2.0.1.ebuild73
-rw-r--r--dev-lang/lfe/lfe-2.0.ebuild73
-rw-r--r--dev-lang/lfe/lfe-2.1.2.ebuild63
-rw-r--r--dev-lang/lfe/metadata.xml8
-rw-r--r--dev-lang/lisaac/metadata.xml2
-rw-r--r--dev-lang/logtalk/Manifest1
-rw-r--r--dev-lang/logtalk/files/logtalk-3.47.0-portage.patch19
-rw-r--r--dev-lang/logtalk/logtalk-3.36.0.ebuild16
-rw-r--r--dev-lang/logtalk/logtalk-3.47.0-r1.ebuild127
-rw-r--r--dev-lang/logtalk/metadata.xml2
-rw-r--r--dev-lang/lua/Manifest10
-rw-r--r--dev-lang/lua/files/5.1.4/01_all_boolean_expression.upstream.patch48
-rw-r--r--dev-lang/lua/files/5.1.4/02_all_table.upstream.patch22
-rw-r--r--dev-lang/lua/files/5.1.4/03_all_debug_getfenv.upstream.patch10
-rw-r--r--dev-lang/lua/files/5.1.4/04_all_gc_performance.upstream.patch14
-rw-r--r--dev-lang/lua/files/5.1.4/05_all_string_format.upstream.patch21
-rw-r--r--dev-lang/lua/files/5.1.4/06_all_io_read.upstream.patch15
-rw-r--r--dev-lang/lua/files/5.1.4/07_all_boolean_expression.upstream.patch30
-rw-r--r--dev-lang/lua/files/5.1.4/08_all_metatable.upstream.patch10
-rw-r--r--dev-lang/lua/files/5.1.4/09_all_prototype_collection.upstream.patch13
-rw-r--r--dev-lang/lua/files/5.1/0001-extern_C.patch20
-rw-r--r--dev-lang/lua/files/5.1/0002-Fix-stack-overflow-in-vararg-functions.patch17
-rw-r--r--dev-lang/lua/files/5.2.0/01_all_memory_hoarding.upstream.patch49
-rw-r--r--dev-lang/lua/files/5.2.0/02_all_hex_number_handling.upstream.patch26
-rw-r--r--dev-lang/lua/files/configure.in5
-rw-r--r--dev-lang/lua/files/lua-5.1-make-r1.patch66
-rw-r--r--dev-lang/lua/files/lua-5.1-make-r2.patch97
-rw-r--r--dev-lang/lua/files/lua-5.1-make_static-r1.patch12
-rw-r--r--dev-lang/lua/files/lua-5.1-module_paths.patch30
-rw-r--r--dev-lang/lua/files/lua-5.1-readline.patch10
-rw-r--r--dev-lang/lua/files/lua-5.1.4-deprecated.patch46
-rw-r--r--dev-lang/lua/files/lua-5.1.5-disable-deprecated.patch59
-rw-r--r--dev-lang/lua/files/lua-5.1.5-fix_vararg_calls.patch12
-rw-r--r--dev-lang/lua/files/lua-5.1.5-gentoo-build.patch118
-rw-r--r--dev-lang/lua/files/lua-5.1.5-make.patch97
-rw-r--r--dev-lang/lua/files/lua-5.1.5-readline.patch17
-rw-r--r--dev-lang/lua/files/lua-5.2-make-r1.patch75
-rw-r--r--dev-lang/lua/files/lua-5.2.4-make.patch75
-rw-r--r--dev-lang/lua/files/lua-5.3-make-r1.patch91
-rw-r--r--dev-lang/lua/files/lua-5.3.6-make.patch91
-rw-r--r--dev-lang/lua/files/lua-5.4-makefiles.patch99
-rw-r--r--dev-lang/lua/files/lua-5.4.2-make.patch99
-rw-r--r--dev-lang/lua/files/lua-5.4.6-sparc-tests.patch44
-rw-r--r--dev-lang/lua/files/lua.pc31
-rw-r--r--dev-lang/lua/lua-5.1.5-r106.ebuild151
-rw-r--r--dev-lang/lua/lua-5.1.5-r200.ebuild50
-rw-r--r--dev-lang/lua/lua-5.1.5-r4.ebuild134
-rw-r--r--dev-lang/lua/lua-5.2.4-r3.ebuild200
-rw-r--r--dev-lang/lua/lua-5.3.6-r102.ebuild51
-rw-r--r--dev-lang/lua/lua-5.3.6-r2.ebuild200
-rw-r--r--dev-lang/lua/lua-5.4.2-r1.ebuild197
-rw-r--r--dev-lang/lua/lua-5.4.6.ebuild56
-rw-r--r--dev-lang/lua/metadata.xml28
-rw-r--r--dev-lang/luajit/Manifest4
-rw-r--r--dev-lang/luajit/files/CVE-2020-15890.patch22
-rw-r--r--dev-lang/luajit/files/luajit-2-ldconfig.patch31
-rw-r--r--dev-lang/luajit/luajit-2.0.5-r3.ebuild74
-rw-r--r--dev-lang/luajit/luajit-2.1.0_beta3_p20220127-r2.ebuild (renamed from dev-lang/luajit/luajit-2.1.0_beta3-r2.ebuild)27
-rw-r--r--dev-lang/luajit/luajit-2.1.0_beta3_p20220613.ebuild82
-rw-r--r--dev-lang/luajit/metadata.xml5
-rw-r--r--dev-lang/luau/Manifest2
-rw-r--r--dev-lang/luau/luau-0.613.ebuild38
-rw-r--r--dev-lang/luau/luau-0.618.ebuild38
-rw-r--r--dev-lang/luau/metadata.xml24
-rw-r--r--dev-lang/maude/Manifest6
-rw-r--r--dev-lang/maude/files/maude-2.5.0-prll.patch24
-rw-r--r--dev-lang/maude/files/maude-2.7-bison-parse-param.patch39
-rw-r--r--dev-lang/maude/files/maude-3.1-prll.patch22
-rw-r--r--dev-lang/maude/maude-2.7.ebuild58
-rw-r--r--dev-lang/maude/maude-3.1-r1.ebuild66
-rw-r--r--dev-lang/maude/metadata.xml2
-rw-r--r--dev-lang/mercury-extras/Manifest6
-rw-r--r--dev-lang/mercury-extras/mercury-extras-20.06.1.ebuild307
-rw-r--r--dev-lang/mercury-extras/mercury-extras-20.06.ebuild8
-rw-r--r--dev-lang/mercury-extras/mercury-extras-22.01.1.ebuild298
-rw-r--r--dev-lang/mercury-extras/mercury-extras-22.01.ebuild298
-rw-r--r--dev-lang/mercury-extras/metadata.xml7
-rw-r--r--dev-lang/mercury/Manifest8
-rw-r--r--dev-lang/mercury/mercury-20.06-r1.ebuild (renamed from dev-lang/mercury/mercury-20.06.ebuild)8
-rw-r--r--dev-lang/mercury/mercury-20.06.1.ebuild207
-rw-r--r--dev-lang/mercury/mercury-22.01.1.ebuild204
-rw-r--r--dev-lang/mercury/mercury-22.01.ebuild201
-rw-r--r--dev-lang/mercury/metadata.xml7
-rw-r--r--dev-lang/metadata.xml3
-rw-r--r--dev-lang/micropython/Manifest2
-rw-r--r--dev-lang/micropython/files/micropython-1.11-exclude-float-parse-tests.patch12
-rw-r--r--dev-lang/micropython/files/micropython-1.11-prevent-stripping.patch26
-rw-r--r--dev-lang/micropython/files/micropython-1.17-exclude-float-parse-tests.patch11
-rw-r--r--dev-lang/micropython/files/micropython-1.17-gcc13-build-fix.patch62
-rw-r--r--dev-lang/micropython/files/micropython-1.17-prevent-stripping.patch12
-rw-r--r--dev-lang/micropython/metadata.xml11
-rw-r--r--dev-lang/micropython/micropython-1.17.ebuild (renamed from dev-lang/micropython/micropython-1.11.ebuild)11
-rw-r--r--dev-lang/mlton/Manifest3
-rw-r--r--dev-lang/mlton/files/mlton-20070826-no-execmem.patch29
-rw-r--r--dev-lang/mlton/files/mlton-20130715-no-PIE.patch66
-rw-r--r--dev-lang/mlton/files/mlton-20130715-split-make-for-pax-mark.patch11
-rw-r--r--dev-lang/mlton/metadata.xml8
-rw-r--r--dev-lang/mlton/mlton-20130715.ebuild119
-rw-r--r--dev-lang/mlton/mlton-20180207.ebuild23
-rw-r--r--dev-lang/mmix/metadata.xml6
-rw-r--r--dev-lang/mmix/mmix-20160804-r1.ebuild4
-rw-r--r--dev-lang/moarvm/Manifest10
-rw-r--r--dev-lang/moarvm/metadata.xml6
-rw-r--r--dev-lang/moarvm/moarvm-2020.05.ebuild62
-rw-r--r--dev-lang/moarvm/moarvm-2020.06.ebuild62
-rw-r--r--dev-lang/moarvm/moarvm-2020.07.ebuild62
-rw-r--r--dev-lang/moarvm/moarvm-2020.08.ebuild62
-rw-r--r--dev-lang/moarvm/moarvm-2020.09.ebuild62
-rw-r--r--dev-lang/moarvm/moarvm-2020.10.ebuild62
-rw-r--r--dev-lang/moarvm/moarvm-2024.02.ebuild (renamed from dev-lang/moarvm/moarvm-2020.11.ebuild)15
-rw-r--r--dev-lang/moarvm/moarvm-2024.04.ebuild (renamed from dev-lang/moarvm/moarvm-2020.12.ebuild)15
-rw-r--r--dev-lang/moarvm/moarvm-9999.ebuild63
-rw-r--r--dev-lang/mond/Manifest55
-rw-r--r--dev-lang/mond/metadata.xml13
-rw-r--r--dev-lang/mond/mond-0.10.0.ebuild106
-rw-r--r--dev-lang/mono-basic/metadata.xml2
-rw-r--r--dev-lang/mono/Manifest3
-rw-r--r--dev-lang/mono/files/mono-5.0.1.1-x86_32.patch21
-rw-r--r--dev-lang/mono/files/mono-6.12.0.122-disable-automagic-ccache.patch22
-rw-r--r--dev-lang/mono/files/mono-6.12.0.199-configure-c99.patch51
-rw-r--r--dev-lang/mono/metadata.xml20
-rw-r--r--dev-lang/mono/mono-6.12.0.199-r2.ebuild (renamed from dev-lang/mono/mono-6.10.0.104.ebuild)97
-rw-r--r--dev-lang/mono/mono-6.6.0.161.ebuild105
-rw-r--r--dev-lang/mozart-stdlib/metadata.xml7
-rw-r--r--dev-lang/mozart-stdlib/mozart-stdlib-2.0.1.ebuild13
-rw-r--r--dev-lang/mozart/Manifest2
-rw-r--r--dev-lang/mozart/files/50mozart-gentoo.el13
-rw-r--r--dev-lang/mozart/metadata.xml10
-rw-r--r--dev-lang/mozart/mozart-2.0.1-r1.ebuild (renamed from dev-lang/mozart/mozart-2.0.1.ebuild)60
-rw-r--r--dev-lang/mujs/Manifest3
-rw-r--r--dev-lang/mujs/files/mujs-1.0.5-flags.patch30
-rw-r--r--dev-lang/mujs/files/mujs-1.3.3-flags.patch12
-rw-r--r--dev-lang/mujs/metadata.xml12
-rw-r--r--dev-lang/mujs/mujs-1.0.9.ebuild60
-rw-r--r--dev-lang/mujs/mujs-1.3.3.ebuild61
-rw-r--r--dev-lang/mujs/mujs-1.3.4.ebuild63
-rw-r--r--dev-lang/nasm/Manifest4
-rw-r--r--dev-lang/nasm/files/nasm-2.16-autoconf-macro-fixes.patch241
-rw-r--r--dev-lang/nasm/files/nasm-2.16.02-unconfig.patch11
-rw-r--r--dev-lang/nasm/metadata.xml8
-rw-r--r--dev-lang/nasm/nasm-2.15.05.ebuild47
-rw-r--r--dev-lang/nasm/nasm-2.16.01-r1.ebuild72
-rw-r--r--dev-lang/nasm/nasm-2.16.02.ebuild86
-rw-r--r--dev-lang/nasm/nasm-2.16.03.ebuild92
-rw-r--r--dev-lang/neko/Manifest1
-rw-r--r--dev-lang/neko/metadata.xml24
-rw-r--r--dev-lang/neko/neko-2.3.0-r2.ebuild57
-rw-r--r--dev-lang/nelua/Manifest1
-rw-r--r--dev-lang/nelua/metadata.xml18
-rw-r--r--dev-lang/nelua/nelua-20240113.ebuild44
-rw-r--r--dev-lang/nelua/nelua-99999999.ebuild44
-rw-r--r--dev-lang/nim/Manifest5
-rw-r--r--dev-lang/nim/files/nim-1.6.14-clang16-musl-fix.patch13
-rw-r--r--dev-lang/nim/files/nim-1.6.14-testament-skipfile.txt61
-rw-r--r--dev-lang/nim/files/nim-1.6.6-csources-flags.patch11
-rw-r--r--dev-lang/nim/files/nim-2.0.4-testament-skipfile.txt80
-rw-r--r--dev-lang/nim/files/nim-sets.conf5
-rw-r--r--dev-lang/nim/metadata.xml52
-rw-r--r--dev-lang/nim/nim-1.4.2.ebuild80
-rw-r--r--dev-lang/nim/nim-1.6.14-r1.ebuild211
-rw-r--r--dev-lang/nim/nim-2.0.4.ebuild183
-rw-r--r--dev-lang/nprolog/Manifest1
-rw-r--r--dev-lang/nprolog/metadata.xml18
-rw-r--r--dev-lang/nprolog/nprolog-1.94.ebuild31
-rw-r--r--dev-lang/nqp/Manifest10
-rw-r--r--dev-lang/nqp/metadata.xml6
-rw-r--r--dev-lang/nqp/nqp-2020.05.ebuild160
-rw-r--r--dev-lang/nqp/nqp-2020.06.ebuild160
-rw-r--r--dev-lang/nqp/nqp-2020.09.ebuild160
-rw-r--r--dev-lang/nqp/nqp-2020.10.ebuild160
-rw-r--r--dev-lang/nqp/nqp-2020.11.ebuild160
-rw-r--r--dev-lang/nqp/nqp-2020.12.ebuild160
-rw-r--r--dev-lang/nqp/nqp-2024.02.ebuild (renamed from dev-lang/nqp/nqp-2020.08.ebuild)27
-rw-r--r--dev-lang/nqp/nqp-2024.04.ebuild (renamed from dev-lang/nqp/nqp-2020.07.ebuild)27
-rw-r--r--dev-lang/nqp/nqp-9999.ebuild27
-rw-r--r--dev-lang/nwcc/Manifest1
-rw-r--r--dev-lang/nwcc/metadata.xml11
-rw-r--r--dev-lang/nwcc/nwcc-0.8.3.ebuild24
-rw-r--r--dev-lang/ocaml/Manifest14
-rw-r--r--dev-lang/ocaml/files/ocaml-4.04.2-tinfo.patch13
-rw-r--r--dev-lang/ocaml/files/ocaml-4.09.0-gcc-10.patch21
-rw-r--r--dev-lang/ocaml/files/ocaml-4.11.2-cflags.patch42
-rw-r--r--dev-lang/ocaml/files/ocaml-4.11.2-glibc-2.34.patch91
-rw-r--r--dev-lang/ocaml/files/ocaml-4.12.0-glibc-2.34.patch91
-rw-r--r--dev-lang/ocaml/files/ocaml-4.12.1-fix-textrel-riscv.patch46
-rw-r--r--dev-lang/ocaml/files/ocaml-4.14.0-clang.patch132
-rw-r--r--dev-lang/ocaml/metadata.xml6
-rw-r--r--dev-lang/ocaml/ocaml-4.04.2-r1.ebuild128
-rw-r--r--dev-lang/ocaml/ocaml-4.05.0-r1.ebuild130
-rw-r--r--dev-lang/ocaml/ocaml-4.09.0-r3.ebuild (renamed from dev-lang/ocaml/ocaml-4.10.2.ebuild)48
-rw-r--r--dev-lang/ocaml/ocaml-4.10.2-r3.ebuild (renamed from dev-lang/ocaml/ocaml-4.09.0.ebuild)49
-rw-r--r--dev-lang/ocaml/ocaml-4.11.2-r2.ebuild (renamed from dev-lang/ocaml/ocaml-4.11.1.ebuild)40
-rw-r--r--dev-lang/ocaml/ocaml-4.12.1.ebuild104
-rw-r--r--dev-lang/ocaml/ocaml-4.13.1.ebuild103
-rw-r--r--dev-lang/ocaml/ocaml-4.14.0-r1.ebuild104
-rw-r--r--dev-lang/ocaml/ocaml-4.14.1.ebuild (renamed from dev-lang/ocaml/ocaml-4.10.0.ebuild)64
-rw-r--r--dev-lang/ocaml/ocaml-4.14.2.ebuild100
-rw-r--r--dev-lang/oorexx/Manifest1
-rw-r--r--dev-lang/oorexx/files/oorexx-5.0.0-man.patch21
-rw-r--r--dev-lang/oorexx/metadata.xml20
-rw-r--r--dev-lang/oorexx/oorexx-5.0.0.ebuild37
-rw-r--r--dev-lang/open-cobol/Manifest1
-rw-r--r--dev-lang/open-cobol/metadata.xml11
-rw-r--r--dev-lang/open-cobol/open-cobol-1.1.ebuild39
-rw-r--r--dev-lang/orc/Manifest4
-rw-r--r--dev-lang/orc/files/0.4.29-test-rounding.patch73
-rw-r--r--dev-lang/orc/metadata.xml5
-rw-r--r--dev-lang/orc/orc-0.4.28-r1.ebuild75
-rw-r--r--dev-lang/orc/orc-0.4.29.ebuild81
-rw-r--r--dev-lang/orc/orc-0.4.38.ebuild (renamed from dev-lang/orc/orc-0.4.31.ebuild)31
-rw-r--r--dev-lang/parrot/metadata.xml7
-rw-r--r--dev-lang/parrot/parrot-8.1.0-r4.ebuild (renamed from dev-lang/parrot/parrot-8.1.0-r2.ebuild)13
-rw-r--r--dev-lang/pcc/files/pcc-1.1.0-multiarch.patch4
-rw-r--r--dev-lang/pcc/metadata.xml2
-rw-r--r--dev-lang/pcc/pcc-1.1.0-r1.ebuild26
-rw-r--r--dev-lang/pcc/pcc-9999.ebuild44
-rw-r--r--dev-lang/perl/Manifest10
-rw-r--r--dev-lang/perl/files/perl-5.26.2-hppa.patch105
-rw-r--r--dev-lang/perl/files/perl-5.30.3-darwin-macos11.patch180
-rw-r--r--dev-lang/perl/files/perl-5.34.0-crossfit.patch13
-rw-r--r--dev-lang/perl/files/perl-5.36.0-fix-configure-for-clang.patch41
-rw-r--r--dev-lang/perl/metadata.xml7
-rw-r--r--dev-lang/perl/perl-5.30.3-r1.ebuild668
-rw-r--r--dev-lang/perl/perl-5.30.3.ebuild651
-rw-r--r--dev-lang/perl/perl-5.38.2-r2.ebuild (renamed from dev-lang/perl/perl-5.32.0-r1.ebuild)207
-rw-r--r--dev-lang/perl/perl-5.38.2-r3.ebuild (renamed from dev-lang/perl/perl-5.30.3-r2.ebuild)276
-rw-r--r--dev-lang/php/Manifest12
-rw-r--r--dev-lang/php/files/20php5-envd2
-rw-r--r--dev-lang/php/files/fix-musl-llvm.patch37
-rw-r--r--dev-lang/php/files/php-7.2.13-intl-use-icu-namespace.patch379
-rw-r--r--dev-lang/php/files/php-7.2.34-use-after-free-bug76047.patch174
-rw-r--r--dev-lang/php/files/php-7.4.13-issue80368.patch17
-rw-r--r--dev-lang/php/files/php-8.1.27-gcc14-libxml.patch57
-rw-r--r--dev-lang/php/files/php-8.1.27-implicit-decls.patch72
-rw-r--r--dev-lang/php/files/php-8.2.8-openssl-tests.patch21
-rw-r--r--dev-lang/php/files/php-capstone-optional.patch78
-rw-r--r--dev-lang/php/files/php-freetype-2.9.1.patch233
-rw-r--r--dev-lang/php/metadata.xml128
-rw-r--r--dev-lang/php/php-7.2.34-r1.ebuild764
-rw-r--r--dev-lang/php/php-7.2.34-r2.ebuild764
-rw-r--r--dev-lang/php/php-7.3.25.ebuild760
-rw-r--r--dev-lang/php/php-7.3.26.ebuild760
-rw-r--r--dev-lang/php/php-8.1.26-r1.ebuild (renamed from dev-lang/php/php-8.0.1.ebuild)93
-rw-r--r--dev-lang/php/php-8.1.28.ebuild (renamed from dev-lang/php/php-8.0.0.ebuild)113
-rw-r--r--dev-lang/php/php-8.2.15.ebuild (renamed from dev-lang/php/php-7.4.13.ebuild)298
-rw-r--r--dev-lang/php/php-8.2.18.ebuild859
-rw-r--r--dev-lang/php/php-8.3.6.ebuild (renamed from dev-lang/php/php-7.4.14.ebuild)308
-rw-r--r--dev-lang/pico8/Manifest3
-rw-r--r--dev-lang/pico8/metadata.xml18
-rw-r--r--dev-lang/pico8/pico8-0.2.5g.ebuild57
-rw-r--r--dev-lang/polyml/Manifest4
-rw-r--r--dev-lang/polyml/files/polyml-5.6-configure.patch11
-rw-r--r--dev-lang/polyml/files/polyml-5.6-ffi3.patch18
-rw-r--r--dev-lang/polyml/files/polyml-5.8.2-configure.patch12
-rw-r--r--dev-lang/polyml/files/polyml-5.9-c++11.patch11
-rw-r--r--dev-lang/polyml/metadata.xml8
-rw-r--r--dev-lang/polyml/polyml-5.6.ebuild59
-rw-r--r--dev-lang/polyml/polyml-5.8.ebuild59
-rw-r--r--dev-lang/polyml/polyml-5.9-r2.ebuild59
-rw-r--r--dev-lang/polyml/polyml-5.9.1.ebuild69
-rw-r--r--dev-lang/python-exec-conf/metadata.xml7
-rw-r--r--dev-lang/python-exec-conf/python-exec-conf-2.4.6.ebuild4
-rw-r--r--dev-lang/python-exec/Manifest2
-rw-r--r--dev-lang/python-exec/metadata.xml8
-rw-r--r--dev-lang/python-exec/python-exec-2.4.10.ebuild (renamed from dev-lang/python-exec/python-exec-2.4.6-r4.ebuild)38
-rw-r--r--dev-lang/python-exec/python-exec-2.4.6-r2.ebuild126
-rw-r--r--dev-lang/python-exec/python-exec-2.4.6-r3.ebuild128
-rw-r--r--dev-lang/python/Manifest43
-rw-r--r--dev-lang/python/metadata.xml51
-rw-r--r--dev-lang/python/python-2.7.18-r5.ebuild348
-rw-r--r--dev-lang/python/python-2.7.18_p16-r2.ebuild (renamed from dev-lang/python/python-2.7.18-r6.ebuild)207
-rw-r--r--dev-lang/python/python-3.10.0_alpha3-r1.ebuild334
-rw-r--r--dev-lang/python/python-3.10.0_alpha4.ebuild347
-rw-r--r--dev-lang/python/python-3.10.14_p1.ebuild508
-rw-r--r--dev-lang/python/python-3.11.9.ebuild539
-rw-r--r--dev-lang/python/python-3.12.3.ebuild537
-rw-r--r--dev-lang/python/python-3.13.0_alpha6.ebuild550
-rw-r--r--dev-lang/python/python-3.6.12-r1.ebuild332
-rw-r--r--dev-lang/python/python-3.6.12-r2.ebuild346
-rw-r--r--dev-lang/python/python-3.7.9-r1.ebuild318
-rw-r--r--dev-lang/python/python-3.7.9-r2.ebuild332
-rw-r--r--dev-lang/python/python-3.8.19_p1.ebuild430
-rw-r--r--dev-lang/python/python-3.8.6-r1.ebuild322
-rw-r--r--dev-lang/python/python-3.8.7-r1.ebuild336
-rw-r--r--dev-lang/python/python-3.9.0-r1.ebuild331
-rw-r--r--dev-lang/python/python-3.9.1-r1.ebuild345
-rw-r--r--dev-lang/python/python-3.9.19_p2.ebuild490
-rw-r--r--dev-lang/qore/Manifest1
-rw-r--r--dev-lang/qore/metadata.xml23
-rw-r--r--dev-lang/qore/qore-1.19.2.ebuild76
-rw-r--r--dev-lang/qu-prolog/Manifest1
-rw-r--r--dev-lang/qu-prolog/files/qu-prolog-10.x-compiler-flags.patch18
-rw-r--r--dev-lang/qu-prolog/files/qu-prolog-10.x-qa-compiler-flags.patch22
-rw-r--r--dev-lang/qu-prolog/metadata.xml2
-rw-r--r--dev-lang/qu-prolog/qu-prolog-10.6.ebuild10
-rw-r--r--dev-lang/qu-prolog/qu-prolog-10.7.ebuild107
-rw-r--r--dev-lang/rakudo/Manifest10
-rw-r--r--dev-lang/rakudo/files/rakudo-2016.04-jna-lib.patch21
-rw-r--r--dev-lang/rakudo/metadata.xml6
-rw-r--r--dev-lang/rakudo/rakudo-2020.05.1.ebuild73
-rw-r--r--dev-lang/rakudo/rakudo-2020.06.ebuild73
-rw-r--r--dev-lang/rakudo/rakudo-2020.07.ebuild73
-rw-r--r--dev-lang/rakudo/rakudo-2020.08.1.ebuild73
-rw-r--r--dev-lang/rakudo/rakudo-2020.11.ebuild73
-rw-r--r--dev-lang/rakudo/rakudo-2020.12.ebuild73
-rw-r--r--dev-lang/rakudo/rakudo-2024.02.ebuild (renamed from dev-lang/rakudo/rakudo-2020.09.ebuild)13
-rw-r--r--dev-lang/rakudo/rakudo-2024.04.ebuild (renamed from dev-lang/rakudo/rakudo-2020.10.ebuild)13
-rw-r--r--dev-lang/rakudo/rakudo-9999.ebuild80
-rw-r--r--dev-lang/rapydscript-ng/Manifest2
-rw-r--r--dev-lang/rapydscript-ng/metadata.xml15
-rw-r--r--dev-lang/rapydscript-ng/rapydscript-ng-0.7.22.ebuild75
-rw-r--r--dev-lang/rapydscript-ng/rapydscript-ng-9999.ebuild75
-rw-r--r--dev-lang/regina-rexx/Manifest1
-rw-r--r--dev-lang/regina-rexx/files/regina-rexx-3.9.1-makefile.patch150
-rw-r--r--dev-lang/regina-rexx/files/rxstack-r114
-rw-r--r--dev-lang/regina-rexx/metadata.xml15
-rw-r--r--dev-lang/regina-rexx/regina-rexx-3.9.1-r1.ebuild44
-rw-r--r--dev-lang/ruby/Manifest10
-rw-r--r--dev-lang/ruby/files/2.4/002_windows_crossdev.patch64
-rw-r--r--dev-lang/ruby/files/2.4/005_no-undefined-ext.patch11
-rw-r--r--dev-lang/ruby/files/2.4/009_no-gems.patch112
-rw-r--r--dev-lang/ruby/files/2.4/010-libressl_2.7.patch15
-rw-r--r--dev-lang/ruby/files/2.4/011-gcc8.patch64
-rw-r--r--dev-lang/ruby/files/2.4/012-openssl_1.1.patch339
-rw-r--r--dev-lang/ruby/files/2.5/001-ia64-update-ia64-specific-code-to-use-execution-cont.patch67
-rw-r--r--dev-lang/ruby/files/2.5/002-autoconf-2.70.patch65
-rw-r--r--dev-lang/ruby/files/2.5/005_no-undefined-ext.patch11
-rw-r--r--dev-lang/ruby/files/2.5/009_no-gems.patch95
-rw-r--r--dev-lang/ruby/files/2.5/010-libressl_2.7.patch15
-rw-r--r--dev-lang/ruby/files/2.5/011-no-gems.patch85
-rw-r--r--dev-lang/ruby/files/2.6/002-autoconf-2.70.patch65
-rw-r--r--dev-lang/ruby/files/2.6/005_no-undefined-ext.patch11
-rw-r--r--dev-lang/ruby/files/2.6/009_no-gems.patch39
-rw-r--r--dev-lang/ruby/files/2.6/010-default-gem-location.patch20
-rw-r--r--dev-lang/ruby/files/2.7/002-autoconf-2.70.patch26
-rw-r--r--dev-lang/ruby/files/2.7/010-default-gem-location.patch20
-rw-r--r--dev-lang/ruby/files/3.0/900-musl-coroutine.patch28
-rw-r--r--dev-lang/ruby/files/3.0/901-musl-stacksize.patch26
-rw-r--r--dev-lang/ruby/files/3.0/902-hppa-pthread-stack-size.patch54
-rw-r--r--dev-lang/ruby/files/3.1/001-socksocket-fix.patch15
-rw-r--r--dev-lang/ruby/files/3.1/010-default-gem-location.patch20
-rw-r--r--dev-lang/ruby/files/3.1/011-default-gem-location.patch20
-rw-r--r--dev-lang/ruby/files/3.1/901-musl-stacksize.patch26
-rw-r--r--dev-lang/ruby/files/3.1/902-hppa-pthread-stack-size.patch54
-rw-r--r--dev-lang/ruby/files/3.2/010-default-gem-location.patch11
-rw-r--r--dev-lang/ruby/files/3.2/011-arm64-branch-protection.patch28
-rw-r--r--dev-lang/ruby/files/3.2/901-musl-stacksize.patch20
-rw-r--r--dev-lang/ruby/files/3.2/902-hppa-pthread-stack-size.patch54
-rw-r--r--dev-lang/ruby/files/3.3/010-default-gem-location.patch11
-rw-r--r--dev-lang/ruby/files/3.3/011-arm64-branch-protection.patch28
-rw-r--r--dev-lang/ruby/files/3.3/901-musl-stacksize.patch20
-rw-r--r--dev-lang/ruby/files/3.3/902-hppa-pthread-stack-size.patch54
-rw-r--r--dev-lang/ruby/metadata.xml6
-rw-r--r--dev-lang/ruby/ruby-2.5.8-r1.ebuild246
-rw-r--r--dev-lang/ruby/ruby-2.5.8.ebuild220
-rw-r--r--dev-lang/ruby/ruby-3.1.4-r3.ebuild (renamed from dev-lang/ruby/ruby-3.0.0-r1.ebuild)120
-rw-r--r--dev-lang/ruby/ruby-3.1.4-r5.ebuild (renamed from dev-lang/ruby/ruby-3.0.0.ebuild)126
-rw-r--r--dev-lang/ruby/ruby-3.1.5.ebuild (renamed from dev-lang/ruby/ruby-2.7.2.ebuild)132
-rw-r--r--dev-lang/ruby/ruby-3.2.3.ebuild (renamed from dev-lang/ruby/ruby-2.6.6-r2.ebuild)160
-rw-r--r--dev-lang/ruby/ruby-3.2.4.ebuild296
-rw-r--r--dev-lang/ruby/ruby-3.3.0-r2.ebuild294
-rw-r--r--dev-lang/ruby/ruby-3.3.1.ebuild293
-rw-r--r--dev-lang/rust-bin/Manifest272
-rw-r--r--dev-lang/rust-bin/metadata.xml17
-rw-r--r--dev-lang/rust-bin/rust-bin-1.46.0.ebuild187
-rw-r--r--dev-lang/rust-bin/rust-bin-1.47.0-r1.ebuild156
-rw-r--r--dev-lang/rust-bin/rust-bin-1.48.0.ebuild155
-rw-r--r--dev-lang/rust-bin/rust-bin-1.71.0.ebuild230
-rw-r--r--dev-lang/rust-bin/rust-bin-1.71.1.ebuild230
-rw-r--r--dev-lang/rust-bin/rust-bin-1.73.0.ebuild240
-rw-r--r--dev-lang/rust-bin/rust-bin-1.74.1.ebuild240
-rw-r--r--dev-lang/rust-bin/rust-bin-1.75.0.ebuild240
-rw-r--r--dev-lang/rust-bin/rust-bin-1.76.0.ebuild245
-rw-r--r--dev-lang/rust-bin/rust-bin-1.77.1.ebuild245
-rw-r--r--dev-lang/rust/Manifest233
-rw-r--r--dev-lang/rust/files/0012-Ignore-broken-and-non-applicable-tests.patch89
-rw-r--r--dev-lang/rust/files/1.44.0-libressl.patch45
-rw-r--r--dev-lang/rust/files/1.46.0-don-t-create-prefix-at-time-of-check.patch31
-rw-r--r--dev-lang/rust/files/1.47.0-ignore-broken-and-non-applicable-tests.patch75
-rw-r--r--dev-lang/rust/files/1.47.0-libressl.patch44
-rw-r--r--dev-lang/rust/files/1.47.0-llvm-tensorflow-fix.patch55
-rw-r--r--dev-lang/rust/files/1.48.0-gentoo-musl-target-specs.patch164
-rw-r--r--dev-lang/rust/files/1.62.1-musl-dynamic-linking.patch25
-rw-r--r--dev-lang/rust/files/1.67.0-doc-wasm.patch34
-rw-r--r--dev-lang/rust/files/1.70.0-ignore-broken-and-non-applicable-tests.patch30
-rw-r--r--dev-lang/rust/files/1.71.0-fix-bashcomp-installation.patch23
-rw-r--r--dev-lang/rust/files/1.71.0-lint-docs-libpath.patch39
-rw-r--r--dev-lang/rust/files/1.71.1-fix-bootstrap-version-comparison.patch26
-rw-r--r--dev-lang/rust/files/1.72.0-bump-libc-deps-to-0.2.146.patch156
-rw-r--r--dev-lang/rust/files/1.74.1-cross-compile-libz.patch19
-rw-r--r--dev-lang/rust/files/1.75.0-handle-vendored-sources.patch45
-rw-r--r--dev-lang/rust/files/1.75.0-musl-dynamic-linking.patch19
-rw-r--r--dev-lang/rust/files/1.76.0-loong-code-model.patch73
-rw-r--r--dev-lang/rust/files/gentoo-musl-target-specs.patch168
-rw-r--r--dev-lang/rust/metadata.xml28
-rw-r--r--dev-lang/rust/rust-1.46.0.ebuild586
-rw-r--r--dev-lang/rust/rust-1.71.0.ebuild (renamed from dev-lang/rust/rust-1.48.0.ebuild)345
-rw-r--r--dev-lang/rust/rust-1.71.1.ebuild (renamed from dev-lang/rust/rust-1.47.0-r2.ebuild)380
-rw-r--r--dev-lang/rust/rust-1.73.0.ebuild759
-rw-r--r--dev-lang/rust/rust-1.74.1.ebuild784
-rw-r--r--dev-lang/rust/rust-1.75.0-r1.ebuild787
-rw-r--r--dev-lang/rust/rust-1.76.0-r1.ebuild787
-rw-r--r--dev-lang/rust/rust-1.77.1.ebuild786
-rw-r--r--dev-lang/sassc/Manifest3
-rw-r--r--dev-lang/sassc/metadata.xml7
-rw-r--r--dev-lang/sassc/sassc-3.6.0.ebuild25
-rw-r--r--dev-lang/sassc/sassc-3.6.2.ebuild (renamed from dev-lang/sassc/sassc-3.6.1.ebuild)11
-rw-r--r--dev-lang/scala-bin/Manifest2
-rw-r--r--dev-lang/scala-bin/metadata.xml5
-rw-r--r--dev-lang/scala-bin/scala-bin-2.13.9.ebuild (renamed from dev-lang/scala-bin/scala-bin-2.13.1.ebuild)12
-rw-r--r--dev-lang/scala/metadata.xml2
-rw-r--r--dev-lang/scala/scala-2.12.10-r1.ebuild (renamed from dev-lang/scala/scala-2.12.10.ebuild)28
-rw-r--r--dev-lang/scala/scala-2.12.4.ebuild12
-rw-r--r--dev-lang/smlnj/Manifest76
-rw-r--r--dev-lang/smlnj/files/smlnj-110.82-pax-p1.patch116
-rw-r--r--dev-lang/smlnj/files/smlnj-110.82-pax-p2.patch132
-rw-r--r--dev-lang/smlnj/files/smlnj-110.82-pax-p3.patch137
-rw-r--r--dev-lang/smlnj/files/smlnj-110.99.3-shuffle.patch10
-rw-r--r--dev-lang/smlnj/metadata.xml17
-rw-r--r--dev-lang/smlnj/smlnj-110.82.ebuild166
-rw-r--r--dev-lang/smlnj/smlnj-110.99.3.ebuild153
-rw-r--r--dev-lang/smlnj/smlnj-110.99.4.ebuild151
-rw-r--r--dev-lang/snobol/files/snobol-1.4.1-fno-common.patch31
-rw-r--r--dev-lang/snobol/metadata.xml10
-rw-r--r--dev-lang/snobol/snobol-1.4.1-r1.ebuild58
-rw-r--r--dev-lang/snobol/snobol-1.4.1.ebuild52
-rw-r--r--dev-lang/souffle/Manifest1
-rw-r--r--dev-lang/souffle/files/souffle-2.4.1-ncurses.patch13
-rw-r--r--dev-lang/souffle/files/souffle-2.4.1-threads.patch34
-rw-r--r--dev-lang/souffle/metadata.xml22
-rw-r--r--dev-lang/souffle/souffle-2.4.1.ebuild124
-rw-r--r--dev-lang/spark/Manifest6
-rw-r--r--dev-lang/spark/files/spark-2017-gentoo.patch23
-rw-r--r--dev-lang/spark/files/spark-2021-gentoo.patch (renamed from dev-lang/spark/files/spark-2019-gentoo.patch)26
-rw-r--r--dev-lang/spark/metadata.xml2
-rw-r--r--dev-lang/spark/spark-2018-r1.ebuild61
-rw-r--r--dev-lang/spark/spark-2019.ebuild67
-rw-r--r--dev-lang/spark/spark-2021.ebuild85
-rw-r--r--dev-lang/spidermonkey/Manifest22
-rw-r--r--dev-lang/spidermonkey/files/moz38-dont-hardcode-libc-soname.patch15
-rw-r--r--dev-lang/spidermonkey/files/spidermonkey-1.8.5-LTO.patch58
-rw-r--r--dev-lang/spidermonkey/files/spidermonkey-102-known-test-failures.txt105
-rw-r--r--dev-lang/spidermonkey/files/spidermonkey-115-known-test-failures.txt44
-rw-r--r--dev-lang/spidermonkey/files/spidermonkey-52.0-fix-alpha-bitness.patch32
-rw-r--r--dev-lang/spidermonkey/files/spidermonkey-52.0-gcc9-overflow.patch24
-rw-r--r--dev-lang/spidermonkey/files/spidermonkey-60.5.2-ia64-fix-virtual-address-length.patch59
-rw-r--r--dev-lang/spidermonkey/files/spidermonkey-60.5.2-ia64-support.patch44
-rw-r--r--dev-lang/spidermonkey/files/spidermonkey-perl-defined-array-check.patch11
-rw-r--r--dev-lang/spidermonkey/metadata.xml6
-rw-r--r--dev-lang/spidermonkey/spidermonkey-1.8.5-r9.ebuild152
-rw-r--r--dev-lang/spidermonkey/spidermonkey-102.15.0.ebuild489
-rw-r--r--dev-lang/spidermonkey/spidermonkey-115.10.0.ebuild504
-rw-r--r--dev-lang/spidermonkey/spidermonkey-115.3.1.ebuild (renamed from dev-lang/spidermonkey/spidermonkey-78.6.0.ebuild)266
-rw-r--r--dev-lang/spidermonkey/spidermonkey-115.9.1.ebuild474
-rw-r--r--dev-lang/spidermonkey/spidermonkey-52.9.1_pre1-r2.ebuild163
-rw-r--r--dev-lang/spidermonkey/spidermonkey-60.5.2_p0-r4.ebuild161
-rw-r--r--dev-lang/spidermonkey/spidermonkey-68.12.0.ebuild264
-rw-r--r--dev-lang/squirrel/Manifest3
-rw-r--r--dev-lang/squirrel/files/squirrel-3.2-CVE-2022-30292.patch12
-rw-r--r--dev-lang/squirrel/files/squirrel.pc.in12
-rw-r--r--dev-lang/squirrel/metadata.xml7
-rw-r--r--dev-lang/squirrel/squirrel-3.1_p20200612.ebuild42
-rw-r--r--dev-lang/squirrel/squirrel-3.2.ebuild63
-rw-r--r--dev-lang/srf/metadata.xml2
-rw-r--r--dev-lang/srf/srf-1.0-r2.ebuild6
-rw-r--r--dev-lang/starlark-rust/Manifest165
-rw-r--r--dev-lang/starlark-rust/files/test/features.bash175
-rw-r--r--dev-lang/starlark-rust/metadata.xml14
-rw-r--r--dev-lang/starlark-rust/starlark-rust-0.8.0.ebuild206
-rw-r--r--dev-lang/swi-prolog/Manifest8
-rw-r--r--dev-lang/swi-prolog/files/swi-prolog-9.1.2-configure-clang16.patch61
-rw-r--r--dev-lang/swi-prolog/metadata.xml6
-rw-r--r--dev-lang/swi-prolog/swi-prolog-8.2.1.ebuild104
-rw-r--r--dev-lang/swi-prolog/swi-prolog-8.2.2.ebuild105
-rw-r--r--dev-lang/swi-prolog/swi-prolog-8.2.3.ebuild105
-rw-r--r--dev-lang/swi-prolog/swi-prolog-8.3.16.ebuild104
-rw-r--r--dev-lang/swi-prolog/swi-prolog-8.3.17.ebuild104
-rw-r--r--dev-lang/swi-prolog/swi-prolog-9.1.2-r1.ebuild177
-rw-r--r--dev-lang/swig/Manifest6
-rw-r--r--dev-lang/swig/files/swig-4.1.1-ccache-configure-clang16.patch32
-rw-r--r--dev-lang/swig/metadata.xml2
-rw-r--r--dev-lang/swig/swig-3.0.12.ebuild35
-rw-r--r--dev-lang/swig/swig-4.0.0.ebuild46
-rw-r--r--dev-lang/swig/swig-4.0.2.ebuild38
-rw-r--r--dev-lang/swig/swig-4.1.1-r1.ebuild61
-rw-r--r--dev-lang/swig/swig-4.2.0.ebuild49
-rw-r--r--dev-lang/swig/swig-4.2.1.ebuild52
-rw-r--r--dev-lang/tcc/Manifest3
-rw-r--r--dev-lang/tcc/metadata.xml2
-rw-r--r--dev-lang/tcc/tcc-0.9.27_p20211022.ebuild (renamed from dev-lang/tcc/tcc-0.9.27.ebuild)64
-rw-r--r--dev-lang/tcc/tcc-0.9.27_p20230223.ebuild95
-rw-r--r--dev-lang/tcc/tcc-9999.ebuild67
-rw-r--r--dev-lang/tcl/Manifest7
-rw-r--r--dev-lang/tcl/files/tcl-8.5.13-multilib.patch11
-rw-r--r--dev-lang/tcl/files/tcl-8.5.14-conf.patch11
-rw-r--r--dev-lang/tcl/files/tcl-8.6.12-configure-clang16.patch31
-rw-r--r--dev-lang/tcl/files/tcl-8.6.13-tclConfig-TCL_PACKAGE_PATH-braces.patch16
-rw-r--r--dev-lang/tcl/files/tcl-8.6.8-libieee.patch15
-rw-r--r--dev-lang/tcl/metadata.xml6
-rw-r--r--dev-lang/tcl/tcl-8.5.17-r1.ebuild117
-rw-r--r--dev-lang/tcl/tcl-8.6.11.ebuild10
-rw-r--r--dev-lang/tcl/tcl-8.6.12-r1.ebuild (renamed from dev-lang/tcl/tcl-8.6.10.ebuild)30
-rw-r--r--dev-lang/tcl/tcl-8.6.13-r1.ebuild (renamed from dev-lang/tcl/tcl-8.6.9-r1.ebuild)46
-rw-r--r--dev-lang/tcl/tcl-8.6.14.ebuild (renamed from dev-lang/tcl/tcl-8.6.8.ebuild)60
-rw-r--r--dev-lang/teyjus/files/50teyjus-gentoo.el3
-rw-r--r--dev-lang/teyjus/files/teyjus-2.1-p004-Renaming-ccode_stubs-for-compilation.patch65
-rw-r--r--dev-lang/teyjus/files/teyjus-2.1-p005-Unbundle-ocaml-header-files.patch44
-rw-r--r--dev-lang/teyjus/files/teyjus-2.1-p006-Version.patch13
-rw-r--r--dev-lang/teyjus/metadata.xml9
-rw-r--r--dev-lang/teyjus/teyjus-2.1-r2.ebuild (renamed from dev-lang/teyjus/teyjus-2.1-r1.ebuild)61
-rw-r--r--dev-lang/teyjus/teyjus-2.1.ebuild110
-rw-r--r--dev-lang/tk/Manifest9
-rw-r--r--dev-lang/tk/files/tk-8.5.11-fedora-xft.patch13
-rw-r--r--dev-lang/tk/files/tk-8.5.13-multilib.patch12
-rw-r--r--dev-lang/tk/files/tk-8.5.14-conf.patch16
-rw-r--r--dev-lang/tk/files/tk-8.6.10-test.patch527
-rw-r--r--dev-lang/tk/files/tk-8.6.12-test.patch31
-rw-r--r--dev-lang/tk/files/tk-8.6.13-test.patch50
-rw-r--r--dev-lang/tk/files/tk-8.6.14-test.patch49
-rw-r--r--dev-lang/tk/files/tk-8.6.8-libieee.patch15
-rw-r--r--dev-lang/tk/metadata.xml3
-rw-r--r--dev-lang/tk/tk-8.5.17-r1.ebuild127
-rw-r--r--dev-lang/tk/tk-8.6.11.1.ebuild14
-rw-r--r--dev-lang/tk/tk-8.6.12.ebuild (renamed from dev-lang/tk/tk-8.6.11.ebuild)18
-rw-r--r--dev-lang/tk/tk-8.6.13.ebuild (renamed from dev-lang/tk/tk-8.6.9.1.ebuild)29
-rw-r--r--dev-lang/tk/tk-8.6.14.ebuild (renamed from dev-lang/tk/tk-8.6.10.ebuild)32
-rw-r--r--dev-lang/tk/tk-8.6.8.ebuild147
-rw-r--r--dev-lang/tk/tk-8.6.9.ebuild146
-rw-r--r--dev-lang/tuprolog/Manifest1
-rw-r--r--dev-lang/tuprolog/files/tuprolog-3.1.0-no-ikvm.patch137
-rw-r--r--dev-lang/tuprolog/files/tuprolog-3.1.0-test-suite.patch13
-rw-r--r--dev-lang/tuprolog/metadata.xml2
-rw-r--r--dev-lang/tuprolog/tuprolog-3.1.0-r1.ebuild67
-rw-r--r--dev-lang/tuprolog/tuprolog-3.2.0-r2.ebuild (renamed from dev-lang/tuprolog/tuprolog-3.2.0.ebuild)26
-rw-r--r--dev-lang/typescript/Manifest5
-rw-r--r--dev-lang/typescript/metadata.xml19
-rw-r--r--dev-lang/typescript/typescript-5.3.3.ebuild39
-rw-r--r--dev-lang/typescript/typescript-5.4.2.ebuild39
-rw-r--r--dev-lang/typescript/typescript-5.4.3.ebuild39
-rw-r--r--dev-lang/typescript/typescript-5.4.4.ebuild39
-rw-r--r--dev-lang/typescript/typescript-5.4.5.ebuild39
-rw-r--r--dev-lang/uasm/Manifest1
-rw-r--r--dev-lang/uasm/files/build-fix.patch179
-rw-r--r--dev-lang/uasm/metadata.xml18
-rw-r--r--dev-lang/uasm/uasm-2.56.2.ebuild41
-rw-r--r--dev-lang/vala/Manifest14
-rw-r--r--dev-lang/vala/files/0.40-Allow-disabling-the-build-of-valadoc.patch184
-rw-r--r--dev-lang/vala/files/0.40-valadoc-doclets-data-parallel-installable.patch212
-rw-r--r--dev-lang/vala/files/0.44-valadoc-doclets-data-parallel-installable.patch207
-rw-r--r--dev-lang/vala/metadata.xml19
-rw-r--r--dev-lang/vala/vala-0.36.20.ebuild38
-rw-r--r--dev-lang/vala/vala-0.40.23.ebuild54
-rw-r--r--dev-lang/vala/vala-0.40.24.ebuild54
-rw-r--r--dev-lang/vala/vala-0.46.10.ebuild49
-rw-r--r--dev-lang/vala/vala-0.46.13.ebuild49
-rw-r--r--dev-lang/vala/vala-0.48.11.ebuild49
-rw-r--r--dev-lang/vala/vala-0.48.12.ebuild49
-rw-r--r--dev-lang/vala/vala-0.48.6.ebuild49
-rw-r--r--dev-lang/vala/vala-0.48.9.ebuild49
-rw-r--r--dev-lang/vala/vala-0.50.2.ebuild49
-rw-r--r--dev-lang/vala/vala-0.56.16.ebuild (renamed from dev-lang/vala/vala-0.44.11.ebuild)32
-rw-r--r--dev-lang/vala/vala-0.56.17.ebuild (renamed from dev-lang/vala/vala-0.40.20.ebuild)36
-rw-r--r--dev-lang/whitespace/metadata.xml5
-rw-r--r--dev-lang/whitespace/whitespace-0.4.ebuild6
-rw-r--r--dev-lang/xsb/Manifest4
-rw-r--r--dev-lang/xsb/metadata.xml5
-rw-r--r--dev-lang/xsb/xsb-3.8.0.ebuild6
-rw-r--r--dev-lang/xsb/xsb-4.0.0.ebuild212
-rw-r--r--dev-lang/yap/Manifest6
-rw-r--r--dev-lang/yap/metadata.xml2
-rw-r--r--dev-lang/yap/yap-6.3.4.ebuild132
-rw-r--r--dev-lang/yap/yap-7.0.1.ebuild105
-rw-r--r--dev-lang/yap/yap-7.1.0.ebuild105
-rw-r--r--dev-lang/yasm/metadata.xml14
-rw-r--r--dev-lang/yasm/yasm-1.3.0-r1.ebuild2
-rw-r--r--dev-lang/zig-bin/Manifest12
-rw-r--r--dev-lang/zig-bin/files/zig-0.10.1-musl-1.2.4-lfs64.patch220
-rw-r--r--dev-lang/zig-bin/files/zig-0.11.0-first-try-getconf.patch113
-rw-r--r--dev-lang/zig-bin/metadata.xml16
-rw-r--r--dev-lang/zig-bin/zig-bin-0.10.1-r3.ebuild75
-rw-r--r--dev-lang/zig-bin/zig-bin-0.11.0-r1.ebuild69
-rw-r--r--dev-lang/zig/Manifest2
-rw-r--r--dev-lang/zig/files/zig-0.11.0-first-try-getconf.patch113
-rw-r--r--dev-lang/zig/metadata.xml14
-rw-r--r--dev-lang/zig/zig-0.11.0-r1.ebuild177
-rw-r--r--dev-lang/zig/zig-0.5.0.ebuild61
-rw-r--r--dev-lang/zig/zig-9999.ebuild226
1029 files changed, 41189 insertions, 47394 deletions
diff --git a/dev-lang/R/Manifest b/dev-lang/R/Manifest
index 4e4ba5f0d224..7aafccd7e1f5 100644
--- a/dev-lang/R/Manifest
+++ b/dev-lang/R/Manifest
@@ -1,4 +1,3 @@
-DIST R-3.4.1.tar.gz 30200109 BLAKE2B 03602e9a48759caee8ce047fa6273df7a54af089de4489e21953c0e3fc7bfdf720d924f1e0167d3dbf65f63ed42ac10dea8b45289b921cda1c0e6d25a0063ebb SHA512 19bd50c87dc001ef947c15c1760f27ac8986ff6b43c6d90d3093ae184e42963027ef06faf31ec57ac9e519af7a35a2f53f8ea23ef75d800ebbd02945cedc4651
-DIST R-3.6.3.tar.gz 33308185 BLAKE2B f82751e21d3b502132f8f27d4fc47a921fb085a50c3da3b45e08fbbdd1ab3d42e89b4fa6653a570c21176d79f492277b1d0b86c3c9f4da1386d8b6e4771d4d2c SHA512 9b1dc78922e431bd1af81e6e560b10ad04d121718f680fed32db735d561fd40ea6028759976722db11559f1a78fe684119b766f0567128cb2ee5003aa87a0931
-DIST R-4.0.2.tar.gz 33191186 BLAKE2B 2d5b99c17a9df48a36871f18701efacfaa1e6bb89c0e5c6516fc20966547f34f9079dc52ab18ac7816e0fed25d6230076246e83dc648501553fa2d0cad67b8e4 SHA512 b7330613ee9795f54cde3dd9f7509be83d9156fb8577c17179727ee01450db27704249f68bd48e0331e2df09c2d9833d8bb019c4f9ce9ba669df74650ff2e842
+DIST R-4.3.1.tar.gz 34899964 BLAKE2B 7aaacad01ce59e2faa46c4b830c10d2df8e4a3a1d4f11cf2aa622ceb53876f1e702dff94a820ca954ec29f53d58fa7e135ef15e8257602c50f2642b0a0c0a86a SHA512 f571c378dbdd675e267ef4419bb1141198924dadc08297c93c8dff58504994604918b3e045bb7139ba473972a063a68ed1c7426f37d4e8208b79358561d34d77
+DIST R-4.3.2.tar.gz 35039225 BLAKE2B 2de3af9013c8648c118a1efe673b618aef84a694c6865657faef5b0ca5f780ef5273bb00b607f587219ee30a11f01ccc3b730b9124847242b9d9550de471f58c SHA512 125114357f20d4a3248aee86727768d1dc15e07e44353f8a68fe2ef1fedae508e85d944301d00c0edd61e8b012b0b3cdcde53ac60be903713f96542d83ad5b1d
DIST R-78d6830e28ea90a046da79a9b4f70c39594bb6d6.bash_completion 13596 BLAKE2B 53338e4a1c4f68beb69247216e553dbcac47f660fbf032bfebf7a660e32d2cff5b11ed35411c52de7e1fd6e00bbf5b5ea19369a325fa0a38bd93d63dc3288cbd SHA512 9ccd19bb1b0c18a2f13035ccd6809447429e197e298fb4d1df808ef345d723b42f75a1b91c349f6dbb46e4a82e59ef33e11300c495d79b63d670d0c0f2b16a06
diff --git a/dev-lang/R/R-3.4.1.ebuild b/dev-lang/R/R-3.4.1.ebuild
deleted file mode 100644
index 39b6d57442c8..000000000000
--- a/dev-lang/R/R-3.4.1.ebuild
+++ /dev/null
@@ -1,203 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit bash-completion-r1 autotools eutils flag-o-matic fortran-2 multilib versionator toolchain-funcs
-
-# latest git commit for R bash completion: https://github.com/deepayan/rcompletion
-BCPV=78d6830e28ea90a046da79a9b4f70c39594bb6d6
-
-DESCRIPTION="Language and environment for statistical computing and graphics"
-HOMEPAGE="http://www.r-project.org/"
-SRC_URI="
- mirror://cran/src/base/R-3/${P}.tar.gz
- https://raw.githubusercontent.com/deepayan/rcompletion/${BCPV}/bash_completion/R -> ${PN}-${BCPV}.bash_completion"
-
-LICENSE="|| ( GPL-2 GPL-3 ) LGPL-2.1"
-SLOT="0"
-KEYWORDS="amd64 arm64 ~hppa ~ia64 sparc x86 ~amd64-linux ~x86-linux"
-IUSE="cairo doc icu java jpeg lapack minimal nls openmp perl png prefix profile readline static-libs tiff tk X"
-REQUIRED_USE="png? ( || ( cairo X ) ) jpeg? ( || ( cairo X ) ) tiff? ( || ( cairo X ) )"
-
-CDEPEND="
- app-arch/bzip2:0=
- app-arch/xz-utils:0=
- app-text/ghostscript-gpl
- >=dev-libs/libpcre-8.35:3=
- net-misc/curl
- virtual/blas:0
- || ( >=sys-apps/coreutils-8.15 app-misc/realpath )
- cairo? ( x11-libs/cairo:0=[X] x11-libs/pango:0= )
- icu? ( dev-libs/icu:= )
- jpeg? ( virtual/jpeg:0 )
- lapack? ( virtual/lapack:0 )
- perl? ( dev-lang/perl )
- png? ( media-libs/libpng:0= )
- readline? ( sys-libs/readline:0= )
- tiff? ( media-libs/tiff:0= )
- tk? ( dev-lang/tk:0= )
- X? ( x11-libs/libXmu:0= x11-misc/xdg-utils )"
-
-DEPEND="${CDEPEND}
- virtual/pkgconfig
- doc? (
- virtual/latex-base
- dev-texlive/texlive-fontsrecommended
- )"
-
-RDEPEND="${CDEPEND}
- >=sys-libs/zlib-1.2.5.1-r2:0[minizip]
- java? ( >=virtual/jre-1.5 )"
-
-RESTRICT="minimal? ( test )"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-3.4.1-parallel.patch
- "${FILESDIR}"/${PN}-3.4.1-rmath-shared.patch
-)
-
-pkg_pretend() {
- [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
-}
-
-pkg_setup() {
- if [[ ${MERGE_TYPE} != binary ]] && use openmp; then
- if ! tc-check-openmp; then
- ewarn "OpenMP is not available in your current selected compiler"
- die "need openmp capable compiler"
- fi
- FORTRAN_NEED_OPENMP=1
- fi
- fortran-2_pkg_setup
- filter-ldflags -Wl,-Bdirect -Bdirect
- # avoid using existing R installation
- unset R_HOME
- # Temporary fix for bug #419761
- if [[ ($(tc-getCC) == *gcc) && ($(gcc-version) == 4.7) ]]; then
- append-flags -fno-ipa-cp-clone
- fi
-}
-
-src_prepare() {
- default
-
- # fix packages.html for doc (gentoo bug #205103)
- sed -e "s:../../../library:../../../../$(get_libdir)/R/library:g" \
- -i src/library/tools/R/Rd.R || die
-
- # fix Rscript path when installed (gentoo bug #221061)
- sed -e "s:-DR_HOME='\"\$(rhome)\"':-DR_HOME='\"${EROOT%/}/usr/$(get_libdir)/${PN}\"':" \
- -i src/unix/Makefile.in || die "sed unix Makefile failed"
-
- # fix HTML links to manual (gentoo bug #273957)
- sed -e 's:\.\./manual/:manual/:g' \
- -i $(grep -Flr ../manual/ doc) || die "sed for HTML links failed"
-
- use lapack && \
- export LAPACK_LIBS="$($(tc-getPKG_CONFIG) --libs lapack)"
-
- if use X; then
- export R_BROWSER="$(type -p xdg-open)"
- export R_PDFVIEWER="$(type -p xdg-open)"
- fi
- use perl && \
- export PERL5LIB="${S}/share/perl:${PERL5LIB:+:}${PERL5LIB}"
-
- # don't search /usr/local
- sed -i -e '/FLAGS=.*\/local\//c\: # removed by ebuild' configure.ac || die
- # Fix for Darwin (OS X)
- if use prefix; then
- if [[ ${CHOST} == *-darwin* ]] ; then
- sed -e 's:-install_name libR.dylib:-install_name ${libdir}/R/lib/libR.dylib:' \
- -e 's:-install_name libRlapack.dylib:-install_name ${libdir}/R/lib/libRlapack.dylib:' \
- -e 's:-install_name libRblas.dylib:-install_name ${libdir}/R/lib/libRblas.dylib:' \
- -e "/SHLIB_EXT/s/\.so/.dylib/" \
- -i configure.ac || die
- # sort of "undo" 2.14.1-rmath-shared.patch
- sed -e "s:-Wl,-soname=libRmath.so:-install_name ${EROOT%/}/usr/$(get_libdir)/libRmath.dylib:" \
- -i src/nmath/standalone/Makefile.in || die
- else
- append-ldflags -Wl,-rpath="${EROOT%/}/usr/$(get_libdir)/R/lib"
- fi
- fi
- AT_M4DIR=m4 eaclocal
- eautoconf
-}
-
-src_configure() {
- # --with-system-tre \
- # tre is patched from upstream
- econf \
- --enable-byte-compiled-packages \
- --enable-R-shlib \
- --disable-R-framework \
- --with-blas="$($(tc-getPKG_CONFIG) --libs blas)" \
- rdocdir="${EPREFIX}/usr/share/doc/${PF}" \
- $(use_enable java) \
- $(use_enable nls) \
- $(use_enable openmp) \
- $(use_enable profile R-profiling) \
- $(use_enable profile memory-profiling) \
- $(use_enable static-libs static) \
- $(use_enable static-libs R-static-lib) \
- $(use_with cairo) \
- $(use_with icu ICU) \
- $(use_with jpeg jpeglib) \
- $(use_with lapack) \
- $(use_with !minimal recommended-packages) \
- $(use_with png libpng) \
- $(use_with readline) \
- $(use_with tiff libtiff) \
- $(use_with tk tcltk) \
- $(use_with tk tk-config "${EPREFIX}"/usr/$(get_libdir)/tkConfig.sh) \
- $(use_with tk tcl-config "${EPREFIX}"/usr/$(get_libdir)/tclConfig.sh) \
- $(use_with X x)
-}
-
-src_compile() {
- export VARTEXFONTS="${T}/fonts"
- emake AR="$(tc-getAR)"
- emake -C src/nmath/standalone \
- shared $(use static-libs && echo static) AR="$(tc-getAR)"
- use doc && emake info pdf
-}
-
-src_install() {
- default
- emake -j1 -C src/nmath/standalone DESTDIR="${D}" install
-
- if use doc; then
- emake DESTDIR="${D}" install-info install-pdf
- dosym ../manual /usr/share/doc/${PF}/html/manual
- fi
-
- cat > 99R <<-EOF
- LDPATH=${EROOT%/}/usr/$(get_libdir)/${PN}/lib
- R_HOME=${EROOT%/}/usr/$(get_libdir)/${PN}
- EOF
- doenvd 99R
- newbashcomp "${DISTDIR}"/${PN}-${BCPV}.bash_completion ${PN}
- # The buildsystem has a different understanding of install_names than
- # we require. Since it builds modules like shared objects (wrong), many
- # objects (all modules) get an incorrect install_name. Fixing the build
- # system here is not really trivial.
- if [[ ${CHOST} == *-darwin* ]] ; then
- local mod
- pushd "${ED}"/usr/$(get_libdir)/R > /dev/null
- for mod in $(find . -name "*.dylib") ; do
- mod=${mod#./}
- install_name_tool -id "${EPREFIX}/usr/$(get_libdir)/R/${mod}" \
- "${mod}"
- done
- popd > /dev/null
- fi
- docompress -x /usr/share/doc/${PF}/{BioC_mirrors.csv,CRAN_mirrors.csv,KEYWORDS.db,NEWS.rds}
-}
-
-pkg_postinst() {
- if use java; then
- einfo "Re-initializing java paths for ${P}"
- R CMD javareconf
- fi
-}
diff --git a/dev-lang/R/R-3.6.3-r1.ebuild b/dev-lang/R/R-4.3.1-r1.ebuild
index bd149544e480..ae4ae9624145 100644
--- a/dev-lang/R/R-3.6.3-r1.ebuild
+++ b/dev-lang/R/R-4.3.1-r1.ebuild
@@ -1,83 +1,96 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-inherit bash-completion-r1 autotools eutils flag-o-matic fortran-2 multilib toolchain-funcs
+inherit bash-completion-r1 autotools flag-o-matic fortran-2 toolchain-funcs
-# latest git commit for R bash completion: https://github.com/deepayan/rcompletion
+# latest git commit for R bash completion:
+# https://github.com/deepayan/rcompletion
BCPV=78d6830e28ea90a046da79a9b4f70c39594bb6d6
DESCRIPTION="Language and environment for statistical computing and graphics"
-HOMEPAGE="http://www.r-project.org/"
+HOMEPAGE="https://www.r-project.org/"
SRC_URI="
- mirror://cran/src/base/R-3/${P}.tar.gz
+ https://cran.r-project.org/src/base/R-4/${P}.tar.gz
https://raw.githubusercontent.com/deepayan/rcompletion/${BCPV}/bash_completion/R -> ${PN}-${BCPV}.bash_completion"
LICENSE="|| ( GPL-2 GPL-3 ) LGPL-2.1"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~hppa ~ia64 ~sparc ~x86 ~amd64-linux ~x86-linux"
-IUSE="cairo doc icu java jpeg lapack minimal nls openmp perl png prefix profile readline static-libs test tiff tk X"
-REQUIRED_USE="png? ( || ( cairo X ) ) jpeg? ( || ( cairo X ) ) tiff? ( || ( cairo X ) )"
+KEYWORDS="amd64 arm64 ~hppa ~ia64 ~loong sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos"
+IUSE="cairo doc icu java jpeg lapack lto minimal nls openmp perl png prefix profile readline test tiff tk X"
+
+REQUIRED_USE="
+ png? ( || ( cairo X ) )
+ jpeg? ( || ( cairo X ) )
+ tiff? ( || ( cairo X ) )"
+RESTRICT="
+ minimal? ( test )
+ !test? ( test )"
# At least one package installation in the test suite requires TeX,
# and will fail without it (bug #718056).
-BDEPEND="virtual/pkgconfig
- doc? (
- virtual/latex-base
- dev-texlive/texlive-fontsrecommended
- )
- test? ( virtual/latex-base )"
DEPEND="
- app-arch/bzip2:0=
- app-arch/xz-utils:0=
+ app-arch/bzip2
+ app-arch/xz-utils
app-text/ghostscript-gpl
- dev-libs/libpcre:3=
- net-libs/libtirpc
+ dev-libs/libpcre2:=
+ >=dev-libs/tre-0.8.0_p20210321[approx]
net-misc/curl
- virtual/blas:0
- || ( sys-apps/coreutils app-misc/realpath )
- cairo? ( x11-libs/cairo:0=[X=] x11-libs/pango:0= )
+ virtual/blas
+ sys-libs/zlib[minizip]
+ sys-apps/coreutils
+ cairo? (
+ x11-libs/cairo:=[X=]
+ x11-libs/pango:=
+ )
icu? ( dev-libs/icu:= )
- jpeg? ( virtual/jpeg:0 )
- lapack? ( virtual/lapack:0 )
+ jpeg? ( media-libs/libjpeg-turbo:= )
+ kernel_linux? ( net-libs/libtirpc )
+ lapack? ( virtual/lapack )
perl? ( dev-lang/perl )
- png? ( media-libs/libpng:0= )
- readline? ( sys-libs/readline:0= )
- tiff? ( media-libs/tiff:0= )
- tk? ( dev-lang/tk:0= )
- X? ( x11-libs/libXmu:0= x11-misc/xdg-utils )"
-
+ png? ( media-libs/libpng:= )
+ readline? ( sys-libs/readline:= )
+ tiff? ( media-libs/tiff:= )
+ tk? ( dev-lang/tk:= )
+ X? (
+ x11-libs/libXmu
+ x11-libs/libXt
+ )"
RDEPEND="${DEPEND}
- sys-libs/zlib:0[minizip]
- java? ( >=virtual/jre-1.5 )"
-
-RESTRICT="minimal? ( test )
- !test? ( test )"
+ java? ( >=virtual/jre-1.8:* )"
+BDEPEND="
+ sys-apps/which
+ virtual/pkgconfig
+ doc? (
+ virtual/latex-base
+ dev-texlive/texlive-fontsrecommended
+ )
+ test? ( virtual/latex-base )"
PATCHES=(
- "${FILESDIR}"/${PN}-3.4.1-parallel.patch
- "${FILESDIR}"/${PN}-3.4.1-rmath-shared.patch
- "${FILESDIR}"/${PN}-3.6.2-no-LDFLAGS-in-libR-pkg-config.patch
- "${FILESDIR}"/${PN}-3.6.2-no-gzip-doc.patch
+ "${FILESDIR}"/R-4.3.0-parallel.patch
+ "${FILESDIR}"/R-4.3.0-no-LDFLAGS-in-libR-pkg-config.patch
+ "${FILESDIR}"/R-4.3.0-no-gzip-doc.patch
)
+# false positive, the linking step fails (as it should)
+QA_CONFIG_IMPL_DECL_SKIP=( iconvlist )
+
pkg_pretend() {
[[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
}
pkg_setup() {
if [[ ${MERGE_TYPE} != binary ]] && use openmp; then
+ tc-check-openmp
FORTRAN_NEED_OPENMP=1
fi
+
fortran-2_pkg_setup
- filter-ldflags -Wl,-Bdirect -Bdirect
+
# avoid using existing R installation
unset R_HOME
- # Temporary fix for bug #419761
- if [[ ($(tc-getCC) == *gcc) && ($(gcc-version) == 4.7) ]]; then
- append-flags -fno-ipa-cp-clone
- fi
}
src_prepare() {
@@ -88,26 +101,23 @@ src_prepare() {
-i src/library/tools/R/Rd.R || die
# fix Rscript path when installed (gentoo bug #221061)
- sed -e "s:-DR_HOME='\"\$(rhome)\"':-DR_HOME='\"${EROOT}/usr/$(get_libdir)/${PN}\"':" \
+ sed -e "s:-DR_HOME='\"\$(rhome)\"':-DR_HOME='\"${EPREFIX}/usr/$(get_libdir)/${PN}\"':" \
-i src/unix/Makefile.in || die "sed unix Makefile failed"
# fix HTML links to manual (gentoo bug #273957)
sed -e 's:\.\./manual/:manual/:g' \
-i $(grep -Flr ../manual/ doc) || die "sed for HTML links failed"
- use lapack && \
+ use lapack &&
export LAPACK_LIBS="$($(tc-getPKG_CONFIG) --libs lapack)"
- if use X; then
- export R_BROWSER="$(type -p xdg-open)"
- export R_PDFVIEWER="$(type -p xdg-open)"
- fi
- use perl && \
+ use perl &&
export PERL5LIB="${S}/share/perl:${PERL5LIB:+:}${PERL5LIB}"
# don't search /usr/local
sed -i -e '/FLAGS=.*\/local\//c\: # removed by ebuild' configure.ac || die
- # Fix for Darwin (OS X)
+
+ # Fix for Darwin (macOS)
if use prefix; then
if [[ ${CHOST} == *-darwin* ]] ; then
sed -e 's:-install_name libR.dylib:-install_name ${libdir}/R/lib/libR.dylib:' \
@@ -116,32 +126,34 @@ src_prepare() {
-e "/SHLIB_EXT/s/\.so/.dylib/" \
-i configure.ac || die
# sort of "undo" 2.14.1-rmath-shared.patch
- sed -e "s:-Wl,-soname=libRmath.so:-install_name ${EROOT}/usr/$(get_libdir)/libRmath.dylib:" \
+ sed -e "s:-Wl,-soname=libRmath.so:-install_name ${EPREFIX}/usr/$(get_libdir)/libRmath.dylib:" \
-i src/nmath/standalone/Makefile.in || die
else
- append-ldflags -Wl,-rpath="${EROOT}/usr/$(get_libdir)/R/lib"
+ append-ldflags -Wl,-rpath="${EPREFIX}/usr/$(get_libdir)/R/lib"
fi
fi
- AT_M4DIR=m4
- eautoreconf
+
+ AT_M4DIR=m4 eautoreconf
}
src_configure() {
- # --with-system-tre \
- # tre is patched from upstream
+ filter-ldflags -Wl,-Bdirect -Bdirect
+
econf \
--enable-byte-compiled-packages \
--enable-R-shlib \
--disable-R-framework \
+ --disable-R-static-lib \
--with-blas="$($(tc-getPKG_CONFIG) --libs blas)" \
rdocdir="${EPREFIX}/usr/share/doc/${PF}" \
+ --with-system-tre \
+ --without-aqua \
$(use_enable java) \
+ $(use_enable lto lto R) \
$(use_enable nls) \
$(use_enable openmp) \
$(use_enable profile R-profiling) \
$(use_enable profile memory-profiling) \
- $(use_enable static-libs static) \
- $(use_enable static-libs R-static-lib) \
$(use_with cairo) \
$(use_with icu ICU) \
$(use_with jpeg jpeglib) \
@@ -151,33 +163,32 @@ src_configure() {
$(use_with readline) \
$(use_with tiff libtiff) \
$(use_with tk tcltk) \
- $(use_with tk tk-config "${EPREFIX}"/usr/$(get_libdir)/tkConfig.sh) \
- $(use_with tk tcl-config "${EPREFIX}"/usr/$(get_libdir)/tclConfig.sh) \
+ $(use_with tk tk-config "${ESYSROOT}"/usr/$(get_libdir)/tkConfig.sh) \
+ $(use_with tk tcl-config "${ESYSROOT}"/usr/$(get_libdir)/tclConfig.sh) \
$(use_with X x)
}
src_compile() {
- export VARTEXFONTS="${T}/fonts"
+ export VARTEXFONTS="${T}"/fonts
emake AR="$(tc-getAR)"
- emake -C src/nmath/standalone \
- shared $(use static-libs && echo static) AR="$(tc-getAR)"
+ emake -C src/nmath/standalone shared AR="$(tc-getAR)"
use doc && emake info pdf
}
src_install() {
default
- emake -j1 -C src/nmath/standalone DESTDIR="${D}" install
+ emake -C src/nmath/standalone DESTDIR="${D}" install
if use doc; then
emake DESTDIR="${D}" install-info install-pdf
dosym ../manual /usr/share/doc/${PF}/html/manual
fi
- cat > 99R <<-EOF
- LDPATH=${EROOT}/usr/$(get_libdir)/${PN}/lib
- R_HOME=${EROOT}/usr/$(get_libdir)/${PN}
- EOF
- doenvd 99R
+ newenvd - 99R <<-_EOF_
+ LDPATH="${EPREFIX}/usr/$(get_libdir)/${PN}/lib"
+ R_HOME="${EPREFIX}/usr/$(get_libdir)/${PN}"
+ _EOF_
+
newbashcomp "${DISTDIR}"/${PN}-${BCPV}.bash_completion ${PN}
# The buildsystem has a different understanding of install_names than
# we require. Since it builds modules like shared objects (wrong), many
@@ -185,13 +196,12 @@ src_install() {
# system here is not really trivial.
if [[ ${CHOST} == *-darwin* ]] ; then
local mod
- pushd "${ED}"/usr/$(get_libdir)/R > /dev/null
+ pushd "${ED}"/usr/$(get_libdir)/R >/dev/null || die
for mod in $(find . -name "*.dylib") ; do
mod=${mod#./}
- install_name_tool -id "${EPREFIX}/usr/$(get_libdir)/R/${mod}" \
- "${mod}"
+ install_name_tool -id "${EPREFIX}/usr/$(get_libdir)/R/${mod}" "${mod}"
done
- popd > /dev/null
+ popd >/dev/null || die
fi
# Users are encouraged to access some of the the R documentation
@@ -202,7 +212,7 @@ src_install() {
# collect as many names as possible that a user might actually
# try to view through R, because if we don't decompress them,
# then R doesn't know what to do with 'em. Bug #556706.
- INTERACTIVE_DOCS=(
+ local INTERACTIVE_DOCS=(
AUTHORS
COPYING
FAQ
@@ -212,18 +222,20 @@ src_install() {
# Other data sources that are shipped as "documentation," but which
# need to be accessible via their original unmolested filenames.
- INTERACTIVE_DATA=(
+ local INTERACTIVE_DATA=(
BioC_mirrors.csv
CRAN_mirrors.csv
KEYWORDS.db
NEWS.rds
)
- NOCOMPRESS_DOCS=( "${INTERACTIVE_DOCS[@]}" "${INTERACTIVE_DATA[@]}" )
-
+ local f NOCOMPRESS_DOCS=( "${INTERACTIVE_DOCS[@]}" "${INTERACTIVE_DATA[@]}" )
for f in "${NOCOMPRESS_DOCS[@]}"; do
- docompress -x "/usr/share/doc/${PF}/${f}"
+ docompress -x /usr/share/doc/${PF}/${f}
done
+
+ # Finally, an extra copy of this started showing up at some point...
+ rm "${ED}"/usr/$(get_libdir)/R/COPYING || die
}
pkg_postinst() {
diff --git a/dev-lang/R/R-4.0.2.ebuild b/dev-lang/R/R-4.3.2-r1.ebuild
index f900a51189f9..3a4567f726de 100644
--- a/dev-lang/R/R-4.0.2.ebuild
+++ b/dev-lang/R/R-4.3.2-r1.ebuild
@@ -1,92 +1,96 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-inherit bash-completion-r1 autotools eutils flag-o-matic fortran-2 multilib toolchain-funcs
+inherit bash-completion-r1 autotools flag-o-matic fortran-2 toolchain-funcs
-# latest git commit for R bash completion: https://github.com/deepayan/rcompletion
+# latest git commit for R bash completion:
+# https://github.com/deepayan/rcompletion
BCPV=78d6830e28ea90a046da79a9b4f70c39594bb6d6
DESCRIPTION="Language and environment for statistical computing and graphics"
-HOMEPAGE="http://www.r-project.org/"
+HOMEPAGE="https://www.r-project.org/"
SRC_URI="
- mirror://cran/src/base/R-4/${P}.tar.gz
+ https://cran.r-project.org/src/base/R-4/${P}.tar.gz
https://raw.githubusercontent.com/deepayan/rcompletion/${BCPV}/bash_completion/R -> ${PN}-${BCPV}.bash_completion"
LICENSE="|| ( GPL-2 GPL-3 ) LGPL-2.1"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~hppa ~ia64 ~sparc ~x86 ~amd64-linux ~x86-linux"
-IUSE="cairo doc icu java jpeg lapack minimal nls openmp perl png prefix profile readline static-libs test tiff tk X"
-
-# One test required profiling in v4.0.2, check the upstream bug:
-#
-# https://bugs.r-project.org/bugzilla/show_bug.cgi?id=17836
-#
-REQUIRED_USE="png? ( || ( cairo X ) )
+KEYWORDS="~amd64 ~arm64 ~hppa ~ia64 ~loong ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos"
+IUSE="cairo doc icu java jpeg lapack lto minimal nls openmp perl png prefix profile readline test tiff tk X"
+
+REQUIRED_USE="
+ png? ( || ( cairo X ) )
jpeg? ( || ( cairo X ) )
- tiff? ( || ( cairo X ) )
- test? ( profile )
-"
+ tiff? ( || ( cairo X ) )"
+RESTRICT="
+ minimal? ( test )
+ !test? ( test )"
# At least one package installation in the test suite requires TeX,
# and will fail without it (bug #718056).
-BDEPEND="virtual/pkgconfig
- doc? (
- virtual/latex-base
- dev-texlive/texlive-fontsrecommended
- )
- test? ( virtual/latex-base )"
DEPEND="
- app-arch/bzip2:0=
- app-arch/xz-utils:0=
+ app-arch/bzip2
+ app-arch/xz-utils
app-text/ghostscript-gpl
dev-libs/libpcre2:=
- net-libs/libtirpc
+ >=dev-libs/tre-0.8.0_p20210321[approx]
net-misc/curl
- virtual/blas:0
- || ( sys-apps/coreutils app-misc/realpath )
- cairo? ( x11-libs/cairo:0=[X=] x11-libs/pango:0= )
+ virtual/blas
+ sys-libs/zlib[minizip]
+ sys-apps/coreutils
+ cairo? (
+ x11-libs/cairo:=[X=]
+ x11-libs/pango:=
+ )
icu? ( dev-libs/icu:= )
- jpeg? ( virtual/jpeg:0 )
- lapack? ( virtual/lapack:0 )
+ jpeg? ( media-libs/libjpeg-turbo:= )
+ kernel_linux? ( net-libs/libtirpc )
+ lapack? ( virtual/lapack )
perl? ( dev-lang/perl )
- png? ( media-libs/libpng:0= )
- readline? ( sys-libs/readline:0= )
- tiff? ( media-libs/tiff:0= )
- tk? ( dev-lang/tk:0= )
- X? ( x11-libs/libXmu:0= x11-misc/xdg-utils )"
-
+ png? ( media-libs/libpng:= )
+ readline? ( sys-libs/readline:= )
+ tiff? ( media-libs/tiff:= )
+ tk? ( dev-lang/tk:= )
+ X? (
+ x11-libs/libXmu
+ x11-libs/libXt
+ )"
RDEPEND="${DEPEND}
- sys-libs/zlib:0[minizip]
- java? ( >=virtual/jre-1.5 )"
-
-RESTRICT="minimal? ( test )
- !test? ( test )"
+ java? ( >=virtual/jre-1.8:* )"
+BDEPEND="
+ sys-apps/which
+ virtual/pkgconfig
+ doc? (
+ virtual/latex-base
+ dev-texlive/texlive-fontsrecommended
+ )
+ test? ( virtual/latex-base )"
PATCHES=(
- "${FILESDIR}"/${PN}-3.4.1-parallel.patch
- "${FILESDIR}"/${PN}-3.4.1-rmath-shared.patch
- "${FILESDIR}"/${PN}-3.6.2-no-LDFLAGS-in-libR-pkg-config.patch
- "${FILESDIR}"/${PN}-3.6.2-no-gzip-doc.patch
+ "${FILESDIR}"/R-4.3.0-parallel.patch
+ "${FILESDIR}"/R-4.3.0-no-LDFLAGS-in-libR-pkg-config.patch
+ "${FILESDIR}"/R-4.3.0-no-gzip-doc.patch
)
+# false positive, the linking step fails (as it should)
+QA_CONFIG_IMPL_DECL_SKIP=( iconvlist )
+
pkg_pretend() {
[[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
}
pkg_setup() {
if [[ ${MERGE_TYPE} != binary ]] && use openmp; then
+ tc-check-openmp
FORTRAN_NEED_OPENMP=1
fi
+
fortran-2_pkg_setup
- filter-ldflags -Wl,-Bdirect -Bdirect
+
# avoid using existing R installation
unset R_HOME
- # Temporary fix for bug #419761
- if [[ ($(tc-getCC) == *gcc) && ($(gcc-version) == 4.7) ]]; then
- append-flags -fno-ipa-cp-clone
- fi
}
src_prepare() {
@@ -97,26 +101,23 @@ src_prepare() {
-i src/library/tools/R/Rd.R || die
# fix Rscript path when installed (gentoo bug #221061)
- sed -e "s:-DR_HOME='\"\$(rhome)\"':-DR_HOME='\"${EROOT}/usr/$(get_libdir)/${PN}\"':" \
+ sed -e "s:-DR_HOME='\"\$(rhome)\"':-DR_HOME='\"${EPREFIX}/usr/$(get_libdir)/${PN}\"':" \
-i src/unix/Makefile.in || die "sed unix Makefile failed"
# fix HTML links to manual (gentoo bug #273957)
sed -e 's:\.\./manual/:manual/:g' \
-i $(grep -Flr ../manual/ doc) || die "sed for HTML links failed"
- use lapack && \
+ use lapack &&
export LAPACK_LIBS="$($(tc-getPKG_CONFIG) --libs lapack)"
- if use X; then
- export R_BROWSER="$(type -p xdg-open)"
- export R_PDFVIEWER="$(type -p xdg-open)"
- fi
- use perl && \
+ use perl &&
export PERL5LIB="${S}/share/perl:${PERL5LIB:+:}${PERL5LIB}"
# don't search /usr/local
sed -i -e '/FLAGS=.*\/local\//c\: # removed by ebuild' configure.ac || die
- # Fix for Darwin (OS X)
+
+ # Fix for Darwin (macOS)
if use prefix; then
if [[ ${CHOST} == *-darwin* ]] ; then
sed -e 's:-install_name libR.dylib:-install_name ${libdir}/R/lib/libR.dylib:' \
@@ -125,32 +126,34 @@ src_prepare() {
-e "/SHLIB_EXT/s/\.so/.dylib/" \
-i configure.ac || die
# sort of "undo" 2.14.1-rmath-shared.patch
- sed -e "s:-Wl,-soname=libRmath.so:-install_name ${EROOT}/usr/$(get_libdir)/libRmath.dylib:" \
+ sed -e "s:-Wl,-soname=libRmath.so:-install_name ${EPREFIX}/usr/$(get_libdir)/libRmath.dylib:" \
-i src/nmath/standalone/Makefile.in || die
else
- append-ldflags -Wl,-rpath="${EROOT}/usr/$(get_libdir)/R/lib"
+ append-ldflags -Wl,-rpath="${EPREFIX}/usr/$(get_libdir)/R/lib"
fi
fi
- AT_M4DIR=m4
- eautoreconf
+
+ AT_M4DIR=m4 eautoreconf
}
src_configure() {
- # --with-system-tre \
- # tre is patched from upstream
+ filter-ldflags -Wl,-Bdirect -Bdirect
+
econf \
--enable-byte-compiled-packages \
--enable-R-shlib \
--disable-R-framework \
+ --disable-R-static-lib \
--with-blas="$($(tc-getPKG_CONFIG) --libs blas)" \
rdocdir="${EPREFIX}/usr/share/doc/${PF}" \
+ --with-system-tre \
+ --without-aqua \
$(use_enable java) \
+ $(use_enable lto lto R) \
$(use_enable nls) \
$(use_enable openmp) \
$(use_enable profile R-profiling) \
$(use_enable profile memory-profiling) \
- $(use_enable static-libs static) \
- $(use_enable static-libs R-static-lib) \
$(use_with cairo) \
$(use_with icu ICU) \
$(use_with jpeg jpeglib) \
@@ -160,33 +163,32 @@ src_configure() {
$(use_with readline) \
$(use_with tiff libtiff) \
$(use_with tk tcltk) \
- $(use_with tk tk-config "${EPREFIX}"/usr/$(get_libdir)/tkConfig.sh) \
- $(use_with tk tcl-config "${EPREFIX}"/usr/$(get_libdir)/tclConfig.sh) \
+ $(use_with tk tk-config "${ESYSROOT}"/usr/$(get_libdir)/tkConfig.sh) \
+ $(use_with tk tcl-config "${ESYSROOT}"/usr/$(get_libdir)/tclConfig.sh) \
$(use_with X x)
}
src_compile() {
- export VARTEXFONTS="${T}/fonts"
+ export VARTEXFONTS="${T}"/fonts
emake AR="$(tc-getAR)"
- emake -C src/nmath/standalone \
- shared $(use static-libs && echo static) AR="$(tc-getAR)"
+ emake -C src/nmath/standalone shared AR="$(tc-getAR)"
use doc && emake info pdf
}
src_install() {
default
- emake -j1 -C src/nmath/standalone DESTDIR="${D}" install
+ emake -C src/nmath/standalone DESTDIR="${D}" install
if use doc; then
emake DESTDIR="${D}" install-info install-pdf
dosym ../manual /usr/share/doc/${PF}/html/manual
fi
- cat > 99R <<-EOF
- LDPATH=${EROOT}/usr/$(get_libdir)/${PN}/lib
- R_HOME=${EROOT}/usr/$(get_libdir)/${PN}
- EOF
- doenvd 99R
+ newenvd - 99R <<-_EOF_
+ LDPATH="${EPREFIX}/usr/$(get_libdir)/${PN}/lib"
+ R_HOME="${EPREFIX}/usr/$(get_libdir)/${PN}"
+ _EOF_
+
newbashcomp "${DISTDIR}"/${PN}-${BCPV}.bash_completion ${PN}
# The buildsystem has a different understanding of install_names than
# we require. Since it builds modules like shared objects (wrong), many
@@ -194,13 +196,12 @@ src_install() {
# system here is not really trivial.
if [[ ${CHOST} == *-darwin* ]] ; then
local mod
- pushd "${ED}"/usr/$(get_libdir)/R > /dev/null
+ pushd "${ED}"/usr/$(get_libdir)/R >/dev/null || die
for mod in $(find . -name "*.dylib") ; do
mod=${mod#./}
- install_name_tool -id "${EPREFIX}/usr/$(get_libdir)/R/${mod}" \
- "${mod}"
+ install_name_tool -id "${EPREFIX}/usr/$(get_libdir)/R/${mod}" "${mod}"
done
- popd > /dev/null
+ popd >/dev/null || die
fi
# Users are encouraged to access some of the the R documentation
@@ -211,7 +212,7 @@ src_install() {
# collect as many names as possible that a user might actually
# try to view through R, because if we don't decompress them,
# then R doesn't know what to do with 'em. Bug #556706.
- INTERACTIVE_DOCS=(
+ local INTERACTIVE_DOCS=(
AUTHORS
COPYING
FAQ
@@ -221,18 +222,20 @@ src_install() {
# Other data sources that are shipped as "documentation," but which
# need to be accessible via their original unmolested filenames.
- INTERACTIVE_DATA=(
+ local INTERACTIVE_DATA=(
BioC_mirrors.csv
CRAN_mirrors.csv
KEYWORDS.db
NEWS.rds
)
- NOCOMPRESS_DOCS=( "${INTERACTIVE_DOCS[@]}" "${INTERACTIVE_DATA[@]}" )
-
+ local f NOCOMPRESS_DOCS=( "${INTERACTIVE_DOCS[@]}" "${INTERACTIVE_DATA[@]}" )
for f in "${NOCOMPRESS_DOCS[@]}"; do
- docompress -x "/usr/share/doc/${PF}/${f}"
+ docompress -x /usr/share/doc/${PF}/${f}
done
+
+ # Finally, an extra copy of this started showing up at some point...
+ rm "${ED}"/usr/$(get_libdir)/R/COPYING || die
}
pkg_postinst() {
diff --git a/dev-lang/R/files/R-3.4.1-rmath-shared.patch b/dev-lang/R/files/R-3.4.1-rmath-shared.patch
deleted file mode 100644
index 8bc6233de6df..000000000000
--- a/dev-lang/R/files/R-3.4.1-rmath-shared.patch
+++ /dev/null
@@ -1,21 +0,0 @@
---- a/src/nmath/standalone/Makefile.in 2017-07-05 23:20:26.098087600 +0000
-+++ b/src/nmath/standalone/Makefile.in 2017-07-05 23:21:55.087480310 +0000
-@@ -64,7 +64,8 @@
- Rexeclibdir_LTLIBRARIES = $(libRmath_la)
- libRmath_la_SOURCES = $(SOURCES)
- libRmath_la_OBJECTS = $(OBJECTS:.o=.lo)
--libRmath_la_LDFLAGS =
-+libRmath_la_LDFLAGS = -Wl,-soname=libRmath.so
-+libRmath_la_LIBADD = $(LIBM)
-
- CLEANFILES = Makedeps *.d *.o *.lo test check.log $(SOURCES)
- DISTCLEANFILES = Makefile $(Rexeclibdir_LIBRARIES) $(Rexeclibdir_LTLIBRARIES)
-@@ -127,7 +128,7 @@
-
- ## under peculiar circumstances, $(LIBM) here helps.
- $(libRmath_la): $(libRmath_la_OBJECTS)
-- $(DYLIB_LINK) -o $@ $(libRmath_la_LDFLAGS) $(libRmath_la_OBJECTS) $(LIBM)
-+ $(DYLIB_LINK) $(libRmath_la_LDFLAGS) $(libRmath_la_OBJECTS) $(libRmath_la_LIBADD) -o $@
-
- test: $(srcdir)/test.c
- $(CC) -o $@ $(ALL_CPPFLAGS) $(ALL_CFLAGS) $(srcdir)/test.c \
diff --git a/dev-lang/R/files/R-3.6.2-no-LDFLAGS-in-libR-pkg-config.patch b/dev-lang/R/files/R-4.3.0-no-LDFLAGS-in-libR-pkg-config.patch
index 2bcf50ccadb2..c36e59ec37e7 100644
--- a/dev-lang/R/files/R-3.6.2-no-LDFLAGS-in-libR-pkg-config.patch
+++ b/dev-lang/R/files/R-4.3.0-no-LDFLAGS-in-libR-pkg-config.patch
@@ -1,5 +1,5 @@
---- R-3.6.2-orig/src/unix/Makefile.in 2019-03-29 10:02:31.000000000 +1100
-+++ R-3.6.2/src/unix/Makefile.in 2020-01-13 22:39:14.506804106 +1100
+--- a/src/unix/Makefile.in
++++ b/src/unix/Makefile.in
@@ -79,7 +79,7 @@
-e "s:@rincludedir:$(rincludedir):" \
-e "s:@rarch:$(R_ARCH):" \
diff --git a/dev-lang/R/files/R-3.6.2-no-gzip-doc.patch b/dev-lang/R/files/R-4.3.0-no-gzip-doc.patch
index c87b61780529..49fbecc3a641 100644
--- a/dev-lang/R/files/R-3.6.2-no-gzip-doc.patch
+++ b/dev-lang/R/files/R-4.3.0-no-gzip-doc.patch
@@ -1,5 +1,5 @@
---- R-3.6.2-orig/doc/manual/Makefile.in 2019-03-29 10:02:40.000000000 +1100
-+++ R-3.6.2/doc/manual/Makefile.in 2020-01-13 22:17:31.324967094 +1100
+--- a/doc/manual/Makefile.in
++++ b/doc/manual/Makefile.in
@@ -345,7 +345,6 @@
@$(ECHO) "installing R info pages ..."
@for f in $(OBJECTS_INFO:.info=.info*); do \
diff --git a/dev-lang/R/files/R-3.4.1-parallel.patch b/dev-lang/R/files/R-4.3.0-parallel.patch
index 6fac15b9ffb7..95acc4790ebb 100644
--- a/dev-lang/R/files/R-3.4.1-parallel.patch
+++ b/dev-lang/R/files/R-4.3.0-parallel.patch
@@ -1,5 +1,5 @@
---- a/src/include/Makefile.in 2017-07-05 23:09:09.682703655 +0000
-+++ b/src/include/Makefile.in 2017-07-05 23:06:56.533612308 +0000
+--- a/src/include/Makefile.in
++++ b/src/include/Makefile.in
@@ -81,7 +81,7 @@
Rmath.h0: $(srcdir)/Rmath.h0.in $(top_builddir)/config.status
@cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
diff --git a/dev-lang/R/metadata.xml b/dev-lang/R/metadata.xml
index 8972d9ed88ca..c5ab836c4412 100644
--- a/dev-lang/R/metadata.xml
+++ b/dev-lang/R/metadata.xml
@@ -1,24 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="project">
- <email>sci-mathematics@gentoo.org</email>
- <name>Gentoo Mathematics Project</name>
- </maintainer>
- <longdescription lang="en">
- R is GNU S, a system for statistical computation and graphics. It
- consists of a language plus a run-time environment with graphics, a
- debugger, access to certain system functions, and the ability to run
- programs stored in script files.
+ <maintainer type="project">
+ <email>sci-mathematics@gentoo.org</email>
+ <name>Gentoo Mathematics Project</name>
+ </maintainer>
+ <longdescription lang="en">
+ R is GNU S, a system for statistical computation and graphics. It
+ consists of a language plus a run-time environment with graphics, a
+ debugger, access to certain system functions, and the ability to run
+ programs stored in script files.
- The core of R is an interpreted computer language which allows
- branching and looping as well as modular programming using functions.
- The R distribution contains functionality for a large number of
- statistical procedures such as: linear and generalized linear
- models, nonlinear regression models, time series analysis, classical
- parametric and nonparametric tests, clustering, smoothing and
- graphical data representations. Additional modules ("add-on
- packages") are available for a variety of specific purposes but are
- not distributed with this package.
-</longdescription>
+ The core of R is an interpreted computer language which allows
+ branching and looping as well as modular programming using functions.
+ The R distribution contains functionality for a large number of
+ statistical procedures such as: linear and generalized linear
+ models, nonlinear regression models, time series analysis, classical
+ parametric and nonparametric tests, clustering, smoothing and
+ graphical data representations. Additional modules ("add-on
+ packages") are available for a variety of specific purposes but are
+ not distributed with this package.
+ </longdescription>
+ <upstream>
+ <remote-id type="github">wch/r-source</remote-id>
+ </upstream>
</pkgmetadata>
diff --git a/dev-lang/abs/Manifest b/dev-lang/abs/Manifest
new file mode 100644
index 000000000000..5178d72bafb5
--- /dev/null
+++ b/dev-lang/abs/Manifest
@@ -0,0 +1,2 @@
+DIST abs-2.6.0-deps.tar.xz 5042696 BLAKE2B 3503af4167f99efcdeaf423c3b259bc41f8fbc6d322cc4ba98096dbf2d634d1e0bac8ced667c5b5bb3137cda6d484bec300a03214073ba408e11267c96f737e0 SHA512 0fb33142e192e4f5720b5c973af352a45d433c94cd1840d519a513f423759288f42679c744ba27c861eb2a8f32b9da79795ff530627d7d1d717b419f14fa8338
+DIST abs-2.6.0.tar.gz 8829951 BLAKE2B b8153c997d0366cc536f7fb4b484f1cd7815ef460e7ee1b2a21d2c84b71d598f44ca8ab5ebe14b4fc7ba9ee4a6dd962ccf70426374bca051684e6220037fd542 SHA512 3a4998670f2c71c847d6fdc6f25a6a67b884a81c3f0de09d8bb534a5b199910cc8a2d788101c588f4f0481c83cdacae34bcf648aabdfb06f570734b8bdc8d0b1
diff --git a/dev-lang/abs/abs-2.6.0.ebuild b/dev-lang/abs/abs-2.6.0.ebuild
new file mode 100644
index 000000000000..0391f7c101e1
--- /dev/null
+++ b/dev-lang/abs/abs-2.6.0.ebuild
@@ -0,0 +1,30 @@
+# Copyright 2021-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit go-module
+
+DESCRIPTION="The ABS programing language"
+HOMEPAGE="https://github.com/abs-lang/abs https://www.abs-lang.org/"
+SRC_URI="https://github.com/abs-lang/abs/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz
+ https://dev.gentoo.org/~zmedico/dist/${P}-deps.tar.xz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+RESTRICT+=" test"
+
+src_prepare() {
+ sed -e "s:^var Version = \"dev\"\$:var Version = \"${PV}\":" -i main.go || die
+ default
+}
+
+src_compile() {
+ CGO_ENABLED=0 emake build_simple || die
+}
+
+src_install() {
+ dobin builds/abs
+ dodoc README.md
+}
diff --git a/dev-lang/abs/metadata.xml b/dev-lang/abs/metadata.xml
new file mode 100644
index 000000000000..1d828d99fff5
--- /dev/null
+++ b/dev-lang/abs/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>zmedico@gentoo.org</email>
+ <name>Zac Medico</name>
+ </maintainer>
+ <upstream>
+ <bugs-to>https://github.com/abs-lang/abs/issues</bugs-to>
+ <changelog>https://github.com/abs-lang/abs/commits/master</changelog>
+ <doc>https://www.abs-lang.org/docs/</doc>
+ <remote-id type="github">abs-lang/abs</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-lang/algol68g/Manifest b/dev-lang/algol68g/Manifest
new file mode 100644
index 000000000000..7fb9b7c3a4cf
--- /dev/null
+++ b/dev-lang/algol68g/Manifest
@@ -0,0 +1 @@
+DIST algol68g-3.5.1.tar.gz 661670 BLAKE2B ec0aa47f367af621f3cf8ebad81bd501bac31238b4a918943917fec4d9f66cf57f98f5bd4c4c02d315a8f1ac2fd789aafb6e331289fac417abf9301a2a5d339d SHA512 764038c7db567d5fc130d4c324b74f43d7dbcfd89efb7b12b1a6983314a7e13f17e105fa783fb3397fff3773b69699ca3f5fd3be873229db9bf91582f7bf52f4
diff --git a/dev-lang/algol68g/algol68g-3.5.1.ebuild b/dev-lang/algol68g/algol68g-3.5.1.ebuild
new file mode 100644
index 000000000000..3b5c40da8f55
--- /dev/null
+++ b/dev-lang/algol68g/algol68g-3.5.1.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="Algol 68 Genie compiler-interpreter"
+HOMEPAGE="https://jmvdveer.home.xs4all.nl/en.algol-68-genie.html"
+SRC_URI="https://jmvdveer.home.xs4all.nl/${P}.tar.gz"
+
+LICENSE="GPL-3+"
+SLOT="0"
+KEYWORDS="amd64 ~x86"
+IUSE="+curl +gsl +mpfr +ncurses plotutils postgres +readline"
+
+RDEPEND="
+ curl? ( net-misc/curl )
+ gsl? ( sci-libs/gsl:= )
+ mpfr? ( dev-libs/mpfr:= )
+ plotutils? ( media-libs/plotutils )
+ postgres? ( dev-db/postgresql:* )
+ readline? ( sys-libs/readline:= )
+"
+DEPEND="
+ ${RDEPEND}
+"
+
+PATCHES=( "${FILESDIR}/${PN}-3.3.21-configure-implicit.patch" )
+
+src_configure() {
+ local -a myconf=(
+ $(use_enable curl)
+ $(use_enable gsl)
+ $(use_enable mpfr)
+ $(use_enable ncurses curses)
+ $(use_enable plotutils)
+ $(use_enable postgres postgresql)
+ $(use_enable readline)
+ $(use_with ncurses)
+ )
+ econf "${myconf[@]}"
+}
diff --git a/dev-lang/algol68g/files/algol68g-3.3.21-configure-implicit.patch b/dev-lang/algol68g/files/algol68g-3.3.21-configure-implicit.patch
new file mode 100644
index 000000000000..4a8d96b1ad14
--- /dev/null
+++ b/dev-lang/algol68g/files/algol68g-3.3.21-configure-implicit.patch
@@ -0,0 +1,13 @@
+--- a/configure
++++ b/configure
+@@ -5568,6 +5568,10 @@ else $as_nop
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+
++#include <gnu/libc-version.h>
++#include <stdlib.h>
++#include <stdio.h>
++
+ int
+ main (void)
+ {
diff --git a/dev-lang/algol68g/metadata.xml b/dev-lang/algol68g/metadata.xml
new file mode 100644
index 000000000000..146f78f15425
--- /dev/null
+++ b/dev-lang/algol68g/metadata.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+
+<pkgmetadata>
+ <maintainer type="person">
+ <email>xgqt@gentoo.org</email>
+ <name>Maciej Barć</name>
+ </maintainer>
+ <longdescription>
+ Algol 68 Genie is free software distributed under the GNU General Public
+ License; it is a fast compiler-interpreter which ranks among the most
+ complete implementations of the language.
+ </longdescription>
+ <use>
+ <flag name="mpfr">Add support for multiprecision floating point rouding</flag>
+ </use>
+ <upstream>
+ <bugs-to>mailto:algol68g@xs4all.nl</bugs-to>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-lang/ammonite-repl-bin/Manifest b/dev-lang/ammonite-repl-bin/Manifest
new file mode 100644
index 000000000000..bad958df18bf
--- /dev/null
+++ b/dev-lang/ammonite-repl-bin/Manifest
@@ -0,0 +1,8 @@
+DIST ammonite-repl-bin-2.5.11-2.13 57685676 BLAKE2B f9f9ad1840303c09eb918a85274d20d83f4f3ce8e8a48bb781bdd3ca4bda2e25a09f0e3fd2b48cb873e2c6cdc59b27ff157573aa5ea2a487de9352a6b5bf8714 SHA512 72936d59932dabc3e55283aa1c5d033736674d19c7009580bb1ff3f6e94ad1e903639685f5e7d151dc368f692ceea064bc2d1d81baa0ce18218b9ff5a14c9d70
+DIST ammonite-repl-bin-2.5.11-3.0 62566811 BLAKE2B face638e4b8ea67f8d2791c7e10360866baea3ce271a048cea3ed4daf0e8f1af64248fe1ec34c8106c31af94ee29b100311c947e45106505bc1652ad073bed22 SHA512 a3cb044c9c170e0f0616af9e404db5389b79604fe11bb77d7a3ef0db34e05610460df5036a256826d2ae424fee307b969c6b7d02e22f420122cb362a906907a9
+DIST ammonite-repl-bin-2.5.11-3.1 63649297 BLAKE2B 4757f908b439bb2e3a69641e866d0283aef2860784bf38ae8a554b64567f96a87d5998b9629d728360ae0ee6fe6bc803d19d6ce76da563e624947dcb28aa86f0 SHA512 b3eee4852f4788b093654d6bf371393cbfd0d38bf35e70cf3e9a3ff6f75f4b58a6c2e4ca29ef1303ec698c82aece58680f7b4862b2b1d9a692cb840eb45f9a78
+DIST ammonite-repl-bin-2.5.11-3.2 64675864 BLAKE2B c9e3dce79af79e75afa9085b039b8ef6e1ef78f9c25eeeaa09a430df90c474681a1742ef723c2e4c31ef0dbad4304d1a3c3249fa77fe5c27a23da04fae02eca5 SHA512 dbf4bcd584df1b223f55b5647edff976f4f916c03528e19ad9240ccecf30d602dc3b73a03b9c08fc773cc28737a27fe5f18507b6e3f77f950c651eaf9ace16dc
+DIST ammonite-repl-bin-2.5.9-2.13 56786192 BLAKE2B e63264b1735132cdb22626d35a0a8c484a26676618cf2369a56bc46d789009b27fd68b475b363959bbfd937388918a310c61ed5188885fdb18d6c7c011f21ec4 SHA512 5ba118d5ff96bf9a50ddff3420d47dc14ab14a4f53ef715c63ab002e5487d698871afbea0392e7b8c036c48a33833faa2eecc86919a1b42bb2dfd6b70fb44bb9
+DIST ammonite-repl-bin-2.5.9-3.0 61696887 BLAKE2B fc7afabf3fc6129ea8da03cfb03da7cee10889ed4ceffe08e965b6f27649af6daf1db5e6bfb12871ac2fd5fe5b74cc27e1e467c25f3b5a4a7b9662943c4ef7fa SHA512 b33aebc31b5b54739389212533780b99145aaf74905532c1de55ee8e79dc1e12e217968f6f0a5f39fb6ffeb87f70792dcef98c0f75f3fe81a96f2c4adbc9f066
+DIST ammonite-repl-bin-2.5.9-3.1 62779382 BLAKE2B 0136efb63727ba47ddac62671a510b0742a1b3f888ced421518b052fd95dabc15cf20626e0b4692a936df468cc6c96b16a486ea847973ed9ab5d7c8dce52481c SHA512 3e422d9402a4a8a71c77b4c8bdcc980f19274938a122a57ce712709961fd3d6c7417b3e85fff414863c84f412c183b7a5bd92882348161d55be8c48a98ea2e3b
+DIST ammonite-repl-bin-2.5.9-3.2 63805907 BLAKE2B cc9329f0f7e91675838b2735a38dda16e934ec3c7c3be827af4ae56d7f67e632e6a26866cffa6f4bf4e08b955fe608dbfed540f8ea34901cdab6acef41ee2e8e SHA512 f57fa352fc4d074e5f482c1b4e0593154943e81e722d0b5f9c4a9059c07bf2774d5c03bca192e5d66cd6c078c7978d323059606d41268f9f56903550fce9e2f8
diff --git a/dev-lang/ammonite-repl-bin/ammonite-repl-bin-2.5.11.ebuild b/dev-lang/ammonite-repl-bin/ammonite-repl-bin-2.5.11.ebuild
new file mode 100644
index 000000000000..4fd89f58e299
--- /dev/null
+++ b/dev-lang/ammonite-repl-bin/ammonite-repl-bin-2.5.11.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="Scala language-based scripting and REPL"
+HOMEPAGE="https://ammonite.io/"
+
+SRC_URI="
+ scala2-13? ( https://github.com/com-lihaoyi/Ammonite/releases/download/${PV}/2.13-${PV} -> ${P}-2.13 )
+ scala3-0? ( https://github.com/com-lihaoyi/Ammonite/releases/download/${PV}/3.0-${PV} -> ${P}-3.0 )
+ scala3-1? ( https://github.com/com-lihaoyi/Ammonite/releases/download/${PV}/3.1-${PV} -> ${P}-3.1 )
+ scala3-2? ( https://github.com/com-lihaoyi/Ammonite/releases/download/${PV}/3.2-${PV} -> ${P}-3.2 )
+"
+
+KEYWORDS="amd64 ~arm64 ~x86"
+LICENSE="MIT"
+SLOT="0"
+
+S="${WORKDIR}"
+
+RDEPEND=">=virtual/jre-1.8:*"
+
+IUSE="+scala2-13 scala3-0 scala3-1 +scala3-2"
+
+src_unpack() {
+ :
+}
+
+src_install() {
+ local last_amm
+ local scala_versions=(2.13 3.{0,1,2})
+ local scala_version
+ for scala_version in ${scala_versions[@]}; do
+ local use_flag=scala${scala_version/./-}
+
+ if ! use ${use_flag}; then
+ continue
+ fi
+
+ local amm_bin
+ amm_bin="amm-${scala_version}"
+
+ newbin "${DISTDIR}/${P}-${scala_version}" ${amm_bin}
+ last_amm=${amm_bin}
+ done
+
+ dosym $last_amm /usr/bin/amm
+}
diff --git a/dev-lang/ammonite-repl-bin/ammonite-repl-bin-2.5.9.ebuild b/dev-lang/ammonite-repl-bin/ammonite-repl-bin-2.5.9.ebuild
new file mode 100644
index 000000000000..0d90057e1403
--- /dev/null
+++ b/dev-lang/ammonite-repl-bin/ammonite-repl-bin-2.5.9.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="Scala language-based scripting and REPL"
+HOMEPAGE="https://ammonite.io/"
+
+SRC_URI="
+ scala2-13? ( https://github.com/com-lihaoyi/Ammonite/releases/download/${PV}/2.13-${PV} -> ${P}-2.13 )
+ scala3-0? ( https://github.com/com-lihaoyi/Ammonite/releases/download/${PV}/3.0-${PV} -> ${P}-3.0 )
+ scala3-1? ( https://github.com/com-lihaoyi/Ammonite/releases/download/${PV}/3.1-${PV} -> ${P}-3.1 )
+ scala3-2? ( https://github.com/com-lihaoyi/Ammonite/releases/download/${PV}/3.2-${PV} -> ${P}-3.2 )
+"
+
+KEYWORDS="amd64 ~x86"
+LICENSE="MIT"
+SLOT="0"
+
+S="${WORKDIR}"
+
+RDEPEND=">=virtual/jre-1.8:*"
+
+IUSE="+scala2-13 scala3-0 scala3-1 +scala3-2"
+
+src_unpack() {
+ :
+}
+
+src_install() {
+ local last_amm
+ local scala_versions=(2.13 3.{0,1,2})
+ local scala_version
+ for scala_version in ${scala_versions[@]}; do
+ local use_flag=scala${scala_version/./-}
+
+ if ! use ${use_flag}; then
+ continue
+ fi
+
+ local amm_bin
+ amm_bin="amm-${scala_version}"
+
+ newbin "${DISTDIR}/${P}-${scala_version}" ${amm_bin}
+ last_amm=${amm_bin}
+ done
+
+ dosym $last_amm /usr/bin/amm
+}
diff --git a/dev-lang/ammonite-repl-bin/metadata.xml b/dev-lang/ammonite-repl-bin/metadata.xml
new file mode 100644
index 000000000000..e745765d8d2b
--- /dev/null
+++ b/dev-lang/ammonite-repl-bin/metadata.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type='person'>
+ <email>flow@gentoo.org</email>
+ <name>Florian Schmaus</name>
+ </maintainer>
+ <stabilize-allarches/>
+ <upstream>
+ <remote-id type="github">com-lihaoyi/Ammonite</remote-id>
+ <bugs-to>https://github.com/com-lihaoyi/Ammonite/issues</bugs-to>
+ <maintainer status='active'>
+ <name>Li Haoyi</name>
+ <email>haoyi.sg@gmail.com</email>
+ </maintainer>
+ </upstream>
+ <use>
+ <flag name="scala2-13">Install Ammonite for Scala 2.13</flag>
+ <flag name="scala3-0">Install Ammonite for Scala 3.0</flag>
+ <flag name="scala3-1">Install Ammonite for Scala 3.1</flag>
+ <flag name="scala3-2">Install Ammonite for Scala 3.2</flag>
+ </use>
+</pkgmetadata>
diff --git a/dev-lang/arc/Manifest b/dev-lang/arc/Manifest
new file mode 100644
index 000000000000..a76b4454e806
--- /dev/null
+++ b/dev-lang/arc/Manifest
@@ -0,0 +1 @@
+DIST arc-3.2.tar 276480 BLAKE2B a25695e4b90160d03e534bc7dcff194e922b8463ed9984523ee89fca7d6423e7f0f296118fa3f6046d988e6047e87dc609a56869e19d09435403320b5882f2b8 SHA512 f79cdb9b591582683e18afce24da935e8ab04ba837c5d19ae971bf9ec4abc038e6aeb712f36ffd1111e8d9fbb7a09889425294a15d546e9e6226b296294cc2a1
diff --git a/dev-lang/arc/arc-3.2.ebuild b/dev-lang/arc/arc-3.2.ebuild
new file mode 100644
index 000000000000..e9655cb6f6ca
--- /dev/null
+++ b/dev-lang/arc/arc-3.2.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit wrapper
+
+DESCRIPTION="New dialect of Lisp, works well for web applications"
+HOMEPAGE="http://www.arclanguage.org/"
+SRC_URI="http://www.arclanguage.org/${PN}${PV}.tar -> ${P}.tar"
+S="${WORKDIR}/${PN}${PV}"
+
+LICENSE="Artistic-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="
+ !app-arch/arc
+ dev-scheme/racket:=
+"
+DEPEND="${RDEPEND}"
+
+src_compile() {
+ # byte-compile some racket modules
+ local mod
+ for mod in ac brackets ; do
+ raco make --vv ./${mod}.scm || die "raco failed to compile ${mod}"
+ done
+}
+
+src_install() {
+ dodoc copyright how-to-run-news
+ rm copyright how-to-run-news || die
+
+ insinto /usr/share/${PN}
+ doins -r *
+
+ make_wrapper ${PN} "racket --load ./as.scm" /usr/share/${PN}
+}
diff --git a/dev-lang/arc/metadata.xml b/dev-lang/arc/metadata.xml
new file mode 100644
index 000000000000..cd6d01f6dccf
--- /dev/null
+++ b/dev-lang/arc/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+
+<pkgmetadata>
+ <maintainer type="project">
+ <email>scheme@gentoo.org</email>
+ <name>Gentoo Scheme Project</name>
+ </maintainer>
+ <longdescription>
+ Arc is designed for exploratory programming: the kind where you
+ decide what to write by writing it. A good medium for exploratory
+ programming is one that makes programs brief and malleable,
+ so that's what we've aimed for. This is a medium for sketching
+ software.
+ Arc is unfinished. It's missing things you'd need to solve some
+ types of problems. But it works well for basic web apps.
+ </longdescription>
+</pkgmetadata>
diff --git a/dev-lang/ats/Manifest b/dev-lang/ats/Manifest
deleted file mode 100644
index 4d4890f333db..000000000000
--- a/dev-lang/ats/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-DIST ats-lang-anairiats-0.2.9.tgz 2466767 BLAKE2B fb453b29470f51c5d471e26b8e8b2777177d8b77200f259cf0bfbeb0c8ba8a6bda78e8f8ab2b7e5af8da6a4df1c0ee5306c35bf3d78d0b11115a6341c2ec1317 SHA512 fc7df7bc032ad665c9c8376245bb52f88f71ab81d36fa6f18e66886d9d19f247f54888a8ae3fa5adf17117ee6826bbbde1a177040dc2657f6da0f98d66b035e3
diff --git a/dev-lang/ats/ats-0.2.9.ebuild b/dev-lang/ats/ats-0.2.9.ebuild
deleted file mode 100644
index 829e15d5cec4..000000000000
--- a/dev-lang/ats/ats-0.2.9.ebuild
+++ /dev/null
@@ -1,33 +0,0 @@
-# Copyright 1999-2013 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-
-DESCRIPTION="ATS Programming Language"
-HOMEPAGE="http://www.ats-lang.org"
-SRC_URI="http://downloads.sourceforge.net/project/ats-lang/ats-lang/anairiats-${PV}/${PN}-lang-anairiats-${PV}.tgz"
-
-SLOT="0"
-LICENSE="GPL-3"
-KEYWORDS="~amd64 ~x86"
-IUSE=""
-
-RDEPEND="
- dev-libs/glib
- x11-libs/gtk+:2
- sys-libs/ncurses
- dev-libs/gmp
- dev-libs/libpcre
- virtual/opengl
- media-libs/libsdl
- dev-libs/boehm-gc
- "
-DEPEND="${RDEPEND}
- virtual/pkgconfig
- "
-
-S="${WORKDIR}"/ats-lang-anairiats-${PV}
-
-src_compile() {
- emake -j1
-}
diff --git a/dev-lang/ats/metadata.xml b/dev-lang/ats/metadata.xml
deleted file mode 100644
index 1b23acd3e816..000000000000
--- a/dev-lang/ats/metadata.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
- <maintainer type="person">
- <email>patrick@gentoo.org</email>
- <name>Patrick Lauer</name>
- </maintainer>
- <upstream>
- <remote-id type="sourceforge">downloads</remote-id>
- </upstream>
-</pkgmetadata>
diff --git a/dev-lang/ats2/Manifest b/dev-lang/ats2/Manifest
new file mode 100644
index 000000000000..d4fffea70473
--- /dev/null
+++ b/dev-lang/ats2/Manifest
@@ -0,0 +1 @@
+DIST ATS2-Postiats-gmp-0.4.2.tgz 4532277 BLAKE2B 3263ab8790c737a2a4f30d2acb770e4f5d3bbedd40136bbf07283541f5b6678aaba7031cf4a2e77552755e5510fcc65446dfc3499645f5c7f4c4e5bc52e8942d SHA512 cfc3f15b1365badcdce535afc7e71ffe25471f2661bdc47294b77c917049566eee4eeb8ec373f4121ad474b8528263d7b3ff8627c1f5b7f3ea7475cb95ca7597
diff --git a/dev-lang/ats2/ats2-0.4.2.ebuild b/dev-lang/ats2/ats2-0.4.2.ebuild
new file mode 100644
index 000000000000..e4f7eae958af
--- /dev/null
+++ b/dev-lang/ats2/ats2-0.4.2.ebuild
@@ -0,0 +1,94 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit elisp-common toolchain-funcs
+
+DESCRIPTION="Functional programming language with dependent types"
+HOMEPAGE="https://www.cs.bu.edu/~hwxi/atslangweb/
+ https://sourceforge.net/projects/ats2-lang/"
+SRC_URI="http://downloads.sourceforge.net/sourceforge/ats2-lang/ATS2-Postiats-gmp-${PV}.tgz"
+S="${WORKDIR}/ATS2-Postiats-gmp-${PV}"
+
+LICENSE="GPL-3+"
+SLOT="0/${PV}"
+KEYWORDS="~amd64 ~x86"
+IUSE="emacs"
+
+RDEPEND="
+ dev-libs/gmp:=
+ emacs? ( >=app-editors/emacs-25.3:* )
+"
+DEPEND="
+ ${RDEPEND}
+"
+
+SITEFILE="50${PN}-gentoo.el"
+
+src_prepare() {
+ default
+
+ sed -i Makefile \
+ -e "/^CFLAGS/s|=| = ${CFLAGS}|" \
+ -e "/^LDFLAGS/s|=| = ${LDFLAGS}|" \
+ -e "/^MAKE/s|=make| ?= \$(MAKE)|g" \
+ -e "/^MAKEJ4/s|-j4||" \
+ || die
+
+ sed -i ccomp/atslib/Makefile \
+ -i src/CBOOT/Makefile \
+ -i utils/atscc/Makefile_build \
+ -i utils/myatscc/Makefile_build \
+ -e "s|ld |$(tc-getLD) |g" \
+ -e "s|-O2|${CFLAGS} ${LDFLAGS}|g" \
+ || die
+
+ sed -i ccomp/atslib/Makefile \
+ -i src/Makefile \
+ -e "s|ar -r|$(tc-getAR) ${ARFLAGS} -r|g" \
+ || die
+
+ rm utils/emacs/flycheck-ats2.el || die
+}
+
+src_compile() {
+ emake -j1 CC="$(tc-getCC)" GCC="$(tc-getCC)" CCOMP="$(tc-getCC)" all
+
+ if use emacs ; then
+ cd utils/emacs || die
+
+ elisp-compile ./*.el
+ fi
+}
+
+src_install() {
+ default
+
+ if use emacs ; then
+ cd utils/emacs || die
+
+ elisp-install "${PN}" ./*.el{,c}
+ elisp-site-file-install "${FILESDIR}/${SITEFILE}"
+ fi
+
+ local ats2_dir="/usr/lib/${PN}-postiats-${PV}"
+ local contrib_dir="${ats2_dir}/contrib"
+
+ # Randomly generated.
+ local libatslib="${ED}${ats2_dir}/ccomp/atslib/lib/libatslib.a"
+ if [[ -f "${libatslib}" ]] ; then
+ rm "${libatslib}" || die
+ fi
+
+ # Broken symlinks.
+ rm "${ED}${contrib_dir}"/*/*/SATS/DOCUGEN/Makefile.gen || die
+}
+
+pkg_postinst() {
+ use emacs && elisp-site-regen
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}
diff --git a/dev-lang/ats2/files/50ats2-gentoo.el b/dev-lang/ats2/files/50ats2-gentoo.el
new file mode 100644
index 000000000000..2171d0efefa7
--- /dev/null
+++ b/dev-lang/ats2/files/50ats2-gentoo.el
@@ -0,0 +1,4 @@
+(add-to-list 'load-path "@SITELISP@")
+(autoload 'ats-mode "@SITELISP@/ats2-mode.el"
+ "Major mode to edit ATS2 source code." t)
+(add-to-list 'auto-mode-alist '("\\.\\(s\\|d\\|h\\)ats\\'" . ats-mode))
diff --git a/dev-lang/ats2/metadata.xml b/dev-lang/ats2/metadata.xml
new file mode 100644
index 000000000000..4410a5199d1c
--- /dev/null
+++ b/dev-lang/ats2/metadata.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+
+<pkgmetadata>
+ <maintainer type="person">
+ <email>xgqt@gentoo.org</email>
+ <name>Maciej Barć</name>
+ </maintainer>
+ <longdescription>
+ ATS is a statically typed programming language that unifies implementation
+ with formal specification. It is equipped with a highly expressive type
+ system rooted in the framework Applied Type System, which gives the
+ language its name. In particular, both dependent types and linear types are
+ available in ATS. ATS2 extends ATS with an advanced template system,
+ allowing functional programming to be employed in a setting where only bare
+ minimal run-time support is available. In addition, the template system
+ makes ATS2 highly suitable for supporting numerical computation.
+ </longdescription>
+ <upstream>
+ <remote-id type="sourceforge">ats2-lang</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-lang/bas/metadata.xml b/dev-lang/bas/metadata.xml
index 62afbf117e8a..4d3d5e82967f 100644
--- a/dev-lang/bas/metadata.xml
+++ b/dev-lang/bas/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<!-- maintainer-needed -->
<use>
diff --git a/dev-lang/bashforth/Manifest b/dev-lang/bashforth/Manifest
deleted file mode 100644
index 449ead8ae504..000000000000
--- a/dev-lang/bashforth/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-DIST bashforth-0.58a 78391 BLAKE2B 284f75af36d6bb2ac372554d2fd118190d1f830963ac74bd8db590327c85144fb9fdd7a026007c1af0af5f0a76021cb2fa6d302694e6421947674b27fbce49ec SHA512 55a158fc80d6108a9151537d9d222f23dbeab9b3c9c821068c15ace283b050c0630da8e1cc0a30d997d76acbcd5f7cc38662c997df0d87b7ce68bb3de446d296
diff --git a/dev-lang/bashforth/bashforth-0.58a.ebuild b/dev-lang/bashforth/bashforth-0.58a.ebuild
deleted file mode 100644
index 76464d63e6a0..000000000000
--- a/dev-lang/bashforth/bashforth-0.58a.ebuild
+++ /dev/null
@@ -1,25 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-DESCRIPTION="String-threaded Forth interpreter in Bash"
-HOMEPAGE="https://github.com/ForthHub/ForthFreak"
-SRC_URI="http://forthfreak.net/${PN}.versions/${P}"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~mips ~ppc ~ppc64 ~x86"
-IUSE=""
-
-DEPEND=">app-shells/bash-3.0"
-
-S="${WORKDIR}"
-
-src_unpack() {
- cp "${DISTDIR}/${P}" "${S}"
-}
-
-src_install() {
- newbin "${P}" "${PN}"
-}
diff --git a/dev-lang/bashforth/metadata.xml b/dev-lang/bashforth/metadata.xml
deleted file mode 100644
index d920e3ba3e56..000000000000
--- a/dev-lang/bashforth/metadata.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
- <maintainer type="person">
- <email>blueness@gentoo.org</email>
- <name>Anthony G. Basile</name>
- </maintainer>
-</pkgmetadata>
diff --git a/dev-lang/bff/Manifest b/dev-lang/bff/Manifest
index f727de93c8b0..689ef78b3e98 100644
--- a/dev-lang/bff/Manifest
+++ b/dev-lang/bff/Manifest
@@ -1 +1 @@
-DIST bff-1.0.5.tar.gz 4833 BLAKE2B 9e3b44da9cd001552119e25764b171c86027755583f79a13b1d1035ecbab134df0aa31234c1479370599dd56a76a7f1c67eff61d2c1189430bab6a9a22f629d8 SHA512 78e481f6f371421ce6f046041fe6d48be2e11000ddda82f60244c0100665469c4aff4f151d297bb533140d723f68d5a3844e0c29a256b022ac93cafbd2abe9fd
+DIST bff-1.0.7.tar.gz 5121 BLAKE2B 581cac5c20742811d9c848d59833256c2c72f08f256ad0b061723b7bb57efa64b0873ae8011323f53dbecd21e61d8d1610b393a4f0a3695508ee4b607fa541db SHA512 8ab43671ea02d59db291b338f4323aba2879318539efbd249883ef241295a12f3d3e55bcb4b0ad6e3f886a044eec0bfcecf526b70c81099afdf89320babfee6d
diff --git a/dev-lang/bff/bff-1.0.5.ebuild b/dev-lang/bff/bff-1.0.7.ebuild
index 00466aa5e9c4..52b745b410d5 100644
--- a/dev-lang/bff/bff-1.0.5.ebuild
+++ b/dev-lang/bff/bff-1.0.7.ebuild
@@ -1,7 +1,7 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=6
+EAPI=8
inherit toolchain-funcs
@@ -10,7 +10,7 @@ HOMEPAGE="https://github.com/apankrat/bff"
SRC_URI="https://github.com/apankrat/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="BSD"
SLOT="0"
-KEYWORDS="amd64 arm ~ia64 ~m68k ppc ppc64 s390 x86"
+KEYWORDS="amd64 arm ~ia64 ~m68k ppc ppc64 ~s390 x86"
IUSE="test"
RESTRICT="!test? ( test )"
diff --git a/dev-lang/bff/metadata.xml b/dev-lang/bff/metadata.xml
index 007aaf442ea7..14f864a1c0e7 100644
--- a/dev-lang/bff/metadata.xml
+++ b/dev-lang/bff/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>amynka@gentoo.org</email>
diff --git a/dev-lang/boogie/Manifest b/dev-lang/boogie/Manifest
new file mode 100644
index 000000000000..19e264916358
--- /dev/null
+++ b/dev-lang/boogie/Manifest
@@ -0,0 +1,193 @@
+DIST boogie-3.1.3.tar.gz 2038898 BLAKE2B 4a5604d6b00ca81393ccf37c542bfed3f3983453b1fd390fc466e37c7133030f1b453c61f2907bb399fe2891e134dcf3dc86b1ac562cd4ed34b634625320497d SHA512 2ae4bd267ea4636c4f52cb7aae0907db9b8411d6f19d35a9338237ef7820f6cf03ebe9939497fe34a646e8b1f69da0882a5765bcc1224bb8cdfd2a7f999d8862
+DIST boogie-3.1.4.tar.gz 2050762 BLAKE2B 01a8faa38a3a7d134d8f5d54f2b8e0a6a2a07b11d46469c8dbd65d80987e3292cd61937437321e6f79ab55895f6dbe5cfdf410d311f314ab7ed69f684a48d98b SHA512 76a9a4cb2ae2ac49db7fdbca049f797c1272b19e1a783541a74cd310b085c8bab5360fee4293d4f1478371ae26368751e2f658965023a4d7a7dc6b9d25489edb
+DIST boogie-3.1.5.tar.gz 2051316 BLAKE2B 903c6bc2d9cfbf3cde7aa301f229b87ac5ac8f855f70efaf399a9d7f0a5b7d047417a47f162afccd40e33fcc870f74b5f0c03a0f032686f0f9732f078d756870 SHA512 e248139a4ae06e9f5ad02d1bdc1bec5dec32d6c9a3895438a7da9b220b191784f9a92ec678d142070bf8d250e901bbd8ac55706e822972654966bc15743bd0bd
+DIST microsoft.bcl.asyncinterfaces.6.0.0.nupkg 76354 BLAKE2B aca3f5db71e4037dbdd604aeaebcd0962ccc171915b77b4c409ab744bf0a469c7d588f9504fc7fa49e3863e9593b66b4083235cb49e812d1f87b3dadb32e6003 SHA512 221a05a0c910f7a87b620d8f3831ed392b4eb95d112bee274d35f27009ad2a26445de9d7cd235fe6fb4a03f2550874bda3be3dddd96edaf9c0852a9c23d7b099
+DIST microsoft.codecoverage.16.2.0.nupkg 3133582 BLAKE2B 418cf403247d594cde0d827f8ca8690019a7631525f07993937085f4bbf8473364b4c99aea6e8b7b0020208d15fe0da63f0f4e69c273493c51ae011e8bd82667 SHA512 91f1d43fc038a20f5367d9aab669105dc7514dfbe749260b52789c09a75abcc6bdc000ee0c7f432231d4cc09e99bf5b863dd6289d813342f74d9dad23a651625
+DIST microsoft.csharp.4.0.1.nupkg 462346 BLAKE2B 209ccebc9103b803d26ea1f0232245c3cd231078b03a83a0011a2a79a1a8a324a72c5b3fda94b2686fff170932f366e165f81a36a70df590a39c45d70778e4be SHA512 c0e75a9162f28ba4c4572c8fac4fd4c8c97d6d3505a37683646ba5f7e5f6ac0da69d5200d2646054de90e8e08f893a10e514591b69b8273640842b2cf90bddec
+DIST microsoft.dotnet.internalabstractions.1.0.0.nupkg 36684 BLAKE2B 79b53923871286f950d9023e70dabefd14f89934ba250ecb8e6f21ba69a81d98ddedbaad1f01ee4d0e1715d5d45a963be11d3c947c20386c1ac031c6ce426223 SHA512 4bc7f79a748de3235869fbcc12e64acf75524afe3d0506a123a21b9b1f6bcae73eec443742c4ede2b4afadacf0a17daa70b8643e90d5ff02d6ef20caea7cae14
+DIST microsoft.net.test.sdk.16.2.0.nupkg 26075 BLAKE2B 1d029df1efb31aa453bc299a2d21e1f90601ff102d07f44d7aff09e9ed176ead60f93895684968cae7f22ae07284c978c3f34a3faf0b49dfeaf827bb702246a2 SHA512 e1e2d5c812da157fb986e417899323d0412262c86f4b81f7890e2cf1e446c7a1b58ed5d66cac3edcd161a5636891da2954e6d09c19e865089dd1a712066b5d24
+DIST microsoft.netcore.platforms.1.0.1.nupkg 17876 BLAKE2B 13250226ef4869ad62b8acbe8b8f791f9bca1932562cb7a7e8162c3fa502c02200673cc9839f79953cb2d3a75f64f92d43ed1dcd9081732e4917197483188163 SHA512 5f3622dafd8fe8f3406c7a7ee506a7363c9955b28819ae1f2b067c38eae7ab6e620eb63442929b967c94fc511e47a2b7547ab62b6f1aafe37daa222499c9bb19
+DIST microsoft.netcore.platforms.1.1.0.nupkg 17960 BLAKE2B 6a9fa22d75f5a1c65746dd71a63c3d4e37c393e99c23007c10f5ecce248a04863bf26e7562c7751177a6985eaac266c29cc6a5443a4a853e773f88994ad2a3fd SHA512 6bf892c274596fe2c7164e3d8503b24e187f64d0b7bec6d9b05eb95f04086fceb7a85ea6b2685d42dc465c52f6f0e6f636c0b3fddac48f6f0125dfd83e92d106
+DIST microsoft.netcore.targets.1.0.1.nupkg 18189 BLAKE2B d43a064d4c6f836be5164708ff0401913b32fc3340cad7c8fd08f421ea553805ac150a134a0d60a55d41eec124514a5e5197eebcc85aa6595cc6b91e33025d61 SHA512 6ed8e75f945a18651066fe9ee31cf6c8257a5974340fe4d262438903c4959a479f4a515a4d1389e6d3d3ab34f09a3c7bc2009aada2e8a7f697b6655a82d3bfc9
+DIST microsoft.netcore.targets.1.1.0.nupkg 18162 BLAKE2B 419d19e0da934ab4b9db75dd66cc22b83a003f34e93cf7a92feccf4f32d3d695e18b826b1aba13073dd4ec53aa7905a67346921d1055516647ddcde0d79009f1 SHA512 1ef033a68688aab9997ec1c0378acb1638b4afb618e533fcaf749d93389737ba94f4a0a94481becdf701c7e988ae2fe390136a8eae225887ee60db45063490fe
+DIST microsoft.testplatform.objectmodel.16.2.0.nupkg 1106432 BLAKE2B 6e1f17090a7baf38f49631a3dd9b21ea40079af066f1b00324cbb2a89ea2c0f6c4257ecaa7ba05196945cefbc3f373fec943c177c120c92380e90eefc79fa71a SHA512 7543f4ff9eec53827421e3cbd6cbb7fa0e89d3eac79b452ff7bb45393f43a04612944dea3f86563553576968acdbd7a26677c675555e8929e1b3d4e20387ef1f
+DIST microsoft.testplatform.testhost.16.2.0.nupkg 4449756 BLAKE2B 7497d4c16308c6ac912770e8c6ebe50853be2100a4910cf78ed8b3b9ac899c19dc8d507b704fb1a5836c29ab479971937d10ecedbbbdf368fa309191cf5f9c18 SHA512 22d8afa52b8e91674cd116226c29d2e04443ebb6d1b31c995c7f8c528846bc501af66a20cd2d1eb7aad385995738090850ddc43ccc38671eda427e27dbca649e
+DIST microsoft.win32.primitives.4.0.1.nupkg 63261 BLAKE2B cdb464bbbe34381e16193cb797776858b582db1530a88556f932e8bac1c065611eaf37405c7eb5369de2dbc31bc50579fd7d3564674b2e3c6d921b565ed3f449 SHA512 382bd3a66349e077fdf622a69a2d9e2a07d15143cf238f4fa21c74f2c1e5592f8ba97e6fb956c1c69ca0cf4eba91ca4a7d3c8ef195289c5a0e95bcac52e794be
+DIST microsoft.win32.primitives.4.3.0.nupkg 63333 BLAKE2B 132ec29940d4b716110980c4f9a06ba15183d29de638379d09998124605165e51652b2727e3892b57dbc7cacfdc71f9e1b59c9dd5463a524657351f5385d896d SHA512 366f07a79d72f6d61c2b7c43eaa938dd68dfb6b83599d1f6e02089b136fa82bec74b6d54d6e03e08a3c612d51c5596e3535cbc2b29f39b97a827b3e7c79826f0
+DIST microsoft.win32.registry.4.0.0.nupkg 183394 BLAKE2B 5febb98cf99e900b73158c90e850c452bbfcd41131dbd76a4f4ee1ea7717e64f9dd02cce394e0e3b673630eea317ec3ec42ff96cefe7f1abf9a7af32b81bd04b SHA512 5224a9ee54f11adb05e89f7ac3012b15e3348f2823fdb5962af6eac2d44fdade8ea21813ed3093a63bd0d7eec32d02c7dc347bd22ebe791197ff2f39585bb3d5
+DIST microsoft.win32.registry.4.3.0.nupkg 190042 BLAKE2B aebc51a12c2a1722fb2e5cdca662f5205ce84218be139b0b3ccf90686551c6666d7c5df77e4f68c4af09ec2c68d51f0660435be7866862de67ed92cfef12f7f2 SHA512 38702f72eead561e343e77136059292c8b6cc3d3bcb14739f42e1ea92a8477e539ad8eedd3ebbb5e88ba330d9039fbcf2761d4265c08115ab19250c87e7ef9ed
+DIST microsoft.win32.systemevents.6.0.0.nupkg 157768 BLAKE2B 0a5cea49c552a8d3e5aa2e8913fc4929ea318026b02a85c03665fe8bc449d59f838ef9a1044e0e034f6c30c7b63187c02bf6df4106b19e801d6c194ea5641941 SHA512 5e274ace996c3eba63099ed5116f9dc39f69f684f7c1e7623c28c3c73988b75c67dfcc929a50a761f0222df243dd540720a6e588e91dfa784f81bfce7a893875
+DIST netstandard.library.1.6.0.nupkg 17404 BLAKE2B fba4c1e7a034a8fc5d7eaf051eda3c11aa4165c32cf39cfb1d5f61760fa646c92d9495f99e00d6f8482ffbf702449a3a9f6baf2f555167a6c359c8e418ecd5c7 SHA512 9838af4e2a3621de24d117c7fa58e5e8f170e50ea4e0ae3fe3d3401dfadbefd6eb5ecc3b64532c8340f6340727822eed305ef3bc21629f2bb6d76c639d054925
+DIST netstandard.library.2.0.0.nupkg 3143842 BLAKE2B 7e3fc865e7893fb531b21e2ca791b788af01481316e49a79c4676050c2b8ad413fd8a4ef9890557582ec8b9741c8aa01b080b8d2caa16e02bfff2a7b38777989 SHA512 e3d64072b9cd9f9e86209c06a22688ecda7070427c9a35327d2a9560824c0e1381ccf7bc1d21d2ef8b301761f4bfc7f38fba712df7188d2f4fe4f748aac4d0c7
+DIST newtonsoft.json.9.0.1.nupkg 1613054 BLAKE2B 56918db57c3786cff0548b642195521ef203246a6b2ed010186ccae230af3b0c913ace4b2a3319bf94c6e47647b9c5ad7b017e3b50d35e6654b4d5b987643739 SHA512 da8917a5347051c8106f4ea9bade4bc300a3b60a05a3be3390f92c8dcbcea67223c7b4da8065b9228042000e25b99c75fad7e2221a0daa8888ed8ef3c161b228
+DIST nunit.3.12.0.nupkg 3463090 BLAKE2B 70ba0c1a06d33b96a09e9b034f961170bb89678d755c1909efc09e7c03f8bbb8bfb0012e77e38124fac97b9e43018c731e5d94afe20666e3c2a041a4c78c3718 SHA512 1c0870171afe67e3c97fc857cdcef8ecd79cbec0f0119fb75fc480e7e18844ce37180cb5029f9340f307b160a78ac7deb39bcf675fdada677ff75bbeb21a13b1
+DIST nunit3testadapter.3.15.1.nupkg 712433 BLAKE2B 69974b3fa5a032562483be25dd2c5fab0b6132732ef4eb36080333af07287b3fc6865ee3d09fca83b71c67b11ce84e128745cd8c29cabfbdc8a4bf232847fd8d SHA512 96a876b1e4f5034b413af8b8a732a3f346eab5c93108b76bbeff062656a0c5686559395ced3e8c47b842887eeb9ff1288375ccb9a7b5a5d3f1153d9f4b890975
+DIST runtime.any.system.collections.4.3.0.nupkg 107990 BLAKE2B 802e2ae919a4834150d825ac086d8f47e2185e31b60b45f3dbe5f63b1d714953d9faaa7d8fe4cc25a1ea8495c4f8fd925bb198eea0b67e594a8558238b18196c SHA512 9f8833176c139b71a58694ae401c5aec209a63227be07c7ab559bef772082bd1f6cc38ba2949cb1c8e5c5514ad9f4ff51859838dc2f28191f8bb7ae611a50239
+DIST runtime.any.system.diagnostics.tools.4.3.0.nupkg 43707 BLAKE2B 33d1c57eb4e50c06488da02ab2bb1b8dba9948026053e662986af05b74045c014e76815edbb588f10d6a904de22e4c50177f31f3fac36d159b9af361a4cb2b62 SHA512 bd257401e179d4b836a4a2f7236a0e303ae997d2453c946bf272036620a0b14e85e5f42c229332930a954655ab4cae359d191a3e3d9746df09535a651367764c
+DIST runtime.any.system.diagnostics.tracing.4.3.0.nupkg 49844 BLAKE2B e35998e1369bacc9fa90f74825e021c62b9c671ac9b7cfad4e9b455656bd40e968f348ba8943ed670c74c22bddb1c94ccf5058885233607e3c73a5c7d2a56688 SHA512 0b480d21e23c38965222be7fa1e1a0c7e444cebdf400d1db8d3ac609f893b82d78c5d8b271da61808b7b179dd6466a0090bd807fc2d35020f93a00f0213bb436
+DIST runtime.any.system.globalization.4.3.0.nupkg 43718 BLAKE2B d6f90f72f080afc0dbaaf487e2966d2569ec8dd51d573ba2afd1d705cc8c1f5d47ea77beb63ffe4fbc75dd6aae869a9b52e9e293b737ab32321420f635113d80 SHA512 3aac1a076212fae7d0ac81d2b5fdf216b064a1d890577307f89c9a4984c239838c3bdfac4dea052027de090704839319231eef49ce542f3e8bb2f85ba23d28dc
+DIST runtime.any.system.globalization.calendars.4.3.0.nupkg 43456 BLAKE2B 6453e347e796d426fe00afa28c182e53d764e58e52a21eea8d71661029608de957bcc9a6d9f073f2897d4b5d601f1e056a8d2334fd7cd708461148549454fbc9 SHA512 19053b502b7160af6f6b0bc5b334a8d124f77f6b4418993294fb485d0bb318cd6e97cdbda9bf8c9927366288413cad7209c9d8156a5425a6320c453a8804fb3d
+DIST runtime.any.system.io.4.3.0.nupkg 54553 BLAKE2B 0066bcf13ad4f769cced6704e3d5bce057138e35650699df8c84fb67aad1dd0f2b9ac62eec023fd1b2845e3e2038d1a56602e0cbe59795219b34b9b47d0aa880 SHA512 7e0d4a238322d434a19afc79ea988d3727c1687fdd5bcd1c4c39cb6201073caabb924cc201c70545d60acf8b94cde8b783d0c268743e040c357d100677e4c5ed
+DIST runtime.any.system.reflection.4.3.0.nupkg 43499 BLAKE2B dbfed54ebbe3c7814773dc60e586bc6442024c4565dc7579c2a3dea9ecb7fa6eb554bb7d8da7d2603fb455d38caffab9ce553e6cb82f8c6202700e2a3c80d6db SHA512 293d3dd8be87e1c5cd76ece4ed64ebb5ae6b50be95a39bee401eeed64355e34641905f8c14392fbc3acf8609f5d6fca731f39ce7607962eb5951f09516480015
+DIST runtime.any.system.reflection.extensions.4.3.0.nupkg 44123 BLAKE2B 77dd6ebec2090e9902b5fb9a0505d07f953baedf9ae30bb823f18867b0e4096af08175203efc2205a5439d53eb264b085615978c782969ac8e051b5c7ac8b516 SHA512 8de7a4c53fc0324e766bfec360342ee4a4b99a5975a9d61faab0a715ef71ff97aa83383a5a8affb354c02a4e2fbbb91e1b4ae6b282d2880108cb489f06aba500
+DIST runtime.any.system.reflection.primitives.4.3.0.nupkg 43106 BLAKE2B 9be774d083220f790c2710bf0add5f186c30da37cdab7abe6fd084e8b3e43926350cbde084ddbab58295b9bdfff34f63de6f24d72c9333c8f0dc0fd6b04b9ddb SHA512 a2f374276290ad9b799d3e49cd8fe7839c07b52f22894bcd77b9470841564319fb2ebbd7503e76feef42db4e8a362af8648cf0842a1cb0b5d9a60a58ef8b205e
+DIST runtime.any.system.resources.resourcemanager.4.3.0.nupkg 42939 BLAKE2B f0a3df9518b008cdfa62fa7b7aae3d419bdd8f77e7b400cd06f03bfd20d2ac7abf570b26c63ab32329cb47f7b9763db786e4e397ad958dd81e55d9ee8926bcd0 SHA512 39fab03cbade2b3848d62e137313530c06b37216e24cd58c70ed6ae54bdaf9d9613a3b410375ee167c87ff935a558b1f8766ee016b8b244fde99c38fcf42a49b
+DIST runtime.any.system.runtime.4.3.0.nupkg 55302 BLAKE2B 2de44260ec821b818b3c0cb3517be7ade5c16f29e0ced086460dfabc29479743947134214c037df83b9646724cad004f55c2f518cd4bc2079853f2f6e1cd70fe SHA512 bfee3c68312296860e5459af5e770c2e9fcd4ac134361fd569a9ce1e6574b9ae3978aad403f89639a4b5bac8ee5bb0ee1b8edb819e9a60f13ca5bd1812889bbd
+DIST runtime.any.system.runtime.handles.4.3.0.nupkg 30945 BLAKE2B 27f615ec387f75416d05d0d545f1f90bda9cd7ace1e7370cf935735ae7e6ecec9c8d54b0b267aa42c041981b7d4ff22603f8a12e18290e0f354e7656f4271d81 SHA512 95cdae2867a2182535bd0f4d01dc3eff70319dff044b070ab7791fa2bf8688a69b00a279ed569b7f0c5f3e26bf705303dc344ecf7d1ea014c579436d8e7b7389
+DIST runtime.any.system.runtime.interopservices.4.3.0.nupkg 71496 BLAKE2B 56aea647e26b0b6fe2e8786732100a20b66dcda904df76d0463c5cd048d842e9899be7482f819bd8d4a62dd6b8d9f2f8289efa99ef6c76d2cbfd0fabe6c5b36b SHA512 70eeb2469726d092bb95568e51ba5cfdd1cc07a9e65077e2b6dd5b7c8b164d4b45c749ef4a52f45928f63a27e8accdb83b861ea73c9ad3d42dc38e6afdbd0e8c
+DIST runtime.any.system.text.encoding.4.3.0.nupkg 43396 BLAKE2B 99ea1ca2da0e85683e240129d4adba28eee337d0a3ca937b61123d775255f738b27f00db4b08e1fa9242bf29ad916828552639ab3b55eea05e0f307bdb1bb58b SHA512 cbe6df98acd50e2251d3343620c408af56cfe7c1979277a8ec65b5eef093e93ed93c05980902a7152ed83302d5a625d7058921baa7f446c5e67194fa4c06f20a
+DIST runtime.any.system.text.encoding.extensions.4.3.0.nupkg 43296 BLAKE2B eb16dfc6e2fafe299fe49dcc5cd1d2d18180d18caee2b0e65fe5c75b6b4206260e18f4e2bf509fe1d2dc3366541bb38de219929db6e7e12f08b64b3a5d3abac3 SHA512 656aa8bd9d7e19534964ac7b8405615f00359779e322d4cfe1f18c132fec4a4f52c5588bfe61cec9966a9142a73315f5d2b9e5a7c524b418364f0322b20961c3
+DIST runtime.any.system.threading.tasks.4.3.0.nupkg 47940 BLAKE2B 950e0a58dcda7dcb15167d028380ae4ba1ac576b141d95ba8eda08e0d346a9e0452e64ceff1169959eb9f4435231466be209fd6e9d17f8dae05254443f0ffe1e SHA512 5f37a56f5d6c7fc198c7ef76b822b85284f9d7d1c06583c26a698793ade65da1b273d5fb03c20be1eb91a9c835f7122ad2775f4e51dffb2758fabac2a30f8c23
+DIST runtime.any.system.threading.timer.4.3.0.nupkg 43098 BLAKE2B ed9d0f7aa58934bb099bc750d7d433cf82a3b54369143ae4e3b27178213ae3d3c79c17463b2a4a2f1dc2e55a9130b7a8349c0832549a404b82c2b08b9016e9ce SHA512 c0a1fc3661b4e21f329f88a8d2cbf7152698427778add9f850476fc9abe7cdf9b86df79362d6df025f7e15d53f5eb7937d8ac49bdef13fd9eca973a284929fcf
+DIST runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg 44390 BLAKE2B 60483871cb9b81514f5b63f1f9ab9cf1c7a6ddb1d33a2a65608b47a2cf8cc3b7eee8e087250a1c49eb2893f36f29410e897387346fa4c3fc5c71e41046f13673 SHA512 b2cf809fe50c4b46bd6f2372265cd3059622550123afceb5dbb2410906c07a7f47bae4273584d29253d5e7a63a17c68c7ba0434608bbc8fd4d00e479b2f128ff
+DIST runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg 42827 BLAKE2B d2b79a9b83e0bdf569a5c333ba4f86ccb1d5b532d2e1cff3ba7bb597688ac78268a515be4c35a025c66727070100634a4bc946e02ae7b93061be968fab241bed SHA512 fd8e32d7d3e9a465202e391b0ab8b95e212900879bc4d8ac22954fd2d0f98fa579e9d25f88885ac2a4bf1eba755db940f8d131250a3ffec34dbe77431a379cab
+DIST runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg 42833 BLAKE2B be9197f3008b3dda19a45e5b5df2ce3604f58a98045a122aa77f082708de67ad953fba761c39ec419e945155ad74d5800638feb581e5d84424ba104f32541640 SHA512 4afac5cc1734330a6103880e790d639e825bfb1b34dbd42083762c47db5e5dab6c03efd16049ac03861d7d87746caed09c7534241d51b7341d47ba6af7e8dd31
+DIST runtime.native.system.4.0.0.nupkg 16852 BLAKE2B 6914c7090188cc27789c962931875892dde24e1fc43080935d337840164d361e4410d8228c576a3eb1c0eacb82603f2015c05b39516893cabc718d8ce67467f7 SHA512 55ff3eafa406ec3d8e33d8be44d0d06352ce746abffdec1378716b275d634e133fc1bc56fc312bf0d921efc59e8de4ac811022cc34a77fc1f1abc982c931932b
+DIST runtime.native.system.4.3.0.nupkg 16854 BLAKE2B be46e3bd8781915572308ed7d4d8a0338a5c79b901a27c7e7c7fb7fb25788cf00968a40f96cc43b1202e56e5bbb2f87602d247295d8c98f2c143a0ad3a8d7664 SHA512 299c5a96fffdcaf1972e3e3d1c727837d18ac9e88cb79c09914f12ff1de7280dff10c9232a49a1c1d3ba7785a5cf76f28c9dce414f0a2a567688de7fd5331dc8
+DIST runtime.native.system.io.compression.4.1.0.nupkg 16918 BLAKE2B fa843b70a55667cdacbf59b08a634aeaad6394f53504c4751fc58a758f550c35cde734d6a7134d35c0db78d09d8b423b53aaf5fb9f8c2a8acbab0b62116aa3d8 SHA512 453e16348b435b0d8bc5c4db85d77c99f6e4a79f62e8168eb91c972d6e788c8f1f965ba6e46c1b42f71dee4618373ac70499024f6a4d1462c040fe4989f68283
+DIST runtime.native.system.net.http.4.0.1.nupkg 16894 BLAKE2B 22f9eecae135562c88061969182e0299f535e34f085c33c1cc8e04956435b7dade756bf6af75d12ec25dc2ac30d5cb9caf1948e250562f3e7b2678f1cd5424c7 SHA512 ad933eb14740a111a81b5de6837dd0fc9390dde308fedf4338a498f97cd40ecfc65c745802e92c8ec8543d75dd262ebfef476df2e646b63cd99c609258d1bbd9
+DIST runtime.native.system.security.cryptography.4.0.0.nupkg 16946 BLAKE2B fdc0eb894da0f1421926e99cc6ef89c2b19ccda00b7b4669c684870aeb8bb535057c3bee0a88e89df7b6df805d859b6e9c81492b5690ee1714cf92564def6c19 SHA512 83b8befe1f76e75346ea2e49cf27aa86489813034dd6e2845ac700ddb155602968a7c1d9806770418c0426e304aef1efc24b3abd4c57f792cb32449c2adf1310
+DIST runtime.native.system.security.cryptography.openssl.4.3.0.nupkg 17048 BLAKE2B f3d49c45e52d4e317fd5750de6dbd6628b414d127ef38f9fb4e2ebe447b13a0f93f38c91850c9df4c0a6a3fa738f58daf2c440827bcf7c7d3436a8174b5d212d SHA512 ee5d047908b99b776ff9bb54856454b24b09a0f9271b127239543b1f5faa3381a032d9eeb4d813d01b5a4b7d183b6a16250f159fdc450d5314a7eace1550bea3
+DIST runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg 44200 BLAKE2B 30ee247fc53f9de0147a5c5666bcfbfb674ebf03ceaa4ea3c73671154caa6ccee2c9254c0fca588e9a21f98e27ad86f387255b554ce37d7e36f8a69502049e71 SHA512 81bdb93c1c86c560343df6cc367499fb2a01a9b3016617be416874a23c4355a8d95c7be34f175510f3fdea4872302a87c8efab98a328dfa39422db520c3f291c
+DIST runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg 44118 BLAKE2B f89226f71e042a6bf70a45db59dddf06fb5083da2ccc1cbc17e8b3381a1462c36e0ddee7cb38a2003ccd07ec4f2a987a9e69ab143054a3a106ec314e3ac4947e SHA512 6de9544b4da49f127680cf5b3b4afea96bfcac3293038a1b0a12eea0ad60be368af31ee1dfd66d48d458b40200738c04aa0c71adcc54ae2dddbea2cd50d6f28d
+DIST runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg 37682 BLAKE2B 0fd5229c9394741456079a6eed8efb2c99e4211cb7be1873882ae6708c5e87a4f5116a9cdd6fda005896d2af4237779f1bd3c2332a1fcc993690e2ef6f5d889c SHA512 61da1667a5dd1e53a5d19fbe90abbfe332d84fe755fb811a080668a47d41a97db44539e3174fd1d2a0770ff1bd83afa68c82ce06df5775da65a6054ccc12c4be
+DIST runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg 42668 BLAKE2B be90c86ebb383a1d7e037d0a0b24aeb8a7e9974388ded41964a82a2d2a4dce0e62feae830fe7dcd29c0fa19584c0b15281f1959d326fd6b7e17c6e70bf125c1b SHA512 e65a6a1f1928cfb760c395a399542dc7f9087399c53874376604504ae60abd2da24ed735ebd148d335000a5e35c8108ea55404685e902df392eac2e8d38fb665
+DIST runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg 43118 BLAKE2B 242cc78b2b335d3c15e798c81cb19654b44ecb79e29e6babdc404bcbffd1691b07e0640143cde2d03a0640d6e1851228188eb91cc6b8b9f8759d13e8aa258e52 SHA512 c9f219515e268cf40e16b135bd64cba95c35e866dd9bc34954159562314d01d2f9ea7eb8b0db94acf6bdac83d651d90bad7890cb657ffe40fa3440ec662c9944
+DIST runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg 42901 BLAKE2B c62ae072f63c79e2fbd080688852a545df160e6be41c68365508d6bc96c85927feb6859b32c2d8450b07058c2955aa94d4763600f12efdc76fb4d161081cdc81 SHA512 4981b2d7a106703b185e176ad35bfda149156f3b752778fa71c56b3686407765fd2b6625de352bd563aac1e1e8769d7886cc59a0d5d0bfb41ed60277360beb81
+DIST runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg 42939 BLAKE2B f166d9c0b266e7c7fa6d6ac61201a755ddca3ca6d3f13e52e4a04575c7143af5bfda9929d3701ac7cacb0e61d8debedae4419fc202d8cef73c8c1496776ffe28 SHA512 5dbe6bc007a9b46491e5299602291f5dbf8cc8d51e6c1b08db2fa0efd365990b41b6e181ed6bf82e873a659396427bc0e33e85b47d645d273fef8bf8ec643631
+DIST runtime.unix.microsoft.win32.primitives.4.3.0.nupkg 31929 BLAKE2B 18ff9482cae737a7098f352f59948119b4f9982eefc1d835245c5336ee6fecdb7fdb92445d0c1fefd4e4c7cc4e64fec3d317e8b5dc160320781a3f820cf34da7 SHA512 93e6d3db61f9c2ca2048f25990dda92acd5ec74561e0c776d2c6dd8d1d55128f2c953f33d6832fb6a72bd9edca304a2551085bdeafe6e18af87619c9ba943c32
+DIST runtime.unix.system.console.4.3.0.nupkg 62174 BLAKE2B 5e0394b879ea85a36c22948a006d41d6d77e2283139265ce5fa6089faf209e447a90a02965dd576c20c28ead4faa232eaf4073343be69c70f4913a3b52f340ab SHA512 7c5cbda7d12315fff6b1e036d55ea27140de8b849f1a9705fd2710a00a2b70f06f534eb0d3e3c8ffb019e1a47d96c559ac61d5fc9d840e48f6e56542fdaccb83
+DIST runtime.unix.system.diagnostics.debug.4.3.0.nupkg 38808 BLAKE2B c7bc02cd3fcc7f547c9d1786fd12da492bea65cf9e01a385e40366614c6e90bbb2a46103096ab491ef6765af5f5ffbad9506f0bae8e68b6d33c40f7672bba0e9 SHA512 a8ce331953b1f4424aa7f4b6dfedfce9ad138940bc92f332de2bc6d05185830ec6eb832e752f62eaf425f749caadd4ea1789121cb7ed79740fa5868eba55c838
+DIST runtime.unix.system.io.filesystem.4.3.0.nupkg 62460 BLAKE2B 6431b1bbf73d43f5d49afcfdac3f4e6a21b4d6c86db7a99f339d97c86fd9f98fe64d2a4873350076a42d1f7faf479fe744220d14d1badaa56370e1c615afb4de SHA512 6d4c80aceffac60e1560fda34c5984bbfa2e1bd106bde2c6d3540905cc30c58e6f5f2eaf5703cef5e68e3d25a4b97982193b2db8130a50c622a498e43eb9bdca
+DIST runtime.unix.system.net.primitives.4.3.0.nupkg 125060 BLAKE2B 76f760a4fe1f14bf65ecad43c73f51b819cae80b259d32cc9d5af74cd559dfc86267ba58cf15c577de697c9e1add532da380b267bff5487a2974904fba1e2813 SHA512 c2a0ecf5c72b226b4776eb6281f00267827d6086a0ad758ebf6e6c64a1c148d2056fe99c87ab4207add5fa67f1db73dd1ed3dca81141fc896be6b6e98795c97e
+DIST runtime.unix.system.net.sockets.4.3.0.nupkg 105673 BLAKE2B 06119cfdac3ce590b2f12f5587c75b6799fa876d7def559a78a1ccf53e34e6e1bf79410bfd676b04f1ab3f34a887eb919078a55cf79dc75faa75fc62094c2cbe SHA512 31b62be088315ead04d89f452a6c49a656b88f0668f7dadb2790511675d48705e01c9df24dbed3a0095157875c208ab6e6b5b6afc82bac13e4d6cdd3026f8424
+DIST runtime.unix.system.private.uri.4.3.0.nupkg 75969 BLAKE2B 82611545be3eba44ccfbef1f104e9b5afade845fd3b30c6cb40171368330f9d4bb2ad8752e415aa3b1678ec140c40f8e72cd4cc3731f42ca64016c1a1dce70cf SHA512 203ebe272791d79ab0c40afe9d0543852ee91b9fb4ae5bc15524d97728bc8bc9d7e0cbcf65d1fab8cfb0aa7a4ae37e7938933eef127aa5ea46f60e57b6ad2d91
+DIST runtime.unix.system.runtime.extensions.4.3.0.nupkg 54075 BLAKE2B f81d86cc15c63aa0b4a3d03546a07649587af7a0285af0de4123734e719fc023fa4227b7abb18307d4fc060e2952c157ec72b3bb85d49ab8508d8167b1aeedd7 SHA512 54b81784c08e934389c59e6e155af6b1855e4bbc41678b01a702c94e6daba87c6ddfd16fe9e2cb61f3097bfa4950dbc37781454d027ce5ba6c50a393cc91b888
+DIST system.appcontext.4.1.0.nupkg 146990 BLAKE2B 7881a5a903a358e19b0de72fe800c70ac9233e7c5e1e4115d69be6f8dbc4fbe86debb79bcd453295730e803ff1da974075c999f52e4c721e085676746c2f9b58 SHA512 f724af13eb14aa57255f82841683a93b427de172b8d31b9fe2c6bc8c21a795e60ecf211b4e49e1c2e285fe1ad498e6bd9c843e109a60a3dc27b49df560106e96
+DIST system.buffers.4.0.0.nupkg 35190 BLAKE2B fee35456dd7fde57a978d20526e4136f50764307ab2db6edf2c9d990992f4d2520531687885764ba2fb54f2a26640da699abb8ee538cda2015d65382d01128d5 SHA512 0663f4639c4e37c9dff12717cdeaebf30e38d91e986d6a99f9f16ba88189873e0399e418659e732a18c674d8875f8f41a1cf60319604173ca8430960759fddf2
+DIST system.buffers.4.3.0.nupkg 35171 BLAKE2B 3b274a048ce14845ca957019b3670db00338972f6e11279e47f59ca6b4326aaecab1d11317694ed98e8a27f3de7ef6f90de94d4711ab224f805388d468728392 SHA512 3dcbf66f6edf7e9bb4f698cddcf81b9d059811d84e05c7ac618b2640efed642f089b0ef84c927c5f58feffe43bb96a6bcf4fec422529b82998b18d70e4648cbe
+DIST system.collections.4.0.11.nupkg 810001 BLAKE2B 7f20413de51be3416862a8e3624fe575740aa35fd0983a694b128587fe05d7a3f869afb893106b02866bd6811dd045e35d0c3f43b55e06ba9f92758f21aa507e SHA512 f61b75329ba5d7c0e688aa9d110b2200c8934c3a1888f6b1b5f198baa7ab93f23835e8380853e8c046f257172b5060578ed86df26e5fe0ef34d8c4408a02c33f
+DIST system.collections.4.3.0.nupkg 810001 BLAKE2B 0079d5834bb3857c002cc686313646895b47be1079e10cf365ce9e67c05f14c2e70e782b122b07a7cd9d5090b57334d0cb2336503cf5059cdbafeb3ef3cc8220 SHA512 ca7b952d30da1487ca4e43aa522817b5ee26e7e10537062810112fc67a7512766c39d402f394bb0426d1108bbcf9bbb64e9ce1f5af736ef215a51a35e55f051b
+DIST system.collections.concurrent.4.0.12.nupkg 502657 BLAKE2B 39d39b111bb1dbf282a42d0b7cf0cfc64509d1805beec3a10c216946b21f090e2d1f94227035de2c17442b463a1985a65ce4de203356381e88eec036b26e893a SHA512 a46bd40b8cc7afeaea14c80ee6ab99a5ef6d27e9e897cfe842e9ab5ca04b9de8d7192a310225b1040d57d4870921487acf5df993ab81301d49994048e1341e85
+DIST system.collections.immutable.1.2.0.nupkg 310324 BLAKE2B 286b222589e1a312d93cead33344b932bca357ed0ce542941e0037ae9f92bc38000c43953cc0219536aac5f1f24b01b0fa65386213875686440c949c32bb99f4 SHA512 0021795a155f67f1247e6572f70a5cde82422bb9288751a59d74385975bd378ae26f363c68a17a56be7a8c3d2b353b94cc5bd15836c7b9827f427aedaddffb54
+DIST system.collections.nongeneric.4.0.1.nupkg 239254 BLAKE2B 0179bcd640e80a53e15f96525ae9dcc67e463936c5e8af88713dc978de525265c7cb33356f56e34003398cf1974fcda377339f41ac0171a83155009d6f988832 SHA512 5c38a3c61b6f4ec205a970773db90fced9319cde2ba3b92876a2d04a0ea63a97d67b088972e7d8215d1580efdf1bd7fbf5c89ceab15faf1b8212d72bbbc573f2
+DIST system.collections.nongeneric.4.3.0.nupkg 239265 BLAKE2B cc987578ab9b0c1dfc8925f2c946876f8c8d6f335d8d6a6a0a30848c6c812a24774d059fe28aa83887b45d924705abe88fd96451dba7b2253dc9b99afc7a75e8 SHA512 dc6abfe778b3ea08e99f50b79112a51728e689f353b082234351b9f5b1be4b601a0b6d38a04c2138d05b5bdd83d6f3d91b53ee86ed119225c15e4683c38bf98c
+DIST system.collections.specialized.4.0.1.nupkg 183457 BLAKE2B 4b886d3db9b40b6ba0372deb97ba84918a2523401b09986bd42b84f7b01d088e75467477f549113396c37db8b4f111987c93e5d6cd4e9a2935656b5c5de67abb SHA512 53d2b256394c9dd1d16930c25f21714dd2d23ab0c9f3d3ac3a3a4552b64f679f2342b03d193984d050d506a22c450dfebb5bc6e404930cfff98ac9c19d7c9d08
+DIST system.collections.specialized.4.3.0.nupkg 183462 BLAKE2B 9297ea15b3d8880a719e4608622793e8883f68887ed2422b287897ad389b41f5301c69707434868c3db88ba3b8819c4cc22b7f5cbb09d2729b0f5e121ddb6921 SHA512 c7a257cbda812d6c0c44b29d8bb5cc4f5cf2d3cb81574eb1dc94a7efde980ac26c5ffadb7cc3521fe7b19437766a046c83cbf2e7ea59a36435c288add8142b57
+DIST system.componentmodel.4.0.1.nupkg 95272 BLAKE2B 91bdd30bca847f0a48608e9cee642cba2bdc356661cf95e906e269a99f0679bf2497c88c770a93eb59cb9cb68aff68ed1f5322a62aee3ec658b01af17976eff4 SHA512 b4de433cc620eb214ee651792f9845e932190dc450ffe7f561c5c63fccb6632e3def55e8c4f38b1f896490bdb4bfacdbe1a015b29fb1ae4470ccc15e479647ab
+DIST system.componentmodel.4.3.0.nupkg 95320 BLAKE2B 8c03f003539d1c0920c4d1a2d0b57a19f93c9c1d7f2e0004035b758b56915da1ba0207d1506cc0cf8af71bb2e58408fb824674941230a0465249752b1dc0df93 SHA512 7c638ac92a132e1553a089c6a711ffb7431b22fecca322ce748d6684ae2baaf161bab2f71704750bd15ec6fda11e795f2ab8491ac769b89341bde77aa9212d59
+DIST system.componentmodel.eventbasedasync.4.0.11.nupkg 185698 BLAKE2B b4dfc7aa479e89be2e4eff37e469bbe286c700a2674e309f33ff855ce0498f7d107284d6edd527cb7c925824b25d89b34b53f792a1b05e607436d9b235606903 SHA512 12f7027897f67dcb1f395afedd5b7edb1c62d5324873c115abf82b116ae8a308c5b0425cec5500b3243de47f82bc0125bf796fdb7dd23be642a3bfdc89a412a9
+DIST system.componentmodel.eventbasedasync.4.3.0.nupkg 185773 BLAKE2B dc94d7b31e3e5325472d8ab475d9bb086a0bb8fd3e5684b1f55f4a0e1830b4e4615c3077de472b82b5a94aeb9ed1e9c1372e38db1cc04c625b749efc9c812663 SHA512 497c786cea127d61354c8abb47263b1a120bf16d6e796fb11d002957b6e45ace36783654c1f3e072de6dbf78d9916464bd0f098d617569bd5dd65170a983c4f9
+DIST system.componentmodel.primitives.4.1.0.nupkg 93070 BLAKE2B 0efc429102f0b9d8393ebb811c93f6d747ce2fdf66bd430728f8a1945198b21158a5004f888f078bfd1b5c76d3e0d66e4848785095c1860258354a214212b2b9 SHA512 d41981fd32ae4d37390ac0645138573becfadb92fde42c373ced5c064d18ac94840c0a0085297893bb19444169b90a6dc8f9106846ebbe3e68305eae09b9ffb5
+DIST system.componentmodel.primitives.4.3.0.nupkg 93137 BLAKE2B abc810f534c991a46cef506df47b66abde687ad65ce16fa8739a05a5c6cd8338ade9961e035f38c559f964c469e47398f537285b63552fb80b4d6b9421993f07 SHA512 ab26d413abce9cfc31b860765d91b21d4048976016d853ce8969f7ba79c039d8846b3c4e2986530f20b62dcb23ff0a769ae5ee37fc078d69eaa962832f2035ef
+DIST system.componentmodel.typeconverter.4.1.0.nupkg 292996 BLAKE2B 69ff090b53f79c1ddca886dc326d4dd427a303b1e43537230a43f2bbb55640bd0a93c83a024a70e3b59febb3f42f4eb687028cebb3e2bdd2d6c998301de93b40 SHA512 636e19bed57f8ed573a533f15ee26265a26b54b1f88d4407d12d31897a1c5c6e7e21321e90299278d542c47e1aecd4611a9f55a8fb82cbf5cf63537a04824da0
+DIST system.componentmodel.typeconverter.4.3.0.nupkg 292985 BLAKE2B 732b3362abf534f3a28d6afdf010d9cc52960edbacd19fd70ad49ff1813d31a7f840206773dd5d8661575a0a5b4053a51d58e23fff803e6726bebaf3bedd158d SHA512 0a2b2f3c25de4a6429c6cb9fbb37409e86168921ea71ec58889912742e39e1b67f5cbe764affc3580aa0ef167c7f73a55332a0abf7b043e89185293029d8b087
+DIST system.configuration.configurationmanager.6.0.0.nupkg 447998 BLAKE2B 477de26b3619349fe0a42aabe463e3676c112b64af24d755664baf8d8d3d7d80ad3ef0182fcaee91d83a7a3eef38f9fb25171f30572ad39ead5e93081849d927 SHA512 de58cb928d6303a16301fd7aa8edac379dfe6c47e6d80b21665f92bab9dd5ff52b3e244cf6df0f945f1c72e71c92337561dbf2752fc3324174a8c9ecc70c3247
+DIST system.console.4.0.0.nupkg 102388 BLAKE2B 9cadd0e2a0256da6c777eed3550c399df1bb936daab99dce3025d5781334b4583acddde3a0f8edf617ccb3e2b9f72158c791d63ccce7cbb2645882fb7d8efbe9 SHA512 44937dfe632127d3a7c89ca77502eeb6f66201ef135384e04b570a90a3eee3d72497869344c759c35295d6a4b46afd561ba19562dfff9896ecf2d4b07e96fb9b
+DIST system.diagnostics.debug.4.0.11.nupkg 149779 BLAKE2B 337beed5f06441a09fb704ffdcc3c277e2f99d7b4931e86419e4d4d0925ad44c86276aae0ee1e29f94ecd37257953731e9607bd00de716d3195dc994dbe189c2 SHA512 02f4d0bf969eb1a876def21c1ffd75f8ed5f979aed9a1169f409e60a6e07016854e2154da5c0164fabaeaf6527a18d8e67282db1b69327a1b3581e9c0c742f58
+DIST system.diagnostics.debug.4.3.0.nupkg 149774 BLAKE2B bdb6d5ee3b8ca4f28b241b098281b7d2957d0996f9345aa086a54b1a981822962e5cc319687849ee52445db47b439b6cd4e99a4c71595f6227f78160aa31724b SHA512 6c58fe1e3618e7f87684c1cea7efc7d3b19bd7df8d2535f9e27b62c52f441f11b67b21225d6bcd62f409e02c2a16231c4db19be33b8fab5b9b0a5c8660ddab24
+DIST system.diagnostics.diagnosticsource.4.0.0.nupkg 118325 BLAKE2B 4a066e6d77ee8ccb165a3771a927e78f279ec52890eb13875b3a1ef94a41860231b5769d2b1de9b5b33f89c1303f0c17f9f427dcada4e1282b93346326617eb8 SHA512 199e2a85b5cb0ea6c2ce13e12444af61e80da7625c4f7d0dcc97dcc363b21f2bee48c7bcfd85d99d0a23aeb1ea35f94dd7ff8fd22ab50f2481e472a749765471
+DIST system.diagnostics.process.4.1.0.nupkg 543262 BLAKE2B 0b9b75918218a8e5dcbbd5d36a286bc47ff9f363b02672c59e3ba2d76310ca8b377481882b3b78652d4fd39c80b3f787ffe3d636ac71deb842ded661250c9b71 SHA512 4b6602f8cc29599e9eee1da5a8d71efee6cc8c3e2f7f611afee3849dc60d1f5fdf15769794a0ccf6283fcc2135ad1fb0c18cc4f055edbe3fb53729a1ea867d6e
+DIST system.diagnostics.process.4.3.0.nupkg 543776 BLAKE2B 46d432cbfcc6664d74424cad4e25ccbcd09f5e5ee35f81f67aeb990d810a7012f38061ac922b9112eaa77dd01725c56872075a6481e77a878aba9562e964e349 SHA512 805bc86a25b1b77dc49f7a14564cd2614ccaa0e9bc69b57c21b339dc73ce7cb6412c3f7245d0f1bea46284aff5c92464169e4d6485dde1c616b18d326e7bc036
+DIST system.diagnostics.textwritertracelistener.4.0.0.nupkg 94128 BLAKE2B 4bd268653a4b833cc1cc05f575b63636d1d8c5ee244dce6653304e285b3415f4091224e1edce2eecdf4e166237c5aaf92ce2681fb2b1500a6084194b05229bc0 SHA512 a11b170b3efa1830ccaf08cc8c7ea4791f5eac52287e119a20c736778372908e2b74112e50fe59b30600df42c63ddc822bb0d5e1b3011092f79c9172009a12fe
+DIST system.diagnostics.tools.4.0.1.nupkg 67228 BLAKE2B b2b74a8c3164181513c960e79bb2cfd9673af3d864c681d379051361743459ee0604806c09e9154913d016963f20a59aa8b45b4b3c30275709878405085ca690 SHA512 a812ccbbdd0a66eb57075121ea6332a526803ef883ca9f8b06431d6668ad50efd13624fa87dfaf6aed03c652f795c2ffb9fa9d9895a2fafa96eca614cbf86cdb
+DIST system.diagnostics.tracesource.4.0.0.nupkg 227603 BLAKE2B 4136bea44d7e3edc19be3727877cc18af450e94b79465d9186fe9515d3b1be1c020c1478d614c43c4e2816affdf38026b023d8d34feca9fd4e598d994af0c544 SHA512 ab96c6cf3bd7562f9d20c88f591857655eebf8eb374c43ae456e4b1ec0140c6a6a247a25f1788ba24569b2001f3ea1c7364cb1d5b6efe65459a91911ac664ac5
+DIST system.diagnostics.tracing.4.1.0.nupkg 581838 BLAKE2B f7b28bb2adec08583617e0c6133cdfadda6e1ae4cb1b3bb83175199f1dcca28c9c1540af5a560e076d7a3120c509576f9c550a0d80481a740e2e09f78c9e57ee SHA512 0c64f255836cb629587b117bd8de5e70bfe7e4c6d7d138bff10b9e85f4883fba250ae07118c21d5e9130ba3cf120a9a2bf581a17577d3a7ec09260933c7b4d47
+DIST system.diagnostics.tracing.4.3.0.nupkg 581864 BLAKE2B e09e616dff7879932b358746a62b530499aa61726c4490c56d2d7a0bf888db5b42d75d89cc5befc9fdb6af231beff998b6b243c2b2a08084da089709e0c82a75 SHA512 d0a5d30e261cd45b7dfab02b7ffbd76b64e0c9b892ed826ea61481c983c0208b05b69981cd79e91cd4e5811e1cd4c3cea06a1afce05811ece58be5e4c20169ea
+DIST system.drawing.common.6.0.0.nupkg 1114589 BLAKE2B bc4dac5dbd2504c355cd745a5559d3b5f2d1c59a9e0535c60ba97e12e84845541c8b606e15db6aa99052329950c0f58604779e5535251f20e960bf7c939ace43 SHA512 d61f0a3e01c3eac15f13fc1ba04a2c7ce4eac956400b2faa361fecabd3836d49d5bd344f3985ee3d94cdc3f6a72b8e07e423cdb2965b4f5ca2222b5de32988e4
+DIST system.dynamic.runtime.4.0.11.nupkg 547813 BLAKE2B a59d9fa95313f269033f7e25e39e499ca4910da5c2c1307a1d3d4d96b07fa25fc6b9223755597727b60a26280e1dd4a8bba0b165c3fae9a3d3d9732b77f3e1e8 SHA512 0b2189a6f50effab44a8b1f883f2a1f9b9b32c448123190e8946a877c28ff46a235aa90af0898d1ccd6da2f3155aa2cf26e57f7f61ee7e3c50dfde2190d781ab
+DIST system.globalization.4.0.11.nupkg 589139 BLAKE2B a4ee2d6848c249b34a67192dfd32f78d842f4b12f8be137804966d00b2e15dd8b2f9ecc6427f9074c35802d9bc13674c912c80ba405e610324772f9b640dea46 SHA512 66bc21667f5f839bc711eda3b0463863d70e0ad86770fd5410e0123006d6f031755cf7220187fb7cefed69b3f4a9eab8f0868cae765cb1425c8bf60427f395e6
+DIST system.globalization.4.3.0.nupkg 589136 BLAKE2B 7b07f9b68f0744ddcfa3f0db6190c1a0696c2f89f8c5e92922ac20fc4155e22d97e7191bf7866c9b58acec056bff08531b0adacccaec7d4301e1d4b149fa511f SHA512 823d2ba308cb073b40a3146ecccd0d9fd7b1615ac3fbefb16f73d873e411fd81c3bdc87df206d3dc7e2f14c9cd53aafca684a3570c25471280aada8de805ece2
+DIST system.globalization.calendars.4.0.1.nupkg 177634 BLAKE2B 9ecc74331495d4e10bf0b7bec8fd577c207771387465939db39cc3711e14bacf7ca9876710715cae4378a6b957e335ed68bd38b73b43297171bf699a3997c766 SHA512 e6f3f0fc443c52cbe754ccfe6c7752206557db7603187b0f1ab7e21fcb466248ee20844d9ce9f5f114e6daa5944a3293cca47f3c02a2e735a7b494f29f2278c0
+DIST system.globalization.extensions.4.0.1.nupkg 142766 BLAKE2B 28344f900c32045cf4f6d168e02dd1df501fee3a5d0ede8ee35034e96cea6655ecb0f0d722eaeed78c500535b0795e7cd0f067e286cf65ca083fc4c37477efd5 SHA512 415ab44aa3e46b59ad1d314ceda11f9dc78f85adede3daece96c83c98448e2a0cad7e79045edeeeaca8618115c38517364b00cdd9a0a7228e7da1ebc342b0116
+DIST system.globalization.extensions.4.3.0.nupkg 142949 BLAKE2B 4eb77d4ce5af01136145ea867e9d6cc81181b36a178ff487905dd7d7c6a4986c518675af68eac0e854347503e11513056173a93e6803683f3fddee7677b88e05 SHA512 a4d360003f95e0c31edf39c0b91e1c73850a60ac5d0032b17db888a3c7d7134cef9acd97219d14174ad213b7c044f49b364cc5720073ebfcb6e1bf6e4ec24ce5
+DIST system.io.4.1.0.nupkg 703645 BLAKE2B b0df16bf1368571d6755f88cc8fcce330d1dd5b478a009363e87f463e12eed7722d4bcd66a1e70de63d1b31ae2793b80c735e19a63e80ad4bc4c45f107e94ce6 SHA512 e01b432f3d715f3c88d5d7f3e7cc1ceee78caf99407a11c3306f9103aee78963f818417f14eec52f0096fa247900a31e53bd3226e06f0c0f93870db0b2b78331
+DIST system.io.4.3.0.nupkg 703652 BLAKE2B b5b2627ace4cc49f35a0caf5c064c4c8262ff0fe3df79bb1bd3529b3e306c8b1e77ea9e5948de343ee786a50e12be822ca89b5ea3f16347b9c0bce6bd8071127 SHA512 bfca5a21e3e1986b9765b13dc6fbcd6f8b89e4c1383855d1d7ef256bf1bf2f51889769db5365859dd7606fbf6454add4daeb3bab56994ffb98fd1d03fe8bc1e6
+DIST system.io.compression.4.1.0.nupkg 413984 BLAKE2B f0b7116d6502f9179935d4c00ee9542d302c17472ffefe4b44e97c3d8bd2fdaf9483e06f7809b5621a7d7d20d6b5336726e0b2f75aa2a8a5f924332f5052d1c2 SHA512 2402b7ba4f0b43bb916cbfd608f9efdb9f60406d2a19cd9e7a677867806962c30b5666b6270b873ff9748b4fc3f7fd6e0451f2a5214d5478593f57d4d8430979
+DIST system.io.compression.zipfile.4.0.1.nupkg 113696 BLAKE2B 9b325bd23a5b4584742783b63f821365c74273b35737710c10580fda6beaac1ecfecd59b4c69a3885f28f653cc7c30e31d77a0453f63e49f4c0161438b6828e5 SHA512 49322ce411efafb4b55d43b0d7a52bc334990e1e45b321d01f0f394cf1aaba15845603d6f08a12c8f09454a03518e6c0ab7996ba73b1116c5c7f685d768bc62c
+DIST system.io.filesystem.4.0.1.nupkg 274255 BLAKE2B e5beb1350bea00cf6d533de221129bc3bb799f4e041b23e45304ea39000d9b70cc63fafcbd302046793bac360d431e3dde5c432fb19b0e1af7a1e1bf8e9fb0d1 SHA512 a6478b17f5d52fc5b9517458e93e1a69b92575c170f44046b3f4e25c7e67c9d4126ab486f5a3c51abcb279d05a057bd53aa8f49a1e51eae69563ae39214b72d3
+DIST system.io.filesystem.4.3.0.nupkg 274316 BLAKE2B 4ba513b503cfcad068c23a82423f9900c648fa2bc4fc16555bec717b6c5cfeac6c7708b28009c7a089f80c77ff744f573d72e4dcbeaa14acafb9fd3e8b5100d5 SHA512 4fb581d6f85b9529a091a0e974633752aa39e50b2be6c8a9e5eca8c2bc225cea07064ccec7778f77df9987deebf4dccec050b1a97edac0ee9107142e6a8ee7ee
+DIST system.io.filesystem.primitives.4.0.1.nupkg 94921 BLAKE2B 32311ebb93e758016ba0971c99f5010080597b630bd6b1aacef03e39d7693c66b7d2531a6af05c7b14cd2dad34b1cd485aa19d77ccbe53e512c4e021e3291f9a SHA512 dce1c4074938391ea4ea01226812982a893bfc910e66ac99ecfe31c9b6fe635f3fbff11dcab222ed5036eb21c4f49cd3f121c310adbf87d22cf3d512bf6a9d73
+DIST system.io.filesystem.primitives.4.3.0.nupkg 94996 BLAKE2B 95fa6178164a7cc6a29c5a3fc55e415419c433b3b74abbcfa4fa5ae1bef40141b9515076b6869e8ed771b0ba6800bdb2fe6fa5d1f773ce52c40753efc0a82be9 SHA512 5885953d09582cffd973d23a21a929064d72f2bc9518af3732d671fffcc628a8b686f1d058a001ee6a114023b3e48b3fc0d0e4b22629a1c7f715e03795ee9ee5
+DIST system.linq.4.1.0.nupkg 511874 BLAKE2B 3f5941e6fdc731ab7acb58aaad0340695ba2c1ad285ee5eefd9c4ad3972e278d74cabb0d5480f29697b8c9ebf839c3c8064436be4c508ad406f0b3ab2b6366fc SHA512 53e53220e5fdd6ad44f498e4657503780bca1f73be646009134150f06a76b0873753db3aae97398054bd1e8cc0c1c4cdd2db773f65a26874ab94110edb0cddb1
+DIST system.linq.4.3.0.nupkg 512550 BLAKE2B cc6cbb532575bfcfde7ac897970dcd49067186547108f46449f9f819e7910ad32496df3663d4db8eff48224b8ee95b27f7bb442bb477ad47f44da2f6fa893078 SHA512 eacc7fe1ec526f405f5ba0e671f616d0e5be9c1828d543a9e2f8c65df4099d6b2ea4a9fa2cdae4f34b170dc37142f60e267e137ca39f350281ed70d2dc620458
+DIST system.linq.async.6.0.1.nupkg 2000666 BLAKE2B 8d4d0e71e4bb1bc29dbd2775803ed7e7e1bd5d3d415a3e924897513d18d23b0b1dfa569419fe24bb2cdad237d8a466f319091f0524fcc73c27b665922e5185ea SHA512 792b7b14a6fcc52f88cc0475a2ba8a694399393fa602446fe23fa6d39d782c16f908b4bc3acd58454554932b7a41056d84424b5fd66f0fe6e3c00178eb3d8a1a
+DIST system.linq.expressions.4.1.0.nupkg 1929236 BLAKE2B a804c6741afed5fdc918c046092f8a526668fdeca8712f750efade8f1f272fcd2c58b1d1493f20528ff7006e189fddd21f8a2220c15d689c8de2ad2bea21b1d6 SHA512 04605a091d3aea404bc97cb7ffc154708b3bec886562d9e36aecd4d2ed130afbb45f54cd16a3f714f0ccb3f27c5bc7707e55fbc3e81681a783e9396930058acc
+DIST system.net.http.4.1.0.nupkg 1372881 BLAKE2B 95aaf095ec258e9a8737c3bf608a887c11a3b28850ccf2d19a4ffb3615db638d56aa57143a4f4de5e7968492f506a5c5dd5baced6ce395b24b208050ff80defa SHA512 55ef2f727784e744ba069bc0cdd1586ed714cb9239ab724c650629055f4f2e9f88493afd176e833d46d1493974a8e95c805c4ed4d989f095d6def8d39322fd7c
+DIST system.net.nameresolution.4.3.0.nupkg 177639 BLAKE2B c3d666f33577682ba43292ccca908cbd81971ab53eaeb904438a378997903e80d5d3789b3c76db6c50f0411fb17b227db973bc09eadfc0f98ebed88ac0209057 SHA512 40d39e131fe7a392e58e9f58b516b5db88383de91c05b771f5e509acf46cc874271e90623d327ab039003ab8f2714144694390261278de324e1aee228a828ab4
+DIST system.net.primitives.4.0.11.nupkg 769354 BLAKE2B 5c2a6b46cd7eac3bd02e8791264f6bc04abc7a93352db986f363e6800cae19b52ead304ab74d49d9fbd249ac44b92331cccf156d86d91da798ac5d274ad51c93 SHA512 50d5a977a4926fbfaf47bc4656111ed6edb8bb6acfff0cc5c2ee9c104628a255c8298a649f33ca2abdf9c7dacf4bfbf15e48ab7f92bd797b7d50ca328fac48b9
+DIST system.net.sockets.4.1.0.nupkg 135660 BLAKE2B f36e7d4191bdca249dad820e1d0a142fee23b77e27394ee7b980c085db23a3db8b09bd3d06c9168c221f264cd0e119c7d18bf9e7fb100bd66c9d96d6ff127ad5 SHA512 b231a1ca9d281923ffa1b8dbafa2cc074ce679fc2d473ad7c7192cdc3b51c8ab125c606cbbe0248e02b415e384bfba1bdbc59b28a139589c78aa3687e0236019
+DIST system.objectmodel.4.0.12.nupkg 321648 BLAKE2B 7a008caf5f7f38f34d62037e5e3505dc237356246103d00be5b07423829fc4f2a763fa841673ebdeb0d6caa79dea8d7fb9f56cf078addddb3cc853e63101f03a SHA512 f5191cdb360bd2624abd7454c66862540f97aa19df92ea0854786b9d3cb9549e95c6194cfe8adc01589203c4feb1673a129c4929486bcb5f8db83ea535477c53
+DIST system.private.datacontractserialization.4.1.1.nupkg 476334 BLAKE2B df2609dea827597fd1ee0b3b8482cea126d86944a7250c99a8257b303886e4c74c4df57a6e839d028ed1a8415b26f7d2088df31154a06a90a167d3ae9c817857 SHA512 4e0339b94f4de7041575a6f2dc0e4026ff9c4def3818264eca7e5ceac3207a19e7c388b78bc59ae090d1f2c1afbc991132a71e0a149e07777a7e446a15759dc0
+DIST system.private.uri.4.3.0.nupkg 16869 BLAKE2B 7a407e16b35e4a5f405029e80749f7ae1c907707d9f72657016667ccf1255463011497b09b7d9e23fb3ccfd4de508dea48b33b13267775619f63134897e54c61 SHA512 5989a57ef273b689a663e961a0fe09d9b1d88438e5478358efc4b165de3b2674fa9579c301ce12d2d2fa5f33295f2acb42eceea2ebebf70c733da6364ceaf94d
+DIST system.reactive.4.4.1.nupkg 3087134 BLAKE2B 491b52483cd99103116d805e36b0b75faadbef5c1e2fedf43b88ca00a855bdb036bc87901be45ba67f539bfcdc41c77e5f2f19e30a9ced5b8865c7f5e75654a3 SHA512 c4f01a89121aaee7569907c61cf8b367e647956df77ff6a4dd305741201f5c8f4a3858e98da951907b2ecc1952022c8d17c8d9c2c8b790145a3da31426dde100
+DIST system.reflection.4.1.0.nupkg 700819 BLAKE2B 7d98a07245ceb46e777b904b66ebd5d85067ed9a5e7ca10bc0838f115cfd5f7da1b6420b2126e56310b47b533fcd22ce020e046d03423ccdeb9392609783ce56 SHA512 67143ef8f6fb1044830c70c66e9a2b4f1850f50df5dadfaa5177338362ea7b9e9fe4b0ba59cd4eac6e1c8db4e0c285c239e4c2b3ce61391618b411aaff45f7c2
+DIST system.reflection.4.3.0.nupkg 700821 BLAKE2B a6aaf054f27be81f1a8251241deaddd6d35aa9ff1cd1b35a65c75201c3305ca0481d8f7a6de52a85736b0477332c404573db300f324e6301365f14fd59784225 SHA512 2325b67ed60dce0302807064f25422cbe1b7fb275b539b44fba3c4a8ce4926f21d78529a5c34b31c03d80d110f7bace9af9589d457266beac014220057af8333
+DIST system.reflection.emit.4.0.1.nupkg 219037 BLAKE2B 032654f464c65df895878e3e726c7f14c8c380fdb29a092b3ab99b57cd5b4c2a094df9a579b6a0b8ab416244a98b7bb2efe4a3e56792bd62f35d7077eeae33dc SHA512 ff7766886b945148ea65a49e4ddc648336340def2c2e94b8277b584444ec9126d96918f0bcbeb62016a530623a89ccd9eae749d62065b01058387b5d09fc7dd1
+DIST system.reflection.emit.ilgeneration.4.0.1.nupkg 123128 BLAKE2B 784130af9ff312b8757308a16ef704a66b70f60461eaac1c39f54db4b3d4ca0ff066e495374c6899b4f65f4bd3454d2f252b4b404cc9c04e9ea44e896167849f SHA512 c3819cd3a58f609ff579652536f9f414481caa4d9e7dc277e0d3c8c8fe8e0ff90806fa94f7c6436d4af853c6fccd26d5af57f0a49c5baceef4e0daaa39e26773
+DIST system.reflection.emit.lightweight.4.0.1.nupkg 82989 BLAKE2B 80372b79e7e12b1945f6f178a9d427e32dda82998609dad684e9ebd806039869cbec3561a836b20b3988a4579049e1f39a04c9e4fbef4085a2e54f02dbb9c120 SHA512 542863fa085a31705b0b294b64744c11617a098beae4d5664beb53189148d19246c9a112de30f2d597e0888069a414f2aed8e94a2b369294a81b24b991bc2149
+DIST system.reflection.extensions.4.0.1.nupkg 99743 BLAKE2B bb72501a2dd11ecdb1f0ee41f022d7a20635cfb8858f8570ee52d15f7c0a7bd167ebc420ff164acf9a5e763e2dabdb7c7571e9155289fa8d9569ba1e42071dd5 SHA512 3e2f07c29836735be6247e75f760de90783d5ece64e8cce4e23eceb777da8975a35130804d87ddd26449c13d2ca34180e3f6b844b0fdd2dc594bbec6e7272098
+DIST system.reflection.extensions.4.3.0.nupkg 99740 BLAKE2B 15554874193bbddbb2a7a769a239923ea039b117d9f8ba5ae634b82fdc8f04fcdc871bdf328b0b4e418c9f0c987dfd71546c778a99453ba6b5e754e6939b3c28 SHA512 06cfd992c8d7fd9ab6432ab02be981a01b6558285a6e26a7825a064d4efcce08d9e7344f03fa19b033a2459d42b0b80e8c1400ce39b47a1752869ab8825b0475
+DIST system.reflection.metadata.1.3.0.nupkg 434051 BLAKE2B 4ce1ed90775327f7e7136ae04f427c39b5d38dc9d1b45464fc39e86e8a1aee8f078e810e6b60ef665a8cb69cb7b409151306a0c3657d7dbe30e093389b40cad2 SHA512 a62b9a3b2d191f5fe734731dc05ac73f6ed3a18ed255b94ca9cfaef281157f8df821ca4c996a6e53d6975a10257916239ca99f077548bc6b301308b0a6db9e5e
+DIST system.reflection.primitives.4.0.1.nupkg 281678 BLAKE2B 3aba0904b106e846cc9ff3fec98a6cc4acba2d2dd3296248303bb02b2e32bdafa7fa095f1c29636fd1c85ca5ef4d972a7b6218834e458ec9f41f275eb195cb4d SHA512 08ad6f78c5f68af95a47b0854b4ee4360c4bad6e83946c2e45eaa88b48d27d06618c6b7479bd813eb5f30a2db486590d17645e9c0e06a72dbe12ffd37730707e
+DIST system.reflection.primitives.4.3.0.nupkg 281679 BLAKE2B 36dc0fb5e7a6927ab2f54bc9ccb2e032cce0284c3aa9b83cf2ded8bab5fc7918553b06b16bef69161a7d9a0548b3e9159ab582533578cd28a661225559bd2b1d SHA512 d4b9cc905f5a5cab900206338e889068bf66c18ee863a29d68eff3cde2ccca734112a2a851f2e2e5388a21ec28005fa19317c64d9b23923b05d6344be2e49eaa
+DIST system.reflection.typeextensions.4.1.0.nupkg 187836 BLAKE2B d9cf37002f9c37bd11c43df97fd2e8234993f34c97e9a0606ef28164f1c587cc55ad2f2d66dc62de304ccae90f4d5636d163bbbc86fc00b4bb258a5dc91f4068 SHA512 5b1875ae86f76f60307fbe261c7471e996d4d4eade0c4783cb35a5aad7fec4f01be01cb1f1f78af22d483ecce12096f6ed431d69c4a66c7bf235008bcac30cb7
+DIST system.reflection.typeextensions.4.3.0.nupkg 187842 BLAKE2B 2cec73bd787cc6b4bee793782ff0db98aaced7e7a0645cefb60e6e47d353e1959eed7a48db24e9c7ea6ad7b87648c11c3588d43028c4e0d14c695c38356943a2 SHA512 68ae81a635b9af2aee9fc8fc8fe7da0356ef4da4eb32f81a89fb75613b96714e8f1a1f4c12bd0d335efbb03408cc7a744314837f13564d5fb262ca272055677f
+DIST system.resources.resourcemanager.4.0.1.nupkg 85915 BLAKE2B 11b7c350695fee892052fadccc4f24f6cdc9bbdae8e51122115dbdb357f584a6392ad4fc10a4be59c123a018e0ec559f5ba035fe5e5d7fd868f5878c7b00e306 SHA512 5165916e258dd38fa83278fb98dce271a95e0091c1274b8cf5f17d88b9e6284f7a7bf145194afe4f20250cc31ad714141f9e0687cf235ff05460fb47cea0c525
+DIST system.resources.resourcemanager.4.3.0.nupkg 85908 BLAKE2B 002ba25bb953e5a9162214338b50abcecfd8183c68c7b5de8bbc1780e57322b6aa225e13436ffda54b4013fb77540df7428d8c3c89c1a21622ab124d8ca174cd SHA512 9067db28f1c48d08fc52ad40a608f88c14ad9112646741ddaf426fdfe68bed61ab01954b179461e61d187371600c1e6e5c36c788993f5a105a64f5702a6b81d4
+DIST system.runtime.4.1.0.nupkg 7263653 BLAKE2B 0a6699d985304a5072c7c283a42c100cb8f13ae61e95f93463ed57438ef3d7c655c3c4aed43b1d8fed4057933e924ca1e6b9a5987f1328fe4e2e172861572593 SHA512 4b05eb68bb485846707c4fe3393f9616d3ffb6c5f62a121d81142ddf7d0241c931fe96d193b7bf02281a9368458e0764466766557cfa9709035dc76d8fdd7706
+DIST system.runtime.4.3.0.nupkg 7263712 BLAKE2B 6cf2c6704f2a5639bffe2db645fd6ac935e341a5d50f1be97969bfba15e7fd93c94a2ddbb75a3538cefc05142fd72331185ca7ed175141102e8f977649f3bf1f SHA512 92ab2249f08073cfafdc4cfbd7db36d651ad871b8d8ba961006982187de374bf4a30af93f15f73b05af343f7a70cbd484b04d646570587636ae72171eb0714fb
+DIST system.runtime.caching.6.0.0.nupkg 298162 BLAKE2B 6f017242e8b11b9d11b75f14e87a6719aa08bce69f5ccd0cf7d3636792b1c12969768912671c02431b1fe65b8bbb0d18601623bd3c0e8d07e7bf80557e692fac SHA512 001810a2563bfc28561bc3e3e84072b0c8ed8f508354937b696796b975e1fb2eda4be1cc8cec31d4e662fecfff76250752b762cc02279a05ab6b2e39832e4442
+DIST system.runtime.extensions.4.1.0.nupkg 1060307 BLAKE2B 5426e4a8e6d9ebaa6c88ca7dc495c120b848602f15f102d3c65105c8a03ee35136d5eb2e04a3eb2452dea96a36af70e42cb7a317e269bf4ef8a1d3a5f33f9784 SHA512 42d009be57d6497aa0724924891289f3decd916d0432c1c865cc0494092f5e59287f632a70c5060b3c78e361ab04510d75dfb3c2d2853f54201f735eb6e2dea6
+DIST system.runtime.extensions.4.3.0.nupkg 1060357 BLAKE2B e58c5c36d42228a507fba876d43f064b872c93dc4a48e9a7475a77c27e00f2added1dbb8dd5d6516a4c5652ef2b01f5fa31aa611360b38a0b66a0b1a2e479699 SHA512 680a32b19c2bd5026f8687aa5382aea4f432b4f032f8bde299facb618c56d57369adef7f7cc8e60ad82ae3c12e5dd50772491363bf8044c778778628a6605bbc
+DIST system.runtime.handles.4.0.1.nupkg 54854 BLAKE2B 396943fd119a2ca9b91d1e8059ec1854ec4eedda6b73699042f8ae761bde1b6dde5f7a92a2066220d4c8f7d872741939ba198cde2154d62ff0350ed867ad0d09 SHA512 966a943195b66118277a340075609676e951216d404478ac55196760f0b7b2bd9314bfbb38051204a1517c53097bd656e588e8ab1ec336ce264957956695848a
+DIST system.runtime.handles.4.3.0.nupkg 54854 BLAKE2B e68360382f2c625e3b1526dddb1d49c6bddc9b78d38041801f0df876f1b06d429c608ff3b28a0c1415495eb38fcd70aafa9fe8dc0bb323790e8a85718a9f93f9 SHA512 0a5baf1dd554bf9e01bcb4ce082cb26ee82b783364feb47cba730faeecd70edc528efad0394dcce11f37d7f9507f8608f15629ebaf051906bfd3513e46af0f11
+DIST system.runtime.interopservices.4.1.0.nupkg 2542509 BLAKE2B 3ecf490aacb98e44dd952301828ab27f5cbe6b2053dfdd745737cfe1d7a847691e13b3a7df558daa2a1747e50e7045145a90f51e26f108fe9826814a0c60b7c0 SHA512 e8511e6a4cd40f3c603df4ffbbf6a4aac4d10be79bcfd0249a9af90d55cf2a02543ad9b82e607a4665d58f28c7ce9bdb0f7f3ff9bc8ded8a252213916a771bd2
+DIST system.runtime.interopservices.4.3.0.nupkg 2597020 BLAKE2B 4753b772f9d3596eae34b10497af40bc6e7cd63e9319e5789378cd148b009ae9fd5bde5e5757954ef06826bd4f4b79a3f8d8ea07766238407f26f3e222cdb2cf SHA512 650799c3e654efbb9ad67157c9c60ce46f288a81597be37ce2a0bf5d4835044065ef3f65b997328cbbbbfb81f4c89b8d7e7d61380880019deee6eb3f963f70d9
+DIST system.runtime.interopservices.runtimeinformation.4.0.0.nupkg 165972 BLAKE2B 0a4e21adbb275fded46ae04ccda695b9fcb29d4f199979b914a55d0cdc4457a6a7dfa8bbd82a5a46048d052a7e852cb935a1d4a7c6bf7e462f7b14327a52dc9d SHA512 462d35e66cbdd21dc007f06c6ef129ab57e810fa0f0416bd2fc6fb7eed55138780d4d31e31ee6267a82e2e3a1607e5c642bd6efeb130b57a1baa87e3141b0080
+DIST system.runtime.interopservices.runtimeinformation.4.3.0.nupkg 179546 BLAKE2B 780a92196ee216c1175768b32c04e88cfbc453bd9fdd6e5645c4ccc98f2c5ad62fd5cb158117df9391b1cdc3130a2cddca49304d2579434597350097960ce013 SHA512 6f4905329a3cc9e62d274c885f275ee31c5af57a6c9fd1a5080d039cb748e0277bef3dc8ce42863cac78365084e00a032279bf3d2b7254a49f3fb1566a29ad1b
+DIST system.runtime.loader.4.0.0.nupkg 47372 BLAKE2B b6f7f4f74a8f36791eea44a32bc40df679a83ff586c92316af37e64a2c212bfec2557b403e3c40f1fce9d0273aaf074cfdf27ad1b9f3adced2fc11e7456a09f4 SHA512 0065abcb02c8d81d79fdd9cbb859e51d61635e6ab54e5d248d668a4c76da27c4fd908c6243c6064ed88c41cf2b52be3d9762637d96bb418d0a2aa972cc0ecd36
+DIST system.runtime.numerics.4.0.1.nupkg 283710 BLAKE2B f5ed3b1296fabe1bae02feed0585c171fa6c040f7ddd234034a36e87053a2a0016784adbf6b8b1d86da4bce7291107830ff8ac55fe3859d47f845c8b6ac93676 SHA512 333a3ba974e80ee66d33a9d8412e0bd585350bd30ecc65ed35e9d7c69284dbb90bc8b8d019c40476f3277049e0c7ae9b05a7d1e27614f057f39a141132304cd4
+DIST system.runtime.serialization.json.4.0.2.nupkg 113946 BLAKE2B e617a32c632e34b7e1b2a4840a1d50a5495852892955d7e33ecfb69336f815d6738232f0d64c30cb1e5bbf95a307985d86de59f54aa2abf90c0623ee83f1627c SHA512 624dfc2279ad7d10f95567d6a4a4101c2989257888e19d73e9e65e08cab8074a9c23a153f745ac40b7c8efa1efc14e3a0108deebbeccafc32cca1c99b9977772
+DIST system.runtime.serialization.primitives.4.1.1.nupkg 222353 BLAKE2B c53253fbc44b119c29e3cc5a049919d293600182543e6b0b39d0abbaa7853b4b025937d5e5df9e89630a74dfd22bea4c0da826ce2b37211b8db3cb4aeb18ba6a SHA512 fa6a90aeb26c0f1e72c48abec0b60a1ebea955cd3c1133b3245c04dd0bd6984c0ce0253944d28676abb8edb93e1c649c693e7c6425459a3c29a74381531cb540
+DIST system.security.accesscontrol.6.0.0.nupkg 322676 BLAKE2B 4a263e610c98360396e39dd03b61b5e652d957ec4f11086b831105d6390a8f48eae8cfc425e97114d52d81aee584b155c1dd450c297118d63be7a8085363bd83 SHA512 64a36a103b954ab4b7e8a76c0e876579bd484c308e444c2d915fb9a0fd05ad63614501ed235c544afc9b431cb8a4cf0f0715b8ed414e85958e6d68579168fb45
+DIST system.security.claims.4.3.0.nupkg 147933 BLAKE2B bd00c65069b23415c146861ba7ba768a0da69f9f0a4496fb1f43780222f899ae62ed35cd0bc5a0953d8b13920800b59414cccad7e6bf6614ee675680c06e27cb SHA512 ab72b90801f6c051a2b31645448eebfca74642b3cfa1d51f80e21a0d0d7ad44d3366dea139347e2852781b7f3bae820df16c3eb188a2c96244df05394ed72c86
+DIST system.security.cryptography.algorithms.4.2.0.nupkg 357563 BLAKE2B ac5ed2bb8ca463a248b7ff84492fb8c2f0eca535d299369948b731f574eab7a62fa0789f4475651c5f9f673316dd098440800d0ee0faf0097cda4df76b96fe77 SHA512 93d1e6394afc506b58bd26a9b3ccd64901bc2d48dbb8825ba1f927c17311cad607e6f8a9794cc41aee83b98eed08a23a7c58390b9b852f894735392342f37a3d
+DIST system.security.cryptography.cng.4.2.0.nupkg 289992 BLAKE2B 61250b78551d119e7299ba5b64c2bba94d455fbe26c25919a5da12f66ea1a5976bd3fd7749f91af5f48578a7d2fddaa0d972a6bf375bca1b2adc98a791109f4e SHA512 4ed77501662e6d18733f507077de9d277b61b3d2dacee791e0b3a56c9a604bd2acfb81334c51660ba33bb7a6e24ed46c2da02716f6613a937152ea4806540bf1
+DIST system.security.cryptography.csp.4.0.0.nupkg 117365 BLAKE2B 9153851bb878bb339ea2ad715b24d4fc9f17d8b2448985466afefd528fdaca5a18e68da4a686e867cdb9d498df6141367bb2dec005e682f9447817e2ae1d6aa2 SHA512 6f3fb8256086a16ed7fe339e0f09d42a081c4f783b0f8626bb7eec08261532ecf517f6c7a41bfbb8e2b99b8f1c79ef99ef7c724d8719e287fe7981ebe8b6aa8e
+DIST system.security.cryptography.encoding.4.0.0.nupkg 144164 BLAKE2B 7231fc3c8d9899063cd547273dd50d4b29526d7a6c0dfdb081e9c0ca3af621ad98f98a792fb4a350f0cc737e9fc315820a965bc09760bc8f4333f414e470d929 SHA512 f20d60a5f9affcb49995d1bf27a1c09173ad601147241c4ca504e13324d35f7d6618e8a92d04e174d5d3d9821a03e122fd3b0f8fc1d512d105b6afd73b496c5f
+DIST system.security.cryptography.openssl.4.0.0.nupkg 72038 BLAKE2B bb546c03ca8926bb113f590dbc08f99bad81b9dbdd3a58ad086c34e91f59748587af1323eb38073c0d77a8cd2ade1cbbc919983b93d35c3498438a7322b0127d SHA512 432629e457c7061a7d207fb60597a5a8a806fab8c62574833e509afa3c4ac8fed529dbc7f21d69e16dc9fdd091aaa575191e9fb552eedcf28aaa8b5954d32e9b
+DIST system.security.cryptography.primitives.4.0.0.nupkg 81324 BLAKE2B fb247eb8938baee8c4a862994e7eb237a0dd5f54a5d3f288ce44a986bac042f4c2397a023f57cd9b05ade5013dbe3187365fc4264a8c4f38bfbcc5cbaa8794cc SHA512 a11562f4fd90ff39c12af2078aa3743e323d8a70fe98cfe3d7e0ec182a2166d353c1ed8d76dd2a9525a80287d7dea228f04982edef6584b89f32f72647b2822f
+DIST system.security.cryptography.protecteddata.6.0.0.nupkg 126768 BLAKE2B 3ec81101da96e2395944ce93506d8f23b0f82bceb95a08b784d3d7aed619bee7aea80dcf725babf9650931018ced7e49988ceaea571cea8ea2595b2556d3f070 SHA512 489b5dab0abfadfb8bc2d0437de83a1447918071949440e766db701c81c3518de6a38a3e0f699706b06d591ab5393c7bc0b2eaa81c15bff156339248e6c35730
+DIST system.security.cryptography.x509certificates.4.1.0.nupkg 702294 BLAKE2B e628b9c28a01eb4551ca5446c70f4621de0ab1f5224a2afe92c19935467ab1ad40eb4170eb044e021bcfc972e579961036b90a3d287667b571735f8a60d01254 SHA512 6171106ffefaea916a72abf17af038e0203b4e779b7bb75f6fe6cec04c6de3316a7ad4eda8fd3ce7dc0bd8375a0f5e45387456499b24ba22224538cf08a0cae6
+DIST system.security.permissions.6.0.0.nupkg 240029 BLAKE2B 3d213c22806d7ebed6e5c6de903b04610739d443deba18189b3322b68fa045b19c317ecda73fbab848bf9936f081443669bdf5aa6ad3c32680f5f1b108b12bb0 SHA512 d4f2172cc3b164f104fa2e3a330b62f2a15f50e050a91659db5728f28d4d5d6ca8660eec3a4f922090181a54bc1e9f6634ca49750398360727d1bc59db620278
+DIST system.security.principal.4.3.0.nupkg 94590 BLAKE2B c6fc5d6944a44b3ab125af5d59493aada6e8c73857311b8118adf197b9db3bf77fc8de9f320dcc0d55c6e529106b36307e14baab75766296bf804289de800a26 SHA512 db8a1ed0d189637d9ef83147550ce5da890cf6ec189a7d006ba9de86ab55679e7f025e18bdaed2dc137ddf82a7e6a0131fb4d54d4264831862b1d7c5ee62837e
+DIST system.security.principal.windows.4.3.0.nupkg 220931 BLAKE2B dcf84627ab57c5e72e0f1828b48c6e9bfa2ea2ead7b9c02bff03b9819f4057cb9d4a8821cfd0a98a381f2d7a2471df04041567de970f9d60557923e6e09317aa SHA512 66c1d5a9d649b964e1653fa2cd41d8f80515b7cd727fcd7f0890552070da1099ecd1032560f259a108e0d1d6a6da23fa07bc5c922f426a91f33b667f7c004019
+DIST system.text.encoding.4.0.11.nupkg 327286 BLAKE2B ec08fe2bfd3eaedc7a50d823ae424268d1f51f8816d9b3645b4210e10b8cf89e801f5f7d831a565e31cbf795952ee5a6a60a45d6432e0593727f0e0e213818ed SHA512 f974335143f36b318abf040ed535887f28089d749b1fa55056345df5243dfbd56d27b74c6e4d87a737fdbb8e699c5291bd25f1e5db4700bb00bf53330c7e3e9a
+DIST system.text.encoding.4.3.0.nupkg 327281 BLAKE2B e153609b257919932499a013337b8b2a4087ebff7e8ffe6854ad1c70fbd058aaabc4e974313dfb3cf1a9355b0ced87bd97cd39f6a4962b8a4a87003d3a66c53c SHA512 6ff7feec7313a7121f795ec7d376e4b8728c17294219fafdfd4ea078f9df1455b4685f0b3962c3810098e95d68594a8392c0b799d36ec8284cd6fcbd4cfe2c67
+DIST system.text.encoding.extensions.4.0.11.nupkg 244203 BLAKE2B 957201548c8629ab5111cbbcae3518b7c07bef93ac972b557e4f9f729dfd2519ef4523d5f6ea23b22eb19f93a3b17dbf7f1b6bed105f89b9219d53d8ed1534f7 SHA512 b2ba1f2a96bf14466fb31e4ac1fad25e7032688357340ad8976b8aafe7cbe39c061835a4e17d7cf6ae291d3155f07d3371f6b65ffc1c15474c3c86dbb7735e82
+DIST system.text.encoding.extensions.4.3.0.nupkg 244195 BLAKE2B 9dc2fbf672e07c5302bbb8435e8c09bc91febb96f22b85b57b09b2046fca224c786f8710b634559de2722f3dbece7b30e6a3c6a78e98e77f955d550e440beb60 SHA512 e648c5dc781e35cf00c5cc8e7e42e815b963cf8fb788e8a817f9b53e318b2b42e2f7a556e9c3c64bf2f6a2fd4615f26ab4f0d4eb713a0151e71e0af3fe9c3eed
+DIST system.text.regularexpressions.4.1.0.nupkg 514882 BLAKE2B 864d70cdb65bf87b684561f98d2d5193e2d66015e4cd770ab823a6ba966b3813d75f0ed6aaec82012a3d5f66ef9be182e7773b4c3b94407ab10c9e5dcd9e9f2e SHA512 9b612027e43c33cc256e016e0b400547c5923e93ab6ed1a40d2b97292cb18a1195fa79aba2b0166a6b11842a0fef6685d31b848375daffdf6d2acf297af40bbe
+DIST system.text.regularexpressions.4.3.0.nupkg 530523 BLAKE2B fc77aa0a92658cfac1b3fc00b87fabbec1be5c79776b0b2680775615b273a5a49ff8d5000f97415b85fc0283ff95569ba9a5a72917828455646053033088b49b SHA512 80353c148df30d9a2c03ee10a624d91b64d7ccc3218cb966344cfa70657f0b59c867fed2ab94057f64ab281ad9318353f25c23375c00e1376b6589ae0a70aad3
+DIST system.threading.4.0.11.nupkg 708036 BLAKE2B 6b85f9c80dfddd5faa9799fdd64379c4c066b076596cd0008c46114b91025a20e00cb8b626b6fa5d139af6aeb8a3f6781ca7e55c4f7d147eae2f38e14d7a63c2 SHA512 05c0dd1bbcfcedb6fc6c5f311c41920a4775f8a28a61ca246b6c65ad8afd9b04881d3357880af000ac056fd121fc5c3ec0b56d6fd607e0c27e7a639157c85e3e
+DIST system.threading.4.3.0.nupkg 708088 BLAKE2B 004d01762fad35a4607522d974a0cdc3d0049c82fe704f2f86fb98ee81059ebb56d13c290fcd273d1067a1a7c7f17bf3259d4d7e802c1d09a95e3c5fa29ef3f3 SHA512 97a2751bdce69faaf9c54f834a9fd5c60c7a786faa52f420769828dbc9b5804c1f3721ba1ea945ea1d844835d909810f9e782c9a44d0faaecccb230c4cd95a88
+DIST system.threading.tasks.4.0.11.nupkg 840020 BLAKE2B ec5b6bbd3c912d3552922acd338611baa992dca6bf07b97b391e47b5b41ab718c373551dacffc7b4b67870287e93eb6e70ed184213e800fd9b424bf3e02cd8cb SHA512 fb66c496a5b4c88c5cb6e9d7b7d220e10f2fc0aed181420390f12f8d9986a1bd2829e9f1bf080bb6361cd8b8b4ffc9b622288dfa42124859e1be1e981b5cfa7b
+DIST system.threading.tasks.4.3.0.nupkg 840017 BLAKE2B 1cf4a8cc833da0a38304757db3808df5c217518c817d5807bf6f35393725a31223129fd1c4c964a36a60c65b686d24fc25d1777fa12ee622bddbb0f7c1772bec SHA512 7d488ff82cb20a3b3cef6380f2dae5ea9f7baa66bf75ad711aade1e3301b25993ccf2694e33c847ea5b9bdb90ff34c46fcd8a6ba7d6f95605ba0c124ed7c5d13
+DIST system.threading.tasks.extensions.4.0.0.nupkg 49355 BLAKE2B 898f05110ec79e3518937d10df244782ae19e36a11228b427785f367e1974135836046a6a0445c87b206550c11fd23b6d22b0dd399992ae5ac20b3d5c3060056 SHA512 f294f1a4179f53d59f91f01a372cc7896bf8c322e9827299cb1aa3ae2b1f809e98034834f5ccd4cb3fa1c30735082d244fff6584dab6e8870ad409b55e8a4986
+DIST system.threading.tasks.extensions.4.3.0.nupkg 52499 BLAKE2B 3e6532ad1936859e2713e2e864831efe0af00a5ce561bd7f8723845bf285b8c15de00cb1fc246504f99599d183b400746cea987db883f0e61283db1fb2725a1e SHA512 2c33900ff7f544d6db31ad11b6baee1c9ecb40d5a54f51e5dd5bbbb37f4c50ee35ed481615cbf7c1da61a31ae3333c4454bfbeee4ae32241789e72ce3f910db6
+DIST system.threading.thread.4.0.0.nupkg 98848 BLAKE2B 1a9cbcbf3741449d45077c9a7a2b4d497104509c809737f72485dba4777f327950569904228d253f33d74c93ff7c08142067794017faa0ee5783bb0c21edca48 SHA512 9ee52992ea7615b0785dfeb69f058046d9b5c10e39edf13247d2af2ec0b30528f5c904ed2aeaa6952830fdee9a8b00770a25040146d9d48804bf36bf9b6498c4
+DIST system.threading.thread.4.3.0.nupkg 98902 BLAKE2B 2b80e5bdf32b1ee3f4abffaf8e2c23bec55277b50d33df6b61e6d3a83fe970e722af6b82be56d47f64dc5fcc33c9291c230d545608110a3e100e21f7801dbf80 SHA512 cfe12b6a60e79e2f7fca779a511153d5b0dcae59ea1b11606f6327dbf8b3c565e2551e8ecada558e62dd3b684b5c9d676575025048edfbd3988faf7f7235a5fe
+DIST system.threading.threadpool.4.0.10.nupkg 89891 BLAKE2B bb769060b570d163fd4288b6c9fb821d77029cdbd19e93b931ad771be5289a01f9ffe1f49fa31a97bc4123e7eb6b6fb8b56945308b25ce97dc01e593a463733a SHA512 76ea4b3a95414976f71bf01bf6eb4b55b398c59fa19eae44c55cfa0e4f42065cd79ba667c3518020ebf91c48e5904099273e3423cce18716891d656c58ee3ce1
+DIST system.threading.threadpool.4.3.0.nupkg 89926 BLAKE2B ec4210a5862c0704b118e4055785c7094ff8c3586800fcae109fa60e77565d8288089c64bce105e9cab08f8bb107dca340e72ae1d39d19f6118538ed32f449d6 SHA512 450a40f94a48e9396979e764e494ad624d8333f3378b91ea69b23fc836df8f5c43bbd6c8cfd91da2ab95a476e1ff042338968e09b720447f2241c014bfc75159
+DIST system.threading.timer.4.0.1.nupkg 77056 BLAKE2B 6ba72241aaf4d35e499421f1beca01066f918a3b1ad587538b36ba8a29bb0ed80ae510660ce598a4b8f4575b0028f339e7a8d24c2138eb711a5b0585bc07072c SHA512 6aa43dc5b3914050850b8ddafcc2256e60670d51c0f1b38b0d26d80f36e76cf5b40d6053bf92b4abecce5f786de5b13daa70eddf541865509c7a73fe3785de4b
+DIST system.windows.extensions.6.0.0.nupkg 113560 BLAKE2B c1fb56b177368b49cb7a2bdd3307b70847ab70b5757c3e1923ea499afc8d43e14660a3e6330fa99e7e9e653d68563e93de96425d5f56a695ab478c4a8e3ac30c SHA512 f51eec8166f97b5fcea24816ec737c24d5c5a5cb145ef2d33277c9a16044f40bc3fb97b4cfe7f9a23af704ede91586c6abd2acf00b277538bb304d77a1ca54f0
+DIST system.xml.readerwriter.4.0.11.nupkg 1363068 BLAKE2B b151c0560022d796720ce342c6c47189d5cb5d292bdc62eb0439deb87b05e80d9c57cb38267a9e153e0d4513e8edf503d88926e9956eba118b5d00d488e2fc78 SHA512 d40d6e9d55e57acdf04132bcb8ae8abf1abb3483620cde969c78c6c393a9936abf742c1dcf66288e6e9dffcb399a880ee3c11540ac140cb32e20b41365aaf35e
+DIST system.xml.readerwriter.4.3.0.nupkg 1388897 BLAKE2B ae51b8fe4492dec1e4e3584d05b0f477fd4e75e79dddb46d8077ae5311245d6fc6213d0655025f25db56f1370cb0e88bd60a83dc937bb53db1db0262390281f2 SHA512 991101497fbd39e43fc306ca280a465318868afa8db1f34bb87c266fe61f0c81a0ec34a797b236ee823bd60d1149b7592def96fe044abb511858efffe890c2e6
+DIST system.xml.xdocument.4.0.11.nupkg 591353 BLAKE2B 8373fa19c6aafbe6e347db7bb1ec304dd8ce77df415acf0c3ee04ea2dcfce050f59d6e72cdeb14c4e54d29c1c07fc9eb0ef8045fb09830b48fb1a8e90dcb09a8 SHA512 f8ae902901963f2636f39c0652d82daa9df3fb3e3d5a60493c39f6cf01ed07c7d57f175a2d2895f4a872d4e92527e5131522218d1a67da2fd491e162273a8527
+DIST system.xml.xmldocument.4.0.1.nupkg 285151 BLAKE2B a58a4b04d21e6de8fc5f662949983fb72c260596db149c228097d37a578fdd3b2f074abed98bc53eb0b672a8f41d36e485a324ec78bcf0951e2c9ec03d30918b SHA512 bf29bec129c8ea3fca70ff8357adcd24ade2db855c57c16459832c6e4489427f2959c70ae64fc860d2d3d41e3fe6d4df77c751fbbe8106099a8a0cd5fb38af7d
+DIST system.xml.xmldocument.4.3.0.nupkg 285212 BLAKE2B 0d96ca356543e8e915597e0624dca42f0c7032a2ae9e380a6fba3fbee0dacb9e5f06017893b2b7a8b937dbb4de7d5665fa6648e3bf8df12e0d34e4075c125109 SHA512 22251b3f16de9aa06e091b24baea1b8c95752f0d22266faf34e1fb76b347b23f7910cdaf567058e23d06b7079961090ca70805070a2491add5da4d0271afd133
+DIST system.xml.xmlserializer.4.0.11.nupkg 685516 BLAKE2B 0c252497a54f4184e372620cb235b31e88986377ad0cb356608be4b3ab669b297c77efe94db0da12828b8d852ed93110fbd16953089c7f0f040cf294645557e1 SHA512 c90fa3f25ca18b4626a9251751595265fb9deff493898a2320acc794fd4ccabe04395bb8222da8bf4cf5dd6ed21993267e59670e53e8383520d5f3ccde2e4403
+DIST system.xml.xpath.4.0.1.nupkg 250135 BLAKE2B d6f211f98f33f6b8959b918cff8e676a0ee19505d11d096a92840c935a76ca70acfe111e40d5aa80d0d2db74c0db25db503d5f1f8a0e96b592d16e2715a0591c SHA512 af1b4150aff0f6e20bf4a73889d9b3e12b282d87ec6be88681cb78a8958eadaaadbc907ddad0856850fa4eee165e76b176e42ea866aeefbd6e323bfad6f26d64
+DIST system.xml.xpath.4.3.0.nupkg 250182 BLAKE2B 8a4177d47af56bc7a6289ed8f2cac41d504dee212a858ed221277b3f523b1ce38ccb47bc3ce4d59a2c7cfd77f00f3c9693a9c257c90adb38096ee77a860f10cc SHA512 2bd0979a2020579fb32ad374b89929a272e763ee1233ed9a215408c0a1f9f82a5fdb74330c1c55a6102e0dfdb8b7b59ed25fdf6454bf3de146152ea779f366e0
+DIST system.xml.xpath.xmldocument.4.0.1.nupkg 86933 BLAKE2B 4c03b5a9433c2c954e75d212f9026885aa7514574b73a54880c3d55baee6bd5517abb46b67b22b9b6e63de92a8bc5ab4ff37e3f7e6454a5c5137ae2be6574b75 SHA512 81041a08d3b9158c43dfb48d42f13ec9950d7c2b7f63e1600a779a77786edfb46c522c32d9cc6a44358fbfe11efba0e539e578ef169261867a1905b8121a045d
+DIST system.xml.xpath.xmldocument.4.3.0.nupkg 138523 BLAKE2B ba53f3b5ac0f2d1d1e9120940b302e6960690ed4a44b96ba15b03e16f9159f2c57d6004aa55b796ba2327009d23fc2f10d4d09e948b88eb6af36efa5f76e401b SHA512 f75b6f7c75874ab6053e8942c1662a6e9a3561aa01502437b8d67f3bfcebd1ebf906792801326889ed7acb094c55469766d7d27cd10bc61b46ddaaa94dfc11e3
diff --git a/dev-lang/boogie/boogie-3.1.3.ebuild b/dev-lang/boogie/boogie-3.1.3.ebuild
new file mode 100644
index 000000000000..a8464716070a
--- /dev/null
+++ b/dev-lang/boogie/boogie-3.1.3.ebuild
@@ -0,0 +1,303 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DOTNET_PKG_COMPAT=8.0
+NUGETS="
+microsoft.bcl.asyncinterfaces@6.0.0
+microsoft.codecoverage@16.2.0
+microsoft.csharp@4.0.1
+microsoft.dotnet.internalabstractions@1.0.0
+microsoft.net.test.sdk@16.2.0
+microsoft.netcore.platforms@1.0.1
+microsoft.netcore.platforms@1.1.0
+microsoft.netcore.targets@1.0.1
+microsoft.netcore.targets@1.1.0
+microsoft.testplatform.objectmodel@16.2.0
+microsoft.testplatform.testhost@16.2.0
+microsoft.win32.primitives@4.0.1
+microsoft.win32.primitives@4.3.0
+microsoft.win32.registry@4.0.0
+microsoft.win32.registry@4.3.0
+microsoft.win32.systemevents@6.0.0
+netstandard.library@1.6.0
+netstandard.library@2.0.0
+newtonsoft.json@9.0.1
+nunit@3.12.0
+nunit3testadapter@3.15.1
+runtime.any.system.collections@4.3.0
+runtime.any.system.diagnostics.tools@4.3.0
+runtime.any.system.diagnostics.tracing@4.3.0
+runtime.any.system.globalization.calendars@4.3.0
+runtime.any.system.globalization@4.3.0
+runtime.any.system.io@4.3.0
+runtime.any.system.reflection.extensions@4.3.0
+runtime.any.system.reflection.primitives@4.3.0
+runtime.any.system.reflection@4.3.0
+runtime.any.system.resources.resourcemanager@4.3.0
+runtime.any.system.runtime.handles@4.3.0
+runtime.any.system.runtime.interopservices@4.3.0
+runtime.any.system.runtime@4.3.0
+runtime.any.system.text.encoding.extensions@4.3.0
+runtime.any.system.text.encoding@4.3.0
+runtime.any.system.threading.tasks@4.3.0
+runtime.any.system.threading.timer@4.3.0
+runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.native.system.io.compression@4.1.0
+runtime.native.system.net.http@4.0.1
+runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.native.system.security.cryptography@4.0.0
+runtime.native.system@4.0.0
+runtime.native.system@4.3.0
+runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.unix.microsoft.win32.primitives@4.3.0
+runtime.unix.system.console@4.3.0
+runtime.unix.system.diagnostics.debug@4.3.0
+runtime.unix.system.io.filesystem@4.3.0
+runtime.unix.system.net.primitives@4.3.0
+runtime.unix.system.net.sockets@4.3.0
+runtime.unix.system.private.uri@4.3.0
+runtime.unix.system.runtime.extensions@4.3.0
+system.appcontext@4.1.0
+system.buffers@4.0.0
+system.buffers@4.3.0
+system.collections.concurrent@4.0.12
+system.collections.immutable@1.2.0
+system.collections.nongeneric@4.0.1
+system.collections.nongeneric@4.3.0
+system.collections.specialized@4.0.1
+system.collections.specialized@4.3.0
+system.collections@4.0.11
+system.collections@4.3.0
+system.componentmodel.eventbasedasync@4.0.11
+system.componentmodel.eventbasedasync@4.3.0
+system.componentmodel.primitives@4.1.0
+system.componentmodel.primitives@4.3.0
+system.componentmodel.typeconverter@4.1.0
+system.componentmodel.typeconverter@4.3.0
+system.componentmodel@4.0.1
+system.componentmodel@4.3.0
+system.configuration.configurationmanager@6.0.0
+system.console@4.0.0
+system.diagnostics.debug@4.0.11
+system.diagnostics.debug@4.3.0
+system.diagnostics.diagnosticsource@4.0.0
+system.diagnostics.process@4.1.0
+system.diagnostics.process@4.3.0
+system.diagnostics.textwritertracelistener@4.0.0
+system.diagnostics.tools@4.0.1
+system.diagnostics.tracesource@4.0.0
+system.diagnostics.tracing@4.1.0
+system.diagnostics.tracing@4.3.0
+system.drawing.common@6.0.0
+system.dynamic.runtime@4.0.11
+system.globalization.calendars@4.0.1
+system.globalization.extensions@4.0.1
+system.globalization.extensions@4.3.0
+system.globalization@4.0.11
+system.globalization@4.3.0
+system.io.compression.zipfile@4.0.1
+system.io.compression@4.1.0
+system.io.filesystem.primitives@4.0.1
+system.io.filesystem.primitives@4.3.0
+system.io.filesystem@4.0.1
+system.io.filesystem@4.3.0
+system.io@4.1.0
+system.io@4.3.0
+system.linq.async@6.0.1
+system.linq.expressions@4.1.0
+system.linq@4.1.0
+system.linq@4.3.0
+system.net.http@4.1.0
+system.net.nameresolution@4.3.0
+system.net.primitives@4.0.11
+system.net.sockets@4.1.0
+system.objectmodel@4.0.12
+system.private.datacontractserialization@4.1.1
+system.private.uri@4.3.0
+system.reactive@4.4.1
+system.reflection.emit.ilgeneration@4.0.1
+system.reflection.emit.lightweight@4.0.1
+system.reflection.emit@4.0.1
+system.reflection.extensions@4.0.1
+system.reflection.extensions@4.3.0
+system.reflection.metadata@1.3.0
+system.reflection.primitives@4.0.1
+system.reflection.primitives@4.3.0
+system.reflection.typeextensions@4.1.0
+system.reflection.typeextensions@4.3.0
+system.reflection@4.1.0
+system.reflection@4.3.0
+system.resources.resourcemanager@4.0.1
+system.resources.resourcemanager@4.3.0
+system.runtime.caching@6.0.0
+system.runtime.extensions@4.1.0
+system.runtime.extensions@4.3.0
+system.runtime.handles@4.0.1
+system.runtime.handles@4.3.0
+system.runtime.interopservices.runtimeinformation@4.0.0
+system.runtime.interopservices.runtimeinformation@4.3.0
+system.runtime.interopservices@4.1.0
+system.runtime.interopservices@4.3.0
+system.runtime.loader@4.0.0
+system.runtime.numerics@4.0.1
+system.runtime.serialization.json@4.0.2
+system.runtime.serialization.primitives@4.1.1
+system.runtime@4.1.0
+system.runtime@4.3.0
+system.security.accesscontrol@6.0.0
+system.security.claims@4.3.0
+system.security.cryptography.algorithms@4.2.0
+system.security.cryptography.cng@4.2.0
+system.security.cryptography.csp@4.0.0
+system.security.cryptography.encoding@4.0.0
+system.security.cryptography.openssl@4.0.0
+system.security.cryptography.primitives@4.0.0
+system.security.cryptography.protecteddata@6.0.0
+system.security.cryptography.x509certificates@4.1.0
+system.security.permissions@6.0.0
+system.security.principal.windows@4.3.0
+system.security.principal@4.3.0
+system.text.encoding.extensions@4.0.11
+system.text.encoding.extensions@4.3.0
+system.text.encoding@4.0.11
+system.text.encoding@4.3.0
+system.text.regularexpressions@4.1.0
+system.text.regularexpressions@4.3.0
+system.threading.tasks.extensions@4.0.0
+system.threading.tasks.extensions@4.3.0
+system.threading.tasks@4.0.11
+system.threading.tasks@4.3.0
+system.threading.thread@4.0.0
+system.threading.thread@4.3.0
+system.threading.threadpool@4.0.10
+system.threading.threadpool@4.3.0
+system.threading.timer@4.0.1
+system.threading@4.0.11
+system.threading@4.3.0
+system.windows.extensions@6.0.0
+system.xml.readerwriter@4.0.11
+system.xml.readerwriter@4.3.0
+system.xml.xdocument@4.0.11
+system.xml.xmldocument@4.0.1
+system.xml.xmldocument@4.3.0
+system.xml.xmlserializer@4.0.11
+system.xml.xpath.xmldocument@4.0.1
+system.xml.xpath.xmldocument@4.3.0
+system.xml.xpath@4.0.1
+system.xml.xpath@4.3.0
+"
+
+inherit check-reqs dotnet-pkg edo multiprocessing
+
+DESCRIPTION="SMT-based program verifier"
+HOMEPAGE="https://github.com/boogie-org/boogie/"
+
+if [[ "${PV}" == *9999* ]] ; then
+ inherit git-r3
+
+ EGIT_REPO_URI="https://github.com/boogie-org/${PN}.git"
+else
+ SRC_URI="https://github.com/boogie-org/${PN}/archive/v${PV}.tar.gz
+ -> ${P}.tar.gz"
+
+ KEYWORDS="amd64"
+fi
+
+SRC_URI+=" ${NUGET_URIS} "
+
+LICENSE="MIT"
+SLOT="0"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ sci-mathematics/z3
+"
+BDEPEND="
+ ${RDEPEND}
+ test? (
+ dev-python/OutputCheck
+ dev-python/lit
+ dev-python/psutil
+ )
+"
+
+PATCHES=( "${FILESDIR}/${PN}-3.0.4-disable-analyzers.patch" )
+
+CHECKREQS_DISK_BUILD="2G"
+DOTNET_PKG_PROJECTS=( Source/BoogieDriver/BoogieDriver.csproj )
+DOTNET_PKG_BUILD_EXTRA_ARGS=( -p:RollForward=Major )
+
+pkg_setup() {
+ check-reqs_pkg_setup
+ dotnet-pkg_pkg_setup
+}
+
+src_unpack() {
+ dotnet-pkg_src_unpack
+
+ if [[ -n "${EGIT_REPO_URI}" ]] ; then
+ git-r3_src_unpack
+ fi
+}
+
+src_prepare() {
+ # Remove bad tests.
+ local -a bad_tests=(
+ civl/inductive-sequentialization/BroadcastConsensus.bpl
+ civl/inductive-sequentialization/ChangRoberts.bpl
+ civl/inductive-sequentialization/PingPong.bpl
+ civl/large-samples/GC.bpl
+ civl/paxos/is.sh
+ civl/samples/reserve.bpl
+ inst/vector-generic.bpl
+ livevars/stack_overflow.bpl
+ prover/cvc5-offline.bpl
+ prover/cvc5.bpl
+ prover/exitcode.bpl
+ prover/z3-hard-timeout.bpl
+ prover/z3mutl.bpl
+ test15/CaptureInlineUnroll.bpl
+ test2/Timeouts0.bpl
+ test21/InterestingExamples4.bpl
+ )
+ local bad_test
+ for bad_test in "${bad_tests[@]}" ; do
+ rm "${S}/Test/${bad_test}" || die
+ done
+
+ # Update the boogieBinary variable.
+ sed "/^boogieBinary/s|= .*|= '${DOTNET_PKG_OUTPUT}/BoogieDriver.dll'|" \
+ -i "${S}/Test/lit.site.cfg" || die "failed to update lit.site.cfg"
+
+ dotnet-pkg_src_prepare
+}
+
+src_test() {
+ einfo "Starting tests using the lit test tool."
+ local -a lit_opts=(
+ --order=lexical
+ --time-tests
+ --timeout 1800 # Let one test take no mere than half a hour.
+ --verbose
+ --workers="$(makeopts_jobs)"
+ )
+ edob lit "${lit_opts[@]}" "${S}/Test"
+}
+
+src_install() {
+ dotnet-pkg-base_install
+ dotnet-pkg-base_dolauncher "/usr/share/${P}/BoogieDriver" boogie
+
+ einstalldocs
+}
diff --git a/dev-lang/boogie/boogie-3.1.4.ebuild b/dev-lang/boogie/boogie-3.1.4.ebuild
new file mode 100644
index 000000000000..d7ab20c085a9
--- /dev/null
+++ b/dev-lang/boogie/boogie-3.1.4.ebuild
@@ -0,0 +1,303 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DOTNET_PKG_COMPAT=8.0
+NUGETS="
+microsoft.bcl.asyncinterfaces@6.0.0
+microsoft.codecoverage@16.2.0
+microsoft.csharp@4.0.1
+microsoft.dotnet.internalabstractions@1.0.0
+microsoft.net.test.sdk@16.2.0
+microsoft.netcore.platforms@1.0.1
+microsoft.netcore.platforms@1.1.0
+microsoft.netcore.targets@1.0.1
+microsoft.netcore.targets@1.1.0
+microsoft.testplatform.objectmodel@16.2.0
+microsoft.testplatform.testhost@16.2.0
+microsoft.win32.primitives@4.0.1
+microsoft.win32.primitives@4.3.0
+microsoft.win32.registry@4.0.0
+microsoft.win32.registry@4.3.0
+microsoft.win32.systemevents@6.0.0
+netstandard.library@1.6.0
+netstandard.library@2.0.0
+newtonsoft.json@9.0.1
+nunit@3.12.0
+nunit3testadapter@3.15.1
+runtime.any.system.collections@4.3.0
+runtime.any.system.diagnostics.tools@4.3.0
+runtime.any.system.diagnostics.tracing@4.3.0
+runtime.any.system.globalization.calendars@4.3.0
+runtime.any.system.globalization@4.3.0
+runtime.any.system.io@4.3.0
+runtime.any.system.reflection.extensions@4.3.0
+runtime.any.system.reflection.primitives@4.3.0
+runtime.any.system.reflection@4.3.0
+runtime.any.system.resources.resourcemanager@4.3.0
+runtime.any.system.runtime.handles@4.3.0
+runtime.any.system.runtime.interopservices@4.3.0
+runtime.any.system.runtime@4.3.0
+runtime.any.system.text.encoding.extensions@4.3.0
+runtime.any.system.text.encoding@4.3.0
+runtime.any.system.threading.tasks@4.3.0
+runtime.any.system.threading.timer@4.3.0
+runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.native.system.io.compression@4.1.0
+runtime.native.system.net.http@4.0.1
+runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.native.system.security.cryptography@4.0.0
+runtime.native.system@4.0.0
+runtime.native.system@4.3.0
+runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.unix.microsoft.win32.primitives@4.3.0
+runtime.unix.system.console@4.3.0
+runtime.unix.system.diagnostics.debug@4.3.0
+runtime.unix.system.io.filesystem@4.3.0
+runtime.unix.system.net.primitives@4.3.0
+runtime.unix.system.net.sockets@4.3.0
+runtime.unix.system.private.uri@4.3.0
+runtime.unix.system.runtime.extensions@4.3.0
+system.appcontext@4.1.0
+system.buffers@4.0.0
+system.buffers@4.3.0
+system.collections.concurrent@4.0.12
+system.collections.immutable@1.2.0
+system.collections.nongeneric@4.0.1
+system.collections.nongeneric@4.3.0
+system.collections.specialized@4.0.1
+system.collections.specialized@4.3.0
+system.collections@4.0.11
+system.collections@4.3.0
+system.componentmodel.eventbasedasync@4.0.11
+system.componentmodel.eventbasedasync@4.3.0
+system.componentmodel.primitives@4.1.0
+system.componentmodel.primitives@4.3.0
+system.componentmodel.typeconverter@4.1.0
+system.componentmodel.typeconverter@4.3.0
+system.componentmodel@4.0.1
+system.componentmodel@4.3.0
+system.configuration.configurationmanager@6.0.0
+system.console@4.0.0
+system.diagnostics.debug@4.0.11
+system.diagnostics.debug@4.3.0
+system.diagnostics.diagnosticsource@4.0.0
+system.diagnostics.process@4.1.0
+system.diagnostics.process@4.3.0
+system.diagnostics.textwritertracelistener@4.0.0
+system.diagnostics.tools@4.0.1
+system.diagnostics.tracesource@4.0.0
+system.diagnostics.tracing@4.1.0
+system.diagnostics.tracing@4.3.0
+system.drawing.common@6.0.0
+system.dynamic.runtime@4.0.11
+system.globalization.calendars@4.0.1
+system.globalization.extensions@4.0.1
+system.globalization.extensions@4.3.0
+system.globalization@4.0.11
+system.globalization@4.3.0
+system.io.compression.zipfile@4.0.1
+system.io.compression@4.1.0
+system.io.filesystem.primitives@4.0.1
+system.io.filesystem.primitives@4.3.0
+system.io.filesystem@4.0.1
+system.io.filesystem@4.3.0
+system.io@4.1.0
+system.io@4.3.0
+system.linq.async@6.0.1
+system.linq.expressions@4.1.0
+system.linq@4.1.0
+system.linq@4.3.0
+system.net.http@4.1.0
+system.net.nameresolution@4.3.0
+system.net.primitives@4.0.11
+system.net.sockets@4.1.0
+system.objectmodel@4.0.12
+system.private.datacontractserialization@4.1.1
+system.private.uri@4.3.0
+system.reactive@4.4.1
+system.reflection.emit.ilgeneration@4.0.1
+system.reflection.emit.lightweight@4.0.1
+system.reflection.emit@4.0.1
+system.reflection.extensions@4.0.1
+system.reflection.extensions@4.3.0
+system.reflection.metadata@1.3.0
+system.reflection.primitives@4.0.1
+system.reflection.primitives@4.3.0
+system.reflection.typeextensions@4.1.0
+system.reflection.typeextensions@4.3.0
+system.reflection@4.1.0
+system.reflection@4.3.0
+system.resources.resourcemanager@4.0.1
+system.resources.resourcemanager@4.3.0
+system.runtime.caching@6.0.0
+system.runtime.extensions@4.1.0
+system.runtime.extensions@4.3.0
+system.runtime.handles@4.0.1
+system.runtime.handles@4.3.0
+system.runtime.interopservices.runtimeinformation@4.0.0
+system.runtime.interopservices.runtimeinformation@4.3.0
+system.runtime.interopservices@4.1.0
+system.runtime.interopservices@4.3.0
+system.runtime.loader@4.0.0
+system.runtime.numerics@4.0.1
+system.runtime.serialization.json@4.0.2
+system.runtime.serialization.primitives@4.1.1
+system.runtime@4.1.0
+system.runtime@4.3.0
+system.security.accesscontrol@6.0.0
+system.security.claims@4.3.0
+system.security.cryptography.algorithms@4.2.0
+system.security.cryptography.cng@4.2.0
+system.security.cryptography.csp@4.0.0
+system.security.cryptography.encoding@4.0.0
+system.security.cryptography.openssl@4.0.0
+system.security.cryptography.primitives@4.0.0
+system.security.cryptography.protecteddata@6.0.0
+system.security.cryptography.x509certificates@4.1.0
+system.security.permissions@6.0.0
+system.security.principal.windows@4.3.0
+system.security.principal@4.3.0
+system.text.encoding.extensions@4.0.11
+system.text.encoding.extensions@4.3.0
+system.text.encoding@4.0.11
+system.text.encoding@4.3.0
+system.text.regularexpressions@4.1.0
+system.text.regularexpressions@4.3.0
+system.threading.tasks.extensions@4.0.0
+system.threading.tasks.extensions@4.3.0
+system.threading.tasks@4.0.11
+system.threading.tasks@4.3.0
+system.threading.thread@4.0.0
+system.threading.thread@4.3.0
+system.threading.threadpool@4.0.10
+system.threading.threadpool@4.3.0
+system.threading.timer@4.0.1
+system.threading@4.0.11
+system.threading@4.3.0
+system.windows.extensions@6.0.0
+system.xml.readerwriter@4.0.11
+system.xml.readerwriter@4.3.0
+system.xml.xdocument@4.0.11
+system.xml.xmldocument@4.0.1
+system.xml.xmldocument@4.3.0
+system.xml.xmlserializer@4.0.11
+system.xml.xpath.xmldocument@4.0.1
+system.xml.xpath.xmldocument@4.3.0
+system.xml.xpath@4.0.1
+system.xml.xpath@4.3.0
+"
+
+inherit check-reqs dotnet-pkg edo multiprocessing
+
+DESCRIPTION="SMT-based program verifier"
+HOMEPAGE="https://github.com/boogie-org/boogie/"
+
+if [[ "${PV}" == *9999* ]] ; then
+ inherit git-r3
+
+ EGIT_REPO_URI="https://github.com/boogie-org/${PN}.git"
+else
+ SRC_URI="https://github.com/boogie-org/${PN}/archive/v${PV}.tar.gz
+ -> ${P}.tar.gz"
+
+ KEYWORDS="~amd64"
+fi
+
+SRC_URI+=" ${NUGET_URIS} "
+
+LICENSE="MIT"
+SLOT="0"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ sci-mathematics/z3
+"
+BDEPEND="
+ ${RDEPEND}
+ test? (
+ dev-python/OutputCheck
+ dev-python/lit
+ dev-python/psutil
+ )
+"
+
+PATCHES=( "${FILESDIR}/${PN}-3.0.4-disable-analyzers.patch" )
+
+CHECKREQS_DISK_BUILD="2G"
+DOTNET_PKG_PROJECTS=( Source/BoogieDriver/BoogieDriver.csproj )
+DOTNET_PKG_BUILD_EXTRA_ARGS=( -p:RollForward=Major )
+
+pkg_setup() {
+ check-reqs_pkg_setup
+ dotnet-pkg_pkg_setup
+}
+
+src_unpack() {
+ dotnet-pkg_src_unpack
+
+ if [[ -n "${EGIT_REPO_URI}" ]] ; then
+ git-r3_src_unpack
+ fi
+}
+
+src_prepare() {
+ # Remove bad tests.
+ local -a bad_tests=(
+ civl/inductive-sequentialization/BroadcastConsensus.bpl
+ civl/inductive-sequentialization/ChangRoberts.bpl
+ civl/inductive-sequentialization/PingPong.bpl
+ civl/large-samples/GC.bpl
+ civl/paxos/is.sh
+ civl/samples/reserve.bpl
+ inst/vector-generic.bpl
+ livevars/stack_overflow.bpl
+ prover/cvc5-offline.bpl
+ prover/cvc5.bpl
+ prover/exitcode.bpl
+ prover/z3-hard-timeout.bpl
+ prover/z3mutl.bpl
+ test15/CaptureInlineUnroll.bpl
+ test2/Timeouts0.bpl
+ test21/InterestingExamples4.bpl
+ )
+ local bad_test
+ for bad_test in "${bad_tests[@]}" ; do
+ rm "${S}/Test/${bad_test}" || die
+ done
+
+ # Update the boogieBinary variable.
+ sed "/^boogieBinary/s|= .*|= '${DOTNET_PKG_OUTPUT}/BoogieDriver.dll'|" \
+ -i "${S}/Test/lit.site.cfg" || die "failed to update lit.site.cfg"
+
+ dotnet-pkg_src_prepare
+}
+
+src_test() {
+ einfo "Starting tests using the lit test tool."
+ local -a lit_opts=(
+ --order=lexical
+ --time-tests
+ --timeout 1800 # Let one test take no mere than half a hour.
+ --verbose
+ --workers="$(makeopts_jobs)"
+ )
+ edob lit "${lit_opts[@]}" "${S}/Test"
+}
+
+src_install() {
+ dotnet-pkg-base_install
+ dotnet-pkg-base_dolauncher "/usr/share/${P}/BoogieDriver" boogie
+
+ einstalldocs
+}
diff --git a/dev-lang/boogie/boogie-3.1.5.ebuild b/dev-lang/boogie/boogie-3.1.5.ebuild
new file mode 100644
index 000000000000..d7ab20c085a9
--- /dev/null
+++ b/dev-lang/boogie/boogie-3.1.5.ebuild
@@ -0,0 +1,303 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DOTNET_PKG_COMPAT=8.0
+NUGETS="
+microsoft.bcl.asyncinterfaces@6.0.0
+microsoft.codecoverage@16.2.0
+microsoft.csharp@4.0.1
+microsoft.dotnet.internalabstractions@1.0.0
+microsoft.net.test.sdk@16.2.0
+microsoft.netcore.platforms@1.0.1
+microsoft.netcore.platforms@1.1.0
+microsoft.netcore.targets@1.0.1
+microsoft.netcore.targets@1.1.0
+microsoft.testplatform.objectmodel@16.2.0
+microsoft.testplatform.testhost@16.2.0
+microsoft.win32.primitives@4.0.1
+microsoft.win32.primitives@4.3.0
+microsoft.win32.registry@4.0.0
+microsoft.win32.registry@4.3.0
+microsoft.win32.systemevents@6.0.0
+netstandard.library@1.6.0
+netstandard.library@2.0.0
+newtonsoft.json@9.0.1
+nunit@3.12.0
+nunit3testadapter@3.15.1
+runtime.any.system.collections@4.3.0
+runtime.any.system.diagnostics.tools@4.3.0
+runtime.any.system.diagnostics.tracing@4.3.0
+runtime.any.system.globalization.calendars@4.3.0
+runtime.any.system.globalization@4.3.0
+runtime.any.system.io@4.3.0
+runtime.any.system.reflection.extensions@4.3.0
+runtime.any.system.reflection.primitives@4.3.0
+runtime.any.system.reflection@4.3.0
+runtime.any.system.resources.resourcemanager@4.3.0
+runtime.any.system.runtime.handles@4.3.0
+runtime.any.system.runtime.interopservices@4.3.0
+runtime.any.system.runtime@4.3.0
+runtime.any.system.text.encoding.extensions@4.3.0
+runtime.any.system.text.encoding@4.3.0
+runtime.any.system.threading.tasks@4.3.0
+runtime.any.system.threading.timer@4.3.0
+runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.native.system.io.compression@4.1.0
+runtime.native.system.net.http@4.0.1
+runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.native.system.security.cryptography@4.0.0
+runtime.native.system@4.0.0
+runtime.native.system@4.3.0
+runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.unix.microsoft.win32.primitives@4.3.0
+runtime.unix.system.console@4.3.0
+runtime.unix.system.diagnostics.debug@4.3.0
+runtime.unix.system.io.filesystem@4.3.0
+runtime.unix.system.net.primitives@4.3.0
+runtime.unix.system.net.sockets@4.3.0
+runtime.unix.system.private.uri@4.3.0
+runtime.unix.system.runtime.extensions@4.3.0
+system.appcontext@4.1.0
+system.buffers@4.0.0
+system.buffers@4.3.0
+system.collections.concurrent@4.0.12
+system.collections.immutable@1.2.0
+system.collections.nongeneric@4.0.1
+system.collections.nongeneric@4.3.0
+system.collections.specialized@4.0.1
+system.collections.specialized@4.3.0
+system.collections@4.0.11
+system.collections@4.3.0
+system.componentmodel.eventbasedasync@4.0.11
+system.componentmodel.eventbasedasync@4.3.0
+system.componentmodel.primitives@4.1.0
+system.componentmodel.primitives@4.3.0
+system.componentmodel.typeconverter@4.1.0
+system.componentmodel.typeconverter@4.3.0
+system.componentmodel@4.0.1
+system.componentmodel@4.3.0
+system.configuration.configurationmanager@6.0.0
+system.console@4.0.0
+system.diagnostics.debug@4.0.11
+system.diagnostics.debug@4.3.0
+system.diagnostics.diagnosticsource@4.0.0
+system.diagnostics.process@4.1.0
+system.diagnostics.process@4.3.0
+system.diagnostics.textwritertracelistener@4.0.0
+system.diagnostics.tools@4.0.1
+system.diagnostics.tracesource@4.0.0
+system.diagnostics.tracing@4.1.0
+system.diagnostics.tracing@4.3.0
+system.drawing.common@6.0.0
+system.dynamic.runtime@4.0.11
+system.globalization.calendars@4.0.1
+system.globalization.extensions@4.0.1
+system.globalization.extensions@4.3.0
+system.globalization@4.0.11
+system.globalization@4.3.0
+system.io.compression.zipfile@4.0.1
+system.io.compression@4.1.0
+system.io.filesystem.primitives@4.0.1
+system.io.filesystem.primitives@4.3.0
+system.io.filesystem@4.0.1
+system.io.filesystem@4.3.0
+system.io@4.1.0
+system.io@4.3.0
+system.linq.async@6.0.1
+system.linq.expressions@4.1.0
+system.linq@4.1.0
+system.linq@4.3.0
+system.net.http@4.1.0
+system.net.nameresolution@4.3.0
+system.net.primitives@4.0.11
+system.net.sockets@4.1.0
+system.objectmodel@4.0.12
+system.private.datacontractserialization@4.1.1
+system.private.uri@4.3.0
+system.reactive@4.4.1
+system.reflection.emit.ilgeneration@4.0.1
+system.reflection.emit.lightweight@4.0.1
+system.reflection.emit@4.0.1
+system.reflection.extensions@4.0.1
+system.reflection.extensions@4.3.0
+system.reflection.metadata@1.3.0
+system.reflection.primitives@4.0.1
+system.reflection.primitives@4.3.0
+system.reflection.typeextensions@4.1.0
+system.reflection.typeextensions@4.3.0
+system.reflection@4.1.0
+system.reflection@4.3.0
+system.resources.resourcemanager@4.0.1
+system.resources.resourcemanager@4.3.0
+system.runtime.caching@6.0.0
+system.runtime.extensions@4.1.0
+system.runtime.extensions@4.3.0
+system.runtime.handles@4.0.1
+system.runtime.handles@4.3.0
+system.runtime.interopservices.runtimeinformation@4.0.0
+system.runtime.interopservices.runtimeinformation@4.3.0
+system.runtime.interopservices@4.1.0
+system.runtime.interopservices@4.3.0
+system.runtime.loader@4.0.0
+system.runtime.numerics@4.0.1
+system.runtime.serialization.json@4.0.2
+system.runtime.serialization.primitives@4.1.1
+system.runtime@4.1.0
+system.runtime@4.3.0
+system.security.accesscontrol@6.0.0
+system.security.claims@4.3.0
+system.security.cryptography.algorithms@4.2.0
+system.security.cryptography.cng@4.2.0
+system.security.cryptography.csp@4.0.0
+system.security.cryptography.encoding@4.0.0
+system.security.cryptography.openssl@4.0.0
+system.security.cryptography.primitives@4.0.0
+system.security.cryptography.protecteddata@6.0.0
+system.security.cryptography.x509certificates@4.1.0
+system.security.permissions@6.0.0
+system.security.principal.windows@4.3.0
+system.security.principal@4.3.0
+system.text.encoding.extensions@4.0.11
+system.text.encoding.extensions@4.3.0
+system.text.encoding@4.0.11
+system.text.encoding@4.3.0
+system.text.regularexpressions@4.1.0
+system.text.regularexpressions@4.3.0
+system.threading.tasks.extensions@4.0.0
+system.threading.tasks.extensions@4.3.0
+system.threading.tasks@4.0.11
+system.threading.tasks@4.3.0
+system.threading.thread@4.0.0
+system.threading.thread@4.3.0
+system.threading.threadpool@4.0.10
+system.threading.threadpool@4.3.0
+system.threading.timer@4.0.1
+system.threading@4.0.11
+system.threading@4.3.0
+system.windows.extensions@6.0.0
+system.xml.readerwriter@4.0.11
+system.xml.readerwriter@4.3.0
+system.xml.xdocument@4.0.11
+system.xml.xmldocument@4.0.1
+system.xml.xmldocument@4.3.0
+system.xml.xmlserializer@4.0.11
+system.xml.xpath.xmldocument@4.0.1
+system.xml.xpath.xmldocument@4.3.0
+system.xml.xpath@4.0.1
+system.xml.xpath@4.3.0
+"
+
+inherit check-reqs dotnet-pkg edo multiprocessing
+
+DESCRIPTION="SMT-based program verifier"
+HOMEPAGE="https://github.com/boogie-org/boogie/"
+
+if [[ "${PV}" == *9999* ]] ; then
+ inherit git-r3
+
+ EGIT_REPO_URI="https://github.com/boogie-org/${PN}.git"
+else
+ SRC_URI="https://github.com/boogie-org/${PN}/archive/v${PV}.tar.gz
+ -> ${P}.tar.gz"
+
+ KEYWORDS="~amd64"
+fi
+
+SRC_URI+=" ${NUGET_URIS} "
+
+LICENSE="MIT"
+SLOT="0"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ sci-mathematics/z3
+"
+BDEPEND="
+ ${RDEPEND}
+ test? (
+ dev-python/OutputCheck
+ dev-python/lit
+ dev-python/psutil
+ )
+"
+
+PATCHES=( "${FILESDIR}/${PN}-3.0.4-disable-analyzers.patch" )
+
+CHECKREQS_DISK_BUILD="2G"
+DOTNET_PKG_PROJECTS=( Source/BoogieDriver/BoogieDriver.csproj )
+DOTNET_PKG_BUILD_EXTRA_ARGS=( -p:RollForward=Major )
+
+pkg_setup() {
+ check-reqs_pkg_setup
+ dotnet-pkg_pkg_setup
+}
+
+src_unpack() {
+ dotnet-pkg_src_unpack
+
+ if [[ -n "${EGIT_REPO_URI}" ]] ; then
+ git-r3_src_unpack
+ fi
+}
+
+src_prepare() {
+ # Remove bad tests.
+ local -a bad_tests=(
+ civl/inductive-sequentialization/BroadcastConsensus.bpl
+ civl/inductive-sequentialization/ChangRoberts.bpl
+ civl/inductive-sequentialization/PingPong.bpl
+ civl/large-samples/GC.bpl
+ civl/paxos/is.sh
+ civl/samples/reserve.bpl
+ inst/vector-generic.bpl
+ livevars/stack_overflow.bpl
+ prover/cvc5-offline.bpl
+ prover/cvc5.bpl
+ prover/exitcode.bpl
+ prover/z3-hard-timeout.bpl
+ prover/z3mutl.bpl
+ test15/CaptureInlineUnroll.bpl
+ test2/Timeouts0.bpl
+ test21/InterestingExamples4.bpl
+ )
+ local bad_test
+ for bad_test in "${bad_tests[@]}" ; do
+ rm "${S}/Test/${bad_test}" || die
+ done
+
+ # Update the boogieBinary variable.
+ sed "/^boogieBinary/s|= .*|= '${DOTNET_PKG_OUTPUT}/BoogieDriver.dll'|" \
+ -i "${S}/Test/lit.site.cfg" || die "failed to update lit.site.cfg"
+
+ dotnet-pkg_src_prepare
+}
+
+src_test() {
+ einfo "Starting tests using the lit test tool."
+ local -a lit_opts=(
+ --order=lexical
+ --time-tests
+ --timeout 1800 # Let one test take no mere than half a hour.
+ --verbose
+ --workers="$(makeopts_jobs)"
+ )
+ edob lit "${lit_opts[@]}" "${S}/Test"
+}
+
+src_install() {
+ dotnet-pkg-base_install
+ dotnet-pkg-base_dolauncher "/usr/share/${P}/BoogieDriver" boogie
+
+ einstalldocs
+}
diff --git a/dev-lang/boogie/files/boogie-3.0.4-disable-analyzers.patch b/dev-lang/boogie/files/boogie-3.0.4-disable-analyzers.patch
new file mode 100644
index 000000000000..65bc3a988c1a
--- /dev/null
+++ b/dev-lang/boogie/files/boogie-3.0.4-disable-analyzers.patch
@@ -0,0 +1,18 @@
+--- a/Source/Directory.Build.props
++++ b/Source/Directory.Build.props
+@@ -16,13 +16,13 @@
+ </ItemGroup>
+
+ <!-- Use StyleCop to check for consistent code formatting -->
+- <ItemGroup Condition="'$(Configuration)' != 'Release'">
++ <ItemGroup Condition="'$(Configuration)' == 'Disable'">
+ <PackageReference Include="StyleCop.Analyzers" Version="1.1.118" PrivateAssets="All" />
+ <AdditionalFiles Include="$(MSBuildThisFileDirectory)stylecop.json" />
+ </ItemGroup>
+
+ <!-- Configure StyleCop analysis rules -->
+- <PropertyGroup Condition="'$(Configuration)' != 'Release'">
++ <PropertyGroup Condition="'$(Configuration)' == 'Disable'">
+ <CodeAnalysisRuleSet>$(MSBuildThisFileDirectory)StyleCop.ruleset</CodeAnalysisRuleSet>
+ </PropertyGroup>
+
diff --git a/dev-lang/boogie/metadata.xml b/dev-lang/boogie/metadata.xml
new file mode 100644
index 000000000000..c2b44bcc70fc
--- /dev/null
+++ b/dev-lang/boogie/metadata.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+
+<pkgmetadata>
+ <maintainer type="project">
+ <email>dotnet@gentoo.org</email>
+ <name>Gentoo Dotnet Project</name>
+ </maintainer>
+ <longdescription>
+ Boogie is an intermediate verification language (IVL), intended as a layer
+ on which to build program verifiers for other languages. Several program
+ verifiers have been built in this way, including the VCC and HAVOC
+ verifiers for C and the verifiers for Dafny, Chalice, and Spec#. For a
+ sample verifier for a toy language built on top of Boogie, see Forro.
+ Boogie is also the name of a tool. The tool accepts the Boogie language as
+ input, optionally infers some invariants in the given Boogie program, and
+ then generates verification conditions that are passed to an SMT solver.
+ The default SMT solver is Z3.
+ </longdescription>
+ <upstream>
+ <bugs-to>https://github.com/boogie-org/boogie/issues/</bugs-to>
+ <remote-id type="github">boogie-org/boogie</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-lang/c-intercal/c-intercal-31.0.ebuild b/dev-lang/c-intercal/c-intercal-31.0.ebuild
index 1639cfbf56fc..8657f746d707 100644
--- a/dev-lang/c-intercal/c-intercal-31.0.ebuild
+++ b/dev-lang/c-intercal/c-intercal-31.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -34,8 +34,8 @@ IUSE="emacs examples"
RDEPEND="emacs? ( >=app-editors/emacs-23.1:* )"
BDEPEND="${RDEPEND}
- sys-devel/flex
- virtual/yacc"
+ app-alternatives/lex
+ app-alternatives/yacc"
S="${WORKDIR}/${MY_P}"
SITEFILE="50${PN}-gentoo.el"
diff --git a/dev-lang/c-intercal/metadata.xml b/dev-lang/c-intercal/metadata.xml
index 3789335be519..50974db5fc6f 100644
--- a/dev-lang/c-intercal/metadata.xml
+++ b/dev-lang/c-intercal/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>ulm@gentoo.org</email>
diff --git a/dev-lang/cfortran/Manifest b/dev-lang/cfortran/Manifest
index 9c13e94ab9ec..f800e5391758 100644
--- a/dev-lang/cfortran/Manifest
+++ b/dev-lang/cfortran/Manifest
@@ -1,2 +1,6 @@
+DIST cfortran_20110621-1.debian.tar.xz 13352 BLAKE2B 0039dd4b5973e5cd13a136c51e8719ffa8e104db0d716cbd247fe440643dfce5308767d182abbcbafbd1de791e8cb4384c479660fe8b592477968d40c54078e8 SHA512 51387a17e4f69e5f5e53e188b5397a08d578aba42fdc446d4901e59be32bb0e5f07d871daa809e9de6051b4d9213b4312e25f70970db9173e4f33a0e66b4b44b
+DIST cfortran_20110621.orig.tar.gz 129061 BLAKE2B 16c0cae1675923c1f6f13fe5a2a65ff86a2a80e4b3c3956c04cbc2df562dad8426b90c8a3a34919c28a7bee29f7430ffe8b415e28a484421aa8f58430456b934 SHA512 59b4285bb5392916880503bdd1cead5602944ebbf615d3c40bb7232770d6a74d3138a0b2abbab4fed9ea9bd2a56b2d3097d9609833c07d773dc43b8be0a3258a
+DIST cfortran_20210827-1.debian.tar.xz 8096 BLAKE2B 719b9cda29149e88342a54931af7f3b85a3cccc5dd5c573d9cce24fd67975141062fa538243ad40cb259464a53f3c77280a6097f01cb67f49b5e650cf49ab78f SHA512 86eb0692679dc0f3ec06d5f8c36c2ba242a52a01eb9bf1f9830dd2a689014ab2f0733c2c6210033e982d644bc4babf8420354f05079dfed30361a822b62aa845
+DIST cfortran_20210827.orig.tar.gz 94493 BLAKE2B 9ba0a22d1231702d04e484c21b566967a44684691fe08f7dc156e7b58946ab72694040e1513d51754993f82c4b80e58b365c25ad99acfb875cd2bf5db29dd7f6 SHA512 df12086f7718d205f3d0e40fafc1584339020e2be8ce5a96a314448018eac8d76fa7ae888c353e36f10e7347add609c2fe00558ec369e0ede2580973c21e5963
DIST cfortran_4.4-14.diff.gz 23084 BLAKE2B 8e760b3697869c12e94925c4781318fbe7640f0563a2464bf5d9f51a4afcb4bf9c281bab189542f2342d6dbc6f5524b4a48d9f844459d190e9182a96ebefbf9b SHA512 1e0b267efc17c2ba30ca1108d59ef87d1a401e6b88bea2c7045458f8cfad6ec9a05f6bf4a08c1d6cb314c790a4969a1f0fdf0c7b6abc28bae544928aad5b0218
DIST cfortran_4.4.orig.tar.gz 120119 BLAKE2B df4e0650e2718ed0c2009fb1b85330266308b0b584fcdc85e08cad0913bf063ab38824724b43a005a63a6e6bd5152b35115a68659487a992b96d0d38792e6d0a SHA512 969d0db566ecd7ed7945cac7f8ceea1cbd94ab427734ba83882acf97022c83b1417e32515d847fee89144137f58f7041cf5164fc397f3d7526f3aa958f8b038c
diff --git a/dev-lang/cfortran/cfortran-20110621.ebuild b/dev-lang/cfortran/cfortran-20110621.ebuild
new file mode 100644
index 000000000000..9a624c62ccf7
--- /dev/null
+++ b/dev-lang/cfortran/cfortran-20110621.ebuild
@@ -0,0 +1,62 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+FORTRAN_NEEDED=test
+
+inherit autotools fortran-2 flag-o-matic
+
+DEB_PR="1"
+
+DESCRIPTION="Header file allowing to call Fortran routines from C and C++"
+HOMEPAGE="https://www-zeus.desy.de/~burow/cfortran/"
+SRC_URI="
+ mirror://debian/pool/main/c/${PN}/${PN}_${PV}.orig.tar.gz
+ mirror://debian/pool/main/c/${PN}/${PN}_${PV}-${DEB_PR}.debian.tar.xz"
+
+SLOT="0"
+LICENSE="LGPL-2"
+KEYWORDS="~alpha amd64 ~arm64 ~hppa ~ia64 ppc ppc64 ~riscv sparc x86 ~amd64-linux ~x86-linux"
+IUSE="examples test"
+
+RESTRICT="!test? ( test )"
+
+DOCS=( cfortran.doc )
+
+src_prepare() {
+ eapply "${WORKDIR}"/debian/patches/*.patch
+ default
+ eautoreconf
+
+ if use examples; then
+ # The examples are also used as tests and it's tricky to clean up
+ # afterwards, just save a clean copy (sans Makefiles, as they only
+ # cover the test phase) before the tests are run.
+ cp -ar eg eg_src || die "Failed to preserve a clean copy of examples"
+ rm -f eg_src/Makefile{,.am,.in}
+ fi
+}
+
+src_configure() {
+ use sparc && append-fflags $(test-flags-FC -fno-store-merging -fno-tree-slp-vectorize) # bug 818400
+ default
+}
+
+src_install() {
+ default
+
+ # For compatibility with older versions
+ dodir /usr/include/cfortran
+ dosym -r /usr/include/cfortran.h /usr/include/cfortran/cfortran.h
+
+ docinto debian
+ dodoc "${WORKDIR}"/debian/{NEWS,changelog,copyright}
+ docinto html
+ dodoc cfortran.html index.htm
+
+ if use examples; then
+ docinto examples
+ dodoc -r cfortest.c cfortex.f eg_src/*
+ fi
+}
diff --git a/dev-lang/cfortran/cfortran-20210827.ebuild b/dev-lang/cfortran/cfortran-20210827.ebuild
new file mode 100644
index 000000000000..14f0115b8030
--- /dev/null
+++ b/dev-lang/cfortran/cfortran-20210827.ebuild
@@ -0,0 +1,65 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+FORTRAN_NEEDED=test
+
+inherit autotools fortran-2 flag-o-matic
+
+DEB_PR="1"
+
+# https://github.com/bastien-roucaries/cfortran is for the Debian fork
+DESCRIPTION="Header file allowing to call Fortran routines from C and C++"
+HOMEPAGE="https://www-zeus.desy.de/~burow/cfortran/ https://github.com/bastien-roucaries/cfortran"
+SRC_URI="mirror://debian/pool/main/c/${PN}/${PN}_${PV}.orig.tar.gz"
+SRC_URI+=" mirror://debian/pool/main/c/${PN}/${PN}_${PV}-${DEB_PR}.debian.tar.xz"
+
+LICENSE="LGPL-2"
+SLOT="0"
+KEYWORDS="~alpha amd64 ~arm64 ~hppa ~ia64 ppc ppc64 ~riscv sparc x86 ~amd64-linux ~x86-linux"
+IUSE="examples test"
+RESTRICT="!test? ( test )"
+
+src_prepare() {
+ default
+
+ if [[ -d "${WORKDIR}"/debian/patches ]] ; then
+ eapply "${WORKDIR}"/debian/patches/
+ fi
+
+ eautoreconf
+
+ if use examples; then
+ # The examples are also used as tests and it's tricky to clean up
+ # afterwards, just save a clean copy (sans Makefiles, as they only
+ # cover the test phase) before the tests are run.
+ cp -ar eg eg_src || die "Failed to preserve a clean copy of examples"
+ rm -f eg_src/Makefile{,.am,.in}
+ fi
+}
+
+src_configure() {
+ use sparc && append-fflags $(test-flags-FC -fno-store-merging -fno-tree-slp-vectorize) # bug #818400
+ # bug #866560
+ filter-lto
+ append-flags -fno-strict-aliasing
+ append-cflags $(test-flags-CC -fcommon) # bug #899452
+ default
+}
+
+src_install() {
+ default
+
+ # For compatibility with older versions
+ dodir /usr/include/cfortran
+ dosym -r /usr/include/cfortran.h /usr/include/cfortran/cfortran.h
+
+ docinto debian
+ dodoc "${WORKDIR}"/debian/{NEWS,changelog,copyright}
+
+ if use examples; then
+ docinto examples
+ dodoc -r cfortest.c cfortex.f eg_src/*
+ fi
+}
diff --git a/dev-lang/cfortran/cfortran-4.4-r3.ebuild b/dev-lang/cfortran/cfortran-4.4-r4.ebuild
index 31b6d62766a1..d5ccc7687463 100644
--- a/dev-lang/cfortran/cfortran-4.4-r3.ebuild
+++ b/dev-lang/cfortran/cfortran-4.4-r4.ebuild
@@ -1,9 +1,7 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=5
-
-inherit eutils
+EAPI=8
DEB_PR="14"
@@ -15,9 +13,11 @@ SRC_URI="
SLOT="0"
LICENSE="LGPL-2"
-KEYWORDS="~alpha amd64 ~arm64 ~hppa ~ia64 ppc ppc64 sparc x86 ~amd64-linux ~x86-linux"
+KEYWORDS="~alpha amd64 ~arm64 ~hppa ~ia64 ppc ppc64 ~riscv sparc x86 ~amd64-linux ~x86-linux"
IUSE="examples"
+PATCHES=( "${WORKDIR}"/${PN}_${PV}-${DEB_PR}.diff )
+
src_unpack() {
default
if use examples; then
@@ -28,10 +28,6 @@ src_unpack() {
fi
}
-src_prepare() {
- epatch "${WORKDIR}"/${PN}_${PV}-${DEB_PR}.diff
-}
-
src_install() {
insinto /usr/include/cfortran
doins cfortran.h
@@ -40,7 +36,8 @@ src_install() {
dodoc cfortran.doc debian/{NEWS,changelog,copyright}
- dohtml cfortran.html index.htm cfortest.c cfortex.f
+ docinto html
+ dodoc cfortran.html index.htm # cfortest.c cfortex.f
if use examples; then
insinto /usr/share/${PN}
diff --git a/dev-lang/cfortran/metadata.xml b/dev-lang/cfortran/metadata.xml
index abd077c49f95..59d657fdf217 100644
--- a/dev-lang/cfortran/metadata.xml
+++ b/dev-lang/cfortran/metadata.xml
@@ -1,14 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>sci@gentoo.org</email>
<name>Gentoo Science Project</name>
</maintainer>
<longdescription lang="en">
- cfortran is a header file to ease bridge between C and FORTRAN. It
- provides an interface between C and FORTRAN routines and global
- data, i.e. structures and COMMON blocks. This package includes
- patches from Debian for better support on newer compilers and architectures.
-</longdescription>
+ cfortran is a header file to ease bridge between C and FORTRAN. It
+ provides an interface between C and FORTRAN routines and global
+ data, i.e. structures and COMMON blocks. This package includes
+ patches from Debian for better support on newer compilers and architectures.
+ </longdescription>
+ <upstream>
+ <remote-id type="github">bastien-roucaries/cfortran</remote-id>
+ </upstream>
</pkgmetadata>
diff --git a/dev-lang/clips/Manifest b/dev-lang/clips/Manifest
new file mode 100644
index 000000000000..bcca28cfc812
--- /dev/null
+++ b/dev-lang/clips/Manifest
@@ -0,0 +1 @@
+DIST clips-6.40.tar.gz 1082012 BLAKE2B f168a14178ca0d5d39039d9e661e2214f9787099944e11413d7056b0c2a047596e913893a4cb3c4425c311af6bc39ff7710ce649045111e4947f5fcf320527c4 SHA512 92383895c60f1fa02a4c1f426d734ae7140e798dd19c7b1ee668bb4781a20e7d1f2554222ebc2c1f47c03d3262a7a058c3a7840d5dd48c2d2fe761e9a0602399
diff --git a/dev-lang/clips/clips-6.40.ebuild b/dev-lang/clips/clips-6.40.ebuild
new file mode 100644
index 000000000000..c4e612220dc0
--- /dev/null
+++ b/dev-lang/clips/clips-6.40.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+DESCRIPTION="Tool for building Expert Systems (native version)"
+HOMEPAGE="http://www.clipsrules.net/"
+
+CLPN="clips_core_source_$(ver_cut 1)$(ver_cut 2)"
+SRC_URI="https://sourceforge.net/projects/clipsrules/files/CLIPS/${PV}/${CLPN}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/${CLPN}/core"
+
+LICENSE="public-domain"
+KEYWORDS="amd64 ~x86"
+SLOT="0"
+
+PATCHES=( "${FILESDIR}/${PN}-makefile-remove_hardcoded.patch" )
+
+src_prepare() {
+ tc-export AR CC
+ default
+}
+
+src_compile() {
+ emake -f makefile
+}
+
+src_install() {
+ dobin clips
+ dolib.a libclips.a
+}
diff --git a/dev-lang/clips/files/clips-makefile-remove_hardcoded.patch b/dev-lang/clips/files/clips-makefile-remove_hardcoded.patch
new file mode 100644
index 000000000000..56d30660aaed
--- /dev/null
+++ b/dev-lang/clips/files/clips-makefile-remove_hardcoded.patch
@@ -0,0 +1,33 @@
+--- a/makefile
++++ b/makefile
+@@ -66,8 +66,10 @@ debug : CFLAGS = -std=c99 -O0 -g
+ debug : LDLIBS = -lm
+ debug : clips
+
+-release : CC = gcc
+-release : CFLAGS = -std=c99 -O3 -fno-strict-aliasing
++release : AR ?=
++release : CC ?=
++release : CFLAGS ?=
++release : LDFLAGS ?=
+ release : LDLIBS = -lm
+ release : clips
+
+@@ -88,14 +90,14 @@ release_cpp : LDLIBS = -lstdc++
+ release_cpp : clips
+
+ .c.o :
+- $(CC) -c -D$(CLIPS_OS) $(CFLAGS) $(WARNINGS) $<
++ $(CC) -c -D$(CLIPS_OS) $(CFLAGS) $(LDFLAGS) $<
+
+ clips : main.o libclips.a
+- $(CC) -o clips main.o -L. -lclips $(LDLIBS)
++ $(CC) -o clips main.o -L. -lclips $(CFLAGS) $(LDFLAGS) $(LDLIBS)
+
+ libclips.a : $(OBJS)
+ rm -f $@
+- ar cq $@ $(OBJS)
++ $(AR) cq $@ $(OBJS)
+
+ clean :
+ -rm -f main.o $(OBJS)
diff --git a/dev-lang/clips/metadata.xml b/dev-lang/clips/metadata.xml
new file mode 100644
index 000000000000..8950bb052c8a
--- /dev/null
+++ b/dev-lang/clips/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+
+<pkgmetadata>
+ <maintainer type="person">
+ <email>xgqt@gentoo.org</email>
+ <name>Maciej Barć</name>
+ </maintainer>
+ <longdescription>
+ This package is a pure C implementation of CLIPS.
+ CLIPS is a forward-chaining rule-based programming language written in C
+ that also provides procedural and object-oriented programming facilities.
+ </longdescription>
+ <upstream>
+ <bugs-to>https://sourceforge.net/p/clipsrules/bugs/milestone/CLIPS/</bugs-to>
+ <remote-id type="sourceforge">clipsrules</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-lang/clipsjni/Manifest b/dev-lang/clipsjni/Manifest
new file mode 100644
index 000000000000..e2d53a3ccc51
--- /dev/null
+++ b/dev-lang/clipsjni/Manifest
@@ -0,0 +1 @@
+DIST clipsjni-6.40.tar.gz 3924580 BLAKE2B 6fce0ba8d2483291e1328ad8cba08bf663959e49414ae29e43bb226b8c82391ccde2d26732c6687ab52ee5cd88101df19c17258907d2fda84bde759d0d3687c6 SHA512 aacfe56ee64ade0be834654246e57a087cfc41d030a7138892158145a3485b0c9af60e188929123e3212ae0cf3cac0d4eac1e13ea0662d72ad714d67d4772d44
diff --git a/dev-lang/clipsjni/clipsjni-6.40-r1.ebuild b/dev-lang/clipsjni/clipsjni-6.40-r1.ebuild
new file mode 100644
index 000000000000..f899be5be27d
--- /dev/null
+++ b/dev-lang/clipsjni/clipsjni-6.40-r1.ebuild
@@ -0,0 +1,79 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+JAVA_PKG_IUSE="source"
+
+inherit desktop toolchain-funcs xdg java-pkg-2
+
+DESCRIPTION="Tool for building Expert Systems (Java version)"
+HOMEPAGE="http://www.clipsrules.net/"
+
+CLPN="clips_jni_$(ver_cut 1)$(ver_cut 2)"
+SRC_URI="https://sourceforge.net/projects/clipsrules/files/CLIPS/${PV}/${CLPN}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/${PN^^}"
+
+LICENSE="public-domain"
+KEYWORDS="amd64 ~x86"
+SLOT="0"
+IUSE="examples"
+
+RDEPEND=">=virtual/jre-1.8:*"
+DEPEND=">=virtual/jdk-1.8:*"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-library-src_makefile.lnx-remove_hardcoded.patch"
+ "${FILESDIR}/${PN}-makefile.lnx-java.patch"
+)
+
+src_prepare() {
+ xdg_environment_reset
+ tc-export AR CC
+
+ rm ./*.dll ./*.jar ./*jnilib || die
+ java-pkg-2_src_prepare
+
+ default
+}
+
+src_compile() {
+ pushd library-src || die
+ emake -f makefile.lnx
+ popd || die
+
+ if use examples ; then
+ emake -f makefile.lnx
+ else
+ emake -f makefile.lnx clipsjni ide
+ fi
+}
+
+src_install() {
+ java-pkg_doso ./library-src/libCLIPSJNI.so
+ java-pkg_dojar CLIPSIDE.jar CLIPSJNI.jar
+
+ local e
+ for e in clipside clipsjni ; do
+ java-pkg_dolauncher ${e} --jar ${e^^}.jar
+ done
+
+ doicon ./java-src/net/sf/clipsrules/jni/examples/ide/resources/CLIPS.png
+
+ make_desktop_entry \
+ clipside CLIPSIDE CLIPS "Development;IDE"
+ make_desktop_entry \
+ clipsjni CLIPSJNI CLIPS "Development;ConsoleOnly;" "Terminal=true"
+
+ if use examples ; then
+ insinto /usr/share/clipsjni/examples
+ doins ./*Demo.jar
+ fi
+
+ use source && java-pkg_dosrc ./java-src
+}
+
+pkg_preinst() {
+ java-pkg-2_pkg_preinst
+ xdg_pkg_preinst
+}
diff --git a/dev-lang/clipsjni/files/clipsjni-library-src_makefile.lnx-remove_hardcoded.patch b/dev-lang/clipsjni/files/clipsjni-library-src_makefile.lnx-remove_hardcoded.patch
new file mode 100644
index 000000000000..d984bfdafb61
--- /dev/null
+++ b/dev-lang/clipsjni/files/clipsjni-library-src_makefile.lnx-remove_hardcoded.patch
@@ -0,0 +1,34 @@
+--- a/library-src/makefile.lnx
++++ b/library-src/makefile.lnx
+@@ -9,7 +9,12 @@
+ # Notes:
+ # -fPIC option needed for 64-bit systems
+
+-all: ubuntu
++all: libCLIPSJNI.so
++
++CC ?=
++CFLAGS ?=
++JAVA_HOME ?=
++LDFLAGS ?=
+
+ ubuntu : JAVA_HOME = /usr/lib/jvm/default-java
+ ubuntu : libCLIPSJNI.so
+@@ -63,7 +68,7 @@ OBJS = agenda.o analysis.o argacces.o bload.o bmathfun.o bsave.o \
+ clipsjni_utilities.o clipsjni_glue.o
+
+ .c.o :
+- gcc -c -std=c99 -O3 -fPIC -DLINUX \
++ $(CC) -c -std=c99 -fPIC $(CFLAGS) $(LDFLAGS) -DLINUX \
+ -I$(JAVA_INCLUDE) -I$(JAVA_INCLUDE_OS) \
+ -fno-strict-aliasing -Wstrict-aliasing \
+ -Wall -Wundef -Wpointer-arith -Wshadow \
+@@ -72,7 +77,7 @@ OBJS = agenda.o analysis.o argacces.o bload.o bmathfun.o bsave.o \
+ -Wstrict-prototypes -Waggregate-return -Wno-implicit $<
+
+ libCLIPSJNI.so : $(OBJS)
+- gcc -o libCLIPSJNI.so -fPIC -shared \
++ $(CC) -o libCLIPSJNI.so -fPIC $(CFLAGS) $(LDFLAGS) -shared \
+ -lm $(OBJS)
+
+ clean :
diff --git a/dev-lang/clipsjni/files/clipsjni-makefile.lnx-java.patch b/dev-lang/clipsjni/files/clipsjni-makefile.lnx-java.patch
new file mode 100644
index 000000000000..af45fce3e204
--- /dev/null
+++ b/dev-lang/clipsjni/files/clipsjni-makefile.lnx-java.patch
@@ -0,0 +1,64 @@
+New Java versions need "-Xlint:deprecation" option to compile CLIPSJNI.
+General fixes to enable make with multiple jobs.
+
+index 4100e83..c6d2f62 100644
+--- a/makefile.lnx
++++ b/makefile.lnx
+@@ -129,10 +129,10 @@ all: clipsjni animal auto sudoku wine router ide
+
+ clipsjni :
+ mkdir -p $(JNI_BIN)
+- javac -d $(JNI_BIN) $(JNI_FILES)
++ javac -Xlint:deprecation -d $(JNI_BIN) $(JNI_FILES)
+ jar -cfe CLIPSJNI.jar $(JNI_CLASS) $(JNI_BIN)/$(JNI_CP)/Environment.class -C $(JNI_BIN) net
+
+-animal :
++animal : clipsjni
+ mkdir -p $(ANIMAL_RSRC_DST)
+ javac -d $(ANIMAL_BIN) -cp CLIPSJNI.jar $(ANIMAL_SRC)/AnimalDemo.java
+ cp $(ANIMAL_RSRC_SRC)/*.properties $(ANIMAL_RSRC_DST)
+@@ -140,7 +140,7 @@ animal :
+ jar -cfe AnimalDemo.jar $(ANIMAL_CLASS) $(ANIMAL_BIN)/$(ANIMAL_CP)/AnimalDemo.class -C $(ANIMAL_BIN) net
+ jar -uf AnimalDemo.jar -C $(JNI_BIN) net
+
+-auto :
++auto : clipsjni
+ mkdir -p $(AUTO_RSRC_DST)
+ javac -d $(AUTO_BIN) -cp CLIPSJNI.jar $(AUTO_SRC)/AutoDemo.java
+ cp $(AUTO_RSRC_SRC)/*.properties $(AUTO_RSRC_DST)
+@@ -148,7 +148,7 @@ auto :
+ jar -cfe AutoDemo.jar $(AUTO_CLASS) $(AUTO_BIN)/$(AUTO_CP)/AutoDemo.class -C $(AUTO_BIN) net
+ jar -uf AutoDemo.jar -C $(JNI_BIN) net
+
+-sudoku :
++sudoku : clipsjni
+ mkdir -p $(SUDOKU_RSRC_DST)
+ javac -d $(SUDOKU_BIN) -cp CLIPSJNI.jar $(SUDOKU_SRC)/SudokuDemo.java
+ cp $(SUDOKU_RSRC_SRC)/*.properties $(SUDOKU_RSRC_DST)
+@@ -156,7 +156,7 @@ sudoku :
+ jar -cfe SudokuDemo.jar $(SUDOKU_CLASS) $(SUDOKU_BIN)/$(SUDOKU_CP)/SudokuDemo.class -C $(SUDOKU_BIN) net
+ jar -uf SudokuDemo.jar -C $(JNI_BIN) net
+
+-wine :
++wine : clipsjni
+ mkdir -p $(WINE_RSRC_DST)
+ javac -d $(WINE_BIN) -cp CLIPSJNI.jar $(WINE_SRC)/WineDemo.java
+ cp $(WINE_RSRC_SRC)/*.properties $(WINE_RSRC_DST)
+@@ -164,7 +164,7 @@ wine :
+ jar -cfe WineDemo.jar $(WINE_CLASS) $(WINE_BIN)/$(WINE_CP)/WineDemo.class -C $(WINE_BIN) net
+ jar -uf WineDemo.jar -C $(JNI_BIN) net
+
+-router :
++router : clipsjni
+ mkdir -p $(ROUTER_RSRC_DST)
+ javac -d $(ROUTER_BIN) -cp CLIPSJNI.jar $(ROUTER_SRC)/RouterDemo.java
+ cp $(ROUTER_RSRC_SRC)/*.properties $(ROUTER_RSRC_DST)
+@@ -172,7 +172,7 @@ router :
+ jar -cfe RouterDemo.jar $(ROUTER_CLASS) $(ROUTER_BIN)/$(ROUTER_CP)/RouterDemo.class -C $(ROUTER_BIN) net
+ jar -uf RouterDemo.jar -C $(JNI_BIN) net
+
+-ide :
++ide : clipsjni
+ mkdir -p $(IDE_RSRC_DST)
+ javac -d $(IDE_BIN) -cp CLIPSJNI.jar $(IDE_FILES)
+ cp $(IDE_RSRC_SRC)/*.png $(IDE_RSRC_DST)
diff --git a/dev-lang/clipsjni/metadata.xml b/dev-lang/clipsjni/metadata.xml
new file mode 100644
index 000000000000..95bdb20e9678
--- /dev/null
+++ b/dev-lang/clipsjni/metadata.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+
+<pkgmetadata>
+ <maintainer type="person">
+ <email>xgqt@gentoo.org</email>
+ <name>Maciej Barć</name>
+ </maintainer>
+ <longdescription>
+ This package is a Java implementation of CLIPS with
+ a native shared library and a IDE.
+ CLIPS is a forward-chaining rule-based programming language written in C
+ that also provides procedural and object-oriented programming facilities.
+ </longdescription>
+ <upstream>
+ <bugs-to>https://sourceforge.net/p/clipsrules/bugs/milestone/CLIPSJNI/</bugs-to>
+ <remote-id type="sourceforge">clipsrules</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-lang/cll1h/metadata.xml b/dev-lang/cll1h/metadata.xml
index 6f49eba8f496..85e4ed814fa2 100644
--- a/dev-lang/cll1h/metadata.xml
+++ b/dev-lang/cll1h/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<!-- maintainer-needed -->
</pkgmetadata>
diff --git a/dev-lang/clojure/Manifest b/dev-lang/clojure/Manifest
index a3d34f05fbe4..c21a6f38dff6 100644
--- a/dev-lang/clojure/Manifest
+++ b/dev-lang/clojure/Manifest
@@ -1,3 +1,19 @@
-DIST clojure-1.10.0.tar.gz 678715 BLAKE2B 8f69a327e94e173864b3d8b81e92ab716c70be9fa59bbd836889cb75a8d44518a3aa2a8fbec50a04f2e7d1afdb07ffef2f7069077e22ef91f321c5fb122d2bb9 SHA512 d53d2322662974d2eed97d7870f0f91822de8acb91e30b50b0dca4186ee667c46b2b5863e080d89e3bfe63d090c6ac2e25617f74d1434bae2ca1e73ae9a36012
-DIST clojure-1.8.0.tar.gz 627688 BLAKE2B 7dc3029e38e574cd32c74cce1f3ae03890869023d5fb2e8138f2fdc4461b3f9e119c4b6042e2b7caee9561b664b49cbaf79378ef1fdd0fd78c4d712c3b9d95de SHA512 fa5714397e679f77260db054bdc0891a311e7bd14bfceb2dd0494480fb9cf21fc74dd295e75070105ff0cdd50842390a748d8782397c549f51d85d18d54a1231
-DIST clojure-1.9.0.tar.gz 641645 BLAKE2B 767241c7f252a2977511adf257b1805f81a96594cff2b1b9837c782cfaabd49ae8e6eef30398e7e277952124e843967ac635985da97e2e7c5cc98ec177f3d79c SHA512 8877c654f6aa8ad990593e69b611388659973e5d1d46cf8f6cfae59c4033424a3c7eebd477539784cbd7974f7ff30580f76d8a4117414491f38e18ac3b4efb27
+DIST clojure-1.11.1.tar.gz 705082 BLAKE2B 5f22fcb04cbb2aad8b90ceb93f620cef1a8704768663023db2a817efbe294dc232d60bd077fc748daec512f80f8425c0df5a417a40b279e3d65165948f615bb1 SHA512 b4e05f61e5a68b5dc8215b2158a32af891ee1e855240bc753bd1d5d28b6864f2e1c5ef45ad53a7f5fa5565fc19ff957939b7130ad44b432ad8ea95e459aa26e1
+DIST clojure-1.11.2.tar.gz 705898 BLAKE2B 8c7219dc607d968504e17421c01060b803750f9304bf211c7c8cf883c073b14938fe042ca9a05cd9506cda8b8a9442a405913dc754cd5bedc2ed95bec9978691 SHA512 8de77a6b434a147b7252bc9a36bde5552d063ffa8702153483c690caa231265314aa871c5409c92037ade7c5e6d1df1bf32244929cb4886cdd91e4391f249184
+DIST clojure-1.11.3.tar.gz 706113 BLAKE2B eed50639d251406d96e528a14d055ddc59cd7fac18a415d4947e46d93d11e67ec263f697dbc14a9e5482f134f546a55413529ed58a7b064169cb06f45bd5e5d5 SHA512 33d59a5c1b94902198e669ea7c4161c515d6463dd6e5ce7251adf8f5a9da493a5446d91f218e8e90ec8bf0866119f9c28d64361c2ed57265eea62baf39ca1302
+DIST core.specs.alpha-0.2.62.tar.gz 11799 BLAKE2B 2e28043cdd9f3b71a9eabd30ec39ba88ccdb8f9af6b442bcf58d1da6fef73132e9f591865302d9cff43dd6aeca0200768e63993000ffc3c840b5c07bb823f20e SHA512 0707ef3f669d2eaf1595d1e333a9b1e62d97fcbe4cf7ed70c968a4ade3da7e06c281e8e075f953887346288d190bb1dfa7866d9a8d623662e6f844528eb1a45c
+DIST core.specs.alpha-0.3.70.tar.gz 12176 BLAKE2B 168b055ee1a518e750791cd010872b6d2f3a655c474f7feab93b0e06bca7cbaf9e029b9c042c2e218129213a5c787b3409c2ddc17f902907c1d38a4d9c22cdfd SHA512 223a8d1a2f1fbb93d9144e2a50fa7d9e5fa79657fcd0c96ece7170c33f23620aeb7645ace84edd3512fe87b88bb3e9422666c66343989bb07a4cd5fadc1216d7
+DIST data.generators-1.0.0.tar.gz 9940 BLAKE2B 981ac8f91ae05aecc7a9e7c85cbd59c5a50785bdc969309465374393234fd0a72d9803931acebbbbf369e812de33f0ac0c2ddc3009f8bb4237debd9e665301f3 SHA512 a8d5881c401b409e7e4192243e62288855b435d5979fd7950fcd3ee5291d16ce4aad913ea1dadf26db8a1297a21cab19e1e1e5d31e26db57a6fa4ed17bcefe0b
+DIST data.generators-1.1.0.tar.gz 11781 BLAKE2B cccbacb789f37a705d64c9467dcb0f737110176c92f3af89165688676c225179bdf17ca29126ab3578a54ace9137c991d2f1bf4b3024c7c6aaf9fe2f63f37fb8 SHA512 7b51fd44c9d58de639d036dbce343dd81a271e28db096c64e910ca6c87869fa6ccac9ba87d7313b53304017a335ee45bbd5ab9794bc166ec46b5a8d86b5aa82e
+DIST java.classpath-1.0.0.tar.gz 8955 BLAKE2B 1ab2d077d9f852ee72a1576b71d6aa8764f2fdb04eeed3f7710a7deb65942df8c0b1caff5847e329c191316c7218877b8b136b9dcefdb8f450f383beed5805ba SHA512 552f31f1f27fd80f262bbec4777626951bccef6689f4586fc327c3490669d25591c1a87907b15709dcb8d69f47ce33341d219694877b44481859b79fb38737fa
+DIST java.classpath-1.1.0.tar.gz 10881 BLAKE2B 1f3f9a103197990954e97725ffd581945fa27f2b50b44513a94a28bf0c50f0f2fd26a906f30eefbb110942d3ba157af945e009e3d5825a73ffb37aa85679bde6 SHA512 2d3c887a04f4c8a3a1189de719cfe020ff3989bb0c680328ef15311105b2244aa2d6797c017b1d39f6c025a8bf5ea36051d995dcebcae2ea032a5ca8cec12816
+DIST spec.alpha-0.3.218.tar.gz 41399 BLAKE2B e6d20afb42d26096077db5ea0346a3f1bd261f9b0ec71c2bc6f70849352ea38e2eb0d7c6e2124af4342b1b4f25966568d3054fa7447fbb1285eb539beab6a19b SHA512 bf89cb38777cd413804d7211519a62ee8b4dc80b93987cc4ecccb8065fb4c43b876e713c99a966663e6ec0ebd2dc3d35a567d43a38e8f73b80643b2653e3781c
+DIST spec.alpha-0.4.233.tar.gz 42433 BLAKE2B be243c2180903ababd23eb6f5f47caa855f730eef5efdc30f1f404ec6c7471e15dc6bbbd1a13a2ea911e82a97dbe8e64631cd4f18e4be09b3c8c5aa76fa59b78 SHA512 085d6833c58f607d222edc832fb78e786946d2d3e0644c990043f0a98c055eff0b56b0e920010253c898e643cbc43c72c222cd8c6a813c5c5cc663cdda337aa1
+DIST test.check-1.1.1.tar.gz 85399 BLAKE2B 752f0f0149dd5720dcabdcc65173906b124a85590f6b3cda41d3384a05e5b54c10b4cd399ba26ff466d637ea87e0fd81dc2a4943179818ba3d4fccdee977922d SHA512 e62ac00e302efbf4bb0c70721cd0b4438b2d302855146a052bfde492b0f36506fbd44c10c3e5c88a0eeb9b548eac40247f77d8ac590f758176e1d8f54270e196
+DIST test.generative-1.0.0.tar.gz 140414 BLAKE2B 8895fd2e86fe3ac54c826af10f914e43e3dcb0233e799102c6ec2024fb77fe8a47dfed1753a432ef4353ebbe0f790334f30a0b6d42195e869ecadb21d545578a SHA512 28aeed3dde40b1e02ee41219b698083e5ec7c63df0c779d1db75e07e5000faf0cd1415fe7418e241ebbea6979606db72696fb0090c4204d22ec1aea689b2ac34
+DIST test.generative-1.1.0.tar.gz 144819 BLAKE2B b6cbf42b401380e3977ac219ddbc8b26ddcfc285a06ce5f2d68c3a52bb6c36702922975e9c9e2bfd4198ec239f2efd676fdfc8293222b75eb5c417ef1d80681f SHA512 4ef4640be2f630c4ebbe81d7bafec1e6e32619480c09ef59882b182738a998941d442231148d8cd2fb4166454780fd72067e5dda4b64d0ae0b064c91928f5c67
+DIST tools.namespace-1.1.0.tar.gz 36182 BLAKE2B e93ef1151f3c1d4bdbda881712c008c50a4e40e2787c9de2708d918009bcbeaf2db143770fbe8d6d251688b1b1bb50d75a8fca1a684badae1634aa8f23b08c3c SHA512 9cdac4dc90192b621cfadb901bb9b2befb9684a6431e87938b6993b879bac2d9c946cdc0ec29226503b7c2406ef2db9be7d49a2398bcf27520d422b0dbfd0185
+DIST tools.namespace-1.5.0.tar.gz 37913 BLAKE2B bae6be788507d200f6e781754b46d5c7c34069b3340006f078a3f0360c0c5d2dea0398d5afe1ea6b49166baa482cc07a7687735474afc84abe644c2b8b53cd9d SHA512 c1f4dba4758ecb39460334e61f989cf92e3e2ca1f6ff03b9e12bc137de088f994d86feec827f40d33034e2f8978e099326aed3b85a21c68a910714b662bf9052
+DIST tools.reader-1.3.4.tar.gz 62300 BLAKE2B f8257166e62963f468987b6c926edfce852cfddc7b641e3af25aeee919f8b03f9e82c91bcd65f6b3110d3b042bb8b2d063468b7707db5965eb044546619ef711 SHA512 329e4afb9aa77231fe2d583ed6ac11089c2f7a9600db02109ad205bfdacb747a8af3af28202e545a4ffd71a77b4a04aab2a35a0e3a12f88085ef705060a15a74
+DIST tools.reader-1.4.0.tar.gz 63792 BLAKE2B 7d0af9ff628ca1f1e1001c134e7fd2bb1cc7258321d8d19621936cdbb7e95ea5cb842268a15115b0b6929cbc352f35ea47439657db4d5d6403cf82821f7e0ccf SHA512 55c04e94828c0bf5e854d2b1d0bfd9c27e8411def1b429aa131b5e03614955777d188ad1a43295dffce032e8347e4d9d189b7eca0df3edbb105b4257f4641581
+DIST tools.reader-1.4.2.tar.gz 63868 BLAKE2B 3f4ceab49de2d518ba5854a81af13cb51902b240d2db2be2c8ededd48d6f9db3898eb54fdb41c6b9ce49d9d8eb912b0a7d3683dc1d61b6e238c5b862fad4b4a5 SHA512 bc3510887b7c5c5f84f0969ff2224dc745a54c81c186c50d0436af9e6f8eb4abf6d9c6a7bba4362ba3f8c94cd6bedefdf1a7698a1cd67db4b324fbaffaae5fbf
diff --git a/dev-lang/clojure/clojure-1.10.0.ebuild b/dev-lang/clojure/clojure-1.10.0.ebuild
deleted file mode 100644
index 60aef391a050..000000000000
--- a/dev-lang/clojure/clojure-1.10.0.ebuild
+++ /dev/null
@@ -1,50 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-JAVA_PKG_IUSE="test"
-
-inherit java-pkg-2 java-ant-2
-
-EGIT_REF="76b87a6"
-
-DESCRIPTION="General-purpose programming language with an emphasis on functional programming"
-HOMEPAGE="https://clojure.org/"
-SRC_URI="https://github.com/clojure/${PN}/archive/${P}.tar.gz"
-
-LICENSE="EPL-1.0 Apache-2.0 BSD"
-SLOT="1.10"
-KEYWORDS="~amd64 ~x86 ~x86-linux"
-RESTRICT="!test? ( test )" # broken due to file not found issue and more
-
-CDEPEND="
- dev-java/spec-alpha:0.2
- dev-java/core-specs-alpha:0.2
- dev-java/ant-core:0"
-
-RDEPEND="
- ${CDEPEND}
- >=virtual/jre-1.8"
-
-DEPEND="
- ${CDEPEND}
- >=virtual/jdk-1.8"
-
-S="${WORKDIR}/clojure-${PN}-${EGIT_REF}"
-
-DOCS=( changes.md CONTRIBUTING.md readme.txt )
-
-src_compile() {
- eant -Dmaven.compile.classpath=$(java-pkg_getjars core-specs-alpha-0.2,spec-alpha-0.2) -f build.xml jar
-}
-
-src_test() {
- eant -f build.xml test
-}
-
-src_install() {
- java-pkg_newjar "${PN}.jar"
- java-pkg_dolauncher ${PN}-${SLOT} --main clojure.main
- einstalldocs
-}
diff --git a/dev-lang/clojure/clojure-1.11.1-r1.ebuild b/dev-lang/clojure/clojure-1.11.1-r1.ebuild
new file mode 100644
index 000000000000..d95fe4b42eb9
--- /dev/null
+++ b/dev-lang/clojure/clojure-1.11.1-r1.ebuild
@@ -0,0 +1,93 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+JAVA_PKG_IUSE="test"
+
+inherit java-pkg-2 java-ant-2
+
+SPEC_ALPHA_VER=0.3.218
+CORE_SPECS_ALPHA_VER=0.2.62
+
+TOOLS_NAMESPACE_VER=1.1.0
+JAVA_CLASSPATH_VER=1.0.0
+TOOLS_READER_VER=1.3.4
+TEST_GENERATIVE_VER=1.0.0
+DATA_GENERATORS_VER=1.0.0
+TEST_CHECK_VER=1.1.1
+
+DESCRIPTION="General-purpose programming language with an emphasis on functional programming"
+HOMEPAGE="https://clojure.org/"
+SRC_URI="
+ https://github.com/${PN}/${PN}/archive/${P}.tar.gz
+ https://github.com/clojure/spec.alpha/archive/v${SPEC_ALPHA_VER}.tar.gz -> spec.alpha-${SPEC_ALPHA_VER}.tar.gz
+ https://github.com/clojure/core.specs.alpha/archive/v${CORE_SPECS_ALPHA_VER}.tar.gz -> core.specs.alpha-${CORE_SPECS_ALPHA_VER}.tar.gz
+ test? (
+ https://github.com/clojure/tools.namespace/archive/tools.namespace-${TOOLS_NAMESPACE_VER}.tar.gz
+ https://github.com/clojure/java.classpath/archive/java.classpath-${JAVA_CLASSPATH_VER}.tar.gz
+ https://github.com/clojure/tools.reader/archive/tools.reader-${TOOLS_READER_VER}.tar.gz
+ https://github.com/clojure/test.generative/archive/test.generative-${TEST_GENERATIVE_VER}.tar.gz
+ https://github.com/clojure/data.generators/archive/data.generators-${DATA_GENERATORS_VER}.tar.gz
+ https://github.com/clojure/test.check/archive/v${TEST_CHECK_VER}.tar.gz -> test.check-${TEST_CHECK_VER}.tar.gz
+ )
+"
+S="${WORKDIR}/${PN}-${P}"
+
+LICENSE="EPL-1.0 Apache-2.0 BSD"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="amd64 x86 ~x86-linux"
+RESTRICT="!test? ( test )"
+
+RDEPEND=">=virtual/jre-1.8"
+DEPEND=">=virtual/jdk-1.8"
+
+PATCHES=( "${FILESDIR}"/add-compile-spec-ant-build-target.patch )
+
+DOCS=( changes.md CONTRIBUTING.md readme.txt )
+
+src_prepare() {
+ default
+ java-utils-2_src_prepare
+
+ ln -rs \
+ ../spec.alpha-${SPEC_ALPHA_VER}/src/main/clojure/clojure/spec \
+ src/clj/clojure/spec || die "Could not create symbolic link for spec-alpha"
+ ln -rs \
+ ../core.specs.alpha-${CORE_SPECS_ALPHA_VER}/src/main/clojure/clojure/core/specs \
+ src/clj/clojure/core/specs || die "Could not create symbolic link for core-specs-alpha"
+}
+
+src_compile() {
+ eant -f build.xml jar
+}
+
+src_test() {
+ ln -rs \
+ ../tools.namespace-tools.namespace-${TOOLS_NAMESPACE_VER}/src/main/clojure/clojure/tools \
+ src/clj/clojure/tools || die "Could not create symbolic link for tools-namespace"
+ mv \
+ ../java.classpath-java.classpath-${JAVA_CLASSPATH_VER}/src/main/clojure/clojure/java/* \
+ src/clj/clojure/java || die "Could not move java-classpath"
+ mv \
+ ../tools.reader-tools.reader-${TOOLS_READER_VER}/src/main/clojure/clojure/tools/* \
+ src/clj/clojure/tools || die "Could not move tools-reader"
+ mv \
+ ../test.generative-test.generative-${TEST_GENERATIVE_VER}/src/main/clojure/clojure/test/* \
+ src/clj/clojure/test || die "Could not move test-generative"
+ ln -rs \
+ ../data.generators-data.generators-${DATA_GENERATORS_VER}/src/main/clojure/clojure/data/ \
+ src/clj/clojure/data || die "Could not create symbolic link for data-generators"
+ mv \
+ ../test.check-${TEST_CHECK_VER}/src/main/clojure/clojure/test/* \
+ src/clj/clojure/test || die "Could not move test-check"
+
+ eant -f build.xml test
+}
+
+src_install() {
+ java-pkg_newjar "${PN}.jar"
+ java-pkg_dolauncher "${PN}" --main clojure.main
+
+ einstalldocs
+}
diff --git a/dev-lang/clojure/clojure-1.11.2-r1.ebuild b/dev-lang/clojure/clojure-1.11.2-r1.ebuild
new file mode 100644
index 000000000000..a0ea1c284db5
--- /dev/null
+++ b/dev-lang/clojure/clojure-1.11.2-r1.ebuild
@@ -0,0 +1,108 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+SPEC_ALPHA_VER=0.4.233
+CORE_SPECS_ALPHA_VER=0.3.70
+
+TOOLS_NAMESPACE_VER=1.5.0
+JAVA_CLASSPATH_VER=1.1.0
+TOOLS_READER_VER=1.4.0
+TEST_GENERATIVE_VER=1.1.0
+DATA_GENERATORS_VER=1.1.0
+TEST_CHECK_VER=1.1.1
+
+JAVA_PKG_IUSE="test"
+
+inherit java-pkg-2 java-ant-2
+
+DESCRIPTION="General-purpose programming language with an emphasis on functional programming"
+HOMEPAGE="https://clojure.org/
+ https://github.com/clojure/clojure/"
+SRC_URI="
+ https://github.com/${PN}/${PN}/archive/${P}.tar.gz
+
+ https://github.com/clojure/spec.alpha/archive/v${SPEC_ALPHA_VER}.tar.gz
+ -> spec.alpha-${SPEC_ALPHA_VER}.tar.gz
+ https://github.com/clojure/core.specs.alpha/archive/v${CORE_SPECS_ALPHA_VER}.tar.gz
+ -> core.specs.alpha-${CORE_SPECS_ALPHA_VER}.tar.gz
+
+ test? (
+ https://github.com/clojure/tools.namespace/archive/v${TOOLS_NAMESPACE_VER}.tar.gz
+ -> tools.namespace-${TOOLS_NAMESPACE_VER}.tar.gz
+ https://github.com/clojure/java.classpath/archive/v${JAVA_CLASSPATH_VER}.tar.gz
+ -> java.classpath-${JAVA_CLASSPATH_VER}.tar.gz
+ https://github.com/clojure/tools.reader/archive/v${TOOLS_READER_VER}.tar.gz
+ -> tools.reader-${TOOLS_READER_VER}.tar.gz
+ https://github.com/clojure/test.generative/archive/v${TEST_GENERATIVE_VER}.tar.gz
+ -> test.generative-${TEST_GENERATIVE_VER}.tar.gz
+ https://github.com/clojure/data.generators/archive/v${DATA_GENERATORS_VER}.tar.gz
+ -> data.generators-${DATA_GENERATORS_VER}.tar.gz
+ https://github.com/clojure/test.check/archive/v${TEST_CHECK_VER}.tar.gz
+ -> test.check-${TEST_CHECK_VER}.tar.gz
+ )
+"
+S="${WORKDIR}/${PN}-${P}"
+
+LICENSE="EPL-1.0 Apache-2.0 BSD"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="~amd64 ~x86 ~x86-linux"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=virtual/jre-1.8:*
+"
+DEPEND="
+ >=virtual/jdk-1.8:*
+"
+
+PATCHES=( "${FILESDIR}/add-compile-spec-ant-build-target.patch" )
+
+DOCS=( changes.md CONTRIBUTING.md readme.txt )
+
+src_prepare() {
+ default
+ java-utils-2_src_prepare
+
+ ln -rs \
+ ../spec.alpha-${SPEC_ALPHA_VER}/src/main/clojure/clojure/spec \
+ src/clj/clojure/spec || die "Could not create symbolic link for spec-alpha"
+ ln -rs \
+ ../core.specs.alpha-${CORE_SPECS_ALPHA_VER}/src/main/clojure/clojure/core/specs \
+ src/clj/clojure/core/specs || die "Could not create symbolic link for core-specs-alpha"
+}
+
+src_compile() {
+ eant -f build.xml jar
+}
+
+src_test() {
+ ln -rs \
+ ../tools.namespace-${TOOLS_NAMESPACE_VER}/src/main/clojure/clojure/tools \
+ src/clj/clojure/tools || die "Could not create symbolic link for tools-namespace"
+ mv \
+ ../java.classpath-${JAVA_CLASSPATH_VER}/src/main/clojure/clojure/java/* \
+ src/clj/clojure/java || die "Could not move java-classpath"
+ mv \
+ ../tools.reader-${TOOLS_READER_VER}/src/main/clojure/clojure/tools/* \
+ src/clj/clojure/tools || die "Could not move tools-reader"
+ mv \
+ ../test.generative-${TEST_GENERATIVE_VER}/src/main/clojure/clojure/test/* \
+ src/clj/clojure/test || die "Could not move test-generative"
+ ln -rs \
+ ../data.generators-${DATA_GENERATORS_VER}/src/main/clojure/clojure/data/ \
+ src/clj/clojure/data || die "Could not create symbolic link for data-generators"
+ mv \
+ ../test.check-${TEST_CHECK_VER}/src/main/clojure/clojure/test/* \
+ src/clj/clojure/test || die "Could not move test-check"
+
+ eant -f build.xml test
+}
+
+src_install() {
+ java-pkg_newjar "${PN}.jar"
+ java-pkg_dolauncher "${PN}" --main clojure.main
+
+ einstalldocs
+}
diff --git a/dev-lang/clojure/clojure-1.11.3.ebuild b/dev-lang/clojure/clojure-1.11.3.ebuild
new file mode 100644
index 000000000000..68ed2abe4e98
--- /dev/null
+++ b/dev-lang/clojure/clojure-1.11.3.ebuild
@@ -0,0 +1,110 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+SPEC_ALPHA_VER=0.4.233
+CORE_SPECS_ALPHA_VER=0.3.70
+
+TOOLS_NAMESPACE_VER=1.5.0
+JAVA_CLASSPATH_VER=1.1.0
+TOOLS_READER_VER=1.4.2
+TEST_GENERATIVE_VER=1.1.0
+DATA_GENERATORS_VER=1.1.0
+TEST_CHECK_VER=1.1.1
+
+JAVA_PKG_IUSE="test"
+
+inherit java-pkg-2 java-ant-2
+
+DESCRIPTION="General-purpose programming language with an emphasis on functional programming"
+HOMEPAGE="https://clojure.org/
+ https://github.com/clojure/clojure/"
+SRC_URI="
+ https://github.com/${PN}/${PN}/archive/${P}.tar.gz
+
+ https://github.com/clojure/spec.alpha/archive/v${SPEC_ALPHA_VER}.tar.gz
+ -> spec.alpha-${SPEC_ALPHA_VER}.tar.gz
+ https://github.com/clojure/core.specs.alpha/archive/v${CORE_SPECS_ALPHA_VER}.tar.gz
+ -> core.specs.alpha-${CORE_SPECS_ALPHA_VER}.tar.gz
+
+ test? (
+ https://github.com/clojure/tools.namespace/archive/v${TOOLS_NAMESPACE_VER}.tar.gz
+ -> tools.namespace-${TOOLS_NAMESPACE_VER}.tar.gz
+ https://github.com/clojure/java.classpath/archive/v${JAVA_CLASSPATH_VER}.tar.gz
+ -> java.classpath-${JAVA_CLASSPATH_VER}.tar.gz
+ https://github.com/clojure/tools.reader/archive/v${TOOLS_READER_VER}.tar.gz
+ -> tools.reader-${TOOLS_READER_VER}.tar.gz
+ https://github.com/clojure/test.generative/archive/v${TEST_GENERATIVE_VER}.tar.gz
+ -> test.generative-${TEST_GENERATIVE_VER}.tar.gz
+ https://github.com/clojure/data.generators/archive/v${DATA_GENERATORS_VER}.tar.gz
+ -> data.generators-${DATA_GENERATORS_VER}.tar.gz
+ https://github.com/clojure/test.check/archive/v${TEST_CHECK_VER}.tar.gz
+ -> test.check-${TEST_CHECK_VER}.tar.gz
+ )
+"
+S="${WORKDIR}/${PN}-${P}"
+
+LICENSE="EPL-1.0 Apache-2.0 BSD"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="~amd64 ~x86 ~x86-linux"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=virtual/jre-1.8:*
+"
+DEPEND="
+ >=virtual/jdk-1.8:*
+"
+
+PATCHES=(
+ "${FILESDIR}/add-compile-spec-ant-build-target.patch"
+)
+
+DOCS=( changes.md CONTRIBUTING.md readme.txt )
+
+src_prepare() {
+ default
+ java-utils-2_src_prepare
+
+ ln -rs \
+ ../spec.alpha-${SPEC_ALPHA_VER}/src/main/clojure/clojure/spec \
+ src/clj/clojure/spec || die "Could not create symbolic link for spec-alpha"
+ ln -rs \
+ ../core.specs.alpha-${CORE_SPECS_ALPHA_VER}/src/main/clojure/clojure/core/specs \
+ src/clj/clojure/core/specs || die "Could not create symbolic link for core-specs-alpha"
+}
+
+src_compile() {
+ eant -f build.xml jar
+}
+
+src_test() {
+ ln -rs \
+ ../tools.namespace-${TOOLS_NAMESPACE_VER}/src/main/clojure/clojure/tools \
+ src/clj/clojure/tools || die "Could not create symbolic link for tools-namespace"
+ mv \
+ ../java.classpath-${JAVA_CLASSPATH_VER}/src/main/clojure/clojure/java/* \
+ src/clj/clojure/java || die "Could not move java-classpath"
+ mv \
+ ../tools.reader-${TOOLS_READER_VER}/src/main/clojure/clojure/tools/* \
+ src/clj/clojure/tools || die "Could not move tools-reader"
+ mv \
+ ../test.generative-${TEST_GENERATIVE_VER}/src/main/clojure/clojure/test/* \
+ src/clj/clojure/test || die "Could not move test-generative"
+ ln -rs \
+ ../data.generators-${DATA_GENERATORS_VER}/src/main/clojure/clojure/data/ \
+ src/clj/clojure/data || die "Could not create symbolic link for data-generators"
+ mv \
+ ../test.check-${TEST_CHECK_VER}/src/main/clojure/clojure/test/* \
+ src/clj/clojure/test || die "Could not move test-check"
+
+ eant -f build.xml test
+}
+
+src_install() {
+ java-pkg_newjar "${PN}.jar"
+ java-pkg_dolauncher "${PN}" --main clojure.main
+
+ einstalldocs
+}
diff --git a/dev-lang/clojure/clojure-1.8.0.ebuild b/dev-lang/clojure/clojure-1.8.0.ebuild
deleted file mode 100644
index f712f2fa139b..000000000000
--- a/dev-lang/clojure/clojure-1.8.0.ebuild
+++ /dev/null
@@ -1,32 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-JAVA_PKG_IUSE="source test"
-
-inherit java-pkg-2 java-ant-2
-
-DESCRIPTION="A dynamic programming language that targets the Java Virtual Machine"
-HOMEPAGE="https://clojure.org/"
-SRC_URI="https://github.com/clojure/clojure/tarball/${P} -> ${P}.tar.gz"
-
-LICENSE="EPL-1.0 Apache-2.0 BSD"
-SLOT="1.8"
-KEYWORDS="amd64 x86 ~x86-linux"
-IUSE=""
-RESTRICT="test" # patches welcome to fix the test
-
-RDEPEND=">=virtual/jre-1.6"
-DEPEND=">=virtual/jdk-1.6"
-
-S=${WORKDIR}/clojure-clojure-49e5003
-
-src_test() {
- java-pkg-2_src_test
-}
-
-src_install() {
- java-pkg_newjar ${P/_/-}.jar
- java-pkg_dolauncher ${PN}-${SLOT} --main clojure.main
- dodoc changes.md CONTRIBUTING.md readme.txt
-}
diff --git a/dev-lang/clojure/clojure-1.9.0-r1.ebuild b/dev-lang/clojure/clojure-1.9.0-r1.ebuild
deleted file mode 100644
index 25c5659590a7..000000000000
--- a/dev-lang/clojure/clojure-1.9.0-r1.ebuild
+++ /dev/null
@@ -1,50 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-JAVA_PKG_IUSE="test"
-
-inherit java-pkg-2 java-ant-2
-
-EGIT_REF="e5a8cfa"
-
-DESCRIPTION="General-purpose programming language with an emphasis on functional programming"
-HOMEPAGE="https://clojure.org/"
-SRC_URI="https://github.com/clojure/${PN}/archive/${P}.tar.gz"
-
-LICENSE="EPL-1.0 Apache-2.0 BSD"
-SLOT="1.9"
-KEYWORDS="~amd64 ~x86 ~x86-linux"
-RESTRICT="!test? ( test )" # broken due to file not found issue and more
-
-CDEPEND="
- dev-java/spec-alpha:0.1
- dev-java/core-specs-alpha:0.1
- dev-java/ant-core:0"
-
-RDEPEND="
- ${CDEPEND}
- >=virtual/jre-1.8"
-
-DEPEND="
- ${CDEPEND}
- >=virtual/jdk-1.8"
-
-S="${WORKDIR}/clojure-${PN}-${EGIT_REF}"
-
-DOCS=( changes.md CONTRIBUTING.md readme.txt )
-
-src_compile() {
- eant -Dmaven.compile.classpath=$(java-pkg_getjars core-specs-alpha-0.1,spec-alpha-0.1) -f build.xml jar
-}
-
-src_test() {
- eant -f build.xml test
-}
-
-src_install() {
- java-pkg_newjar "${PN}.jar"
- java-pkg_dolauncher ${PN}-${SLOT} --main clojure.main
- einstalldocs
-}
diff --git a/dev-lang/clojure/files/add-compile-spec-ant-build-target.patch b/dev-lang/clojure/files/add-compile-spec-ant-build-target.patch
new file mode 100644
index 000000000000..5faea8013122
--- /dev/null
+++ b/dev-lang/clojure/files/add-compile-spec-ant-build-target.patch
@@ -0,0 +1,54 @@
+From 3270c158d191f7e59540667c2dbe6c5dc7a19a59 Mon Sep 17 00:00:00 2001
+From: Florian Schmaus <flo@geekplace.eu>
+Date: Thu, 17 Jun 2021 14:52:01 +0200
+Subject: [PATCH] Add compile-spec ant build target
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Suggested-by: Göktürk Yüksek <gokturk@gentoo.org>
+---
+ build.xml | 20 +++++++++++++++++++-
+ 1 file changed, 19 insertions(+), 1 deletion(-)
+
+diff --git a/build.xml b/build.xml
+index 4d29bbf9a27e..dc742113938f 100644
+--- a/build.xml
++++ b/build.xml
+@@ -85,6 +85,24 @@
+ </java>
+ </target>
+
++ <target name="compile-spec"
++ description="Compile Clojure spec sources."
++ depends="compile-java">
++ <java classname="clojure.lang.Compile"
++ classpath="${build}:${cljsrc}"
++ failonerror="true"
++ fork="true">
++ <sysproperty key="clojure.compile.path" value="${build}"/>
++ <sysproperty key="clojure.compiler.direct-linking" value="true"/>
++ <sysproperty key="clojure.spec.skip-macros" value="true"/>
++ <sysproperty key="java.awt.headless" value="true"/>
++ <arg value="clojure.spec.alpha"/>
++ <arg value="clojure.spec.gen.alpha"/>
++ <arg value="clojure.spec.test.alpha"/>
++ <arg value="clojure.core.specs.alpha"/>
++ </java>
++ </target>
++
+ <target name="compile-tests"
+ description="Compile the subset of tests that require compilation."
+ unless="maven.test.skip">
+@@ -149,7 +167,7 @@
+
+ <target name="build"
+ description="Build Clojure (compilation only, no tests)."
+- depends="compile-java, compile-clojure"/>
++ depends="compile-java, compile-clojure, compile-spec"/>
+
+ <target name="jar" depends="build"
+ description="Create clojure jar file.">
+--
+2.31.1
+
diff --git a/dev-lang/clojure/metadata.xml b/dev-lang/clojure/metadata.xml
index d3f6b1a43343..c8dc47d3cf3a 100644
--- a/dev-lang/clojure/metadata.xml
+++ b/dev-lang/clojure/metadata.xml
@@ -1,7 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+
<pkgmetadata>
- <!-- maintainer-needed -->
+ <maintainer type="person">
+ <email>xgqt@gentoo.org</email>
+ <name>Maciej Barć</name>
+ </maintainer>
<upstream>
<remote-id type="github">clojure/clojure</remote-id>
</upstream>
diff --git a/dev-lang/closure-compiler-bin/Manifest b/dev-lang/closure-compiler-bin/Manifest
index 8ef636f3f9a8..5b600cd386e8 100644
--- a/dev-lang/closure-compiler-bin/Manifest
+++ b/dev-lang/closure-compiler-bin/Manifest
@@ -1 +1 @@
-DIST closure-compiler-bin-20170218.tar.gz 6515448 BLAKE2B ddf7600776445c90059bcee037596af9c7b14265d55c51c1c4a2a55acf2fc97e8f9ab04f854f8a7ba0a32147e63c9e4e7723f4d7f34e842efae96fc86953d305 SHA512 4ddbb339615edb104ddcb84775b1da2f096d49dc921b70c5094a7b7afba25e40c1212bbc9f0e51ad643a3a72bfc46a301efcadd7909d09a77d0bb5e68e41bd81
+DIST closure-compiler-v20240317.jar 13984957 BLAKE2B cc9fd9e7dca6a95e62fe6d922dfad90d654ddddf15cd001c75a60ea5a893cea20e59d70b9a053d6b69853fc16c249c5994b2cff093838ff3fa79af0d5964313b SHA512 7bf276195fc6857e491cc16b12b33e1da55988c634ec5fea34d5b67e11e6caed91afff1d81bd91d77863200301f098549526d543be9c54eee4550bc20791a295
diff --git a/dev-lang/closure-compiler-bin/closure-compiler-bin-20170218.ebuild b/dev-lang/closure-compiler-bin/closure-compiler-bin-20170218.ebuild
deleted file mode 100644
index de842c3bfd89..000000000000
--- a/dev-lang/closure-compiler-bin/closure-compiler-bin-20170218.ebuild
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="5"
-
-inherit java-pkg-2
-
-DESCRIPTION="JavaScript optimizing compiler"
-HOMEPAGE="https://github.com/google/closure-compiler"
-SRC_URI="https://dl.google.com/closure-compiler/compiler-${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE=""
-
-RDEPEND=">=virtual/jre-1.6"
-
-S=${WORKDIR}
-
-src_install() {
- java-pkg_jarinto /opt/${PN}-${SLOT}/lib
- java-pkg_newjar ${PN%-bin}-v${PV}.jar ${PN}.jar
- java-pkg_dolauncher \
- ${PN%-bin} \
- --jar /opt/${PN}-${SLOT}/lib/${PN}.jar \
- -into /opt
- dodoc README.md
-}
diff --git a/dev-lang/closure-compiler-bin/closure-compiler-bin-20240317.ebuild b/dev-lang/closure-compiler-bin/closure-compiler-bin-20240317.ebuild
new file mode 100644
index 000000000000..1790b462aa70
--- /dev/null
+++ b/dev-lang/closure-compiler-bin/closure-compiler-bin-20240317.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit java-pkg-2
+
+MY_PN="${PN%-bin}"
+MY_P="${MY_PN}-v${PV}"
+
+DESCRIPTION="JavaScript optimizing compiler"
+HOMEPAGE="https://developers.google.com/closure/compiler/
+ https://github.com/google/closure-compiler/"
+SRC_URI="https://repo1.maven.org/maven2/com/google/javascript/${MY_PN}/v${PV}/${MY_P}.jar"
+S="${WORKDIR}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="
+ >=virtual/jre-1.8:*
+"
+
+src_unpack() {
+ :
+}
+
+src_compile() {
+ :
+}
+
+src_install() {
+ java-pkg_jarinto "/opt/${PN}-${SLOT}/lib"
+ java-pkg_newjar "${DISTDIR}/${MY_P}.jar" "${PN}.jar"
+
+ local -a dolauncher_opts=(
+ "${MY_PN}"
+ --jar "/opt/${PN}-${SLOT}/lib/${PN}.jar"
+ -into /opt
+ )
+ java-pkg_dolauncher "${dolauncher_opts[@]}"
+}
diff --git a/dev-lang/closure-compiler-bin/metadata.xml b/dev-lang/closure-compiler-bin/metadata.xml
index 4b808e719a5a..d510a7025973 100644
--- a/dev-lang/closure-compiler-bin/metadata.xml
+++ b/dev-lang/closure-compiler-bin/metadata.xml
@@ -1,8 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+
<pkgmetadata>
- <!-- maintainer-needed -->
+ <maintainer type="person">
+ <email>xgqt@gentoo.org</email>
+ <name>Maciej Barć</name>
+ </maintainer>
+ <longdescription>
+ The Closure Compiler is a tool for making JavaScript download and run
+ faster. It is a true compiler for JavaScript. Instead of compiling from a
+ source language to machine code, it compiles from JavaScript to better
+ JavaScript. It parses your JavaScript, analyzes it, removes dead code and
+ rewrites and minimizes what's left. It also checks syntax, variable
+ references, and types, and warns about common JavaScript pitfalls.
+ </longdescription>
<upstream>
+ <bugs-to>https://github.com/google/closure-compiler/issues/</bugs-to>
<remote-id type="github">google/closure-compiler</remote-id>
</upstream>
</pkgmetadata>
diff --git a/dev-lang/coffee-script/Manifest b/dev-lang/coffee-script/Manifest
index 95c44ccf2ecf..17608fb122ab 100644
--- a/dev-lang/coffee-script/Manifest
+++ b/dev-lang/coffee-script/Manifest
@@ -1 +1 @@
-DIST coffee-script-2.5.1.tar.gz 2226483 BLAKE2B 5a2c5f93d46b111aeda63077f60992232a768008187ba0e41bec885184fbbbb91014620fca5d8e38cfdb5e88de483425d3d95c87779f27d7450de7cbe62b489b SHA512 99f11f0822ffc841552cf6c78a28d152554f070df6d1b729bdd17df8ba6faae6ed2ba9886f7ee13ccb316de698ab8624370287274611fe90bef033d9f76c5865
+DIST coffee-script-2.7.0.tar.gz 2271083 BLAKE2B b79f8a3f3edd60b43e4f09c940a6461819199edf9d16dcb7f555a0230c45a9d7c86d2467a3c126e436c23245adaa4c26518dc820c222ce87118217db1ff2c252 SHA512 1a3ce93f67c3361ce8c8c182e4a8170b05019b08557c14285ed7ed7620e501717d97a991f0ebb884845811fdc2d5d76ba5fe4a92adebc3a8b3331b483eded5ab
diff --git a/dev-lang/coffee-script/coffee-script-2.5.1.ebuild b/dev-lang/coffee-script/coffee-script-2.7.0.ebuild
index e042a4d9f200..9bc9146ec4dc 100644
--- a/dev-lang/coffee-script/coffee-script-2.5.1.ebuild
+++ b/dev-lang/coffee-script/coffee-script-2.7.0.ebuild
@@ -1,10 +1,12 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
MY_PN="coffeescript"
+inherit readme.gentoo-r1
+
DESCRIPTION="A little language that compiles into javascript"
HOMEPAGE="https://coffeescript.org/"
SRC_URI="https://github.com/jashkenas/${MY_PN}/archive/${PV}.tar.gz
@@ -19,23 +21,29 @@ KEYWORDS="amd64 x86"
# of NodeJS/NPM packages that aren't in the tree.
IUSE="doc examples"
-RDEPEND="net-libs/nodejs"
+RDEPEND="
+ net-libs/nodejs
+"
+
+DOC_CONTENTS="To enable installation alongside other tools the Gentoo
+maintainer decided to rename the \"cake\" executable to \"coffee-cake\"."
src_install() {
local npm_module_dir="/usr/$(get_libdir)/node/${PN}"
+
insinto "${npm_module_dir}"
doins *.js package.json
doins -r lib
dodoc CONTRIBUTING.md README.md
- if use examples; then
+ if use examples ; then
# Users should be able to run the examples without having to copy
# them to another directory and decompress them.
docompress -x "/usr/share/doc/${PF}/examples"
dodoc -r documentation/examples
fi
- if use doc; then
+ if use doc ; then
# It looks like "docs/v2" contains the output from all of the stuff
# under "documentation".
docinto "html"
@@ -47,6 +55,12 @@ src_install() {
exeinto "${npm_module_dir}/bin"
doexe bin/cake
doexe bin/coffee
- dosym "${npm_module_dir}/bin/cake" "/usr/bin/cake"
+ dosym "${npm_module_dir}/bin/cake" "/usr/bin/coffee-cake"
dosym "${npm_module_dir}/bin/coffee" "/usr/bin/coffee"
+
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ readme.gentoo_print_elog
}
diff --git a/dev-lang/coffee-script/metadata.xml b/dev-lang/coffee-script/metadata.xml
index cd39081640ef..e80b9f6c65b7 100644
--- a/dev-lang/coffee-script/metadata.xml
+++ b/dev-lang/coffee-script/metadata.xml
@@ -1,13 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+
<pkgmetadata>
- <!-- maintainer-needed -->
+ <maintainer type="person">
+ <email>xgqt@gentoo.org</email>
+ <name>Maciej Barć</name>
+ </maintainer>
+ <longdescription>
+ CoffeeScript is a little language that compiles into JavaScript. Underneath
+ that awkward Java-esque patina, JavaScript has always had a gorgeous heart.
+ CoffeeScript is an attempt to expose the good parts of JavaScript in a
+ simple way. The golden rule of CoffeeScript is: "It's just JavaScript." The
+ code compiles one-to-one into the equivalent JS, and there is no
+ interpretation at runtime. You can use any existing JavaScript library
+ seamlessly from CoffeeScript (and vice-versa). The compiled output is
+ readable, pretty-printed, and tends to run as fast or faster than the
+ equivalent handwritten JavaScript.
+ </longdescription>
<upstream>
<remote-id type="github">jashkenas/coffeescript</remote-id>
</upstream>
- <longdescription>
- CoffeeScript is a little language that compiles into JavaScript. Underneath that awkward Java-esque patina, JavaScript has always had a gorgeous heart. CoffeeScript is an attempt to expose the good parts of JavaScript in a simple way.
-
- The golden rule of CoffeeScript is: "It's just JavaScript." The code compiles one-to-one into the equivalent JS, and there is no interpretation at runtime. You can use any existing JavaScript library seamlessly from CoffeeScript (and vice-versa). The compiled output is readable, pretty-printed, and tends to run as fast or faster than the equivalent handwritten JavaScript.
- </longdescription>
</pkgmetadata>
diff --git a/dev-lang/crystal/Manifest b/dev-lang/crystal/Manifest
index 1dbc5dcbd597..890098d53fae 100644
--- a/dev-lang/crystal/Manifest
+++ b/dev-lang/crystal/Manifest
@@ -1,3 +1,4 @@
-DIST crystal-0.35.1-1-linux-i686.tar.gz 28330633 BLAKE2B 1f393ad53f2643b4514de54192047f549cffa22b14afbf25d9de00bf815378ec65a5049a9eee28753dc13bc9fea40447be109f21b55518a6ed8f06353a0b26e6 SHA512 333c2cdbd40ef65de52c1056e6089628ed83daf1a1e9d5243e876b622545d767077b485003ae7efaedeb7807c03c40e6f356cbdcce4dab2319c1686da120dac0
-DIST crystal-0.35.1-1-linux-x86_64.tar.gz 26653426 BLAKE2B a4ab58e784af3cd0298057a35079dfb48c9ca8d56388394377b86d7475d143a07cc3a800cdee3c9af3054d249ac9b87808d86b25747fc8f9322d01f25a3e3dec SHA512 1cceea5742651e2708e19ea49a7a884500d21beec3eaed75fc9e4b82e7dabaa521143b6c576ec48d2f5e27951163fd8c2ae417f46a1847c68f6e91c9b2a9a72a
-DIST crystal-0.35.1.tar.gz 2349984 BLAKE2B bf9078c949499e3f8469a055908c23335b04f2a58ab323345bdcdf1de70d00cdfe3aae7baf93e5098e21852c59d1cd8a0fb4faa91c9877d7ef2347a5faeaa69c SHA512 0381568330802de5838f8e66600567817b60ba0087bb3cc2b5df2944c5c42779039b606c81e0207bef34082bf25331b590a8140830f65ba4106ae465f717000b
+DIST crystal-1.11.2-1-linux-x86_64.tar.gz 46947860 BLAKE2B c3f08d8a399c139f2eb465857142ad6faaf6925459318d5e6b5b5b879974cc63f43c99f8b2d1fa852fe239a81c0341e24c84023b8b8113bc2bfe9e4fe03c8346 SHA512 54cf8e24d5bd87602a65d22dfa0bbe3520b49cedb430d0652066caf2f47d1cea1bafdb852133a886f3c3b324826212dfa82ac15475ef044016b4b8210e20da39
+DIST crystal-1.11.2.tar.gz 3620048 BLAKE2B 3838f43897ba74a3c7f5717ba795f38cfd4265bbcbe11fa5a155d196afae40c60f7b5789c5d97e94eea1a1affb2cbd5c7fa9208e74a0fa7fa932b013e6124923 SHA512 e9b828539359fbae93799654f39b75c0c72764348ae279da326ac4ff4d2fa8e693c01956f5bc7ce1fff1504156049bf2b261c8defbde9cb690e1e84c13c8a296
+DIST crystal-1.12.1-1-linux-x86_64.tar.gz 47041074 BLAKE2B 7e5d4a422144902de4b187947d55f9e8069d55f51013e10236fcf79b142ff96fc39973c883f5a633fbd10180553b6c82bdea824bff09d355fa171e4f5e308b68 SHA512 3256dc2340ed7b783bdf7e5f3d5c03cf981655ac2f50921aa53ada13cc72315d5a70515adb1c511f0f6e37c09310a963773b4f57eaeffe34c68e539edaaa7726
+DIST crystal-1.12.1.tar.gz 3657963 BLAKE2B 42cf32dca63a2bdd2925b4970e2277cb163ddcdbcbc997b7c72b155024f642d03c5a565e82dfc8a2b1aed0d3f877633beb9d128eb592485c034bfdcbc3f5baab SHA512 bd0c085d44a473b86797fa64ce9a5c66c7d3eda44bdba929faee490b635aef45bdf84b45baaa5dfea8e2b6fd218d1ae7fbdf117d3924b04b284075d4a500e55c
diff --git a/dev-lang/crystal/crystal-0.35.1.ebuild b/dev-lang/crystal/crystal-0.35.1.ebuild
deleted file mode 100644
index b5aa87303660..000000000000
--- a/dev-lang/crystal/crystal-0.35.1.ebuild
+++ /dev/null
@@ -1,121 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit bash-completion-r1 llvm multiprocessing toolchain-funcs
-
-BV=${PV}-1
-BV_AMD64=${BV}-linux-x86_64
-BV_X86=${BV}-linux-i686
-
-DESCRIPTION="The Crystal Programming Language"
-HOMEPAGE="https://crystal-lang.org"
-SRC_URI="https://github.com/crystal-lang/crystal/archive/${PV}.tar.gz -> ${P}.tar.gz
- amd64? ( https://github.com/crystal-lang/crystal/releases/download/${BV/-*}/crystal-${BV_AMD64}.tar.gz )
- x86? ( https://github.com/crystal-lang/crystal/releases/download/${BV/-*}/crystal-${BV_X86}.tar.gz )"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64"
-IUSE="doc debug examples blocking-stdio-hack +xml +yaml"
-
-RESTRICT=test # not stable for day-to-day runs
-
-LLVM_MAX_SLOT=10
-
-DEPEND="
- sys-devel/llvm:${LLVM_MAX_SLOT}
- dev-libs/boehm-gc[static-libs,threads]
- dev-libs/libatomic_ops
- dev-libs/libevent
- dev-libs/libpcre
- sys-libs/libunwind
- dev-libs/pcl
- dev-libs/gmp:0
-"
-RDEPEND="${DEPEND}
- xml? ( dev-libs/libxml2 )
- yaml? ( dev-libs/libyaml )
-"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-0.31.0-verbose.patch
- "${FILESDIR}"/${PN}-0.26.1-gentoo-tests-sandbox.patch
- "${FILESDIR}"/${PN}-0.27.0-extra-spec-flags.patch
- #"${FILESDIR}"/${PN}-0.27.0-max-age-0-test.patch
- "${FILESDIR}"/${PN}-0.27.0-gentoo-tests-long-unix.patch
- "${FILESDIR}"/${PN}-0.27.0-gentoo-tests-long-unix-2.patch
-)
-
-src_prepare() {
- default
-
- use blocking-stdio-hack && eapply "${FILESDIR}"/"${PN}"-0.22.0-blocking-stdio-hack.patch
-}
-
-src_compile() {
- local bootstrap_path=${WORKDIR}/${PN}-${BV}/bin
- if [[ ! -d ${bootstrap_path} ]]; then
- eerror "Binary tarball does not contain expected directory:"
- die "'${bootstrap_path}' path does not exist."
- fi
-
- # crystal uses 'LLVM_TARGETS' to override default list of targets
- unset LLVM_TARGETS
- emake \
- $(usex debug "" release=1) \
- progress=true \
- stats=1 \
- threads=$(makeopts_jobs) \
- verbose=1 \
- \
- CC=$(tc-getCC) \
- CXX=$(tc-getCXX) \
- AR=$(tc-getAR) \
- \
- PATH="${bootstrap_path}:${PATH}" \
- CRYSTAL_PATH=src \
- CRYSTAL_CONFIG_VERSION=${PV} \
- CRYSTAL_CONFIG_PATH="lib:${EPREFIX}/usr/$(get_libdir)/crystal"
- use doc && emake docs
-}
-
-src_test() {
- # EXTRA_SPEC_FLAGS is useful to debug individual tests
- # as part of full build:
- # USE=debug EXTRA_SPEC_FLAGS='-e parse_set_cookie' emerge -1 crystal
- emake spec \
- $(usex debug "" release=1) \
- progress=true \
- stats=1 \
- threads=$(makeopts_jobs) \
- verbose=1 \
- \
- CC=$(tc-getCC) \
- CXX=$(tc-getCXX) \
- AR=$(tc-getAR) \
- \
- CRYSTAL_PATH=src \
- CRYSTAL_CONFIG_VERSION=${PV} \
- \
- "EXTRA_SPEC_FLAGS=${EXTRA_SPEC_FLAGS}"
-}
-
-src_install() {
- insinto /usr/$(get_libdir)/crystal
- doins -r src/.
- dobin .build/crystal
-
- insinto /usr/share/zsh/site-functions
- newins etc/completion.zsh _crystal
-
- use examples && dodoc -r samples
-
- if use doc ; then
- docinto api
- dodoc -r docs/.
- fi
-
- newbashcomp etc/completion.bash ${PN}
-}
diff --git a/dev-lang/crystal/crystal-1.11.2.ebuild b/dev-lang/crystal/crystal-1.11.2.ebuild
new file mode 100644
index 000000000000..92f5bc42f945
--- /dev/null
+++ b/dev-lang/crystal/crystal-1.11.2.ebuild
@@ -0,0 +1,120 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+BV="${PV}-1"
+BV_AMD64="${BV}-linux-x86_64"
+
+LLVM_MAX_SLOT=17
+
+inherit bash-completion-r1 llvm multiprocessing toolchain-funcs
+
+DESCRIPTION="The Crystal Programming Language"
+HOMEPAGE="https://crystal-lang.org/
+ https://github.com/crystal-lang/crystal/"
+SRC_URI="
+ https://github.com/crystal-lang/crystal/archive/${PV}.tar.gz
+ -> ${P}.tar.gz
+ amd64? (
+ https://github.com/crystal-lang/crystal/releases/download/${BV/-*}/crystal-${BV_AMD64}.tar.gz
+ )
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64"
+IUSE="doc debug llvm-libunwind"
+
+# Upstream test suite not reliable
+RESTRICT="test"
+
+DEPEND="
+ <sys-devel/llvm-$((${LLVM_MAX_SLOT} + 1)):=
+ dev-libs/boehm-gc:=[threads]
+ dev-libs/gmp:=
+ dev-libs/libatomic_ops:=
+ dev-libs/libevent:=
+ dev-libs/libpcre2:=[unicode]
+ dev-libs/pcl:=
+ llvm-libunwind? (
+ sys-libs/llvm-libunwind:=
+ )
+ !llvm-libunwind? (
+ sys-libs/libunwind:=
+ )
+"
+RDEPEND="
+ ${DEPEND}
+ dev-libs/libxml2
+ dev-libs/libyaml
+"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-1.7.2-extra-spec-flags.patch"
+ "${FILESDIR}/${PN}-0.27.0-gentoo-tests-long-unix.patch"
+ "${FILESDIR}/${PN}-0.27.0-gentoo-tests-long-unix-2.patch"
+)
+
+src_configure() {
+ local bootstrap_path="${WORKDIR}/${PN}-${BV}/bin"
+ if [[ ! -d "${bootstrap_path}" ]] ; then
+ eerror "Binary tarball does not contain expected directory:"
+ die "'${bootstrap_path}' path does not exist."
+ fi
+
+ # crystal uses 'LLVM_TARGETS' to override default list of targets
+ unset LLVM_TARGETS
+
+ MY_EMAKE_COMMON_ARGS=(
+ PATH="${bootstrap_path}:${PATH}"
+
+ CRYSTAL_CONFIG_VERSION="${PV}"
+ CRYSTAL_CONFIG_PATH="lib:${EPREFIX}/usr/$(get_libdir)/crystal"
+
+ $(usex debug "" release=1)
+ progress=true
+ stats=1
+ threads="$(makeopts_jobs)"
+ verbose=1
+
+ AR="$(tc-getAR)"
+ CC="$(tc-getCC)"
+ CXX="$(tc-getCXX)"
+ LLVM_CONFIG="$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
+ )
+}
+
+src_compile() {
+ emake "${MY_EMAKE_COMMON_ARGS[@]}"
+
+ use doc && emake docs "${MY_EMAKE_COMMON_ARGS[@]}"
+}
+
+src_test() {
+ # EXTRA_SPEC_FLAGS is useful to debug individual tests
+ # as part of full build:
+ # USE=debug EXTRA_SPEC_FLAGS='-e parse_set_cookie' emerge -1 crystal
+ emake std_spec \
+ "${MY_EMAKE_COMMON_ARGS[@]}" "EXTRA_SPEC_FLAGS=${EXTRA_SPEC_FLAGS}"
+}
+
+src_install() {
+ insinto "/usr/$(get_libdir)/crystal"
+ doins -r src/.
+
+ exeinto /usr/bin
+ doexe .build/crystal
+
+ insinto /usr/share/zsh/site-functions
+ newins etc/completion.zsh _crystal
+
+ dodoc -r samples
+ doman "man/${PN}.1"
+ newbashcomp etc/completion.bash "${PN}"
+
+ if use doc ; then
+ docinto api
+ dodoc -r docs/.
+ fi
+}
diff --git a/dev-lang/crystal/crystal-1.12.1.ebuild b/dev-lang/crystal/crystal-1.12.1.ebuild
new file mode 100644
index 000000000000..02631f5f838f
--- /dev/null
+++ b/dev-lang/crystal/crystal-1.12.1.ebuild
@@ -0,0 +1,120 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+BV="${PV}-1"
+BV_AMD64="${BV}-linux-x86_64"
+
+LLVM_MAX_SLOT=17
+
+inherit bash-completion-r1 llvm multiprocessing toolchain-funcs
+
+DESCRIPTION="The Crystal Programming Language"
+HOMEPAGE="https://crystal-lang.org/
+ https://github.com/crystal-lang/crystal/"
+SRC_URI="
+ https://github.com/crystal-lang/crystal/archive/${PV}.tar.gz
+ -> ${P}.tar.gz
+ amd64? (
+ https://github.com/crystal-lang/crystal/releases/download/${BV/-*}/crystal-${BV_AMD64}.tar.gz
+ )
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="doc debug llvm-libunwind"
+
+# Upstream test suite not reliable
+RESTRICT="test"
+
+DEPEND="
+ <sys-devel/llvm-$((${LLVM_MAX_SLOT} + 1)):=
+ dev-libs/boehm-gc:=[threads]
+ dev-libs/gmp:=
+ dev-libs/libatomic_ops:=
+ dev-libs/libevent:=
+ dev-libs/libpcre2:=[unicode]
+ dev-libs/pcl:=
+ llvm-libunwind? (
+ sys-libs/llvm-libunwind:=
+ )
+ !llvm-libunwind? (
+ sys-libs/libunwind:=
+ )
+"
+RDEPEND="
+ ${DEPEND}
+ dev-libs/libxml2
+ dev-libs/libyaml
+"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-1.7.2-extra-spec-flags.patch"
+ "${FILESDIR}/${PN}-0.27.0-gentoo-tests-long-unix.patch"
+ "${FILESDIR}/${PN}-0.27.0-gentoo-tests-long-unix-2.patch"
+)
+
+src_configure() {
+ local bootstrap_path="${WORKDIR}/${PN}-${BV}/bin"
+ if [[ ! -d "${bootstrap_path}" ]] ; then
+ eerror "Binary tarball does not contain expected directory:"
+ die "'${bootstrap_path}' path does not exist."
+ fi
+
+ # crystal uses 'LLVM_TARGETS' to override default list of targets
+ unset LLVM_TARGETS
+
+ MY_EMAKE_COMMON_ARGS=(
+ PATH="${bootstrap_path}:${PATH}"
+
+ CRYSTAL_CONFIG_VERSION="${PV}"
+ CRYSTAL_CONFIG_PATH="lib:${EPREFIX}/usr/$(get_libdir)/crystal"
+
+ $(usex debug "" release=1)
+ progress=true
+ stats=1
+ threads="$(makeopts_jobs)"
+ verbose=1
+
+ AR="$(tc-getAR)"
+ CC="$(tc-getCC)"
+ CXX="$(tc-getCXX)"
+ LLVM_CONFIG="$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
+ )
+}
+
+src_compile() {
+ emake "${MY_EMAKE_COMMON_ARGS[@]}"
+
+ use doc && emake docs "${MY_EMAKE_COMMON_ARGS[@]}"
+}
+
+src_test() {
+ # EXTRA_SPEC_FLAGS is useful to debug individual tests
+ # as part of full build:
+ # USE=debug EXTRA_SPEC_FLAGS='-e parse_set_cookie' emerge -1 crystal
+ emake std_spec \
+ "${MY_EMAKE_COMMON_ARGS[@]}" "EXTRA_SPEC_FLAGS=${EXTRA_SPEC_FLAGS}"
+}
+
+src_install() {
+ insinto "/usr/$(get_libdir)/crystal"
+ doins -r src/.
+
+ exeinto /usr/bin
+ doexe .build/crystal
+
+ insinto /usr/share/zsh/site-functions
+ newins etc/completion.zsh _crystal
+
+ dodoc -r samples
+ doman "man/${PN}.1"
+ newbashcomp etc/completion.bash "${PN}"
+
+ if use doc ; then
+ docinto api
+ dodoc -r docs/.
+ fi
+}
diff --git a/dev-lang/crystal/files/crystal-0.22.0-blocking-stdio-hack.patch b/dev-lang/crystal/files/crystal-0.22.0-blocking-stdio-hack.patch
deleted file mode 100644
index 07b7dba7be65..000000000000
--- a/dev-lang/crystal/files/crystal-0.22.0-blocking-stdio-hack.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-Workaround tty corruption in crystal.
-
-Patch restores blocking mode of file desriptors
-in exchange of potential runtime deadlocks
-when dealing with stdio.
-
-Reported-by: Renich Bon Ciric
-Bug: https://github.com/crystal-lang/crystal/issues/2065
-Bug: https://bugs.gentoo.org/616256
-diff --git a/src/compiler/crystal/stdio.cr b/src/compiler/crystal/stdio.cr
-new file mode 100644
-index 000000000..e65f65089
---- /dev/null
-+++ b/src/compiler/crystal/stdio.cr
-@@ -0,0 +1,5 @@
-+module Crystal
-+ STDIN.blocking = true
-+ STDOUT.blocking=true
-+ STDERR.blocking = true
-+end
diff --git a/dev-lang/crystal/files/crystal-0.26.1-gentoo-tests-sandbox.patch b/dev-lang/crystal/files/crystal-0.26.1-gentoo-tests-sandbox.patch
deleted file mode 100644
index cab165c39059..000000000000
--- a/dev-lang/crystal/files/crystal-0.26.1-gentoo-tests-sandbox.patch
+++ /dev/null
@@ -1,22 +0,0 @@
---- a/spec/std/file_spec.cr
-+++ b/spec/std/file_spec.cr
-@@ -1164,3 +1164,4 @@ describe "File" do
- # TODO: there is no file which is reliably unwritable on windows
-- pending_win32 "raises if file cannot be accessed" do
-+ # On linux(or sandbox?) it's "Permission denied", not "Operation not permitted"
-+ pending "raises if file cannot be accessed" do
- expect_raises Errno, "Operation not permitted" do
---- a/spec/std/process_spec.cr
-+++ b/spec/std/process_spec.cr
-@@ -135,3 +135,4 @@ describe Process do
- describe "environ" do
-- it "clears the environment" do
-+ #gentoo's sandbox keeps sandbox environment
-+ pending "clears the environment" do
- value = Process.run("env", clear_env: true) do |proc|
-@@ -142,3 +143,4 @@ describe Process do
-
-- it "sets an environment variable" do
-+ #gentoo's sandbox keeps sandbox environment
-+ pending "sets an environment variable" do
- env = {"FOO" => "bar"}
diff --git a/dev-lang/crystal/files/crystal-0.27.0-extra-spec-flags.patch b/dev-lang/crystal/files/crystal-0.27.0-extra-spec-flags.patch
deleted file mode 100644
index bd86c13a78a6..000000000000
--- a/dev-lang/crystal/files/crystal-0.27.0-extra-spec-flags.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-Allow injecting additional arguments to test suite.
-Useful to be able to run small subset of individual
-test suite:
-
- make spec EXTRA_SPEC_FLAGS='-e parse_set_cookie'
-
---- a/Makefile
-+++ b/Makefile
-@@ -31 +31 @@ override FLAGS += $(if $(release),--release )$(if $(stats),--stats )$(if $(progr
--SPEC_FLAGS := $(if $(verbose),-v )$(if $(junit_output),--junit_output $(junit_output) )
-+SPEC_FLAGS := $(if $(verbose),-v )$(if $(junit_output),--junit_output $(junit_output) )$(EXTRA_SPEC_FLAGS)
diff --git a/dev-lang/crystal/files/crystal-0.27.0-max-age-0-test.patch b/dev-lang/crystal/files/crystal-0.27.0-max-age-0-test.patch
deleted file mode 100644
index d78927ab3eef..000000000000
--- a/dev-lang/crystal/files/crystal-0.27.0-max-age-0-test.patch
+++ /dev/null
@@ -1,14 +0,0 @@
---- a/spec/std/http/cookie_spec.cr
-+++ b/spec/std/http/cookie_spec.cr
-@@ -150,7 +150,10 @@ module HTTP
- parse_set_cookie("a=1; domain=127.0.0.1; path=/; HttpOnly").domain.should eq "127.0.0.1"
- end
-
-- it "parse max-age as seconds from Time.now" do
-+ # unstable test: sometimes 'now - max-age=0' == 0.0:
-+ # Failure/Error: delta.should be > 0.seconds
-+ # Expected 00:00:00 to be > 00:00:00
-+ pending "parse max-age as seconds from Time.now" do
- cookie = parse_set_cookie("a=1; max-age=10")
- delta = cookie.expires.not_nil! - Time.now
- delta.should be > 9.seconds
diff --git a/dev-lang/crystal/files/crystal-0.31.0-verbose.patch b/dev-lang/crystal/files/crystal-0.31.0-verbose.patch
deleted file mode 100644
index f381704ba0d9..000000000000
--- a/dev-lang/crystal/files/crystal-0.31.0-verbose.patch
+++ /dev/null
@@ -1,7 +0,0 @@
---- a/Makefile
-+++ b/Makefile
-@@ -29,3 +29,3 @@ SOURCES := $(shell find src -name '*.cr')
- SPEC_SOURCES := $(shell find spec -name '*.cr')
--override FLAGS += $(if $(release),--release )$(if $(stats),--stats )$(if $(progress),--progress )$(if $(threads),--threads $(threads) )$(if $(debug),-d )$(if $(static),--static )$(if $(LDFLAGS),--link-flags="$(LDFLAGS)" )
-+override FLAGS += $(if $(release),--release )$(if $(stats),--stats )$(if $(progress),--progress )$(if $(threads),--threads $(threads) )$(if $(debug),-d )$(if $(static),--static )$(if $(LDFLAGS),--link-flags="$(LDFLAGS)" )$(if $(verbose),--verbose )
- SPEC_FLAGS := $(if $(verbose),-v )$(if $(junit_output),--junit_output $(junit_output) )
diff --git a/dev-lang/crystal/files/crystal-1.7.2-extra-spec-flags.patch b/dev-lang/crystal/files/crystal-1.7.2-extra-spec-flags.patch
new file mode 100644
index 000000000000..cc9e21abcbd6
--- /dev/null
+++ b/dev-lang/crystal/files/crystal-1.7.2-extra-spec-flags.patch
@@ -0,0 +1,11 @@
+--- a/Makefile
++++ b/Makefile
+@@ -33,7 +33,7 @@ SOURCES := $(shell find src -name '*.cr')
+ SPEC_SOURCES := $(shell find spec -name '*.cr')
+ override FLAGS += -D strict_multi_assign -D preview_overload_order $(if $(release),--release )$(if $(stats),--stats )$(if $(progress),--progress )$(if $(threads),--threads $(threads) )$(if $(debug),-d )$(if $(static),--static )$(if $(LDFLAGS),--link-flags="$(LDFLAGS)" )$(if $(target),--cross-compile --target $(target) )$(if $(interpreter),,-Dwithout_interpreter )
+ SPEC_WARNINGS_OFF := --exclude-warnings spec/std --exclude-warnings spec/compiler --exclude-warnings spec/primitives
+-SPEC_FLAGS := $(if $(verbose),-v )$(if $(junit_output),--junit_output $(junit_output) )$(if $(order),--order=$(order) )
++SPEC_FLAGS := $(if $(verbose),-v )$(if $(junit_output),--junit_output $(junit_output) )$(if $(order),--order=$(order) )$(EXTRA_SPEC_FLAGS)
+ CRYSTAL_CONFIG_LIBRARY_PATH := '$$ORIGIN/../lib/crystal'
+ CRYSTAL_CONFIG_BUILD_COMMIT := $(shell git rev-parse --short HEAD 2> /dev/null)
+ CRYSTAL_CONFIG_PATH := '$$ORIGIN/../share/crystal/src'
diff --git a/dev-lang/crystal/metadata.xml b/dev-lang/crystal/metadata.xml
index 76b2f7772585..e07ed6579205 100644
--- a/dev-lang/crystal/metadata.xml
+++ b/dev-lang/crystal/metadata.xml
@@ -1,33 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+
<pkgmetadata>
- <maintainer type="person">
- <email>slyfox@gentoo.org</email>
- <name>Sergei Trofimovich</name>
- </maintainer>
- <longdescription lang="en">
- Crystal is a programming language that resembles Ruby but compiles to
- native code and tries to be much more efficient, at the cost of
- disallowing certain dynamic aspects of Ruby.
- </longdescription>
- <use>
- <flag name="debug">
- Build each module as a separate object file. Speeds build up.
- </flag>
- <flag name="blocking-stdio-hack">
- Keep STDIO file descriptors in blocking mode.
- </flag>
- <flag name="yaml">
- Use the <pkg>dev-libs/libyaml</pkg> library to enable Crystal yaml
- module
- </flag>
- <flag name="xml">
- Use the <pkg>dev-libs/libxml2</pkg> library to enable Crystal xml
- module
- </flag>
- </use>
- <upstream>
- <remote-id type="github">manastech/crystal</remote-id>
- </upstream>
+ <maintainer type="person">
+ <email>xgqt@gentoo.org</email>
+ <name>Maciej Barć</name>
+ </maintainer>
+ <longdescription lang="en">
+ Crystal is a programming language that resembles Ruby but compiles to
+ native code and tries to be much more efficient, at the cost of disallowing
+ certain dynamic aspects of Ruby.
+ </longdescription>
+ <use>
+ <flag name="debug">Build each module as a separate object file. Speeds build up.</flag>
+ </use>
+ <upstream>
+ <bugs-to>https://github.com/crystal-lang/crystal/issues/</bugs-to>
+ <remote-id type="github">crystal-lang/crystal</remote-id>
+ </upstream>
</pkgmetadata>
-
diff --git a/dev-lang/cue/Manifest b/dev-lang/cue/Manifest
new file mode 100644
index 000000000000..2b920ce03d5c
--- /dev/null
+++ b/dev-lang/cue/Manifest
@@ -0,0 +1,2 @@
+DIST cue-0.7.0-deps.tar.xz 31145680 BLAKE2B 51ac9c199515caff4bbc5d35102d4bcecd358588bb973dd7bdf3cd289d0bfc1a47c4fa6cd78ccb1e163eda2f223e9b770c62a9055b84bd94aa828745fba09441 SHA512 7e2028ef7757ac2dbcade2f803f291f07cf79ed778ac24e76c5694118ef0a53f7dec06814b3c522f4cd63358bf58e425169a7d7173a715e82d974367290e9a9c
+DIST cue-0.7.0.tar.gz 1504772 BLAKE2B 3e10258105ae36462d77f501ee8ee32bcab79649017e663f346fc06188a3d2d143f72861f5f109b4129283fbbed5e06a0cf4adba98be6317da2c596f7390f168 SHA512 471ebc4ac81dfc0df42d8e8bd5e858b8a2f958c909ccd0b391ed4af669e7eba3908bcde63ca21973f072e35f66d307180fb3fc43627eb4de6385011bcf48aed1
diff --git a/dev-lang/cue/cue-0.7.0.ebuild b/dev-lang/cue/cue-0.7.0.ebuild
new file mode 100644
index 000000000000..810334738868
--- /dev/null
+++ b/dev-lang/cue/cue-0.7.0.ebuild
@@ -0,0 +1,24 @@
+# Copyright 2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+inherit go-module
+
+DESCRIPTION="open-source data validation language and inference engine"
+HOMEPAGE="https://cuelang.org"
+SRC_URI="https://github.com/cue-lang/cue/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+SRC_URI+=" https://dev.gentoo.org/~williamh/dist/${P}-deps.tar.xz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+
+src_compile() {
+ ego build -o bin/cue ./cmd/cue
+}
+
+src_install() {
+ dobin bin/*
+ einstalldocs
+dodoc -r doc
+}
diff --git a/dev-lang/cue/metadata.xml b/dev-lang/cue/metadata.xml
new file mode 100644
index 000000000000..3b2a9c591010
--- /dev/null
+++ b/dev-lang/cue/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="person">
+<email>williamh@gentoo.org</email>
+<name>William Hubbs</name>
+</maintainer>
+</pkgmetadata>
diff --git a/dev-lang/cxprolog/cxprolog-0.98.2.ebuild b/dev-lang/cxprolog/cxprolog-0.98.2-r1.ebuild
index a89a12f52e41..c6949fbe3d57 100644
--- a/dev-lang/cxprolog/cxprolog-0.98.2.ebuild
+++ b/dev-lang/cxprolog/cxprolog-0.98.2-r1.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-WX_GTK_VER="3.0-gtk3"
+WX_GTK_VER="3.2-gtk3"
VIRTUALX_REQUIRED="manual"
inherit flag-o-matic java-pkg-opt-2 java-ant-2 toolchain-funcs virtualx wxwidgets
@@ -32,6 +32,7 @@ S="${WORKDIR}"/${P}
src_prepare() {
eapply "${FILESDIR}"/${P}-portage.patch
+ eapply "${FILESDIR}"/${P}-printf-musl.patch
eapply "${FILESDIR}"/${P}-test-io.patch
eapply_user
@@ -58,7 +59,10 @@ src_compile() {
local java_arch
use x86 && java_arch=i386
use amd64 && java_arch=amd64
- CX_JVM="${JAVA_HOME}/jre/lib/${java_arch}/server"
+ local CX_JVM
+ for i in jre/lib/${java_arch}/server lib/server; do
+ [[ -f ${JAVA_HOME}/${i}/libjvm.so ]] && CX_JVM=${JAVA_HOME}/${i}
+ done
CX_EXT_DEFINES="$CX_EXT_DEFINES -DUSE_JAVA"
CX_EXT_CFLAGS="$CX_EXT_CFLAGS $(java-pkg_get-jni-cflags)"
CX_EXT_LDFLAGS="$CX_EXT_LDFLAGS -Wl,-rpath,${CX_JVM}"
@@ -74,9 +78,9 @@ src_compile() {
emake lib \
PREFIX=/usr \
TMP_DIR="${S}/tmp" \
- CC=$(tc-getCC) \
- CPP=$(tc-getCXX) \
- LD=$(tc-getLD) \
+ CC="$(tc-getCC)" \
+ CPP="$(tc-getCXX)" \
+ LD="$(tc-getLD)" \
CFLAGS="${CFLAGS}" \
LDFLAGS="${LDFLAGS}" \
EXT_DEFINES="${CX_EXT_DEFINES}" \
diff --git a/dev-lang/cxprolog/files/cxprolog-0.98.2-printf-musl.patch b/dev-lang/cxprolog/files/cxprolog-0.98.2-printf-musl.patch
new file mode 100644
index 000000000000..f55595461a80
--- /dev/null
+++ b/dev-lang/cxprolog/files/cxprolog-0.98.2-printf-musl.patch
@@ -0,0 +1,14 @@
+--- cxprolog-0.98.2.orig/src/Number.c 2016-01-23 22:07:48.000000000 +0100
++++ cxprolog-0.98.2/src/Number.c 2022-05-21 10:03:54.275367970 +0200
+@@ -282,9 +282,9 @@
+ {
+ #if HAS_LONG_DOUBLE_OPS
+ if( precision > 0 )
+- return GStrFormat("%%.%dllg", precision) ;
++ return GStrFormat("%%.%dLg", precision) ;
+ else
+- return GStrFormat("%%.%dllf", -precision) ;
++ return GStrFormat("%%.%dLf", -precision) ;
+ #else
+ if( precision > 0 )
+ return GStrFormat("%%.%dlg", precision) ;
diff --git a/dev-lang/cxprolog/metadata.xml b/dev-lang/cxprolog/metadata.xml
index 96eff3ea40c0..7b573c773244 100644
--- a/dev-lang/cxprolog/metadata.xml
+++ b/dev-lang/cxprolog/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>prolog@gentoo.org</email>
diff --git a/dev-lang/dafny-bin/Manifest b/dev-lang/dafny-bin/Manifest
new file mode 100644
index 000000000000..38ca12988222
--- /dev/null
+++ b/dev-lang/dafny-bin/Manifest
@@ -0,0 +1,3 @@
+DIST dafny-4.4.0-x64-ubuntu-20.04.zip 62873378 BLAKE2B ee471dfc0be515949bc3ec18cd46705ce35c7a0b43b8ffc35e7754cef57a3e9351b7e937b6735319d6255407b6cb46b4c0c69eab5a573fdf7671055efe3988b8 SHA512 acfd643bdf3dba7377fde8d36f3c7bfff27b575fbc212d02974958ad38fe433870128525ff22f9a76d4b1602d5253794409ce834b67c52571d395a737fc24471
+DIST dafny-4.5.0-x64-ubuntu-20.04.zip 63259963 BLAKE2B 2fd6bce2a4244b68ca2de6453e070ef05e67000667f946730608ea0806d4ee768bb612a83603b442071a4135e5a030edee38a70f0171cb1b7abd29e53cef5cbe SHA512 38c7c30ef764309eb26f9b54a2d15bac8953215915cc9a291524276609814cd76037480302f4e235710509a5cbe0e56a85bb8414be04ba8b9f63095a168543af
+DIST dafny-4.6.0-x64-ubuntu-20.04.zip 63265253 BLAKE2B ebba4490857fb9860289ccad5ea03251366ec5d745588e43a74529c3500f5f02c516bef70f4c661b3138b935e340102ea2537e0c22daf64b88941fec1ff90b4b SHA512 2537cc9d2b2a5514d5ff83988856bac4100bb381eef540870867e47d4557e54bf0889a60ad329f961366558be30590cb5c611bcc7a15305c27a1c38da629746f
diff --git a/dev-lang/dafny-bin/dafny-bin-4.4.0-r1.ebuild b/dev-lang/dafny-bin/dafny-bin-4.4.0-r1.ebuild
new file mode 100644
index 000000000000..e820db1b1174
--- /dev/null
+++ b/dev-lang/dafny-bin/dafny-bin-4.4.0-r1.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="Verification-aware programming language"
+HOMEPAGE="https://dafny.org/
+ https://github.com/dafny-lang/dafny/"
+SRC_URI="https://github.com/dafny-lang/dafny/releases/download/v${PV}/dafny-${PV}-x64-ubuntu-20.04.zip"
+S="${WORKDIR}/dafny"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="-* amd64"
+REQUIRED_USE="elibc_glibc"
+RESTRICT="strip"
+
+RDEPEND="
+ !dev-lang/dafny
+ dev-libs/userspace-rcu
+ dev-util/lttng-ust:0/2.12
+ sci-mathematics/z3
+"
+BDEPEND="
+ app-arch/unzip
+"
+
+QA_PREBUILT="*"
+
+src_prepare() {
+ default
+
+ # Remove bundled z3.
+ # NOTICE: New versions do not need the bundled one but older versions
+ # hardcoded the path relative to "dafny" binary.
+ # While bumping make sure to verify that system's "z3" is used
+ # by, for example, compiling/verifying a simple dafny program.
+ rm -r z3 || die
+}
+
+src_install() {
+ local dest=/opt/dafny
+
+ insinto ${dest}
+ # Maybe too general, but this installation mode matched how it arrives.
+ insopts -m0755
+ doins "${S}"/*
+
+ local bin
+ for bin in DafnyServer dafny ; do
+ dosym ../../${dest}/${bin} /usr/bin/${bin}
+ done
+
+ # Make "dafny-server" clients happy.
+ dosym ../../${dest}/DafnyServer /usr/bin/dafny-server
+}
diff --git a/dev-lang/dafny-bin/dafny-bin-4.5.0-r1.ebuild b/dev-lang/dafny-bin/dafny-bin-4.5.0-r1.ebuild
new file mode 100644
index 000000000000..8ed638b01e1e
--- /dev/null
+++ b/dev-lang/dafny-bin/dafny-bin-4.5.0-r1.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="Verification-aware programming language"
+HOMEPAGE="https://dafny.org/
+ https://github.com/dafny-lang/dafny/"
+SRC_URI="https://github.com/dafny-lang/dafny/releases/download/v${PV}/dafny-${PV}-x64-ubuntu-20.04.zip"
+S="${WORKDIR}/dafny"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="-* ~amd64"
+REQUIRED_USE="elibc_glibc"
+RESTRICT="strip"
+
+RDEPEND="
+ !dev-lang/dafny
+ dev-libs/userspace-rcu
+ dev-util/lttng-ust:0/2.12
+ sci-mathematics/z3
+"
+BDEPEND="
+ app-arch/unzip
+"
+
+QA_PREBUILT="*"
+
+src_prepare() {
+ default
+
+ # Remove bundled z3.
+ # NOTICE: New versions do not need the bundled one but older versions
+ # hardcoded the path relative to "dafny" binary.
+ # While bumping make sure to verify that system's "z3" is used
+ # by, for example, compiling/verifying a simple dafny program.
+ rm -r z3 || die
+}
+
+src_install() {
+ local dest=/opt/dafny
+
+ insinto ${dest}
+ # Maybe too general, but this installation mode matched how it arrives.
+ insopts -m0755
+ doins "${S}"/*
+
+ local bin
+ for bin in DafnyServer dafny ; do
+ dosym ../../${dest}/${bin} /usr/bin/${bin}
+ done
+
+ # Make "dafny-server" clients happy.
+ dosym -r /${dest}/DafnyServer /usr/bin/dafny-server
+}
diff --git a/dev-lang/dafny-bin/dafny-bin-4.6.0.ebuild b/dev-lang/dafny-bin/dafny-bin-4.6.0.ebuild
new file mode 100644
index 000000000000..66b2bf3d4f1b
--- /dev/null
+++ b/dev-lang/dafny-bin/dafny-bin-4.6.0.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="Verification-aware programming language"
+HOMEPAGE="https://dafny.org/
+ https://github.com/dafny-lang/dafny/"
+SRC_URI="https://github.com/dafny-lang/dafny/releases/download/v${PV}/dafny-${PV}-x64-ubuntu-20.04.zip"
+S="${WORKDIR}/dafny"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="-* amd64"
+REQUIRED_USE="elibc_glibc"
+RESTRICT="strip"
+
+RDEPEND="
+ !dev-lang/dafny
+ dev-libs/userspace-rcu
+ dev-util/lttng-ust:0/2.12
+ sci-mathematics/z3
+"
+BDEPEND="
+ app-arch/unzip
+"
+
+QA_PREBUILT="*"
+
+src_prepare() {
+ default
+
+ # Remove bundled z3.
+ # NOTICE: New versions do not need the bundled one but older versions
+ # hardcoded the path relative to "dafny" binary.
+ # While bumping make sure to verify that system's "z3" is used
+ # by, for example, compiling/verifying a simple dafny program.
+ rm -r z3 || die
+}
+
+src_install() {
+ local dest=/opt/dafny
+
+ insinto ${dest}
+ # Maybe too general, but this installation mode matched how it arrives.
+ insopts -m0755
+ doins "${S}"/*
+
+ local bin
+ for bin in DafnyServer dafny ; do
+ dosym ../../${dest}/${bin} /usr/bin/${bin}
+ done
+
+ # Make "dafny-server" clients happy.
+ dosym -r /${dest}/DafnyServer /usr/bin/dafny-server
+}
diff --git a/dev-lang/dafny-bin/metadata.xml b/dev-lang/dafny-bin/metadata.xml
new file mode 100644
index 000000000000..9533d79f1088
--- /dev/null
+++ b/dev-lang/dafny-bin/metadata.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+
+<pkgmetadata>
+ <maintainer type="project">
+ <email>dotnet@gentoo.org</email>
+ <name>Gentoo Dotnet Project</name>
+ </maintainer>
+ <longdescription>
+ Dafny is a verification-ready programming language. As you type in your
+ program, Dafny's verifier constantly looks over your shoulder, flags any
+ errors, shows you counterexamples, and congratulates you when your code
+ matches your specifications. When you're done, Dafny can compile your code
+ to C#, Java, JavaScript or Go (more to come!), so it can integrate with
+ your existing workflow. Dafny will give you assurance that your code meets
+ the specifications you write, while letting you write both code and
+ specifications in the Dafny programming language itself. Since verification
+ is an integral part of development, it will thus reduce the risk of costly
+ late-stage bugs that are typically missed by testing. Dafny has support for
+ common programming concepts such as classes and trait inheritance,
+ inductive datatypes that can have methods and are suitable for pattern
+ matching, lazily unbounded datatypes, subset types e.g. for bounded
+ integers, lambdas, and immutable and mutable data structures. Dafny also
+ offers an extensive toolbox for mathematical proofs, such as unbounded and
+ bounded quantifiers, calculational proofs, pre- and post-conditions,
+ termination conditions, loop invariants, and read/write specifications.
+ </longdescription>
+ <upstream>
+ <changelog>https://github.com/dafny-lang/dafny/releases/</changelog>
+ <bugs-to>https://github.com/dafny-lang/dafny/issues/</bugs-to>
+ <remote-id type="github">dafny-lang/dafny</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-lang/dafny/Manifest b/dev-lang/dafny/Manifest
new file mode 100644
index 000000000000..c408c2033349
--- /dev/null
+++ b/dev-lang/dafny/Manifest
@@ -0,0 +1,371 @@
+DIST bignumber.js-9.1.2.tgz 79226 BLAKE2B 3d2ff19d73a6fcfbcc0d03d1e9808796baae639e19973cbe0c26af4b514abc299129b8a7bc3e4e803c61af44b76f4381b1965d8fa331ea43e8a4c8fc7f98d8e7 SHA512 dbf98ac991fd2bce5bcce11f8570c11594c6775093b3ee481e9785428f65ba2046ee1821742f39d4f8f658085be84dd1e9bf6d663fd72a16e0e1fba6f8a7a9ba
+DIST boogie.abstractinterpretation.3.0.9.nupkg 29646 BLAKE2B 20b0e150d3a9a6ed11a24cd9920a97971d515207d86864a9b1cd4d554b2b3c34e27778051a9bf6d8b3178352a6cfbb33c363b2d69958f6503e17e366ca3e1147 SHA512 26b75a409b4bfe5dd4ac982ca2c1b03df2118254a9becaab74f4d44b652746faa0448ab943ee9177f6a0fd105f8ce015a4403b6ff58df12201b542c50618b222
+DIST boogie.abstractinterpretation.3.1.3.nupkg 29640 BLAKE2B 6ebadfc92014018649ba1998f878ca8d8cda2df25d8b7f5243becd27bcafbcc166c071769adabdc99098b4fbf4aee8a6de8be9f8da43b3a3e1511dba96bbf2d1 SHA512 b950ceab224aca2a6d9a0202d2f79dc59f5e8f18f710933d843e8eb6dae9badadf6f78e79297f74bbe35a9d9170f2c928174c93a6edfd70e79aa282348b4be58
+DIST boogie.basetypes.3.0.9.nupkg 25717 BLAKE2B c1e549c6d7c675fd3b1acbe1a39fb5854d182b70ebab734350439dfd0cfd2be879b1d2b9c91ad832dae8e6f695fbc41510285bc7573b11fd51a170d4bbc50780 SHA512 d561f66a89af09cc07596bd1079993010a325ab2f22f2cc85408d12fd1286b15b0d7774b2e4037465a3b78aa829205f77b8b0b2efae9b9f3145eca6e82ced4d0
+DIST boogie.basetypes.3.1.3.nupkg 25710 BLAKE2B e45663df336757dcc448f2ebe4f150948504047a1d5e4814fba81b0c08d7480aa717a42ebaa1ef9714276093a0d2755780669d0af410dda4806181c513874bf0 SHA512 ce3bbdf67d1332a51dbfffc21f12cde720b6583638dd7b6bc1fb68e5e6a7d1d6f0a191e795728b79adc1f113102996475c0290afb7062bd1122a17c1d6d1605f
+DIST boogie.codecontractsextender.3.0.9.nupkg 17455 BLAKE2B 6a6f060e16942750e52bb72630b306cb591212ddd9960ac9778efe44239300f19b5793bb0cb94cb66e01a16f0337bf77bc6f39d2ce680f5ae94c566e2420331b SHA512 b15d7b0d24d5464189daf797e02b7e6342841de5c7cc3a15c954ee270d805afe0dfc3e5268dba5abbb636e2de2c859bf7a3f442180fd3a7cd2f70ec227fdfc24
+DIST boogie.codecontractsextender.3.1.3.nupkg 17458 BLAKE2B 2005168450015740d0afd9415c47674bb55f99b2a717ad03f56e0571be1f5532a9abb0a662b3b3f785dab32914684dc0046854c4286ea9be338aa0dcad0e4618 SHA512 1508e11342e88ef0fe3a6f7dc758924987b6edcc30f62d0a7e43aaba09cc14b26b999eb0d59faa13e26f246e91b9c176f4c983fdeb653892cff655f40b5bd24f
+DIST boogie.concurrency.3.0.9.nupkg 93215 BLAKE2B aa8e969eea49750503249b1f196ed3c4f388fae2a39c46c61c4dcc343feb15b3d98d0b87065afe1f82fa0d8bbeea895b3362bc2ecca26daba0b0316ab8fad648 SHA512 618e4e3c06354b8ff8e6c23341915f1bd92366aa99dd8f9ef217110191f653be2a4d30cb83d004d4a34dcd7244e9f0603179859d1371109f1ae7706046643cbf
+DIST boogie.concurrency.3.1.3.nupkg 92168 BLAKE2B 81ff170058924043a10c83aed60ea38951bca7ff35de3d8be29fcf68fea9da2d658ba0abf36f0fa93e4c9f96b0a81f96b550396ca55e3ac204b4e21e49d112bd SHA512 069c34b152ccfa9ab8903b6beda6090fcbfbad243d79dc473c01e30d19a6a5ed15528120180ad271d28b43eb520dae6e221a9256680b7e241a6bb83415988d93
+DIST boogie.core.3.0.9.nupkg 208520 BLAKE2B 180b099ac167eb4cdc2b96ebfecc0e70789d0bcb01fe2842b69520b1757efbc8cf0ca56846dee6ab17d5a88c38920273368803d646a143f4010926de81c420c1 SHA512 eaa0289840caed37aee889a66b60e0389729f2233b568c58de22790fd3eb3e93478b17d58d290c1622ccb7bf788f8a98cb942ed6124c8aa3efe5beb44889fbe0
+DIST boogie.core.3.1.3.nupkg 208304 BLAKE2B c3affd650c0c81c61e39e5bba0e3f88684fe43169c59b60aa15ef532747ed624d3b4d2a1ebf1fef6d216bb380b535c62a48cce072bf4a3ff57feea907c48ca8c SHA512 ae611fe91b8189ba55315db75be7fd927d08ae096305d099aa5b51ef692b4c5f4633c7cdcc95f9344791f7e11414e4078a8640127e2442f667594b335338eb1e
+DIST boogie.executionengine.3.0.9.nupkg 83903 BLAKE2B c3b8caf6097ab8f2b81b72593d7802674a8f6069f5601431a709095e0c785dea07c8b7b4033954ee7786e518973c9fe275d59be698918bcb5177bd90e3583525 SHA512 d80374d6df8f663ddef0a2bf004e9f414ca9d79e02861344f5878a1033db17a7d5102f92c4299e16ad5d1cf421a7cec4702dc320a5969a7699bcd2c31e933a1e
+DIST boogie.executionengine.3.1.3.nupkg 85951 BLAKE2B 4dc3e7c442d2fc8f79b8f17c5139bf28453205f7fbb22caf35cdff40ff5294e940820e44029669e4f2103ae4dda56ad34b5d3d76dc73327d8925e6c5384859af SHA512 d06372aa80356ee5b07dd6cd30495246a5d900727fd7c6bba52faef25aabc191b5d89f479ba3c936a2a31a0045c8c195e9099d4c87231c14705ff00ac37b8c84
+DIST boogie.graph.3.0.9.nupkg 27933 BLAKE2B 5ba929366367792f0288655c5f304ac6ad88d3a89c84df5082d78939306bd6e3441a1c517a060fd1c32eaa7d25e14a3eccf7c40873d413b68a5c36a109353ba8 SHA512 1b65fbf349c9516a18e2cdb876a343ee037096ee528933edc2565e43c5e79bcb2dcc56b7e095b150f6c70aa55b217789d04e6c4109e369cd2e9d96c465fd76f8
+DIST boogie.graph.3.1.3.nupkg 27927 BLAKE2B 66694f02030c943892514881969c05be58d2a9cc4e4ca44a7b6115908a2e04e104350b706b19346e5ea7d659101532ffba2cf0ac919157102c7832185f4cf112 SHA512 f50c932d6ca907f359f698c02cdf857cf21b47ec6671ec917f4ae5a03db5b02cfdf3bc075b4ad840ab31c44db343aac2fe0d623d555f17e3ce2d9cf0f5efe9e3
+DIST boogie.houdini.3.0.9.nupkg 52700 BLAKE2B 686c532de540e11d70be62bf95f6398c21e12ff9386a295b21d58882d105933068524d865b93eba8996bc29f80b05285196a2253493ddcaee13217797b0506ba SHA512 6ea2874623a582529e2e6921ca4c05e76602e6bf11f53323dbb5269e6201b1e1d2ec9bba7641a4918a95fb64f5a488841fab92da8ecc7c3fb033d0e286a4d0a9
+DIST boogie.houdini.3.1.3.nupkg 52727 BLAKE2B 4a37e98bc0ab9bc8956e81df2541bf1bcfb50c32258b94818a5c8cafbcc74c76d4cfc5432a2e1ee94db5fc503dddd020123cc4f5f4a47c6b3bc8743b47784a04 SHA512 0f83ea50aa6f453d741cc7ff28a00ab9e9205a90caecaf7ccbd49d5b9217ec3bf9f5e1a7e9cce83314f48f25ee32c682c9509d00ed7bdcee602827f78712ce31
+DIST boogie.model.3.0.9.nupkg 26904 BLAKE2B ebc9e26fe815a7133e87febf8e4bf7af5af4b565e099dc2dfc45515e4e1a4559643d189c1ba5d0d21d230be958e3751306735c533fc99ed95acca740b22887ca SHA512 54a13e45ff1d53eed7cd372997525008c49075783df30a6159958c319c0ae661599bf08ec6bf9ebcdc45c85c97e2ca1d4cb33139db78a5abc50bd018a55c125b
+DIST boogie.model.3.1.3.nupkg 26902 BLAKE2B f384227782a32efa4083412a0820343e301337df11bcf4dc4611ce9022a63387b66a350d921dab484230d29f6a33006e1e56ebbd1818e8d5a4b0b34e61912211 SHA512 f6e52696ded95d9be9ec4046917c171cddda7429f63d2a0f188b960950bd9684285ce6eb21d1181b4f582b2d400117bf810a8b5a11a654f43a40c22fef4abbf4
+DIST boogie.provers.smtlib.3.0.9.nupkg 70598 BLAKE2B 49195c7478a7c82fef6e15fb57bea2ddc891f5145fb7e655fc5b84fa4989d209aa0eff6bca8d57da9d08f6df026ee8cfb14d37953267048f5e191ad0520dcd74 SHA512 1c290058568cb170c0774779c8264f5e05700784bf21369852c0b0dd581665e64f9d23f98cd2ee22124b5a2866af56ad59fa56925212eae5b7ba26833d7034f1
+DIST boogie.provers.smtlib.3.1.3.nupkg 70581 BLAKE2B ade8aaf77a42dc7aa8ab7a7dcf2eacd00db612b032a7e62d2ddb5f96431e43ac16df282e55fe2cc46b104b721bb1183421b98a22e8823746c6f655c7f7789fc6 SHA512 50368434be8277c5dd84edce72fcb1ba107737cedcac0f6ff7cbad32b44bc749912b576e4c1076a840239cf5f84d93354fc8a5fe649121f5ff339316cd53c1c4
+DIST boogie.vcexpr.3.0.9.nupkg 74092 BLAKE2B 978887817f7d48d26d999b2f0a37adee927506aa6eb2e7a93b78567b8fc67411e1cd56e0ee0876d95473edc0dc5068f69524093f8ffd7b4f109490c815a28b80 SHA512 024e898e35c933e4b1c55547624d5a3c531245ac1a8b9c03a2d5955d702bc1d51cbfcac0aaf214e9f0f3decfafaab02761490b02bc6ec5c385c2a20778c33de2
+DIST boogie.vcexpr.3.1.3.nupkg 74142 BLAKE2B d523aecb82111a712fe619a69c159213ee4bef8182b1dd5708ff2b84ecd7690bceed5eaa825f8735c373ae7d3cf5ba4385e552f4a332d68fa5740cf862992bce SHA512 540e15a2830b739921e72165a39633bbc5b0a820463d79d7a2a915d2d902d242d9221e12026b6c8f6796d2309f5bff672dae50ff9d27834f2660fb433ce5809b
+DIST boogie.vcgeneration.3.0.9.nupkg 90650 BLAKE2B 435902e5892351f6aba902d3e3cf89c719c68ccff2075500fab607b6af64dda7837864284a3c44fc3a3ac17201355c1249c5ac2ed4ed61a2f1c3867b1338f18d SHA512 a9bb6155275f6f86ef5be7d26be560c8fd1f6f976da552cb038dd7eb41331ebcfb694f0b6367f73a778550e0545dd695c8a35d568cd0c9bd78fcf30c894cc490
+DIST boogie.vcgeneration.3.1.3.nupkg 90517 BLAKE2B d5f0271491a37f7ba806c2a46894c474b0c65d5bc66a659241e9ebffbf63c77a75a3533a615957ced4af1ee0363a34fd2c6803beca59e1fe656a1ba29c5fb309 SHA512 e402de9912b9d788520ef615fd80b8dba2eca9938f8321fb9e3f53bf158baedfd4c69f3aa4eaa3fe8f685d3ed9556982001117014279f9440605bac368b521c5
+DIST castle.core.4.4.0.nupkg 916004 BLAKE2B 7404f946c140bc4c22132282a4a12694328bac2f37f3cae06c595076068dbedc808465e352f083450cea3e3869698f91b7a5b2b55c08f29f4a9feba7f15abf74 SHA512 7626c347f82038bc29b0b2ae399937047aead260ed85ff8c107d36adbe901d729be59cd89a5f98ef45da2d1883c8374b6f286c81c044a5a2b69ab4b5dde9ce98
+DIST commandlineparser.2.8.0.nupkg 475554 BLAKE2B e55eda3a96441169220e5b081f432d8445d719cbcf8e86527920d44085e6e97934e20aa0266bc5dbdc16ba1a6daa6ece55bc2c63266c9d733ab4992f2fe3e0a1 SHA512 8c276513dfe91e5bc72cfb3b96a0d24411ee3bd2e9832d423f6ade3f3964a011dbb977ca90601750fa133a0a25fe72f66955be7f69a72f5d6b73c7f313094b5f
+DIST commandlineparser.2.9.1.nupkg 496069 BLAKE2B e2c4b38841f83d6bc10432b8055af90369f1fe0a10105a58b51b44cd48e5d84cb0b5e4b19f444d8c81b38646a62c7c4d11cbd710e92fea68be3ebea6ab98e3f1 SHA512 4f364e45c9668c7e7cc6a922b488f3fa523033c20d7a432694f0a6af05ce528ea0481d8375e2f4f1032c6990347b4803ce9a0e48068c6fe15ec46fb1254f085d
+DIST coverlet.collector.3.2.0.nupkg 2209480 BLAKE2B 175bcfcb9d6e5177d44f2d607f2411cbe77d6009d096bbc84372e33d7be972d3e39ec39d7f2669b4b91f4bcf44f6ddd46bc91541c0cc4843426e2dd1073bf5c2 SHA512 b63d02a5d3233805b42f0b8cc76f40c8d9f5a0117beb6bdb2ab147f5521bb99919b29d51ff91767ce0bfcab92d25fc8fe794133cadc60da3e009ae18d10fc920
+DIST dafny-4.4.0.tar.gz 6241907 BLAKE2B 43f5b6bed5ea0bc6f8de04650b2f97c0092df1df47aba9bf0c6b9210677077427c67cc80364f659305b7d851c178439a1536864dfb7c6396b4ac6517789fc83d SHA512 33789f10b75a1946aab552f11f40296682156bab7cb08cae431f00f6fdb6b12d3211ec2f423a42adb78a3245b19ab8f772dafca4d1448cb30077268680f73534
+DIST dafny-4.5.0.tar.gz 6365137 BLAKE2B 6233107e680e04ecc5a0d730bab4d5f2228ff04f9d83fe33688731c4226ae03b06a2c08447beda025e2e34e7d92bf6fbb57de5b6913e8cde9f61ae255d09722d SHA512 d56ba0a28bb235ad2c4baba526b4de1757a6574b9d04a195e541189ba5c24a82a7ca4d3ebbcc50244b7f35043aa80101210568f20656f21169c4cf42c41abce0
+DIST dafny-4.6.0.tar.gz 6373177 BLAKE2B 9348a9b170dd694885efe4682f05abe60240e6f7df7bde7bb53e8955c1c75a332ca6e7d6d6f38eb1aa9a83a9a5dfccea13b7683e99873c1fce12181d47679548 SHA512 abac500a27a811b434d32036ff7d877dd337a0a5917a07a7ac1fceffb1dd5d493bd07b7d518875243674b7919862a25f628fe62052983a8ff8f1450669c49b69
+DIST diffplex.1.7.0.nupkg 69699 BLAKE2B 9c7d6eab09e7df1d791183bbfc4cc46b7bea8dd4b5d09fd3e7e3dc1734e6a8973f92a34387e1a2a0e3a4cbf11ffb89f8138844b2b46d2e94010932ed47158911 SHA512 a0f7a30c59889d71eba97db9bda2efbf1b458ca439d129b52ba3eae32626325e73ec13d46018603a81a33cf18a25a5b08a1b2e6a89c7e716faa47eb9db6d6474
+DIST humanizer.core.2.2.0.nupkg 104728 BLAKE2B 6c383abbbed9250f2a7eeec4478ead8f23ad53aa62a5b0f22e71fed9157aa6644a9a7518842d637885b7b63a4300754e1a7e9f3f9968725607ad30bf18e27a21 SHA512 e232459f914c8e7fc3f8dee69a85e66beb8c44515d4c83a976ee24084a91f32aae61c6f845ff38edcae02d0bcab44f9ec253277dccf2f4ae7e82235047bc6ade
+DIST jetbrains.annotations.2021.1.0.nupkg 122595 BLAKE2B 59b994b58df9c4ef12d130543ae85ae0a368b92fae8c1d106675bcb4a55da9a13ee6da5fd5940b51c2a101470226007b05a1670b085d0f2f0b66f143e67f3051 SHA512 3b17599f6fc4413dd3811a32216f742596da5c6d8709134d85d292cd28ace7dc72aecef8a2bf64a5dfd31796787468e70e3936ea2eb9ed0505c7c6130d66db17
+DIST mediatr.8.1.0.nupkg 75947 BLAKE2B 6e2500efb9ad78ca3725f76d2bca5a7f448558dbb817fcb361ae0442d5e04a3cdc2d16c1862a4b9489b1d58eedaf373888d5d463c6d31b7fe265275d230f2f39 SHA512 848b0b607eb50b8cef169ebf95328b5e5517eaca5187578c463ba6c309feff7d14e16966f04d7615de4f32fb20948fbadec0b2fbc7af66848b57639571a3f462
+DIST microsoft.bcl.asyncinterfaces.1.1.1.nupkg 93574 BLAKE2B 7d2ac06afc4cf6484ecf6978e8f2dc649d3cef441b709b5194abf7466e3c9e0239c1fce954fc45502e5f9be488aaf6b5eb448e37501555862402ab9466a81e98 SHA512 4cce7ecad99baae70b1f815cd047431f284a466342e4456f929bef24891f45d600d90037f0d45ca97b1b8a453b51145dc215b9807ac1ce8b2b8cf45630334204
+DIST microsoft.bcl.asyncinterfaces.5.0.0.nupkg 74074 BLAKE2B 8e27e56988f0120d2b8e17e05dc6b801bfcb237b700dab5054049473db34d6a2fa4f59eeef7c857c31002488a882910ea7f44be2187b85dd5d1a96edcaddd234 SHA512 cea6febc03e3ddd6fc8ad31ebe92fc3f7134f81cc1fef8fb079ec3cd72f8a31120e836c8c39bf16109abd2253919371e2462b9570a2fd6525ad9dfd1f9929a28
+DIST microsoft.bcl.asyncinterfaces.6.0.0.nupkg 76354 BLAKE2B aca3f5db71e4037dbdd604aeaebcd0962ccc171915b77b4c409ab744bf0a469c7d588f9504fc7fa49e3863e9593b66b4083235cb49e812d1f87b3dadb32e6003 SHA512 221a05a0c910f7a87b620d8f3831ed392b4eb95d112bee274d35f27009ad2a26445de9d7cd235fe6fb4a03f2550874bda3be3dddd96edaf9c0852a9c23d7b099
+DIST microsoft.build.17.0.0.nupkg 2853063 BLAKE2B 9dc6e6d820b7adf5f659bad3a79846bcced9b453af25b5bf3798f0751ab22f092ae51f0a91f7ca51c46a527ba1d23b07d6c9eb1fbdf4f8f3ffc20b0b9b01099b SHA512 9524fb68f17d8473cb414ad6925146411f879f5be6ee9874506aae8bac9772651a0d716a7427ef8d6001f8aba6131a7a6fdccec7d08efc93b57f57a2c5bd7923
+DIST microsoft.build.framework.17.0.0.nupkg 524714 BLAKE2B f0c6ba39a33aec69eb9774986c3c4cfbda91ee9a1c50cf865a8850f806e7131011e1432b3aa43be4992230c2c27e5380b4d9a3ef071900cb2e413d8e683bff86 SHA512 1af19c6218b13e4fb09769172e408227a134665d573c71861aef9ba2df1a72e54bd3c6688ac4dcb7c9e3026bcf57ab1e8cbc8cd70e47cde96cb566ea625fa85c
+DIST microsoft.build.locator.1.4.1.nupkg 65071 BLAKE2B 314d0751e80851dd0412c12736506cb2575eca5beac275f75c777cc66b096c9026db9f7be8a9fb97b055a7b71cfc4b1030c6f545e90605324393392fbee0490a SHA512 43e2dbae0beba68d88ec7c4a150d875d6e59df289af2f4f27ea6de590503bfb69c37b7d819ca75cd526e53a67bf0b6c00303eb72e3950e00eb803240742add6a
+DIST microsoft.build.tasks.core.17.0.0.nupkg 1525828 BLAKE2B 8cb89c89e8c953dc1b4315cb31629310ae7635a4e6405f46f21d0d906fa98768885b22bc1a1b8a224ea750593086930cf04acc518e39540de20a4b35d58e1b6b SHA512 e60fe5854f0317f807c719e7534d8793f8e11265101532e3cf7e5783dbf9acb85ad793274469b19146095faf9ade1d36dd673361c882a975828fb28472d708e9
+DIST microsoft.build.utilities.core.17.0.0.nupkg 582099 BLAKE2B 0bdde1ccdfd62c043eec61c47fa73d085ff39241f7bd1a5ac0bc02b8b5ad0b6fcc2cb91d9aa30b86d390a624a27b4458960b28e2c429c6262eefd12f1bc9727e SHA512 3b9ed3ab36f6fb7107d22a2ec208763689cdc02e5123e967f65b1fcb8ef45b7e09de0f16d1a224dd4c0017c14f59d57f31e21f5a8dd225924fec9e6f548a9057
+DIST microsoft.codeanalysis.4.0.1.nupkg 28566 BLAKE2B a599779e9b306d99c97bff6858811394dffda0e02bbea10ad861b254cfc7d89011fa586503be6d81b677fa4b7f0db0467b3952c54cf00527720e510cd25271fd SHA512 039f31cfb139dd2d2d0993682628b808429036976c939d6f493b6a9d9b2094d0780024ebb9a37494220e3850ccaddb1b99c343cc683a9ee954df36f07c488c16
+DIST microsoft.codeanalysis.analyzers.3.0.0.nupkg 887910 BLAKE2B 486aad9a22a77f4dde4fae3c5521c2fc066e9121aff7c7557af53b72469318fb0c16c30ccdde853fcabca3c493d9ac1297a00d7e6445d83c65e3618ecc94a15b SHA512 4c9e880c1c84f79b038c065cacbe090d50be18bda894904dcf03e030cee960928a749c16df849766f06a77697b90ff9391cf6b31820dc5762aad8ccffcf43e88
+DIST microsoft.codeanalysis.analyzers.3.3.2.nupkg 1001624 BLAKE2B c8ec28a23a7b628c2efbe1d3b7b3163f6dc5dd8aaf4650042bc380ec90409ce28a81d20f4d5c6bef2146f88859274cbe2107b0f840ca577af13ce8f7390e2338 SHA512 9a2806f43e3c3e7ee6d3a7c0cc996cf4196420169db58092e79b5e656666d2c1cbb448b53ce0ff280a3b3ab1cb9458f60993ec43df6fa7d2574eb4d86eedc430
+DIST microsoft.codeanalysis.common.3.7.0.nupkg 3671881 BLAKE2B be37b6a9eeca96e2780febc1d26c362f01b0b3414e833a1950120f50a3dc7c376deee58468174297e8103a26a7eb8b8edf408859f0506296e2674f926259b6dc SHA512 dd84125c6c46cc622b2394bde5f09d8996c84285fac1c0b924de43e6ebc6542206b5d9bedbc3df27297c3176a5ebebc1a11538a1c80b55d3b0b69e131eeae5c0
+DIST microsoft.codeanalysis.common.4.0.1.nupkg 4472019 BLAKE2B 2a649895cd6ffd9b506bda09812ae298b5038baa83ddf9b96fe2750d1eb037feead4fd4c937e66bd8ec400655468a978c5be56d3f380decdcac13dfd3c014559 SHA512 27dc41d25ec9c2048a34552854f88db11874f3f4d847c826af2d382e9fcd59b8518c522f44a0296801c1c9fe630e513bc59526a20ebaf37146d064868272cc82
+DIST microsoft.codeanalysis.csharp.3.7.0.nupkg 9001004 BLAKE2B 4058305ca69b0b4cad3f66468e8660d39de457b245acd2601c379b322b71d128079271f6f34843252445512503973a2afecf3b3eb0ebdd23f4d0705a6a417224 SHA512 7ff499ed8b730ddb4b982c2f96c359ee0fc194b56904348d39977cadd8ea5c079d86ed561403b19ae2f0c8da4e5c84c03349bb7e3e1ae600918f54599de04aa4
+DIST microsoft.codeanalysis.csharp.4.0.1.nupkg 10536054 BLAKE2B 998c2b8197cd921e4a0d10287a160bf48d62b43ab052194e52fe959f291fcf0d44c40c6036d66a924d8c61482c0d4d6cf9ffa0b083290d3b8c7a84d59d7fad0c SHA512 534149bfdf25a3fcafd5f31dda0c6f08413345d7e70b5ddc794c92473e1de024f353d5cfc975ac6e33c4f336e3890548f7ba506e425a85ba140654a764440ad3
+DIST microsoft.codeanalysis.csharp.workspaces.4.0.1.nupkg 1244920 BLAKE2B bb7bea26b6a3ae009e8dc936e505a6ad0fc773eb19418194365bd30eda5e1eb365abf34eed4d53be5d542c388e94add01388b0c896bdc69d0d7a359d73c5517f SHA512 41acc42d60587bc7e1288864429b90b8fa6eb655519f8267df2c05e78e5d30e349442849fa09113ee926b7b9f87abbaf94eedd7e9bf4f12dce13ef22190789b8
+DIST microsoft.codeanalysis.visualbasic.4.0.1.nupkg 8481810 BLAKE2B 8ffd8f17759647a2ae9df9d1b663d689ef5a0e33a9a6052447f075aa48e7cb4941a43f90525cf9e7bde24bce6e9d391b83fd3427512589d509dff915143f9679 SHA512 b8bcc53db7b9af61015a816e2876525423f8bcd25253083176e59f4607559e8ee6b424bf856bf598f2615979a762c05fdbae869712d0f81b0303e4735ebce88d
+DIST microsoft.codeanalysis.visualbasic.workspaces.4.0.1.nupkg 1264227 BLAKE2B 490fd64bce0b83811d54ba0074a3c30d117e0326878ee74cf8433a118d13b6e1a699e7f0fccdd7492f8af5ee03ad848dc93b95e7214b89488f5c977ad7f3815f SHA512 6d2dcdb2b94d6fdfcf96adf1348f1c6f8f9946d6467414183e97947fc6f16b6da40ff55a9f27681c6cf7697cf83248dd8cad1b875ce1871a6069f4c927ac6ec0
+DIST microsoft.codeanalysis.workspaces.common.4.0.1.nupkg 4768673 BLAKE2B 41973d5da84330c8eed54c44f0036662308df1b2d4a89697e92fc52102fc169d4656fb539d03e11b48408855094647670e2f8a29e3c0999a335b89438d4c4677 SHA512 a1ce70d3a1c845c789c6fda7cb9bfcdc0303e8320d5069bc1c8dbc45b839c70bc45fa8877b450778d397876b93db6f528b356a5f6d04f1c1f3d720f51ca9bfb3
+DIST microsoft.codeanalysis.workspaces.msbuild.4.0.1.nupkg 442086 BLAKE2B 68ed83c66ff30a9f7c6f953a588c5e8ea375f139696985957b98e735bd81ea3dacbfe089f8d62d551e6d481e172f4c6aceda3a1982cfd43f910b24a5bb417e2f SHA512 a2886b70ba36a70c3a7eb2d76876ff60f02cafafce067ecc86ec1f35e6df930d06a9be9338c112bdbf58b4aa6c82449c81a9082fb9c0390a0c9f19f3f54f7087
+DIST microsoft.codecoverage.16.11.0.nupkg 6555498 BLAKE2B af38676c45bd6bf373af459f5fd568fc6caecb60f6f1cb9e2f8dcc9ecac1981af4484b55f029deefe46b1e1c4d3889bd6c67023b0728b61d7acb3334f91d143e SHA512 ddafda2e157025c7299f452884c6802f347e446139e6b503b843e9f5b2301e4bcc5a74d7b8a89fb128d30a7960bddbdab879c0aa79fa6cd56b99e916fb891a88
+DIST microsoft.codecoverage.16.9.4.nupkg 5160070 BLAKE2B 763611edf9c40b7dcf90477c05e7178d5c5dea4a3ee910edd0738b70ee846490467c1bdbfe4821670ee35e1ffeeec3bdf2ed75920b210402d2fb2646d3c19514 SHA512 f404d780d660db99c92ae3d9bf22ec28e6afb5417ce4f16518525fb1b65cb37268be69c5e2ae153d103de2d6b43f02bd98d8413a9d3b01489ee73dc4a2b31d57
+DIST microsoft.codecoverage.17.1.0.nupkg 7323516 BLAKE2B 180dee79c4e252fc066ba9d15d9cf5f0267668d3c2f31d8bda59b13b263a7fbaf0ca26700cd04e3dbaf84f24d56cc8ca03ee1cf8c51fc91ada47df2a432a28c8 SHA512 385d2c29f2c28f35f438973182f5c48b33a18fccdf59ab9141b6fd8138d114d493bd7fcf7a33448022445e07ce5c5332b85a914aade079656c2a34c0e761c7e4
+DIST microsoft.csharp.4.0.1.nupkg 462346 BLAKE2B 209ccebc9103b803d26ea1f0232245c3cd231078b03a83a0011a2a79a1a8a324a72c5b3fda94b2686fff170932f366e165f81a36a70df590a39c45d70778e4be SHA512 c0e75a9162f28ba4c4572c8fac4fd4c8c97d6d3505a37683646ba5f7e5f6ac0da69d5200d2646054de90e8e08f893a10e514591b69b8273640842b2cf90bddec
+DIST microsoft.dotnet.platformabstractions.2.0.4.nupkg 38925 BLAKE2B a085c6126767a2783ff8c6ef9b854cf2e419761167a48b9b2825b85fc784c72afd46eb73d1b38627c0e9b35fbfb0c0b1aba057f075135912fef75439854b360c SHA512 c7023268028c81bc38a4c410eef37721a0cace55db6e99842e3b17a641ef23b88c08351d9a3ca87722a6f75d6f3e333b14a25f9c3165485785a15e797ab5c1ed
+DIST microsoft.extensions.configuration.2.0.0.nupkg 28054 BLAKE2B 4f6441da406ff895531bce146270cf272d1a6b09d3ea37ec74ec0b3af9a16dfaa0ab194f2b2881fd15e2112a036617589f4c97c139de128e0f94a7227e8f1cd9 SHA512 2c17cb315e6f2a4c57eb133c5944f462b21850182b71f28cb895fdb9f21973bbd7de9d35eace53678cf2d882a99fca799051b7d4be80651a4f7875be53cc019b
+DIST microsoft.extensions.configuration.5.0.0.nupkg 74486 BLAKE2B fa019730e1ee72ed955578ef90a06707ded7168260644b5a716b9f271f12aee5d73da5ba896ea365bc4333516d78251c24d1f014b46ed039e1e80324b5dc0047 SHA512 23e18de6334e2193246feaa0bcd6f28982a479113b74dc615bceb2d2807628e21361236464a68a390e9091cbf04cbba6f326c117b677c0880a771aaf3a8080c3
+DIST microsoft.extensions.configuration.abstractions.2.0.0.nupkg 25272 BLAKE2B f06df1e89a1a95668426e8034bd28ed302f9be80a141ede35a1ef99df69df748a77eb581e3452c3a3067e66d32135d9a6112d2ad618bf7769bff7f9db7e150b2 SHA512 35818457877053d38f899715ee90b7a672d5b6b95fdaa6b0fa28e5da10e0b349a3239b3dfe9782a58fe60faa5ba4e8695765e96effd23b9df02adc5ec6c516c7
+DIST microsoft.extensions.configuration.abstractions.5.0.0.nupkg 63258 BLAKE2B 46350180fd0f9df20687101105536f6831ba131417a50f5019d4a3fc66ea7adab144a1c3316c41d81f36781942eab8123124aa86f1741cb19a12389adf4a5012 SHA512 99b45204f3256ee1fcc207d56be0a9aae760bf824b3d1d56f6ce555dc9b4e3dfd7d49e0e7cf36eca5a13b46e2d1e47b212e7594a9db6c752c993c000ad6e2399
+DIST microsoft.extensions.configuration.binder.2.0.0.nupkg 26340 BLAKE2B d6b34c6b4cf485bf88db514ee98937511f298e813402e3f4c0bcea0c531daa530562f2909d10013969ecbb93cef47e2f9325c8fdc97849b3f59f7e3c824f0f7c SHA512 d1ff27643232477cda4656aae90659c2cef0ac6edd71ca936c0ad8ec35e6c517083f8397c14c3734fc5c5916e4e7c4787a3875c693ce485209c15beb4c591b2e
+DIST microsoft.extensions.configuration.binder.5.0.0.nupkg 67403 BLAKE2B 62c271786eba1bd8520cc8861ad216cda77c1eab322717aa00ed9f4111eec00c6d6dddda5c2e7f5c032c572aca6888ec1d421fffe7d0546b3c16309657951297 SHA512 8048dc6d0d970cbbf5019eca2ca4a98e158e6e3884d3f08ed253979ccda8192b79c2cf708d78e676bf5239414c68b378e3bbef25697b3b0d7b8f54776efe519e
+DIST microsoft.extensions.configuration.commandline.5.0.0.nupkg 62283 BLAKE2B 9fb024933b538d6a9de7e6a861ff02882c08da8c305405458d57b10837e5fbb749b39033cb30852e2e246b58c34d91f5e85557d6af1c2666c50bce08f093b2df SHA512 a99a3d37ab8fb125cf0314a85e6cd2f5888d583bd776d8653804f0b65f6f2ffc2695d060c9bd3810353cb4957b8612a1fc9bdd7089a8a64979502cff1e433cf3
+DIST microsoft.extensions.configuration.fileextensions.5.0.0.nupkg 66339 BLAKE2B 0de3745b360e69e2eac9b278b5a9dce5c91179c11951d1ba3ee080ede9afa067186f720247776065828a53b9dddd3b5920367b27266894f618c5be23de7caa21 SHA512 2d4e3baa2410b8f2443899ea6137b243e91b5403e0bfc00330b84964a049ac56f0dc6f517debda90cf51c194a6eb3180c78abe87fac9ea93bb7e5f3903edd4c6
+DIST microsoft.extensions.configuration.json.5.0.0.nupkg 78950 BLAKE2B a1ded388b261ee9f88e58050b708cd1b862ba0df31718eef891b017fed976f317e7349d2f8d806f4ed9a30b4cd09a51f6048994efe799e7ac0aaf1bcea5b158a SHA512 d41c945d7baa14a00b56de9296fc2229bcb5ae2a23d1945d80447ed4367367b82e3152fabd45fc2616f2653374113832be8fa3ef38ce6b46dc8beea01ebeb5a8
+DIST microsoft.extensions.dependencyinjection.2.0.0.nupkg 35254 BLAKE2B 58c7d1fcd7d8f91b1ccfdfe39506c0b327a41fe50f663d728aa6d53eb271f58685be4dfd7fb80192648fdd90b596a58fb20c81b432ca48f0681b384a64a44f04 SHA512 6a29ad4770e1efccf736e68b5efb2f385cfbedb22017f34043fd370ef824f46ae5e95a85abbae8ad54b25e80668e954af86eb88887f9e095d514e401f7717394
+DIST microsoft.extensions.dependencyinjection.5.0.0.nupkg 185752 BLAKE2B 434427752dd1b035ed150f115fd732cd9b5f6e9948ef2b8a625ed45fe4ed3d35cb99225faacfe6e3b524ce712b1684633b5da00ae2cd9e14c87255a11e1d3817 SHA512 c93a4fd9fdc5a4231d1b9a45ed51b8f5f94cf942fbf5213caece37e2a2f70251662b238dc27f0b315ca1c81ca71728b7838107d87c3c507106ace7c2c068792b
+DIST microsoft.extensions.dependencyinjection.abstractions.2.0.0.nupkg 33013 BLAKE2B 538ac73f8e661438b009f43bad90e6c9dbd1f3f24db754d81f8b7aa59971dabdb9a5c98133d54abfde6a5ceab4ff5895e2a7433d1750327947c17e53fa6cb105 SHA512 54deb3578c6430a23120fe3c910cd789e64f59751e18bdccd6742f8170a6e38100be2d9e0b48188ff95dadf3dd7b8245dd33b2a4010d66fb895f5aa44c50207b
+DIST microsoft.extensions.dependencyinjection.abstractions.5.0.0.nupkg 85356 BLAKE2B 62bd4f04f3cfa0398c42039a3858fd4e425fd38ad1290ddfd08d0661d361d7913e2aafcb9dcc04a1b1d56101b2bba225f319615340f20cfdba22278cc931d17a SHA512 df27274f02cd6534c2ca1b59d7d7ba408932206f7c32aae7b8cb5d17a737730e490fd4a8b77e27ade991ac91a805d3907b63dc2c4476a7aeeafd7855a9a5a4de
+DIST microsoft.extensions.dependencymodel.2.0.4.nupkg 96063 BLAKE2B 771c88342f3459aca771a41d44e743f98c927f2c5a2332b1022a0c82226b8e4679c982ae21515163e22e56f919dbef57a361b3e9af19275e8ce62097101d1902 SHA512 61c129ecfa7afa3f28630b23c6bb3f069e57f3580df047857ebda8ab14f0a0c8bd2a78288d5b9e2f1f776238727ada7bbf71334d8371054042aa5cdd30b802a9
+DIST microsoft.extensions.fileproviders.abstractions.5.0.0.nupkg 58743 BLAKE2B 12ce63645eb9433b1fdcf650dd2bcb805eb66b3830dbbd6b67d037ea223433d39d4de994ffc764cf2be236b06f56e651dd1e5791d939238c4483d9850400dd08 SHA512 1d3990aa2b7b31e05f28fca929cf7b9648bec1cd0ea172bdb313dd7b4168e1bf9836e6f9ebdde328e42ca3eb5347dec89c6ecb8a2d918f94d5380f607593a956
+DIST microsoft.extensions.fileproviders.physical.5.0.0.nupkg 81631 BLAKE2B f55ccb31735f7f9e68fc6a9019a82afa3a5e397a294a4a42b1128f789f4b3a053916c3ecb47c906b24ccfaa99019590e3c443f881c7a804c8b2f80c8f9a2ee89 SHA512 5aef088b5b8d21adef4641095c3b2591d3350fcfaa97806dc375d1f347f5a0d5806dd14461c556ada69408943e343139158b3b34ea93e6445ee650d397ca7e25
+DIST microsoft.extensions.filesystemglobbing.5.0.0.nupkg 81671 BLAKE2B bad7bb72b6afe878d77ef848a5f289b015651b7c9731953a6a0df681d9d9716c74936e4c87cc87ba4129ae3f92d0904f7ac921e19c5b6db08d5f802f5f8c16de SHA512 5f55893ad587d0384cd3eddb35cbdb0a8785e93b483d7dce497070fcb33f6447feced96e8a63a46140fb36eeb9d3cc55f6264386361c29455b4fba70002620c3
+DIST microsoft.extensions.logging.2.0.0.nupkg 28826 BLAKE2B a75587f57f7ce4d59fadc3ac0588acd639c395d1fe5eac1ae30cedb936a6ee1480dac68b515a28768111fff39d3b10aeb85d0b3fd00cdb1b5a532def89278e69 SHA512 b5272763201aefd03fc84ffbfd5ae5c397a18609765daac97b7445d3d032f4881b58143416175dc7d2de68030c0918fd4b72cd2a0aa2ae010a64ae183b61fe00
+DIST microsoft.extensions.logging.5.0.0.nupkg 107888 BLAKE2B 8e22ace53b4475820d76296ff5f929b1decc906f5274453e7e5b4ae5fc480166cb7dd1715bc8c65513b8db3bd2cf895d820a768d3a20fc26b1b34525b8e99109 SHA512 1865153feb2bb875e25a47955c53f31958265fc19b890caadc1d54309cc77a50f2c8b8d5b163c1e885e89dee3e98940232f47daec9e9b12c5d4588dbe7e5b245
+DIST microsoft.extensions.logging.abstractions.2.0.0.nupkg 36310 BLAKE2B 579695de50426e77f4f5efdf5f650d5adf92f4be1e67a92496e2096adb662cbb227c27aa3fb2489f32d182d47c8edeee88f8f16696a197b720ad220698b5a160 SHA512 ba16672246f04445e17d7999cf957753ed4f06e28c9278b299461628b18e7cc4036192b375ebf4377a4d1a5ddea8bde3e2ecb7b3604a520dcefd804f6a945981
+DIST microsoft.extensions.logging.abstractions.5.0.0.nupkg 94684 BLAKE2B 7163abec14067723d43e91c76d94bb05e8558a4361d84cb8e365b33517fb08e7d78a810bd8015410f713f2085654a709474764e2a3fc5d96c3504e7a5824fc1a SHA512 aeb566ce865767fa8bff1ae69c0da853be58d9ba92565f722bcb7c5684e77f5002d305d763ea2b9b47823f88268d5ffe878f4200d03df49400886d62e9b64ac3
+DIST microsoft.extensions.logging.configuration.5.0.0.nupkg 60940 BLAKE2B 7e75ef08e3fd43b67c38aef016f0c4db102e4d268288321e95f67563cb20d1510486c9d39faf691968c7d0563371e70f667f48bca8a804db32d050edabc0576f SHA512 ae599425af34a0d8cf082c65b4bae1a2bdbf18f64f4d48685c7ff1bc5c8c106f78607e27ab2fed220de56c2002d83b8d9c3c00100a249b0ca83aafbcb624ddd2
+DIST microsoft.extensions.logging.console.5.0.0.nupkg 116795 BLAKE2B 836fb4179b251126760a468bd9502954e4b4798e62f36d15fa6595c758c2808f1765825edb92153e60d0a0ff3dbd6aed05b3244640a474f9b449fb7d612e056e SHA512 9514184b4f354a4c4b2b927d119b3cad9cb90c121f32c7303a5b714558d358304c1c1c52f4ad6a747327cd58e51903176a7f7904ab711411550e291c406801ae
+DIST microsoft.extensions.options.2.0.0.nupkg 28405 BLAKE2B 71ed8e7abf7827055b4889e2f97ac2be29b2f38de50dc964e6e7005828ce2b6d7bef8c68f5aa4f51744b53652c53e5288e68f409d8311130b9e9572a29a673ca SHA512 afc8ef803afe1d832eb86f023bbbd5dc14b76583ce191338dfb2f7ff030adcec71d35aac194d4efcf0d08e5af572e2205e848fc137f8812f8ca85bde72e11e33
+DIST microsoft.extensions.options.5.0.0.nupkg 126477 BLAKE2B f8dbf9aec65a20cb6529a40650a55a0d9578704be5a05760a39e09ae84021637523cc7f3247beaa9ecf75b03b800e32ea0ad433165a028f5048e8074514a6d39 SHA512 8ff5dfdd1c12047c9afef28d9696e5f2582b9a5f114cbc0eac26187d0e5d7bc113ec06448ba75578e8e07cf197bd19ba30bb9e1fe082b333c782191981c3459a
+DIST microsoft.extensions.options.configurationextensions.2.0.0.nupkg 22680 BLAKE2B 1a84359a7739a728a7fba484aff03143f4f92ef7312256859a4dd2f180ed0a4144381ac97c8e3283fc914aef960d600cad551af751a937f0d5e723f10d5b641c SHA512 38949503f9b3498df33cb42cbcb53fd8a8bdd803ae2c30b21e69133f9657f53447cbb8f587521253153a9031a97601f181ca1582a5ad78ddda8a69588f23b79a
+DIST microsoft.extensions.options.configurationextensions.5.0.0.nupkg 59134 BLAKE2B f75415a3182c70d25df8c0208b00c308e78c75c6bafade420500b4ec0ccc9af550ec55b0917c67d314e2578b910c315790f9fdd5dbba583bb9e4a2841f530e83 SHA512 56c08d56e720c56c2c0d98aa2f591c8921a11127883fcde90da32ad14998beebe4402eaba07d53304001c8b7d5be7f09d13d6de8362e8a3fbc623cb14fa9b838
+DIST microsoft.extensions.primitives.2.0.0.nupkg 32468 BLAKE2B 3e46878f2d97f4eddedf0522b9162ecef826dc1bc696486dee53064b9128df7313cc58f1ca2d110b80eb91359fe46eb2c935a535e68a92826ecfe31583c709fc SHA512 47284b149a0cb337dbbb5af3fe0ce8aaf3ab760b275f193407f3387ca8ec25d6fafc8dedd8c755ab8b35756b3c84e5ca8dcab6ea8bec2cbd543cba304ec69371
+DIST microsoft.extensions.primitives.5.0.0.nupkg 116700 BLAKE2B 06f01aae4531b508a44dfa18395d9ed78f872c3f7544604efd0dcc14a858a0be079ea1be7ffa2eb7de8e9d267fb6df7ec2d917cf1ba212a82ac8e2e5bf30fc3a SHA512 3e51987e26781dd0434517f87ff97d6dfe599a551466f1c931529ef9c8751abbc29ec2bde46925f38c56fd5e7138de9c8c7a9a75d410329da77a0ea330bff7ee
+DIST microsoft.net.stringtools.1.0.0.nupkg 90506 BLAKE2B 9ac047ee7aa66eccbd6f2fe950f8c661510f1eac4200355b9f8ad323d099f75854127bcdfaf44b2d8c7037bd4b64bc14cc89ae7151d2fecb80f1af652db81830 SHA512 32afd8f320fcf7f8fd5aaf48ed7519969b149473ad44dedd20c173c252a913dd3d3d786fb4643353654db8a9fe64dc11929c2a6c77309750172b5cd137d5e517
+DIST microsoft.net.test.sdk.16.11.0.nupkg 40299 BLAKE2B 07661a0ccf19bd035f13df047682f516fc32e12eba4d826a09c001a2b0f46bf94ecd367ec7c62d700e9f709751034b3718729c0c38d9e73c8396744873d9c466 SHA512 59b26a53c90d2d2535222362ca6d2651fdd95224204587df83a0cb01de64cb96e50e4ed52f1f700f16fcb1900bd757d2cbe8150e4b09e8c61d930fd29c77d97f
+DIST microsoft.net.test.sdk.16.9.4.nupkg 40302 BLAKE2B 59313813889fc515dcc9119353234b6f189ec6e128680b304d1d42b7096f9d553671c8a8e21dca6d66825fcb869306ffa9e8b77deb49a80c935f0d014cb446f6 SHA512 e26d86adbe78e86d8b837094556b13cd83b4f02dfd9d1668edd88f723849ee8486d17cec0c35b766a557b9722578cc622d6830e1ec08a29afceae269af98bf85
+DIST microsoft.net.test.sdk.17.1.0.nupkg 40382 BLAKE2B 920cc0c21b9646f9370c0ea321bd96ba1ef8f96857ea01633063e19a4f0cd48130abc62cff65e662344ce53194a77ae33aef9c187b118dc77625ad8635697632 SHA512 9b3e18fe936d2f2dbbf33929a9a83f89ac6a680a59d3f90b7c96f0323207f10b71714e42272651af2d93316bd659708e3cff14599f1042c76cbeae944475bc64
+DIST microsoft.netcore.platforms.1.0.1.nupkg 17876 BLAKE2B 13250226ef4869ad62b8acbe8b8f791f9bca1932562cb7a7e8162c3fa502c02200673cc9839f79953cb2d3a75f64f92d43ed1dcd9081732e4917197483188163 SHA512 5f3622dafd8fe8f3406c7a7ee506a7363c9955b28819ae1f2b067c38eae7ab6e620eb63442929b967c94fc511e47a2b7547ab62b6f1aafe37daa222499c9bb19
+DIST microsoft.netcore.platforms.1.1.0.nupkg 17960 BLAKE2B 6a9fa22d75f5a1c65746dd71a63c3d4e37c393e99c23007c10f5ecce248a04863bf26e7562c7751177a6985eaac266c29cc6a5443a4a853e773f88994ad2a3fd SHA512 6bf892c274596fe2c7164e3d8503b24e187f64d0b7bec6d9b05eb95f04086fceb7a85ea6b2685d42dc465c52f6f0e6f636c0b3fddac48f6f0125dfd83e92d106
+DIST microsoft.netcore.platforms.2.1.2.nupkg 31064 BLAKE2B 6b28f015a1c3c2dbad93fac315a896c4ad116befd618f28b89d451b92f2ab642e414bdd372f46858daa52e72978ad6e4862b6a431d121e331296b0f6a08a1c02 SHA512 ec9eef7881fb32eeb37389655a733b611813bfdf84c3e2569240e3d0aedc11ef30b8503a1d1b7a493b70bb1da0faa8e90d7798796b0ad14437b8881189360722
+DIST microsoft.netcore.platforms.3.0.0.nupkg 29497 BLAKE2B eb1e21bb3a3d3d3a65b134ed766228c6113df472ef99587161ab751b52cd75dd3107caa91338590d09e14ce9b4cdf8a303abeaebd4ae06e1291c68085ea036d5 SHA512 fe939bdc69fbf773b950c7712292901f489124ee34cfdab5335224dc68c1942f8eb7db54d3a4c737a3ec07e072fa24e24e0b7d968e5b0b89a3da4eca38166547
+DIST microsoft.netcore.platforms.3.1.0.nupkg 29544 BLAKE2B 2739d62e92e61677964f9ef380ef2f72ddb6879444d7e744c283a73fdf4ad69c07c36a0b3c4030312b0a4c622aa91dc09cfa828ab8dcd9cf0c5506aa2fac5c8c SHA512 636a1e3768f782ced193b18ec61616c122b5b756395bbec3ede805b172ce62db2d631407deebba73bf136234479be4824f0268a57f52ff4f8d7d37d4370cd966
+DIST microsoft.netcore.targets.1.0.1.nupkg 18189 BLAKE2B d43a064d4c6f836be5164708ff0401913b32fc3340cad7c8fd08f421ea553805ac150a134a0d60a55d41eec124514a5e5197eebcc85aa6595cc6b91e33025d61 SHA512 6ed8e75f945a18651066fe9ee31cf6c8257a5974340fe4d262438903c4959a479f4a515a4d1389e6d3d3ab34f09a3c7bc2009aada2e8a7f697b6655a82d3bfc9
+DIST microsoft.netcore.targets.1.1.0.nupkg 18162 BLAKE2B 419d19e0da934ab4b9db75dd66cc22b83a003f34e93cf7a92feccf4f32d3d695e18b826b1aba13073dd4ec53aa7905a67346921d1055516647ddcde0d79009f1 SHA512 1ef033a68688aab9997ec1c0378acb1638b4afb618e533fcaf749d93389737ba94f4a0a94481becdf701c7e988ae2fe390136a8eae225887ee60db45063490fe
+DIST microsoft.netframework.referenceassemblies.1.0.2.nupkg 20957 BLAKE2B e521646690b142a703d943cb0528552a669ceed16fa71e3a04300da1eb58d5428b168628c85b8e963e963cf0041b0a02d7442414248e6f506ff3d7ae452a85cb SHA512 8bf3922b695856059b8eec696a7ace03a7269d71d4c456cbdfb21bd3f6e69f2a9fa25e46acd5c29ad872829a07cc05ec083c3a6ee942bca21afd47ce3bc533e3
+DIST microsoft.netframework.referenceassemblies.net452.1.0.2.nupkg 19845441 BLAKE2B c2be1acfd4207984ba33a5ed468fea39299d61d6af99ef9cfc7df16096c0ecfb6133a3c970ffc150f79566710a589c5a387a5d2da8d5ce25f23173cfcfcc7661 SHA512 f4b099aa012c3d117c58dafcaa3edfc273ad7d5acf30c84d213eb15ae101559e7da3f1810285909153e85d73ac58dfedc34e6730c264cb0ae013e19a1213d691
+DIST microsoft.testplatform.extensions.trxlogger.17.0.0.nupkg 361862 BLAKE2B 7315293c1ab965bbcc299a842a2e1f462e4821168f79f3036f7a14a4116f3d73c00f5b645bd1d16fc963f595e65ae11d7658544a6482c0e5926b36528644b259 SHA512 d72f41fbe9d4155b85d0e20e6a476d41ea55e355c61561270f241a1b2ef5b9d8dc9c81ca43d14c550a50bff0a301923e9e84a5035e5b31006a9639ba0221e907
+DIST microsoft.testplatform.extensions.trxlogger.17.9.0.nupkg 441869 BLAKE2B a250401ca8d21f51ee8fae91dc3b83b5453280b22f10b77a481e0e27735ae5cd1c7f0f04dcb0b5b0e74192c3e171e8d7fcad1a5f771835a7ce846d0cc7042105 SHA512 9b6c67ded3f150a2daae6f5a6db52d86e0338b3aea60a07dfeec67ca630e3ca9a5a8715c71c5bb0508760b877f5e2bd2f135d7f18f9bab9c81991a2fd44f00a6
+DIST microsoft.testplatform.objectmodel.16.11.0.nupkg 2966263 BLAKE2B 5bf6464154b639b478c4000dd64e7570d124a446680583bceafee1cf3eafdc6a7bc10cacc665327a562a28fe0268c5d749dad0ef11376880f76310f1e3cb055c SHA512 105ec3c2d2d476abfa9fec73b25a701d815b743512b575e7ee2373ef7e459f767688be7ecdb555849a8342e07e922ab819dfae637e8b23b36ed918655d9a7471
+DIST microsoft.testplatform.objectmodel.16.9.4.nupkg 2224614 BLAKE2B c8b0899000db731c0041f6209e4f85d2bbee5a7ebe3d3addd4405a33e1036bef52098c3fe8146123db262e71868d7bbe541149ef7443c7fc718ca78f916d384b SHA512 a1fc8192007d0d1a852393eadea26b8400df81a50d8a29549f79f726694696b2c361460561a3910f66dc195044b7773addc25642f9c7389b7152489e162f9ad9
+DIST microsoft.testplatform.objectmodel.17.0.0.nupkg 2963393 BLAKE2B 106eddcbc897147fabc6a7c5509e7800ed4af37fcbd7a05771a1fd752e354677d7f8ff4856015b2cb1cd2ad54ed5eba1d0cc62f58962830e0b84d71bb6b049bb SHA512 19ad56cad83f5897c5b93608be9d357c83ddd5f97f2f7751f40fc017236ae2ef3b0517147e4dba2c4395511a9f4f5b262a4f660a25974e7b34f220c275af9c4e
+DIST microsoft.testplatform.objectmodel.17.1.0.nupkg 3191688 BLAKE2B 26be3f32f39257044cf0947aaf68b486befeded4901e5344fc7d1df1bba1f8d8e564d310fc946e5d5d4b3462aba1734bb44274f6f471bc27f1a493e2e0480dac SHA512 fb7333c71906dc2a13a3bdb33363e926d0c6066addd1ef43b2b5067a616b754798f32f515cadc58bc2a9c6e157c05e6d36ef79bf602e9da9b37089644933240a
+DIST microsoft.testplatform.objectmodel.17.9.0.nupkg 1655717 BLAKE2B 5ae125e4fee8770a6a9f18a8566eeeacbbcac42cfd5eed4e407fd2cc2b1d773e20ad0dea461483fa3525cf113ea97dfbad6763a7afa354cf3d438057310d0140 SHA512 637048c70b190a0269d7e0761d7cbec7da8d306f5770480cb91286c06047d7f4f1666556dfc4494ec090db011b03fb736ca03313479b566019a5a54567e05f37
+DIST microsoft.testplatform.testhost.16.11.0.nupkg 7327788 BLAKE2B eab31bacbbf159a128db837076c2057b4a68b912e4dbc1583f5042b0333bbec78e2718ab2db0a6900c41d984a913115573444695d117f270b272141402db55d9 SHA512 17b0956e03edf7660dc31d59d5cd9fb141b3d002149aeed824a2d3381bab2f6a5ccfbcc2fd6c37e960bfd29e33e734db14cd1862799fadc80154f3d8ac3825a5
+DIST microsoft.testplatform.testhost.16.9.4.nupkg 6913327 BLAKE2B a82e3aa0cc930a12ecb7d2b8baff82dad9357c6a72bdb2b7cff0e36b5b8cc09ff058f016dcdf21eb1803dbce1759a1179405a0756f88579ec2645568b3cc9a8a SHA512 a5f780bc300d9bfc0c08feb978c36cd5e629207e54abc9d1d80202bf366bdeb13c882ef7a29bd52b50b5b9eb4e5a04737e880e817a853aa178d093ec9aefcda3
+DIST microsoft.testplatform.testhost.17.1.0.nupkg 7692160 BLAKE2B 4df352512bf2c7ca38e3fdb351dec4e7c9307bc88d83e242e34a1139a8f37fa60e0d4af58cc52d74ac0b82b557917c90057d30a83b06a5d8c7e7db17771bd285 SHA512 c661a1581faa059af1886e6dd2d02fb4d9417655758fe73c3dd594f6c6f944ea1a81921379fb02c5832a97c50f8124d0032aa99130bc204481707e76d47dd0de
+DIST microsoft.testplatform.testhost.17.9.0.nupkg 2859892 BLAKE2B f7fb36494032105a390f6be4e8655c1d1c92a0b7c5d6da2964537b74f8f19e45e4ac650f8b202f8573d75783a032c68f89b9f4d6c17fbaba681445da0964360b SHA512 c8246c9b365a8afebf35317357125563819a3ea68b1a2ec4d95cd44838efb2f121be5710250a68ceb06c7a052606bff1c202a9504ee2d20cf65f66463b43d31a
+DIST microsoft.visualstudio.threading.16.7.56.nupkg 989616 BLAKE2B 03e41384a3c1dd2ff4faca011b714d66130fa4f7088eebb925d57b5df0329ba79a3066289e2c1a20ba6daf833671f3ae1c6224e24c2a80f37b05fbf6d7bcce0b SHA512 0b31f9457e9778e3fde9ee612f8dfb065c6b51299b4f9e6af0c75f68e692e53409a064d0d53fcea466c9a41df096f7d121509ffcfcd12039393c30766ace11f1
+DIST microsoft.visualstudio.threading.analyzers.16.7.56.nupkg 502163 BLAKE2B 9bcb2044060ef67d81a1d8b08a7042621dc05113e176b1f2a0fa7c961ad74491c9612e0d115c823655161769b25ddd7afbcbc6a20d2ea0fe16794984b2dabbde SHA512 b2021b6e8bd2bd703bd928fbabfcd9763106c85e4c97e3c7a894da3a23ad9e0a3c8a8c7b0b4c42469c1566f515ba52bae0827f82a29a4a4cfc3bebafad6339ff
+DIST microsoft.visualstudio.validation.15.5.31.nupkg 262234 BLAKE2B 8f4714d3daf386a2b40a04d48077b09a4e0c071f4af3c33ceefb3806d6cef3e068a55e9ae092bf6ca345b6e84d57ea9827cad11b16f6ca58c21d0ea324f71a5b SHA512 2e777e6fa306b87c21efe604a6a7e6911299803895ba7f503e3870a58898ee511a32402d38190f6a971053227904f0e97d994c12687f927b77b26bac536da042
+DIST microsoft.win32.primitives.4.3.0.nupkg 63333 BLAKE2B 132ec29940d4b716110980c4f9a06ba15183d29de638379d09998124605165e51652b2727e3892b57dbc7cacfdc71f9e1b59c9dd5463a524657351f5385d896d SHA512 366f07a79d72f6d61c2b7c43eaa938dd68dfb6b83599d1f6e02089b136fa82bec74b6d54d6e03e08a3c612d51c5596e3535cbc2b29f39b97a827b3e7c79826f0
+DIST microsoft.win32.registry.4.3.0.nupkg 190042 BLAKE2B aebc51a12c2a1722fb2e5cdca662f5205ce84218be139b0b3ccf90686551c6666d7c5df77e4f68c4af09ec2c68d51f0660435be7866862de67ed92cfef12f7f2 SHA512 38702f72eead561e343e77136059292c8b6cc3d3bcb14739f42e1ea92a8477e539ad8eedd3ebbb5e88ba330d9039fbcf2761d4265c08115ab19250c87e7ef9ed
+DIST microsoft.win32.registry.4.6.0.nupkg 377490 BLAKE2B e64a82f1554d55c549df63d62f6f8c4a4bafe9e1d43563621d5b937fa88179dd651476881388087018c73558714c3f44c318ae1514ecf2a5dfd539ddea7dd327 SHA512 0c6a315c87d3e178302e7372fc07a6c65623652d1b2cd5c3480bfdc1fceb1d41ad72bed23fe27d0944c6d19a10c0c4b2d33f859e9f74981d186803d17ff1aef0
+DIST microsoft.win32.systemevents.4.7.0.nupkg 148460 BLAKE2B 07615e6811f9fbfb65b22f70e266ac3af25117bf0e57803c1e19f452ceb71b5feed2d6bd78caae7b0dd87e2a752442ff25e639fbc02831d3c02f6377a1c2913a SHA512 3dc95211fd597cbeb7b8498e79d58c8dc373767d129252f1858f223fe9228bef56c4dd48e613694581fd197e8c1ec428ec8788a451b9c248e2073c7603c994d4
+DIST microsoft.win32.systemevents.6.0.0.nupkg 157768 BLAKE2B 0a5cea49c552a8d3e5aa2e8913fc4929ea318026b02a85c03665fe8bc449d59f838ef9a1044e0e034f6c30c7b63187c02bf6df4106b19e801d6c194ea5641941 SHA512 5e274ace996c3eba63099ed5116f9dc39f69f684f7c1e7623c28c3c73988b75c67dfcc929a50a761f0222df243dd540720a6e588e91dfa784f81bfce7a893875
+DIST moq.4.16.1.nupkg 565511 BLAKE2B 12b6b77c41cad64bc2f8c00ca61a3b82bfb1c48dcf06a4242f1d20ecf4cbb40ec365cfd2e33d2b1e2ef18518d2bc98a0fcf33d2c918d40f1fd794817ef32383e SHA512 a05b7865b9e7f21d0a474c41fb70dd9f0d16393ae2bcda5a9728aa89cf2f531f250339ccd243cf95c84f6681075de2820fb7f4b5a340b688d2a81138cb842083
+DIST nerdbank.streams.2.6.81.nupkg 438160 BLAKE2B 6a7de1956b5dee56275279cd20e5fad851b9a617e516da56f96b6d09246272a1b85f4073f2b4795a318c4013ccd656fe619e28c937318be15368a3a9fc8fa737 SHA512 b957bcea9bef4d4f9f4c5ada9220fbb3b0d67d149b8776150749dfa80bd3e41974eae57831f700b7a68e882aace06bbb4bb84341fab20602183b19499432205e
+DIST netstandard.library.1.6.1.nupkg 17360 BLAKE2B 02badd3473451f83997f0b66d05f1541c741e65b9127b8b27ab391260df7939f235eb6648b11c7c11cc5400489ddf1cd26820b7bdf6fd9f1d8f0dfdfeef96acc SHA512 0972dc2dbb4925e896f62bce2e59d4e48639320ee38ad3016dcd485fbd6936a0ed08073ad5eef2a612dff05dfc390f3930fff9e79d87a06070eeb8128277cbd0
+DIST netstandard.library.2.0.3.nupkg 3146139 BLAKE2B 311e5367398f76c74e78930bc2cd39e450a86bd8626311ded8d58bd84c94a8a84db3c11b2bc10f3eeba20a9d081fe7827981f702ad746b49ae3108c949ba1022 SHA512 e78f0cea69c14895b1b089644077dbce8631a626055d96522f4d29e061d8bfc3e48aa1419e74faf265b998612c03f721f5f0cef4690f824150a5689764dee601
+DIST newtonsoft.json.11.0.2.nupkg 2409669 BLAKE2B b7dd7722f7f62eadf7443ca5a54ce67f5369b557e2e1802e77a288a941dfa21310f6b54bd07d9bf107ed6daaa69abd660a3c9e9cebf4dee8b6461eecfae36833 SHA512 ce76466f0b3b138040f63c4d67b16e888448dc2f61ae06ad5504932a121865834eb9de0ce557c6953622e917583b9b10ade6c5b85fe0f54115de13b10cc5c5e9
+DIST newtonsoft.json.13.0.1.nupkg 2065787 BLAKE2B 000c38ce26a2a00bb25a9c1d6fb069ada521ff089bb624a5c1255b25767c10616cc51821524e7bc3d8b45eb8f8ee54c97454db1db9ae5e5c78eb6300a99f979d SHA512 83731b662eaf05379a23f8446ef47bbc111349dd4358b7bd8b51383fe9cf637e2fe62f78cea52a0d7bdd582dc6fbbb5837d4a7b1d53dcf37a0ae7473e21ee7b1
+DIST newtonsoft.json.9.0.1.nupkg 1613054 BLAKE2B 56918db57c3786cff0548b642195521ef203246a6b2ed010186ccae230af3b0c913ace4b2a3319bf94c6e47647b9c5ad7b017e3b50d35e6654b4d5b987643739 SHA512 da8917a5347051c8106f4ea9bade4bc300a3b60a05a3be3390f92c8dcbcea67223c7b4da8065b9228042000e25b99c75fad7e2221a0daa8888ed8ef3c161b228
+DIST nuget.frameworks.5.0.0.nupkg 215958 BLAKE2B 1deeb9d7d43736c70d11f3bb7a1a44f8a8a407fc18b32f85e252d2a310e1127a8e5a85ced627fc94ab9e034c73211a08da3b6a3fd43be83d95a4e3f5e26d856a SHA512 ebb9444b3b46063522e3b432c67acafe8943da39c866978146f88757f1be5571bf40e9df208824440efa4116b0b47d00f9708a72767a22878a78aca5a9887650
+DIST nuget.frameworks.5.11.0.nupkg 217001 BLAKE2B da1d47fc7a368b03995b311848aac87b5f0336182bf8479615e56042c363e150f3ecbc0a618ecaaa158c682041fc22e3b9efba9ff72849051ae996be6787b2e0 SHA512 1b3b1ad7813654c84d6c0b48d81a60c2eb060307693d993323cd563fac5462b1deba931a1a59e07b67e8208ca42d62a1ffd66349d5d34fabb2790484ed854944
+DIST omnisharp.extensions.jsonrpc.0.19.5.nupkg 1218175 BLAKE2B 121395614f36e6d0deb4237473a82c22e872e46805db064a5d6e806776ca231c3d66296963407b2b5d8e4a8d918f8fbfaaf74ac1d76956cca683782cce1cdba6 SHA512 d108887f1aa50ecbcf1d21c7aa83e72335714b6fd86fa680f06137d27a86696caecd16005c31318cc3babefba7865b65a12efbcb1820089c6006768a27edb764
+DIST omnisharp.extensions.jsonrpc.generators.0.19.5.nupkg 213128 BLAKE2B eef4cdf0ec622a7b0b70522c9b3209e2e9428ed33e02615f61453e9df28dcc29e5a29d10c33e0509464b52d8f39c245380d8466406c410e45539bbf8c167db7e SHA512 9e7f1a247cfddc4b09aacb53e37ee3ed4b80cede0d8c5ec87bd9034d7a7b73c901893ed3f10afc9808c99ecfb4266cda9f50cf68930c0b12a19a219acebfaa66
+DIST omnisharp.extensions.jsonrpc.testing.0.19.5.nupkg 75027 BLAKE2B b6fb9c1f04ee662e2bf1781ffded1f0535015a564c6b3314bb4915ede1c525cec3cea626671381df876cf06044fb9d5cc6130aac379dc5649ff80e61f0b396e1 SHA512 a565c7ce0dc46c60e83277d3836e40d0d8a08be7f5779f819b76f3172265a1a4e82f3918833d82d3523dddce802f0b7349702635a339683e18ea1b2640036f1e
+DIST omnisharp.extensions.languageclient.0.19.5.nupkg 112721 BLAKE2B 1fc195b258d07b002b240199124ab0fb1d4f1a3d07153d50e1f3dbe1d1d8dace2e351cb1614c906dcd301937c59f2f671fa64e4922ddd8d5d37d1a42fc41350c SHA512 20405f66cbcc0dc360ee98ea7220590f1aa1c10c213c883e60f3406ff89000e1f9c07963130d59f4895527bd178ca6c89fbbff1311b9d675fd12333c4b551e8d
+DIST omnisharp.extensions.languageprotocol.0.19.5.nupkg 1082429 BLAKE2B 88fdc392501986f916da254fcf0f17da0b3b8c1965284d5ba18342734f4aa22bfb22cc858284c95d5f170cacc169828b05fcf8dba9c39de1fdf2d8cdf9375901 SHA512 e536068f17eaa46da9e2af8128f65e4f50c5e5a4b15ceae51931fd4f181ab41bbf2e603dbb77f2cdfb3a9ad8d2080f4b66364af195af763c64a8d8cfa91dbf00
+DIST omnisharp.extensions.languageprotocol.testing.0.19.5.nupkg 91489 BLAKE2B d7fbc64265e767d34fe9bda33a1355ab0df2d35e2b6c846d3f29c0b8fe64b2491bb3df3b21f9295e99193d27df79c1f455b085b7db3c081620f62b0c9d266f1b SHA512 0c79a954d06039d06a99ffd22a0d6b1e74aa1cb1472c5328b8080c1db00ddbbddb1a1ee91906709f244c2e4998f15485f3a964e99d40fbe30d0745c9b55b6518
+DIST omnisharp.extensions.languageserver.0.19.5.nupkg 159564 BLAKE2B 4072d575eb5cbb0ca8693e5e8d31b7eac93141a4c49b6c313003f8f256958e49142494a76f5a38194757cbf8b2688a68c65802caea60291948a35052bb80152b SHA512 6c31907f01641716a5a853e5b13e55158fe74ee2237be81aa4df46ff0a841a2f8a69b2ac7b960c9f25deeaa73b7780a2c4f751d46bd3644ba3b1fbe7c0b203de
+DIST omnisharp.extensions.languageserver.shared.0.19.5.nupkg 87423 BLAKE2B 98a93168d7f209d5eb1bbcb1ff36067945003f05b0c2defd7d8b78cba1ee0ea5ef252839020b7e7fac4de68668cbac87537771699a59e912cfa85d27c577a369 SHA512 aba92846e654e621378b15fa1ec16f4ae2f9b62697a80bff007b30235d7dcbb73eca92e58cf4cca38e52e3fe2c8d9ba84551e5d7b376bf57a222b56991b520fc
+DIST rangetree.3.0.1.nupkg 33158 BLAKE2B d185ebf0c29c1818deaada4e557a59e90cc4d31f3510196dc868e0e5ccf4ecc4535b437f566b8e5abd21461555a6509925e896133699120233ae64917a5d3408 SHA512 25002782f880fbd322d4b42734995f3875a3ce928234940d94b22f620c341cf089549c9a2e15c8abed5a3385fb60d53da2bf084a4585eaaf9f2a7061d82853dd
+DIST runtime.any.system.collections.4.3.0.nupkg 107990 BLAKE2B 802e2ae919a4834150d825ac086d8f47e2185e31b60b45f3dbe5f63b1d714953d9faaa7d8fe4cc25a1ea8495c4f8fd925bb198eea0b67e594a8558238b18196c SHA512 9f8833176c139b71a58694ae401c5aec209a63227be07c7ab559bef772082bd1f6cc38ba2949cb1c8e5c5514ad9f4ff51859838dc2f28191f8bb7ae611a50239
+DIST runtime.any.system.diagnostics.tools.4.3.0.nupkg 43707 BLAKE2B 33d1c57eb4e50c06488da02ab2bb1b8dba9948026053e662986af05b74045c014e76815edbb588f10d6a904de22e4c50177f31f3fac36d159b9af361a4cb2b62 SHA512 bd257401e179d4b836a4a2f7236a0e303ae997d2453c946bf272036620a0b14e85e5f42c229332930a954655ab4cae359d191a3e3d9746df09535a651367764c
+DIST runtime.any.system.diagnostics.tracing.4.3.0.nupkg 49844 BLAKE2B e35998e1369bacc9fa90f74825e021c62b9c671ac9b7cfad4e9b455656bd40e968f348ba8943ed670c74c22bddb1c94ccf5058885233607e3c73a5c7d2a56688 SHA512 0b480d21e23c38965222be7fa1e1a0c7e444cebdf400d1db8d3ac609f893b82d78c5d8b271da61808b7b179dd6466a0090bd807fc2d35020f93a00f0213bb436
+DIST runtime.any.system.globalization.4.3.0.nupkg 43718 BLAKE2B d6f90f72f080afc0dbaaf487e2966d2569ec8dd51d573ba2afd1d705cc8c1f5d47ea77beb63ffe4fbc75dd6aae869a9b52e9e293b737ab32321420f635113d80 SHA512 3aac1a076212fae7d0ac81d2b5fdf216b064a1d890577307f89c9a4984c239838c3bdfac4dea052027de090704839319231eef49ce542f3e8bb2f85ba23d28dc
+DIST runtime.any.system.globalization.calendars.4.3.0.nupkg 43456 BLAKE2B 6453e347e796d426fe00afa28c182e53d764e58e52a21eea8d71661029608de957bcc9a6d9f073f2897d4b5d601f1e056a8d2334fd7cd708461148549454fbc9 SHA512 19053b502b7160af6f6b0bc5b334a8d124f77f6b4418993294fb485d0bb318cd6e97cdbda9bf8c9927366288413cad7209c9d8156a5425a6320c453a8804fb3d
+DIST runtime.any.system.io.4.3.0.nupkg 54553 BLAKE2B 0066bcf13ad4f769cced6704e3d5bce057138e35650699df8c84fb67aad1dd0f2b9ac62eec023fd1b2845e3e2038d1a56602e0cbe59795219b34b9b47d0aa880 SHA512 7e0d4a238322d434a19afc79ea988d3727c1687fdd5bcd1c4c39cb6201073caabb924cc201c70545d60acf8b94cde8b783d0c268743e040c357d100677e4c5ed
+DIST runtime.any.system.reflection.4.3.0.nupkg 43499 BLAKE2B dbfed54ebbe3c7814773dc60e586bc6442024c4565dc7579c2a3dea9ecb7fa6eb554bb7d8da7d2603fb455d38caffab9ce553e6cb82f8c6202700e2a3c80d6db SHA512 293d3dd8be87e1c5cd76ece4ed64ebb5ae6b50be95a39bee401eeed64355e34641905f8c14392fbc3acf8609f5d6fca731f39ce7607962eb5951f09516480015
+DIST runtime.any.system.reflection.extensions.4.3.0.nupkg 44123 BLAKE2B 77dd6ebec2090e9902b5fb9a0505d07f953baedf9ae30bb823f18867b0e4096af08175203efc2205a5439d53eb264b085615978c782969ac8e051b5c7ac8b516 SHA512 8de7a4c53fc0324e766bfec360342ee4a4b99a5975a9d61faab0a715ef71ff97aa83383a5a8affb354c02a4e2fbbb91e1b4ae6b282d2880108cb489f06aba500
+DIST runtime.any.system.reflection.primitives.4.3.0.nupkg 43106 BLAKE2B 9be774d083220f790c2710bf0add5f186c30da37cdab7abe6fd084e8b3e43926350cbde084ddbab58295b9bdfff34f63de6f24d72c9333c8f0dc0fd6b04b9ddb SHA512 a2f374276290ad9b799d3e49cd8fe7839c07b52f22894bcd77b9470841564319fb2ebbd7503e76feef42db4e8a362af8648cf0842a1cb0b5d9a60a58ef8b205e
+DIST runtime.any.system.resources.resourcemanager.4.3.0.nupkg 42939 BLAKE2B f0a3df9518b008cdfa62fa7b7aae3d419bdd8f77e7b400cd06f03bfd20d2ac7abf570b26c63ab32329cb47f7b9763db786e4e397ad958dd81e55d9ee8926bcd0 SHA512 39fab03cbade2b3848d62e137313530c06b37216e24cd58c70ed6ae54bdaf9d9613a3b410375ee167c87ff935a558b1f8766ee016b8b244fde99c38fcf42a49b
+DIST runtime.any.system.runtime.4.3.0.nupkg 55302 BLAKE2B 2de44260ec821b818b3c0cb3517be7ade5c16f29e0ced086460dfabc29479743947134214c037df83b9646724cad004f55c2f518cd4bc2079853f2f6e1cd70fe SHA512 bfee3c68312296860e5459af5e770c2e9fcd4ac134361fd569a9ce1e6574b9ae3978aad403f89639a4b5bac8ee5bb0ee1b8edb819e9a60f13ca5bd1812889bbd
+DIST runtime.any.system.runtime.handles.4.3.0.nupkg 30945 BLAKE2B 27f615ec387f75416d05d0d545f1f90bda9cd7ace1e7370cf935735ae7e6ecec9c8d54b0b267aa42c041981b7d4ff22603f8a12e18290e0f354e7656f4271d81 SHA512 95cdae2867a2182535bd0f4d01dc3eff70319dff044b070ab7791fa2bf8688a69b00a279ed569b7f0c5f3e26bf705303dc344ecf7d1ea014c579436d8e7b7389
+DIST runtime.any.system.runtime.interopservices.4.3.0.nupkg 71496 BLAKE2B 56aea647e26b0b6fe2e8786732100a20b66dcda904df76d0463c5cd048d842e9899be7482f819bd8d4a62dd6b8d9f2f8289efa99ef6c76d2cbfd0fabe6c5b36b SHA512 70eeb2469726d092bb95568e51ba5cfdd1cc07a9e65077e2b6dd5b7c8b164d4b45c749ef4a52f45928f63a27e8accdb83b861ea73c9ad3d42dc38e6afdbd0e8c
+DIST runtime.any.system.text.encoding.4.3.0.nupkg 43396 BLAKE2B 99ea1ca2da0e85683e240129d4adba28eee337d0a3ca937b61123d775255f738b27f00db4b08e1fa9242bf29ad916828552639ab3b55eea05e0f307bdb1bb58b SHA512 cbe6df98acd50e2251d3343620c408af56cfe7c1979277a8ec65b5eef093e93ed93c05980902a7152ed83302d5a625d7058921baa7f446c5e67194fa4c06f20a
+DIST runtime.any.system.text.encoding.extensions.4.3.0.nupkg 43296 BLAKE2B eb16dfc6e2fafe299fe49dcc5cd1d2d18180d18caee2b0e65fe5c75b6b4206260e18f4e2bf509fe1d2dc3366541bb38de219929db6e7e12f08b64b3a5d3abac3 SHA512 656aa8bd9d7e19534964ac7b8405615f00359779e322d4cfe1f18c132fec4a4f52c5588bfe61cec9966a9142a73315f5d2b9e5a7c524b418364f0322b20961c3
+DIST runtime.any.system.threading.tasks.4.3.0.nupkg 47940 BLAKE2B 950e0a58dcda7dcb15167d028380ae4ba1ac576b141d95ba8eda08e0d346a9e0452e64ceff1169959eb9f4435231466be209fd6e9d17f8dae05254443f0ffe1e SHA512 5f37a56f5d6c7fc198c7ef76b822b85284f9d7d1c06583c26a698793ade65da1b273d5fb03c20be1eb91a9c835f7122ad2775f4e51dffb2758fabac2a30f8c23
+DIST runtime.any.system.threading.timer.4.3.0.nupkg 43098 BLAKE2B ed9d0f7aa58934bb099bc750d7d433cf82a3b54369143ae4e3b27178213ae3d3c79c17463b2a4a2f1dc2e55a9130b7a8349c0832549a404b82c2b08b9016e9ce SHA512 c0a1fc3661b4e21f329f88a8d2cbf7152698427778add9f850476fc9abe7cdf9b86df79362d6df025f7e15d53f5eb7937d8ac49bdef13fd9eca973a284929fcf
+DIST runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg 44390 BLAKE2B 60483871cb9b81514f5b63f1f9ab9cf1c7a6ddb1d33a2a65608b47a2cf8cc3b7eee8e087250a1c49eb2893f36f29410e897387346fa4c3fc5c71e41046f13673 SHA512 b2cf809fe50c4b46bd6f2372265cd3059622550123afceb5dbb2410906c07a7f47bae4273584d29253d5e7a63a17c68c7ba0434608bbc8fd4d00e479b2f128ff
+DIST runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg 42827 BLAKE2B d2b79a9b83e0bdf569a5c333ba4f86ccb1d5b532d2e1cff3ba7bb597688ac78268a515be4c35a025c66727070100634a4bc946e02ae7b93061be968fab241bed SHA512 fd8e32d7d3e9a465202e391b0ab8b95e212900879bc4d8ac22954fd2d0f98fa579e9d25f88885ac2a4bf1eba755db940f8d131250a3ffec34dbe77431a379cab
+DIST runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg 42833 BLAKE2B be9197f3008b3dda19a45e5b5df2ce3604f58a98045a122aa77f082708de67ad953fba761c39ec419e945155ad74d5800638feb581e5d84424ba104f32541640 SHA512 4afac5cc1734330a6103880e790d639e825bfb1b34dbd42083762c47db5e5dab6c03efd16049ac03861d7d87746caed09c7534241d51b7341d47ba6af7e8dd31
+DIST runtime.native.system.4.0.0.nupkg 16852 BLAKE2B 6914c7090188cc27789c962931875892dde24e1fc43080935d337840164d361e4410d8228c576a3eb1c0eacb82603f2015c05b39516893cabc718d8ce67467f7 SHA512 55ff3eafa406ec3d8e33d8be44d0d06352ce746abffdec1378716b275d634e133fc1bc56fc312bf0d921efc59e8de4ac811022cc34a77fc1f1abc982c931932b
+DIST runtime.native.system.4.3.0.nupkg 16854 BLAKE2B be46e3bd8781915572308ed7d4d8a0338a5c79b901a27c7e7c7fb7fb25788cf00968a40f96cc43b1202e56e5bbb2f87602d247295d8c98f2c143a0ad3a8d7664 SHA512 299c5a96fffdcaf1972e3e3d1c727837d18ac9e88cb79c09914f12ff1de7280dff10c9232a49a1c1d3ba7785a5cf76f28c9dce414f0a2a567688de7fd5331dc8
+DIST runtime.native.system.io.compression.4.3.0.nupkg 16918 BLAKE2B a158ea64e917d9117684a9974482172fa2450cbc3e41a2918cae1ccbe004988fa31d975c8f06fd9a3bd320bf9b5a0e329eed36491b928df6db242507162dc3b3 SHA512 bff1f0cac94327014bb07c1ebee06c216e6e4951b1ddaa0c8a753a4a0338be621fd15ec621503490dbca54a75809abc4f420669b33052b28d24d726ac79c9891
+DIST runtime.native.system.net.http.4.3.0.nupkg 16894 BLAKE2B c803da4a0e31f509b83e061c0dde9b990188418ee29efe9bb0b7f5873fb2b14990560b4191d78ad16e9ecd53ec701a4fdbec3ff66b88c3e49b5f41b57ae11df1 SHA512 ddd1e5b67545477f7c72b5883666de40e89efb0836d91e7a349e2f3d4ac05ce1125e6add3cb09c39cbdfe7ab7c5dc8fdaeaf6ac25acd92f6de3d8ce2d6db7918
+DIST runtime.native.system.security.cryptography.apple.4.3.0.nupkg 16967 BLAKE2B 4ce2983bbf2c2c6a30c2433151458e4790f43b289e9faecf38e07505e5519bc042f85a46a331ead5f31419971a5af3ad4ca5f18b477c4dfd7e4e7f33cb8a3eb4 SHA512 23c6a99b323cd71cdcb28c6faa71f099f69ff0972d5125607ae8bbc99ba7c08513571d14526e8c2805ab3a8b70d3d3a6dd76dfa193320393ecb05906ee91f37d
+DIST runtime.native.system.security.cryptography.openssl.4.3.0.nupkg 17048 BLAKE2B f3d49c45e52d4e317fd5750de6dbd6628b414d127ef38f9fb4e2ebe447b13a0f93f38c91850c9df4c0a6a3fa738f58daf2c440827bcf7c7d3436a8174b5d212d SHA512 ee5d047908b99b776ff9bb54856454b24b09a0f9271b127239543b1f5faa3381a032d9eeb4d813d01b5a4b7d183b6a16250f159fdc450d5314a7eace1550bea3
+DIST runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg 44200 BLAKE2B 30ee247fc53f9de0147a5c5666bcfbfb674ebf03ceaa4ea3c73671154caa6ccee2c9254c0fca588e9a21f98e27ad86f387255b554ce37d7e36f8a69502049e71 SHA512 81bdb93c1c86c560343df6cc367499fb2a01a9b3016617be416874a23c4355a8d95c7be34f175510f3fdea4872302a87c8efab98a328dfa39422db520c3f291c
+DIST runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg 44118 BLAKE2B f89226f71e042a6bf70a45db59dddf06fb5083da2ccc1cbc17e8b3381a1462c36e0ddee7cb38a2003ccd07ec4f2a987a9e69ab143054a3a106ec314e3ac4947e SHA512 6de9544b4da49f127680cf5b3b4afea96bfcac3293038a1b0a12eea0ad60be368af31ee1dfd66d48d458b40200738c04aa0c71adcc54ae2dddbea2cd50d6f28d
+DIST runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple.4.3.0.nupkg 19581 BLAKE2B b8bbe11bed19360bb221715acff84d41f7f6cf871e66b09517a3932ce6a4ff454d548dd58c75561a18dcd6395f4ad11eb1e5106330fb702330b8ccee6618d8d1 SHA512 9929942914071e0ea0944a952ff9ad3c296be39e719a2f4bb3eac298d41829b4468b332fba880ebe242871a02145e1c26dc7660021375d12c7efcae4d200278a
+DIST runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg 37682 BLAKE2B 0fd5229c9394741456079a6eed8efb2c99e4211cb7be1873882ae6708c5e87a4f5116a9cdd6fda005896d2af4237779f1bd3c2332a1fcc993690e2ef6f5d889c SHA512 61da1667a5dd1e53a5d19fbe90abbfe332d84fe755fb811a080668a47d41a97db44539e3174fd1d2a0770ff1bd83afa68c82ce06df5775da65a6054ccc12c4be
+DIST runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg 42668 BLAKE2B be90c86ebb383a1d7e037d0a0b24aeb8a7e9974388ded41964a82a2d2a4dce0e62feae830fe7dcd29c0fa19584c0b15281f1959d326fd6b7e17c6e70bf125c1b SHA512 e65a6a1f1928cfb760c395a399542dc7f9087399c53874376604504ae60abd2da24ed735ebd148d335000a5e35c8108ea55404685e902df392eac2e8d38fb665
+DIST runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg 43118 BLAKE2B 242cc78b2b335d3c15e798c81cb19654b44ecb79e29e6babdc404bcbffd1691b07e0640143cde2d03a0640d6e1851228188eb91cc6b8b9f8759d13e8aa258e52 SHA512 c9f219515e268cf40e16b135bd64cba95c35e866dd9bc34954159562314d01d2f9ea7eb8b0db94acf6bdac83d651d90bad7890cb657ffe40fa3440ec662c9944
+DIST runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg 42901 BLAKE2B c62ae072f63c79e2fbd080688852a545df160e6be41c68365508d6bc96c85927feb6859b32c2d8450b07058c2955aa94d4763600f12efdc76fb4d161081cdc81 SHA512 4981b2d7a106703b185e176ad35bfda149156f3b752778fa71c56b3686407765fd2b6625de352bd563aac1e1e8769d7886cc59a0d5d0bfb41ed60277360beb81
+DIST runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg 42939 BLAKE2B f166d9c0b266e7c7fa6d6ac61201a755ddca3ca6d3f13e52e4a04575c7143af5bfda9929d3701ac7cacb0e61d8debedae4419fc202d8cef73c8c1496776ffe28 SHA512 5dbe6bc007a9b46491e5299602291f5dbf8cc8d51e6c1b08db2fa0efd365990b41b6e181ed6bf82e873a659396427bc0e33e85b47d645d273fef8bf8ec643631
+DIST runtime.unix.microsoft.win32.primitives.4.3.0.nupkg 31929 BLAKE2B 18ff9482cae737a7098f352f59948119b4f9982eefc1d835245c5336ee6fecdb7fdb92445d0c1fefd4e4c7cc4e64fec3d317e8b5dc160320781a3f820cf34da7 SHA512 93e6d3db61f9c2ca2048f25990dda92acd5ec74561e0c776d2c6dd8d1d55128f2c953f33d6832fb6a72bd9edca304a2551085bdeafe6e18af87619c9ba943c32
+DIST runtime.unix.system.console.4.3.0.nupkg 62174 BLAKE2B 5e0394b879ea85a36c22948a006d41d6d77e2283139265ce5fa6089faf209e447a90a02965dd576c20c28ead4faa232eaf4073343be69c70f4913a3b52f340ab SHA512 7c5cbda7d12315fff6b1e036d55ea27140de8b849f1a9705fd2710a00a2b70f06f534eb0d3e3c8ffb019e1a47d96c559ac61d5fc9d840e48f6e56542fdaccb83
+DIST runtime.unix.system.diagnostics.debug.4.3.0.nupkg 38808 BLAKE2B c7bc02cd3fcc7f547c9d1786fd12da492bea65cf9e01a385e40366614c6e90bbb2a46103096ab491ef6765af5f5ffbad9506f0bae8e68b6d33c40f7672bba0e9 SHA512 a8ce331953b1f4424aa7f4b6dfedfce9ad138940bc92f332de2bc6d05185830ec6eb832e752f62eaf425f749caadd4ea1789121cb7ed79740fa5868eba55c838
+DIST runtime.unix.system.io.filesystem.4.3.0.nupkg 62460 BLAKE2B 6431b1bbf73d43f5d49afcfdac3f4e6a21b4d6c86db7a99f339d97c86fd9f98fe64d2a4873350076a42d1f7faf479fe744220d14d1badaa56370e1c615afb4de SHA512 6d4c80aceffac60e1560fda34c5984bbfa2e1bd106bde2c6d3540905cc30c58e6f5f2eaf5703cef5e68e3d25a4b97982193b2db8130a50c622a498e43eb9bdca
+DIST runtime.unix.system.net.primitives.4.3.0.nupkg 125060 BLAKE2B 76f760a4fe1f14bf65ecad43c73f51b819cae80b259d32cc9d5af74cd559dfc86267ba58cf15c577de697c9e1add532da380b267bff5487a2974904fba1e2813 SHA512 c2a0ecf5c72b226b4776eb6281f00267827d6086a0ad758ebf6e6c64a1c148d2056fe99c87ab4207add5fa67f1db73dd1ed3dca81141fc896be6b6e98795c97e
+DIST runtime.unix.system.net.sockets.4.3.0.nupkg 105673 BLAKE2B 06119cfdac3ce590b2f12f5587c75b6799fa876d7def559a78a1ccf53e34e6e1bf79410bfd676b04f1ab3f34a887eb919078a55cf79dc75faa75fc62094c2cbe SHA512 31b62be088315ead04d89f452a6c49a656b88f0668f7dadb2790511675d48705e01c9df24dbed3a0095157875c208ab6e6b5b6afc82bac13e4d6cdd3026f8424
+DIST runtime.unix.system.private.uri.4.3.0.nupkg 75969 BLAKE2B 82611545be3eba44ccfbef1f104e9b5afade845fd3b30c6cb40171368330f9d4bb2ad8752e415aa3b1678ec140c40f8e72cd4cc3731f42ca64016c1a1dce70cf SHA512 203ebe272791d79ab0c40afe9d0543852ee91b9fb4ae5bc15524d97728bc8bc9d7e0cbcf65d1fab8cfb0aa7a4ae37e7938933eef127aa5ea46f60e57b6ad2d91
+DIST runtime.unix.system.runtime.extensions.4.3.0.nupkg 54075 BLAKE2B f81d86cc15c63aa0b4a3d03546a07649587af7a0285af0de4123734e719fc023fa4227b7abb18307d4fc060e2952c157ec72b3bb85d49ab8508d8167b1aeedd7 SHA512 54b81784c08e934389c59e6e155af6b1855e4bbc41678b01a702c94e6daba87c6ddfd16fe9e2cb61f3097bfa4950dbc37781454d027ce5ba6c50a393cc91b888
+DIST serilog.2.10.0.nupkg 491974 BLAKE2B 27839d2ca6db6b745a627e9b534954633539bd0126872dffeddfff87ffe140167dc04c62cd801a8183dd210c735c9319c2fe76c5ea5a4c0bb37c87aa82b257ca SHA512 9c19964d1126c2e99f546f1da81764644fe39b153e3d8d725473221a6e0855f356776d2f40a8a5d04ece4e420075d5b987650108a4fc9b32b4f56ad3d0792260
+DIST serilog.2.12.0.nupkg 769482 BLAKE2B 178f0796f7a9cd82d60a6d8c1501dd4b5432bdcc9d41061572eb5e0a1e0da924f48c2557dc43e610f9f49da80ba459e2301d43772130b22be5e464764db5e945 SHA512 3546b98340b8399a8ca778b9b82072833ade67b2a016fe261f5a93a3f9afda222a1f432b146dc06edddb68e6bd32bffa4a9aacaae03205c365b43f88044111fd
+DIST serilog.extensions.logging.3.0.1.nupkg 21474 BLAKE2B 8a0987a47939ce9901648f0ebeca3a4b29eb15beda0bd0206fc1ff0217132c574314bef35fa6de87ff4686455a5a24497af1393243b033e4ca1720b20917554e SHA512 65e5b01f8493c5ddf8927221a431a3c2bc2454c12de4392d85bd13f1c0d3cece3f73135d2f81242d14456dae7bf0f99ca0711a6006efa8e2359c86e0847e3f6f
+DIST serilog.settings.configuration.3.1.0.nupkg 75871 BLAKE2B c32066f2850cd49b4d2a4ca2b1ee50fbd509457073109b60b2a3a15d69e784390de1804dc87db33f90adb829e28bb2590d0787da0f00f2290847489267382d6c SHA512 dcf09d92376a4600f039c63ae11d644af88afd2029309e8f9efc2a9854c2840d34be7a34a067bc596b9c4040bdf72f85dfbcb9e51fa8da3b8f40ee1d65d48198
+DIST serilog.sinks.debug.2.0.0.nupkg 52026 BLAKE2B b8b2bc0a1bb2386294ddab0b05c32669ec2b869830e35acf5a9a41577261d6441b6517cafc678a3cca6bbc1fbd4e0c78a7a25f7c61ede1ce0c29e3fc2bbd94ad SHA512 fbddb39441be29aee4077c487e321ab0c3a167adc74f698115a5412d989e4d33c2a8d1cd9fcb96b312c567cb293d23f8431c936d9647691e019600a405c5cc6d
+DIST serilog.sinks.file.5.0.0.nupkg 170448 BLAKE2B a2c58b4b2c43ee9c13e43bd341c4a352214f870d2c6cc6f3fa71138aa8b07f8cafbdf0184a3522d0333480b0ae252d5124e1e3fd5dc26df89474cf9e2a147dda SHA512 e0139b1c37bbc6e8dcf4b44f696fae1212c7793a69d599d3a555f69d2ceaa92f2417a0d4d2845d80ea8be494d4fd994841b916b197f8dc597afb6a6d91528356
+DIST serilog.sinks.inmemory.0.11.0.nupkg 34432 BLAKE2B d41c998144425c42a362a799a98172349d4571d89bea7d1495c0dbc26dece054222b18231e1fdee8c384b906828bfd128b7609fca4dc4f378b2178d0a1be1d41 SHA512 3e922080590064bfec9bdf7ea0c8a0cacde5cd0c8d056d74894c3e1af711f0d45ce52862abadf36843b99a1b317962c77d59df15f52afc7f6c65d777805fb383
+DIST system.appcontext.4.1.0.nupkg 146990 BLAKE2B 7881a5a903a358e19b0de72fe800c70ac9233e7c5e1e4115d69be6f8dbc4fbe86debb79bcd453295730e803ff1da974075c999f52e4c721e085676746c2f9b58 SHA512 f724af13eb14aa57255f82841683a93b427de172b8d31b9fe2c6bc8c21a795e60ecf211b4e49e1c2e285fe1ad498e6bd9c843e109a60a3dc27b49df560106e96
+DIST system.appcontext.4.3.0.nupkg 147030 BLAKE2B fafd6d050e77a265cf41c6d00a3ab3d8db47f2258e10a6cb556031ab183a01a508a986bb495b68c5e8610c05b92b2f3c7b0718f68f508111fd262291684f84c3 SHA512 0d6ea63006304708feae2cc0590d2cdd99327b682210822bb2803ac842fdf4d8d57170d7947c006eec4b5687c942768478a7ec109745472f3946d230732483e8
+DIST system.buffers.4.3.0.nupkg 35171 BLAKE2B 3b274a048ce14845ca957019b3670db00338972f6e11279e47f59ca6b4326aaecab1d11317694ed98e8a27f3de7ef6f90de94d4711ab224f805388d468728392 SHA512 3dcbf66f6edf7e9bb4f698cddcf81b9d059811d84e05c7ac618b2640efed642f089b0ef84c927c5f58feffe43bb96a6bcf4fec422529b82998b18d70e4648cbe
+DIST system.buffers.4.4.0.nupkg 78363 BLAKE2B 3d25c21afaf3f3b2ebe348b55ac9350bc982a2f3a78659ba0a6a2994ae6423ca94c5a0f55bf97ff5041d882dba2403f52efc9a125b8a6250c681e3334d10ea41 SHA512 222d9b79d7781d5cdd76ea5d537e67df28288543e5367ecc0e298139873058d71ed8d8b34357c249a4096354f3bfcd1a32a386a55714e3066bfd77b9d31713c2
+DIST system.codedom.4.4.0.nupkg 213263 BLAKE2B ff2538b2ebb25f675946211e62f8d403e30f341f84af0b7681b6e787fe2bdd029526cadc39727570d90134c982b88f2ebc29add5b8af2e1ba188c075d496ef3d SHA512 13f96f49f3053ed35f94081d33a02e3d4f096d976a752a06a54eba1bb4ab76e0aa76b1723df95aaaa57880dd9dd21ac2069bbdd876a8aa950fe5dfa0f48b5cc7
+DIST system.collections.4.0.11.nupkg 810001 BLAKE2B 7f20413de51be3416862a8e3624fe575740aa35fd0983a694b128587fe05d7a3f869afb893106b02866bd6811dd045e35d0c3f43b55e06ba9f92758f21aa507e SHA512 f61b75329ba5d7c0e688aa9d110b2200c8934c3a1888f6b1b5f198baa7ab93f23835e8380853e8c046f257172b5060578ed86df26e5fe0ef34d8c4408a02c33f
+DIST system.collections.4.3.0.nupkg 810001 BLAKE2B 0079d5834bb3857c002cc686313646895b47be1079e10cf365ce9e67c05f14c2e70e782b122b07a7cd9d5090b57334d0cb2336503cf5059cdbafeb3ef3cc8220 SHA512 ca7b952d30da1487ca4e43aa522817b5ee26e7e10537062810112fc67a7512766c39d402f394bb0426d1108bbcf9bbb64e9ce1f5af736ef215a51a35e55f051b
+DIST system.collections.concurrent.4.3.0.nupkg 502676 BLAKE2B 0d98ffad345254596133bad8a487bb91bd235f2a757573c3ab7999184fac6685b4ec33316bee9b4a4e588ba96aa745a681077cb2e2d2b0a7f5cc113aa75efc2c SHA512 35c1aa3e636216fe5dc2ebeb504293e69ad6355d26e22453af060af94d8279faa93bdcfe127aecb0b316c7e7d9185bcac72e994984efdb7f2d8515f1f55cf682
+DIST system.collections.immutable.1.5.0.nupkg 804405 BLAKE2B f11cab8fc6e1543d09bb65aec905d8a7b56318fc1f6e4ba723fc5ef393340fe3e29cb8f5d3e788d31b61a80661367371af90065432a63b3a954c39b68b8ecf16 SHA512 4f95c64257078443bbe50c77f061825033dd9389ffef2ad1993832e32733cc957c6a53c76b13d4e794c10b6505ae4438d9bbb7e2c64f7cad1d53e9d665438424
+DIST system.collections.immutable.1.7.0.nupkg 481313 BLAKE2B 6c10496bce03924feb03a45d7e0b4e523918d1e52f3a40b35e667d6aa9c765732d05bd418600b00bfc6a4e165ba1bc6762ad44f99e3363e10e7c64e457ba213c SHA512 da02822ffd801e236958e9bd28f616eae0db1f7f948b23f50aa20bc0b163bb5ec8e284aef9126880951e9c37d61fe9dae9aae54be5f34a01fe6237c1a5cb81d3
+DIST system.collections.immutable.1.7.1.nupkg 595037 BLAKE2B 83f95d1b23960b35915e5418b125810d3087e7dd46fd2702907cac9856290bdb02d3c7e1d0a8fc73fb8cab4bdb4e928b717f6b61e7ff8fb3b508f6de49940597 SHA512 d263cc2c90a537edc49bce334490fd09d888a50f5b793e42e89133ad8db9544f356bd5745a735c4b81b7687bc1b8e4df9c8d64e388c8433361a775591ddedd76
+DIST system.collections.immutable.5.0.0.nupkg 623075 BLAKE2B 14724fcb8654455184f8f16f8ac56b7b3c995e632af36e91f307331620b4e9f515a13bc4625d898fbb4b57ff9f017b43cb91ab40b0cebcd7d5eefe32979afa4a SHA512 726f8db7d179714cf0efeb0fc02fcebe7b4755762902e391e77cf78671dd5d5f364c7cf4ce3545b51cc7f37327d12d1500ba19f4b934f0e8bb69a6a347c0bbfd
+DIST system.collections.nongeneric.4.0.1.nupkg 239254 BLAKE2B 0179bcd640e80a53e15f96525ae9dcc67e463936c5e8af88713dc978de525265c7cb33356f56e34003398cf1974fcda377339f41ac0171a83155009d6f988832 SHA512 5c38a3c61b6f4ec205a970773db90fced9319cde2ba3b92876a2d04a0ea63a97d67b088972e7d8215d1580efdf1bd7fbf5c89ceab15faf1b8212d72bbbc573f2
+DIST system.collections.nongeneric.4.3.0.nupkg 239265 BLAKE2B cc987578ab9b0c1dfc8925f2c946876f8c8d6f335d8d6a6a0a30848c6c812a24774d059fe28aa83887b45d924705abe88fd96451dba7b2253dc9b99afc7a75e8 SHA512 dc6abfe778b3ea08e99f50b79112a51728e689f353b082234351b9f5b1be4b601a0b6d38a04c2138d05b5bdd83d6f3d91b53ee86ed119225c15e4683c38bf98c
+DIST system.collections.specialized.4.0.1.nupkg 183457 BLAKE2B 4b886d3db9b40b6ba0372deb97ba84918a2523401b09986bd42b84f7b01d088e75467477f549113396c37db8b4f111987c93e5d6cd4e9a2935656b5c5de67abb SHA512 53d2b256394c9dd1d16930c25f21714dd2d23ab0c9f3d3ac3a3a4552b64f679f2342b03d193984d050d506a22c450dfebb5bc6e404930cfff98ac9c19d7c9d08
+DIST system.collections.specialized.4.3.0.nupkg 183462 BLAKE2B 9297ea15b3d8880a719e4608622793e8883f68887ed2422b287897ad389b41f5301c69707434868c3db88ba3b8819c4cc22b7f5cbb09d2729b0f5e121ddb6921 SHA512 c7a257cbda812d6c0c44b29d8bb5cc4f5cf2d3cb81574eb1dc94a7efde980ac26c5ffadb7cc3521fe7b19437766a046c83cbf2e7ea59a36435c288add8142b57
+DIST system.commandline.2.0.0-beta4.22272.1.nupkg 616636 BLAKE2B 5252560598c4cd67348520cea086c37b4151b984a61238de1984838975340247b16050113422b1765931bdfc1dee38e226789b6427e56ab7c3a36bf07d0bcc20 SHA512 979a7e66ba29e17bc5bec42e926ed15362e23ae403e498c955e09dffc4d3baa14777a06f95e25d591fc9757a0eaa18deb9e4662a1ca1663fa300f509a4a0383c
+DIST system.componentmodel.4.3.0.nupkg 95320 BLAKE2B 8c03f003539d1c0920c4d1a2d0b57a19f93c9c1d7f2e0004035b758b56915da1ba0207d1506cc0cf8af71bb2e58408fb824674941230a0465249752b1dc0df93 SHA512 7c638ac92a132e1553a089c6a711ffb7431b22fecca322ce748d6684ae2baaf161bab2f71704750bd15ec6fda11e795f2ab8491ac769b89341bde77aa9212d59
+DIST system.componentmodel.primitives.4.3.0.nupkg 93137 BLAKE2B abc810f534c991a46cef506df47b66abde687ad65ce16fa8739a05a5c6cd8338ade9961e035f38c559f964c469e47398f537285b63552fb80b4d6b9421993f07 SHA512 ab26d413abce9cfc31b860765d91b21d4048976016d853ce8969f7ba79c039d8846b3c4e2986530f20b62dcb23ff0a769ae5ee37fc078d69eaa962832f2035ef
+DIST system.componentmodel.typeconverter.4.3.0.nupkg 292985 BLAKE2B 732b3362abf534f3a28d6afdf010d9cc52960edbacd19fd70ad49ff1813d31a7f840206773dd5d8661575a0a5b4053a51d58e23fff803e6726bebaf3bedd158d SHA512 0a2b2f3c25de4a6429c6cb9fbb37409e86168921ea71ec58889912742e39e1b67f5cbe764affc3580aa0ef167c7f73a55332a0abf7b043e89185293029d8b087
+DIST system.composition.1.0.31.nupkg 17007 BLAKE2B fb82e901afa39488841dcee7095146547bf0d844f3b00b14f3fcfac812c3773793676c012827f9abe0fa59a03c23bd68ae8b5d9094c67c6164ceebc7e166e141 SHA512 09bcf06e3c53d38554f89cd0b8f3987d40b26f306d6c665da86252f78f367430680476eddd9cf440027f0a3ce99aae7174bfa1856e056167ffdf0ab638255782
+DIST system.composition.attributedmodel.1.0.31.nupkg 44965 BLAKE2B dab81f56845d7b8c9290bbc6e33bcf91bbb399dfd49fee84749e964bda2bfaf614a555429b91f7648655fb3b8f0f84e162d79a50ac28e54005e364af9b90f7fd SHA512 ae165e83e8bbd50d0c663608748a727f328cec4f44b2fcad5f1abe09a67fbd6095d3d65f3276f430e1247cce307ca853a3b5e8a374c99247d32f1f2450296d92
+DIST system.composition.convention.1.0.31.nupkg 73058 BLAKE2B 99ef08b2f09cb7ea7871abd0af763c608d027dc636311ad09428057a5c39a857c9c377cb639eeebce1207bd6fe186e3ebd30209672200a2ccb3ad33be9b7b46b SHA512 f4614921dc20d33afcb362875558158a461f3c9fca9ed1f50fbf59ed5cc2a2f519c0334dabae8c30a90b248382ced5ec80376060a3a9dc1018012452f44bd81b
+DIST system.composition.hosting.1.0.31.nupkg 77495 BLAKE2B 3266407fc975979fdb69353efbabb84cc1637d9b054150984cebc32359efbc860297033598350eed709864b19f266a8a74acbf9b9ed1d4f4cc4e4c69bbffd709 SHA512 2a5678aa469ad69fd4d962abdf9dd7790f5b8ebc41c27f45703e64f56144b95d4c9680cc9d39e1530414ee1d568a0bec098ca4ce845d9c32eadf7c2750fc017a
+DIST system.composition.runtime.1.0.31.nupkg 50571 BLAKE2B 656f0f0265448b521bc4428a068dc48ffd0114d159312ee3f804a832bc8877c9bb9a05adc9ba77b13015115f26cf5cebb4609acac3eff64d4e75afc23bb9d0fe SHA512 8991f7fe0da3b3a7e65776ad376626fe8f9d33664c035180d065dcef49e16c8a8aebb2f6f4b87762b016881972a0e2148cd120800e8be22fbeecf4880f6c0c75
+DIST system.composition.typedparts.1.0.31.nupkg 79671 BLAKE2B 83151935e9541e5ab68b52ad38b63d344676a758800ba4e482b4bd5e0256fcf0798685e4ac66239e89a4ad254c32f4af89417196170f5ccc5dbfa388070efa75 SHA512 1fa7cb5b1172f9ccbe62c1d172f501b24bc3624a43754264cbe1a4a98be2f01ff9726fca210e5054338b2aeba5e0f1c567fc74c9169c4bc0a9637c7f3f188178
+DIST system.configuration.configurationmanager.4.7.0.nupkg 431122 BLAKE2B e1bd9e6c341ae10686a334d9f112b6391354af767b2b9d1191a13f5f213f66c64db5bf1065902200808e0502052aab016f8ebf478a46163f9a2996072da0c05d SHA512 0047bbc7777fa368f0a6f352bf994b44bccb1bef81ef7037065eb976977cffe99e6c964407a7d30961f3a8213dd52cf44a81f47b6fc7d698ea5d54444618f6af
+DIST system.configuration.configurationmanager.6.0.0.nupkg 447998 BLAKE2B 477de26b3619349fe0a42aabe463e3676c112b64af24d755664baf8d8d3d7d80ad3ef0182fcaee91d83a7a3eef38f9fb25171f30572ad39ead5e93081849d927 SHA512 de58cb928d6303a16301fd7aa8edac379dfe6c47e6d80b21665f92bab9dd5ff52b3e244cf6df0f945f1c72e71c92337561dbf2752fc3324174a8c9ecc70c3247
+DIST system.console.4.3.0.nupkg 102397 BLAKE2B c21bc97bbcda781257473768239f775a16fcc399e933df35a5f5c00f75c5088462ea01ecec2d711a803581d5499c8cb15518e790d6c9e74b15a36c3a1f237d19 SHA512 a08a684a583c9b3278ce32be1007dae495f9d87254666392f794ef1203079f333cd7d388c28944ffa36fb49f0c8bb21f42c70f6e1d7c1c03920df6d0d1130c82
+DIST system.diagnostics.debug.4.0.11.nupkg 149779 BLAKE2B 337beed5f06441a09fb704ffdcc3c277e2f99d7b4931e86419e4d4d0925ad44c86276aae0ee1e29f94ecd37257953731e9607bd00de716d3195dc994dbe189c2 SHA512 02f4d0bf969eb1a876def21c1ffd75f8ed5f979aed9a1169f409e60a6e07016854e2154da5c0164fabaeaf6527a18d8e67282db1b69327a1b3581e9c0c742f58
+DIST system.diagnostics.debug.4.3.0.nupkg 149774 BLAKE2B bdb6d5ee3b8ca4f28b241b098281b7d2957d0996f9345aa086a54b1a981822962e5cc319687849ee52445db47b439b6cd4e99a4c71595f6227f78160aa31724b SHA512 6c58fe1e3618e7f87684c1cea7efc7d3b19bd7df8d2535f9e27b62c52f441f11b67b21225d6bcd62f409e02c2a16231c4db19be33b8fab5b9b0a5c8660ddab24
+DIST system.diagnostics.diagnosticsource.4.3.0.nupkg 120125 BLAKE2B 33f203d8ffc39e0c38599eee625053beae160a0aebe6fbfaaafdc85b570c7b82e3aae281092014e90d10fad7083f37afbb546ad5a0c74a94843ae9b1e9fe85f1 SHA512 8f54df5ff382b6650e2e10d1043863a24bf49ff0714e779e837cd7073e46fb2635bcfcdcf99d7c4a9d95f35ebffd86ab0ca068305f4b245072e08303b917b34d
+DIST system.diagnostics.tools.4.0.1.nupkg 67228 BLAKE2B b2b74a8c3164181513c960e79bb2cfd9673af3d864c681d379051361743459ee0604806c09e9154913d016963f20a59aa8b45b4b3c30275709878405085ca690 SHA512 a812ccbbdd0a66eb57075121ea6332a526803ef883ca9f8b06431d6668ad50efd13624fa87dfaf6aed03c652f795c2ffb9fa9d9895a2fafa96eca614cbf86cdb
+DIST system.diagnostics.tools.4.3.0.nupkg 67227 BLAKE2B f03928755ec84fd360b2a8a0de3f39e57322cafc4be9e7fa6b7a67d606de9c0869688f62f6b7c9a2ee2915c424ab20779ac87ff510637a9bba740ba0361e6041 SHA512 164d6977e721cbceb44ede7bfd75b03b8d9771e0426aefa5d40c71867e964092fdc6a6808bcbc5559ed73ec2c532ca657d6476af79a49ca3ad879b8366f13d90
+DIST system.diagnostics.tracesource.4.3.0.nupkg 227705 BLAKE2B a94d8a907a729dd4aa296f1f3bfd924865bc73530552d446e301dfe18632880e6800b1d3eb397c59144424896edb8346021a3254201ac6f647ee4ceba412f8b5 SHA512 0655962fdabf1ca334281cee3923aa7211606b932a9ef90ae666fe214edfe1e7089d2ca0865b3047789bde7c30d6bb8198baed748e5ca02041d87d8096d4c5c8
+DIST system.diagnostics.tracing.4.3.0.nupkg 581864 BLAKE2B e09e616dff7879932b358746a62b530499aa61726c4490c56d2d7a0bf888db5b42d75d89cc5befc9fdb6af231beff998b6b243c2b2a08084da089709e0c82a75 SHA512 d0a5d30e261cd45b7dfab02b7ffbd76b64e0c9b892ed826ea61481c983c0208b05b69981cd79e91cd4e5811e1cd4c3cea06a1afce05811ece58be5e4c20169ea
+DIST system.drawing.common.4.7.0.nupkg 1241693 BLAKE2B 24521499785ca548f724fe07c3410649ab52296e94dbd4d38d6e84aa5ca6c25f4b96fc3681bc782992c603853bceff20c082d529085e72a7e004d008c47bef24 SHA512 5ca48fb9622fbe9c7c52e93902879af730c356bb276b65570d774f8786c59d75e6ad993ce2af477f9611a8e97967c12373afd0a8cb8a9f1d6e63505da4bed334
+DIST system.drawing.common.6.0.0.nupkg 1114589 BLAKE2B bc4dac5dbd2504c355cd745a5559d3b5f2d1c59a9e0535c60ba97e12e84845541c8b606e15db6aa99052329950c0f58604779e5535251f20e960bf7c939ace43 SHA512 d61f0a3e01c3eac15f13fc1ba04a2c7ce4eac956400b2faa361fecabd3836d49d5bd344f3985ee3d94cdc3f6a72b8e07e423cdb2965b4f5ca2222b5de32988e4
+DIST system.dynamic.runtime.4.0.11.nupkg 547813 BLAKE2B a59d9fa95313f269033f7e25e39e499ca4910da5c2c1307a1d3d4d96b07fa25fc6b9223755597727b60a26280e1dd4a8bba0b165c3fae9a3d3d9732b77f3e1e8 SHA512 0b2189a6f50effab44a8b1f883f2a1f9b9b32c448123190e8946a877c28ff46a235aa90af0898d1ccd6da2f3155aa2cf26e57f7f61ee7e3c50dfde2190d781ab
+DIST system.dynamic.runtime.4.3.0.nupkg 548103 BLAKE2B 42ac34ffe9b9b6fe69c984aa2b22f0715f7979685730de048490ca05feefd800349df39aeb2bc6b4c3608cd042abc018714fbdc49475a11b46077a2638824c8b SHA512 54446fee94f432cb8fd38ec10c929a87b307a76f152a2e9da11ba99c41ceb0f65913cf218944990f0e122d4f858945091e9806c84c0285ada1fcc939337d30ea
+DIST system.globalization.4.0.11.nupkg 589139 BLAKE2B a4ee2d6848c249b34a67192dfd32f78d842f4b12f8be137804966d00b2e15dd8b2f9ecc6427f9074c35802d9bc13674c912c80ba405e610324772f9b640dea46 SHA512 66bc21667f5f839bc711eda3b0463863d70e0ad86770fd5410e0123006d6f031755cf7220187fb7cefed69b3f4a9eab8f0868cae765cb1425c8bf60427f395e6
+DIST system.globalization.4.3.0.nupkg 589136 BLAKE2B 7b07f9b68f0744ddcfa3f0db6190c1a0696c2f89f8c5e92922ac20fc4155e22d97e7191bf7866c9b58acec056bff08531b0adacccaec7d4301e1d4b149fa511f SHA512 823d2ba308cb073b40a3146ecccd0d9fd7b1615ac3fbefb16f73d873e411fd81c3bdc87df206d3dc7e2f14c9cd53aafca684a3570c25471280aada8de805ece2
+DIST system.globalization.calendars.4.3.0.nupkg 177689 BLAKE2B b70b5d9e545835e5a3fe4c703b2bd7c857968ba1fcae5299c9c41d550338914f2ad9d168948018fa7da7271d62a3b9d2ad1e696d334ee7d3fdaefd25395aa64c SHA512 e97190231402b393774b925efc02a2bfa41d1d117a17fb87da6e399f5234546962767e9cd8f39970efa408e4f453cd1e6751a2a61e366bc97406e1b0b8a4be86
+DIST system.globalization.extensions.4.0.1.nupkg 142766 BLAKE2B 28344f900c32045cf4f6d168e02dd1df501fee3a5d0ede8ee35034e96cea6655ecb0f0d722eaeed78c500535b0795e7cd0f067e286cf65ca083fc4c37477efd5 SHA512 415ab44aa3e46b59ad1d314ceda11f9dc78f85adede3daece96c83c98448e2a0cad7e79045edeeeaca8618115c38517364b00cdd9a0a7228e7da1ebc342b0116
+DIST system.globalization.extensions.4.3.0.nupkg 142949 BLAKE2B 4eb77d4ce5af01136145ea867e9d6cc81181b36a178ff487905dd7d7c6a4986c518675af68eac0e854347503e11513056173a93e6803683f3fddee7677b88e05 SHA512 a4d360003f95e0c31edf39c0b91e1c73850a60ac5d0032b17db888a3c7d7134cef9acd97219d14174ad213b7c044f49b364cc5720073ebfcb6e1bf6e4ec24ce5
+DIST system.io.4.1.0.nupkg 703645 BLAKE2B b0df16bf1368571d6755f88cc8fcce330d1dd5b478a009363e87f463e12eed7722d4bcd66a1e70de63d1b31ae2793b80c735e19a63e80ad4bc4c45f107e94ce6 SHA512 e01b432f3d715f3c88d5d7f3e7cc1ceee78caf99407a11c3306f9103aee78963f818417f14eec52f0096fa247900a31e53bd3226e06f0c0f93870db0b2b78331
+DIST system.io.4.3.0.nupkg 703652 BLAKE2B b5b2627ace4cc49f35a0caf5c064c4c8262ff0fe3df79bb1bd3529b3e306c8b1e77ea9e5948de343ee786a50e12be822ca89b5ea3f16347b9c0bce6bd8071127 SHA512 bfca5a21e3e1986b9765b13dc6fbcd6f8b89e4c1383855d1d7ef256bf1bf2f51889769db5365859dd7606fbf6454add4daeb3bab56994ffb98fd1d03fe8bc1e6
+DIST system.io.compression.4.3.0.nupkg 485197 BLAKE2B d813f11d1eafa9c5bae049c2e6d7081edbb264520e253bc03441fbc1ea62b75760dd31c038a5a376d41df59c8be55fe1085d7dc012f611731b72040c8c41430b SHA512 f540ee51a3bb6941cdfbaace9a9738d7f7986a2f94770db61f45a88ecb7ef36b571d4c07417dc89cdbe9655a262b7cc599b0a4b78effea91819e186121b44807
+DIST system.io.compression.zipfile.4.3.0.nupkg 113746 BLAKE2B 0622b6c3b6ce841b3c3c1df620ffb68f995ac02d7540d7128ef2831cf08deaa60aaf46059cee0c98624ed5402c8d746128ecfd674acb90ed665d834eb879960b SHA512 1860634672767f818f0192ec2b2750693f0d39390f3b7d400cc6fd4f6e74a5cbed27bf49e5980ec85ff3e161c30f6190f700e339a1040c1699b87eb4aa7b6792
+DIST system.io.filesystem.4.0.1.nupkg 274255 BLAKE2B e5beb1350bea00cf6d533de221129bc3bb799f4e041b23e45304ea39000d9b70cc63fafcbd302046793bac360d431e3dde5c432fb19b0e1af7a1e1bf8e9fb0d1 SHA512 a6478b17f5d52fc5b9517458e93e1a69b92575c170f44046b3f4e25c7e67c9d4126ab486f5a3c51abcb279d05a057bd53aa8f49a1e51eae69563ae39214b72d3
+DIST system.io.filesystem.4.3.0.nupkg 274316 BLAKE2B 4ba513b503cfcad068c23a82423f9900c648fa2bc4fc16555bec717b6c5cfeac6c7708b28009c7a089f80c77ff744f573d72e4dcbeaa14acafb9fd3e8b5100d5 SHA512 4fb581d6f85b9529a091a0e974633752aa39e50b2be6c8a9e5eca8c2bc225cea07064ccec7778f77df9987deebf4dccec050b1a97edac0ee9107142e6a8ee7ee
+DIST system.io.filesystem.primitives.4.0.1.nupkg 94921 BLAKE2B 32311ebb93e758016ba0971c99f5010080597b630bd6b1aacef03e39d7693c66b7d2531a6af05c7b14cd2dad34b1cd485aa19d77ccbe53e512c4e021e3291f9a SHA512 dce1c4074938391ea4ea01226812982a893bfc910e66ac99ecfe31c9b6fe635f3fbff11dcab222ed5036eb21c4f49cd3f121c310adbf87d22cf3d512bf6a9d73
+DIST system.io.filesystem.primitives.4.3.0.nupkg 94996 BLAKE2B 95fa6178164a7cc6a29c5a3fc55e415419c433b3b74abbcfa4fa5ae1bef40141b9515076b6869e8ed771b0ba6800bdb2fe6fa5d1f773ce52c40753efc0a82be9 SHA512 5885953d09582cffd973d23a21a929064d72f2bc9518af3732d671fffcc628a8b686f1d058a001ee6a114023b3e48b3fc0d0e4b22629a1c7f715e03795ee9ee5
+DIST system.io.pipelines.4.7.3.nupkg 192951 BLAKE2B 07487fdb50e689a48ea349e6d3a7fd62cb3b7a3c09f23323cb6a39e199fa469586812d9a7125d546110292afa22d07571f3158a746b205a3617b000ed0bd4f31 SHA512 4603b24bf833eb65cfeb218a6c4108babf6d9c1887458e60ba522a84d48df2ca9239c037dcc37fe552d8942d6bb2470eb8bb4f8064e9e49f63b3ffc93fcdaf01
+DIST system.io.pipelines.5.0.1.nupkg 193681 BLAKE2B 81e6ad837943179a46790282e63e3fd97ceb64389f6d9a1af1f21bad6a32e426bbab291da6c3a12d5f4503a3926ad999d335ab1b5da877a1d8321ac6e7dacfca SHA512 b5960f39e3a05e0738ca9cff49f2883fe59cc97d0f2f75f1bb8b37a5c96de0ac3631393f2b6a176895bc903bcd58581ca6e9e107de65afaa4b8a4d4875d61c40
+DIST system.linq.4.1.0.nupkg 511874 BLAKE2B 3f5941e6fdc731ab7acb58aaad0340695ba2c1ad285ee5eefd9c4ad3972e278d74cabb0d5480f29697b8c9ebf839c3c8064436be4c508ad406f0b3ab2b6366fc SHA512 53e53220e5fdd6ad44f498e4657503780bca1f73be646009134150f06a76b0873753db3aae97398054bd1e8cc0c1c4cdd2db773f65a26874ab94110edb0cddb1
+DIST system.linq.4.3.0.nupkg 512550 BLAKE2B cc6cbb532575bfcfde7ac897970dcd49067186547108f46449f9f819e7910ad32496df3663d4db8eff48224b8ee95b27f7bb442bb477ad47f44da2f6fa893078 SHA512 eacc7fe1ec526f405f5ba0e671f616d0e5be9c1828d543a9e2f8c65df4099d6b2ea4a9fa2cdae4f34b170dc37142f60e267e137ca39f350281ed70d2dc620458
+DIST system.linq.async.6.0.1.nupkg 2000666 BLAKE2B 8d4d0e71e4bb1bc29dbd2775803ed7e7e1bd5d3d415a3e924897513d18d23b0b1dfa569419fe24bb2cdad237d8a466f319091f0524fcc73c27b665922e5185ea SHA512 792b7b14a6fcc52f88cc0475a2ba8a694399393fa602446fe23fa6d39d782c16f908b4bc3acd58454554932b7a41056d84424b5fd66f0fe6e3c00178eb3d8a1a
+DIST system.linq.expressions.4.1.0.nupkg 1929236 BLAKE2B a804c6741afed5fdc918c046092f8a526668fdeca8712f750efade8f1f272fcd2c58b1d1493f20528ff7006e189fddd21f8a2220c15d689c8de2ad2bea21b1d6 SHA512 04605a091d3aea404bc97cb7ffc154708b3bec886562d9e36aecd4d2ed130afbb45f54cd16a3f714f0ccb3f27c5bc7707e55fbc3e81681a783e9396930058acc
+DIST system.linq.expressions.4.3.0.nupkg 1928029 BLAKE2B 1add363cc651e551fd7abcb797252785e2617159b197ec081de605d7c7dd829e7653e7693495a87909f46575b6619e95fef6e3132532110b3c1e74157ff096a6 SHA512 61b90ef9ae6f779fbc8a7b6483ee8f5449cdd05c81b05235f70447e656a73b2aab7c341784b999f7532374744a72e2c3a5cd13800ea23417fac32ccfae5cde6d
+DIST system.memory.4.5.3.nupkg 154054 BLAKE2B 0f75d5365d96b42949e53ae9498affce97ba074d6f404d30bec043e5def8cc39af05ccedffc7e9b13af4200336a9737cf44c85aa2d58069a64b1dc80537a6eac SHA512 70fce15a52cc76aacbae05c8e89e2e398d1d32903f63f640a7dd4a3e5747f2c7a887d4bfd22f2a2e40274906cf91648dfd169734fb7c74eb9b4f72614084e1db
+DIST system.memory.4.5.4.nupkg 205467 BLAKE2B c5b66e68917fc14d5b94aef9aef53087756c59473a2580448f20233e559b3ac9d691b2c063d129083593a1b610252acb01016ef078ed21b390615bf5a6e04dc0 SHA512 8ece5491eb0fe332bc190f40cf76b3beee0c5f996325034861be221fdb0ff02fd59e4f7020b3c4a1f29a457f76ff76c4c95d46d38555e4f48c7a3bf172d87966
+DIST system.net.http.4.3.0.nupkg 1371903 BLAKE2B c0b56398662d8f149eba439ce16ec254bd5a64cee0faf251af07d89ec130953d8865d537b52b432ee19df9ed7405318119d301743bf84f98179c1cd7e6615731 SHA512 e8105ce8151aee95852fb29423f73cc1bd7c2286d36474ed7102a4b31248e45f434434a176d3af0442738398c96c5753965ee0444fb9c97525abbd9c88b13e41
+DIST system.net.nameresolution.4.3.0.nupkg 177639 BLAKE2B c3d666f33577682ba43292ccca908cbd81971ab53eaeb904438a378997903e80d5d3789b3c76db6c50f0411fb17b227db973bc09eadfc0f98ebed88ac0209057 SHA512 40d39e131fe7a392e58e9f58b516b5db88383de91c05b771f5e509acf46cc874271e90623d327ab039003ab8f2714144694390261278de324e1aee228a828ab4
+DIST system.net.primitives.4.3.0.nupkg 769347 BLAKE2B 070d9aaecf9c4ec485850954c425d6d6af23fdb8a50fe40c305657654fcaf58d366f29f62bca6ae32c8604dfd7f5217f822ebe03c68446d4fbc4ee7e44b07852 SHA512 9f7fdece330a81f3312ea7c804927852413bee2c929f3066b736993803df47cc0692fbca236c222bf19dc8f59b42f54f2a4c00da9a4d624e458da5874d127ce6
+DIST system.net.sockets.4.3.0.nupkg 135695 BLAKE2B 17f58a8445cae9ef2ad17bbd7dda092e66bc8be07d767e971fabf14da98f549924cd6a7abf54e8a5a7557710612a151f2f27dd35e559b81f2f06dd71fd43c9f7 SHA512 e32ed9518e9630e99edcf1963c3d0e7047ea8252853c9260eb5403a4206170ae28fd27eb239f39da4d2db766f830b3ebdc9e4da2e697be20241d928082200955
+DIST system.net.websockets.4.3.0.nupkg 105598 BLAKE2B 900ff40ebdb1238ca959457e5f7f391ab07c411745eb3a53a756bcb8bbb22a4ebceb294339cff25e7cf828c6542d2c721a524fe5b2409509ab4fab33004554af SHA512 2bdda352b9ea21fcc1afc22cb1bba541eb73f1fda002cd970b68f25566d4bebfbcd38616bfa2c892c048cfce1657b1d2b6996ec374504dc1f1777f82e7321ec0
+DIST system.numerics.vectors.4.4.0.nupkg 337043 BLAKE2B 94cca7283873edd9199d843db78e23bc5815de039c2aaeb67ba3cbe4cb5e161eab27b89cfbeeb437f0a9d235b48e86a5b31f53306a7e7a2a38feb28d6e5e523c SHA512 81d46b509b3546b8d6dc9079a7cda162303aef1a1e14bbe1d127522168d388df2a13195b16dfd1b57c1560d73906e909fdff4e2b34104ba81a9336c97874ea1e
+DIST system.objectmodel.4.0.12.nupkg 321648 BLAKE2B 7a008caf5f7f38f34d62037e5e3505dc237356246103d00be5b07423829fc4f2a763fa841673ebdeb0d6caa79dea8d7fb9f56cf078addddb3cc853e63101f03a SHA512 f5191cdb360bd2624abd7454c66862540f97aa19df92ea0854786b9d3cb9549e95c6194cfe8adc01589203c4feb1673a129c4929486bcb5f8db83ea535477c53
+DIST system.objectmodel.4.3.0.nupkg 321655 BLAKE2B bd1110665321034ec27635077ba7f9f1a18cf2f813d7a99f511a91fb6c95827b3b10108bf8a5b4a9e32685a8754e1eeca7d1afb2dcd02ad5ce3ef9db61fcc114 SHA512 409bca3d2139bd1d003c711400ba2db5e576bb54d593aa541ec3576e7b2029b60159ab1c5b2c4e7389267b1b95ebcd8c2f064dc6e1f53e693aacb1737f066123
+DIST system.private.uri.4.3.0.nupkg 16869 BLAKE2B 7a407e16b35e4a5f405029e80749f7ae1c907707d9f72657016667ccf1255463011497b09b7d9e23fb3ccfd4de508dea48b33b13267775619f63134897e54c61 SHA512 5989a57ef273b689a663e961a0fe09d9b1d88438e5478358efc4b165de3b2674fa9579c301ce12d2d2fa5f33295f2acb42eceea2ebebf70c733da6364ceaf94d
+DIST system.reactive.4.4.1.nupkg 3087134 BLAKE2B 491b52483cd99103116d805e36b0b75faadbef5c1e2fedf43b88ca00a855bdb036bc87901be45ba67f539bfcdc41c77e5f2f19e30a9ced5b8865c7f5e75654a3 SHA512 c4f01a89121aaee7569907c61cf8b367e647956df77ff6a4dd305741201f5c8f4a3858e98da951907b2ecc1952022c8d17c8d9c2c8b790145a3da31426dde100
+DIST system.reflection.4.1.0.nupkg 700819 BLAKE2B 7d98a07245ceb46e777b904b66ebd5d85067ed9a5e7ca10bc0838f115cfd5f7da1b6420b2126e56310b47b533fcd22ce020e046d03423ccdeb9392609783ce56 SHA512 67143ef8f6fb1044830c70c66e9a2b4f1850f50df5dadfaa5177338362ea7b9e9fe4b0ba59cd4eac6e1c8db4e0c285c239e4c2b3ce61391618b411aaff45f7c2
+DIST system.reflection.4.3.0.nupkg 700821 BLAKE2B a6aaf054f27be81f1a8251241deaddd6d35aa9ff1cd1b35a65c75201c3305ca0481d8f7a6de52a85736b0477332c404573db300f324e6301365f14fd59784225 SHA512 2325b67ed60dce0302807064f25422cbe1b7fb275b539b44fba3c4a8ce4926f21d78529a5c34b31c03d80d110f7bace9af9589d457266beac014220057af8333
+DIST system.reflection.emit.4.0.1.nupkg 219037 BLAKE2B 032654f464c65df895878e3e726c7f14c8c380fdb29a092b3ab99b57cd5b4c2a094df9a579b6a0b8ab416244a98b7bb2efe4a3e56792bd62f35d7077eeae33dc SHA512 ff7766886b945148ea65a49e4ddc648336340def2c2e94b8277b584444ec9126d96918f0bcbeb62016a530623a89ccd9eae749d62065b01058387b5d09fc7dd1
+DIST system.reflection.emit.4.3.0.nupkg 219534 BLAKE2B dddeaced247da3ced46ad776c3560d886db0581d10d2a32df3827c275a895f474933c528b637439831e7f69cabf70bcec544ed1d16069ef11cb047126f2c3b57 SHA512 be45051467a36ab965410f112a475fb81510a5595347d1cc0c46b028e0436a339218dd3c073f048c2d338b67dc13b45742290b6c46f55982503f74a8f2698818
+DIST system.reflection.emit.ilgeneration.4.0.1.nupkg 123128 BLAKE2B 784130af9ff312b8757308a16ef704a66b70f60461eaac1c39f54db4b3d4ca0ff066e495374c6899b4f65f4bd3454d2f252b4b404cc9c04e9ea44e896167849f SHA512 c3819cd3a58f609ff579652536f9f414481caa4d9e7dc277e0d3c8c8fe8e0ff90806fa94f7c6436d4af853c6fccd26d5af57f0a49c5baceef4e0daaa39e26773
+DIST system.reflection.emit.ilgeneration.4.3.0.nupkg 124567 BLAKE2B 4495327d565f0ef5935bb2ff6f71e25132abda4c8ffeb51195bd4b96d1d5c885e344519287dbb22d28957f0fbad2af0cc977c2fe4650206f7b72ee5dec45a08c SHA512 e9be5f62bf64b1947a49857337306a5d0980686b58d665989e94006ab04aa7e0bbf4d8543d1b57d5bb38079052f275f339b73054a7357e4fa357208a0ac85d69
+DIST system.reflection.emit.lightweight.4.0.1.nupkg 82989 BLAKE2B 80372b79e7e12b1945f6f178a9d427e32dda82998609dad684e9ebd806039869cbec3561a836b20b3988a4579049e1f39a04c9e4fbef4085a2e54f02dbb9c120 SHA512 542863fa085a31705b0b294b64744c11617a098beae4d5664beb53189148d19246c9a112de30f2d597e0888069a414f2aed8e94a2b369294a81b24b991bc2149
+DIST system.reflection.emit.lightweight.4.3.0.nupkg 84426 BLAKE2B 370e3b74a769e2a8043287ae93804d726ae0704440e3fea9cf5fd1ee46222cdd293d35896349719e87123ac24b05042665148023185ffb89ab8e00820820590c SHA512 ad58af07296bd084907a089f92026fa3898b764eb9d6a07c9414b550a83ac60456f32a34127c29bb93a9633fb07ba9fd828f7b41a31dce5ff019a7cf1ab29435
+DIST system.reflection.extensions.4.0.1.nupkg 99743 BLAKE2B bb72501a2dd11ecdb1f0ee41f022d7a20635cfb8858f8570ee52d15f7c0a7bd167ebc420ff164acf9a5e763e2dabdb7c7571e9155289fa8d9569ba1e42071dd5 SHA512 3e2f07c29836735be6247e75f760de90783d5ece64e8cce4e23eceb777da8975a35130804d87ddd26449c13d2ca34180e3f6b844b0fdd2dc594bbec6e7272098
+DIST system.reflection.extensions.4.3.0.nupkg 99740 BLAKE2B 15554874193bbddbb2a7a769a239923ea039b117d9f8ba5ae634b82fdc8f04fcdc871bdf328b0b4e418c9f0c987dfd71546c778a99453ba6b5e754e6939b3c28 SHA512 06cfd992c8d7fd9ab6432ab02be981a01b6558285a6e26a7825a064d4efcce08d9e7344f03fa19b033a2459d42b0b80e8c1400ce39b47a1752869ab8825b0475
+DIST system.reflection.metadata.1.6.0.nupkg 852113 BLAKE2B 4d15704a1fe00501c1bd8c945d02cd2e2d77c12ce86aa628edd18383838c9dbbfc449b8026707bb1ac570e55369e988aa6068f57acdea28f519bd3bdfd5b9304 SHA512 f5227666edc6bb1da78b8a8e86a68e9bd647caa2ec6a1580c14a4a5e1fe5cfde3bdaf0d8c23dc210c405a55f83ceb6add1a9adab149dc065b38cfddc9b01ba20
+DIST system.reflection.metadata.5.0.0.nupkg 1006081 BLAKE2B 2b10bc13e07d904270e3661435d372008ab9aee0c0dfd409251867273c3e9541392413018306900b0d9c114843756828c946801f65912e27f7a3d351c9061c52 SHA512 3b74e3e491eee87a8410f5b9a2e556233d9919267f6a054da7a4c9c34b6916b07c77ea9ef8cceb5b7c3361e7394e502cc3c9a09247c6a06bb58509e82554e527
+DIST system.reflection.primitives.4.0.1.nupkg 281678 BLAKE2B 3aba0904b106e846cc9ff3fec98a6cc4acba2d2dd3296248303bb02b2e32bdafa7fa095f1c29636fd1c85ca5ef4d972a7b6218834e458ec9f41f275eb195cb4d SHA512 08ad6f78c5f68af95a47b0854b4ee4360c4bad6e83946c2e45eaa88b48d27d06618c6b7479bd813eb5f30a2db486590d17645e9c0e06a72dbe12ffd37730707e
+DIST system.reflection.primitives.4.3.0.nupkg 281679 BLAKE2B 36dc0fb5e7a6927ab2f54bc9ccb2e032cce0284c3aa9b83cf2ded8bab5fc7918553b06b16bef69161a7d9a0548b3e9159ab582533578cd28a661225559bd2b1d SHA512 d4b9cc905f5a5cab900206338e889068bf66c18ee863a29d68eff3cde2ccca734112a2a851f2e2e5388a21ec28005fa19317c64d9b23923b05d6344be2e49eaa
+DIST system.reflection.typeextensions.4.1.0.nupkg 187836 BLAKE2B d9cf37002f9c37bd11c43df97fd2e8234993f34c97e9a0606ef28164f1c587cc55ad2f2d66dc62de304ccae90f4d5636d163bbbc86fc00b4bb258a5dc91f4068 SHA512 5b1875ae86f76f60307fbe261c7471e996d4d4eade0c4783cb35a5aad7fec4f01be01cb1f1f78af22d483ecce12096f6ed431d69c4a66c7bf235008bcac30cb7
+DIST system.reflection.typeextensions.4.3.0.nupkg 187842 BLAKE2B 2cec73bd787cc6b4bee793782ff0db98aaced7e7a0645cefb60e6e47d353e1959eed7a48db24e9c7ea6ad7b87648c11c3588d43028c4e0d14c695c38356943a2 SHA512 68ae81a635b9af2aee9fc8fc8fe7da0356ef4da4eb32f81a89fb75613b96714e8f1a1f4c12bd0d335efbb03408cc7a744314837f13564d5fb262ca272055677f
+DIST system.resources.extensions.4.6.0.nupkg 63640 BLAKE2B 87f6008e74a500dc3bc64e677318f4d02926481d5ef946c33c6aa46ffe79e06b4f5d5a6268da65feefdbd733ac62ef144b4bb82baf3f9f1fb7961418594e4048 SHA512 7d1e3e6a84e7f7e4bdd996079cdbee765fff91c445ac2a6d204258836b2d7ef66ddc02f5d1b1081c3bddbf4e8ade8048448f48f33a4a57a24b51094edfb58431
+DIST system.resources.resourcemanager.4.0.1.nupkg 85915 BLAKE2B 11b7c350695fee892052fadccc4f24f6cdc9bbdae8e51122115dbdb357f584a6392ad4fc10a4be59c123a018e0ec559f5ba035fe5e5d7fd868f5878c7b00e306 SHA512 5165916e258dd38fa83278fb98dce271a95e0091c1274b8cf5f17d88b9e6284f7a7bf145194afe4f20250cc31ad714141f9e0687cf235ff05460fb47cea0c525
+DIST system.resources.resourcemanager.4.3.0.nupkg 85908 BLAKE2B 002ba25bb953e5a9162214338b50abcecfd8183c68c7b5de8bbc1780e57322b6aa225e13436ffda54b4013fb77540df7428d8c3c89c1a21622ab124d8ca174cd SHA512 9067db28f1c48d08fc52ad40a608f88c14ad9112646741ddaf426fdfe68bed61ab01954b179461e61d187371600c1e6e5c36c788993f5a105a64f5702a6b81d4
+DIST system.runtime.4.1.0.nupkg 7263653 BLAKE2B 0a6699d985304a5072c7c283a42c100cb8f13ae61e95f93463ed57438ef3d7c655c3c4aed43b1d8fed4057933e924ca1e6b9a5987f1328fe4e2e172861572593 SHA512 4b05eb68bb485846707c4fe3393f9616d3ffb6c5f62a121d81142ddf7d0241c931fe96d193b7bf02281a9368458e0764466766557cfa9709035dc76d8fdd7706
+DIST system.runtime.4.3.0.nupkg 7263712 BLAKE2B 6cf2c6704f2a5639bffe2db645fd6ac935e341a5d50f1be97969bfba15e7fd93c94a2ddbb75a3538cefc05142fd72331185ca7ed175141102e8f977649f3bf1f SHA512 92ab2249f08073cfafdc4cfbd7db36d651ad871b8d8ba961006982187de374bf4a30af93f15f73b05af343f7a70cbd484b04d646570587636ae72171eb0714fb
+DIST system.runtime.caching.6.0.0.nupkg 298162 BLAKE2B 6f017242e8b11b9d11b75f14e87a6719aa08bce69f5ccd0cf7d3636792b1c12969768912671c02431b1fe65b8bbb0d18601623bd3c0e8d07e7bf80557e692fac SHA512 001810a2563bfc28561bc3e3e84072b0c8ed8f508354937b696796b975e1fb2eda4be1cc8cec31d4e662fecfff76250752b762cc02279a05ab6b2e39832e4442
+DIST system.runtime.compilerservices.unsafe.4.4.0.nupkg 71546 BLAKE2B c22c63e811b39b5b7019cb0e27314acc561546502d9e705fbcfa08f575030c07cbd9ec900bbde34c692f7ad21605bd30652af8601ed0c3ac9cfedbf133b0ee31 SHA512 d03f39b62f48714c56aa5db5ddde1613e7f62633734731e611a1b7e2a880de10fb1bc3b88b4320afe46eb649f8a66adbad6f80058e2fce910280799dc3ebd38d
+DIST system.runtime.compilerservices.unsafe.4.5.2.nupkg 104723 BLAKE2B 30ab5b99a60b0a207bb4306ebcd483882af1721025f61a63dc3d654f060a42ec23e3dcac10623665a14e69ade86189ba0138deb199f63fb8f5124c3581e63c90 SHA512 84c91d5b192cca942515707b25a9907a00ec73110040ee051ddfe5c3fce549953d7598008a3eb9c630ab5deaf5f37c2fa0d033262739cf38e3da873dfdd9685a
+DIST system.runtime.compilerservices.unsafe.4.7.0.nupkg 82752 BLAKE2B ad9aa645b0d20621ff204210982a37d777d1d2d996ffb094117f7e40ff332dc48bdfd4b5961739adc7ef8e9c1bb08a495f6c37ae130fd867d71dedfd8f2fbb42 SHA512 14c154122872d3929f4f691aa2cb8db78f62b8b6e18b278b39a53d128d93b5cc59be330fa9b6b4613c81f9acfe004f1c97f2f815df753a8b97628c17dd543605
+DIST system.runtime.compilerservices.unsafe.4.7.1.nupkg 106815 BLAKE2B 75dc584026b4bc589ec1bdaeb7ee8933a147391f7ecb71e69c9397d517368f5c1acb22d1a1a2f10a853baaf9fb659b59d5827baf70ce882792ce93cc3be09b13 SHA512 c8d781feacf79f3effc1c231a84beb0fa1e869fbeaa1d94ba3e84db75afe915e045c39ce059331fe48956534dcebdcd54fd97ab199e6a090bddc5250e208ee52
+DIST system.runtime.compilerservices.unsafe.5.0.0.nupkg 130329 BLAKE2B 661dc87cbbfceb67d13b0bdbcf3a035609213e4b99afac13ac773128b4a4428272e84f17e70fc84218fe1569f9ea9f28152c239713580ef5a75d4fbd6a87f08c SHA512 23226c503b06abecee5a9604a6e4dd3dabcdf921f55d6aa6dad2bab1ca12a001c7866af5a6de01cc9b4ace54e5c8ee1d5c2fd29dd9dfd7eda3ed86f9b35fa59f
+DIST system.runtime.extensions.4.1.0.nupkg 1060307 BLAKE2B 5426e4a8e6d9ebaa6c88ca7dc495c120b848602f15f102d3c65105c8a03ee35136d5eb2e04a3eb2452dea96a36af70e42cb7a317e269bf4ef8a1d3a5f33f9784 SHA512 42d009be57d6497aa0724924891289f3decd916d0432c1c865cc0494092f5e59287f632a70c5060b3c78e361ab04510d75dfb3c2d2853f54201f735eb6e2dea6
+DIST system.runtime.extensions.4.3.0.nupkg 1060357 BLAKE2B e58c5c36d42228a507fba876d43f064b872c93dc4a48e9a7475a77c27e00f2added1dbb8dd5d6516a4c5652ef2b01f5fa31aa611360b38a0b66a0b1a2e479699 SHA512 680a32b19c2bd5026f8687aa5382aea4f432b4f032f8bde299facb618c56d57369adef7f7cc8e60ad82ae3c12e5dd50772491363bf8044c778778628a6605bbc
+DIST system.runtime.handles.4.0.1.nupkg 54854 BLAKE2B 396943fd119a2ca9b91d1e8059ec1854ec4eedda6b73699042f8ae761bde1b6dde5f7a92a2066220d4c8f7d872741939ba198cde2154d62ff0350ed867ad0d09 SHA512 966a943195b66118277a340075609676e951216d404478ac55196760f0b7b2bd9314bfbb38051204a1517c53097bd656e588e8ab1ec336ce264957956695848a
+DIST system.runtime.handles.4.3.0.nupkg 54854 BLAKE2B e68360382f2c625e3b1526dddb1d49c6bddc9b78d38041801f0df876f1b06d429c608ff3b28a0c1415495eb38fcd70aafa9fe8dc0bb323790e8a85718a9f93f9 SHA512 0a5baf1dd554bf9e01bcb4ce082cb26ee82b783364feb47cba730faeecd70edc528efad0394dcce11f37d7f9507f8608f15629ebaf051906bfd3513e46af0f11
+DIST system.runtime.interopservices.4.1.0.nupkg 2542509 BLAKE2B 3ecf490aacb98e44dd952301828ab27f5cbe6b2053dfdd745737cfe1d7a847691e13b3a7df558daa2a1747e50e7045145a90f51e26f108fe9826814a0c60b7c0 SHA512 e8511e6a4cd40f3c603df4ffbbf6a4aac4d10be79bcfd0249a9af90d55cf2a02543ad9b82e607a4665d58f28c7ce9bdb0f7f3ff9bc8ded8a252213916a771bd2
+DIST system.runtime.interopservices.4.3.0.nupkg 2597020 BLAKE2B 4753b772f9d3596eae34b10497af40bc6e7cd63e9319e5789378cd148b009ae9fd5bde5e5757954ef06826bd4f4b79a3f8d8ea07766238407f26f3e222cdb2cf SHA512 650799c3e654efbb9ad67157c9c60ce46f288a81597be37ce2a0bf5d4835044065ef3f65b997328cbbbbfb81f4c89b8d7e7d61380880019deee6eb3f963f70d9
+DIST system.runtime.interopservices.runtimeinformation.4.0.0.nupkg 165972 BLAKE2B 0a4e21adbb275fded46ae04ccda695b9fcb29d4f199979b914a55d0cdc4457a6a7dfa8bbd82a5a46048d052a7e852cb935a1d4a7c6bf7e462f7b14327a52dc9d SHA512 462d35e66cbdd21dc007f06c6ef129ab57e810fa0f0416bd2fc6fb7eed55138780d4d31e31ee6267a82e2e3a1607e5c642bd6efeb130b57a1baa87e3141b0080
+DIST system.runtime.interopservices.runtimeinformation.4.3.0.nupkg 179546 BLAKE2B 780a92196ee216c1175768b32c04e88cfbc453bd9fdd6e5645c4ccc98f2c5ad62fd5cb158117df9391b1cdc3130a2cddca49304d2579434597350097960ce013 SHA512 6f4905329a3cc9e62d274c885f275ee31c5af57a6c9fd1a5080d039cb748e0277bef3dc8ce42863cac78365084e00a032279bf3d2b7254a49f3fb1566a29ad1b
+DIST system.runtime.numerics.4.3.0.nupkg 283763 BLAKE2B b9e2ffc7e974fb4824ed174be43e664d0fcbe1e996640b8f66a17503c8af24d106e883092fd61b2990c32472423bcad943e07b7e25d126563a219e1b617446ee SHA512 3e347faa8e7ec484d481e53b1c219fe1ce346ae8278a214b4508cf0e233c1627bd9c6c6c7c654e8c1f4143271838ddd9593f63a1043577ad87c40e392af7fd34
+DIST system.runtime.serialization.primitives.4.1.1.nupkg 222353 BLAKE2B c53253fbc44b119c29e3cc5a049919d293600182543e6b0b39d0abbaa7853b4b025937d5e5df9e89630a74dfd22bea4c0da826ce2b37211b8db3cb4aeb18ba6a SHA512 fa6a90aeb26c0f1e72c48abec0b60a1ebea955cd3c1133b3245c04dd0bd6984c0ce0253944d28676abb8edb93e1c649c693e7c6425459a3c29a74381531cb540
+DIST system.security.accesscontrol.4.6.0.nupkg 603605 BLAKE2B c307360e9d65471474f9a1d68ae1a46dbb81c349e679755b113daa777590fb094cb1b73b89fb0303c0832940d5140a1a901ff729b27a792fbb39c3b84b1ab57f SHA512 56c6f2d9f63e2f9c1867548f38362a0b0fb69e697f930da075639ae8435d24cb29c7caa49a6aa954b9d5e5f4ceafadb5255935c73f763635ca9a3d269a89318d
+DIST system.security.accesscontrol.4.7.0.nupkg 604403 BLAKE2B 7117e428ef3840057bc5de5a5965717e620f524dafb12feb30ee01cf1368ea7e411a0d889912d2e257dbb67ace2eccb6ad12c179432539cb0debfb0d5ca2f490 SHA512 464255881cc1ad9a0df09eaa1ea926c75df4196537a1c5adb180665ec21f8da627d00c778601ee05894ee745664374a38f0369778c98b29cbe236aa70deab5ae
+DIST system.security.accesscontrol.6.0.0.nupkg 322676 BLAKE2B 4a263e610c98360396e39dd03b61b5e652d957ec4f11086b831105d6390a8f48eae8cfc425e97114d52d81aee584b155c1dd450c297118d63be7a8085363bd83 SHA512 64a36a103b954ab4b7e8a76c0e876579bd484c308e444c2d915fb9a0fd05ad63614501ed235c544afc9b431cb8a4cf0f0715b8ed414e85958e6d68579168fb45
+DIST system.security.claims.4.3.0.nupkg 147933 BLAKE2B bd00c65069b23415c146861ba7ba768a0da69f9f0a4496fb1f43780222f899ae62ed35cd0bc5a0953d8b13920800b59414cccad7e6bf6614ee675680c06e27cb SHA512 ab72b90801f6c051a2b31645448eebfca74642b3cfa1d51f80e21a0d0d7ad44d3366dea139347e2852781b7f3bae820df16c3eb188a2c96244df05394ed72c86
+DIST system.security.cryptography.algorithms.4.3.0.nupkg 402204 BLAKE2B 3bed21fdd12f005b6a7eb225623e71880a37c79cfdaa770971b6563d8e7f613a64617c73deedc2c6c31fd8e908f9ac95903a1004f1376bd914431f89c9dcc8f0 SHA512 7641d70c2ba6f37bf429d5d949bda427f078098c2dcb8924fd79b23bb22c4b956ef14235422d8b1cc5720cbbcc6cfee8943d5ff87ce7abf0d54c5e8bce2aa5e2
+DIST system.security.cryptography.cng.4.3.0.nupkg 290620 BLAKE2B aaa7b495dd7a8884b125f05b62d3e641cfb04e82f8f376f1e1839cdf124de4643dcf1e6de02e0296768db5f430a33d75cd2003261a815059055ffd5f050c65c4 SHA512 6272273414eaa777e78dca1b5ecbbdf65e9659908082aea924df0975e71f4c1b47f85617edf90ead57078c29513a160ca62f123be9f9f339dfb9c9386844f5ea
+DIST system.security.cryptography.cng.4.7.0.nupkg 938022 BLAKE2B 820d39e89eb5a880e5c34f885fcae012b3cb37f82280adb22e67d8137f0040b71a69acb28efa125c373ae165464f38595f3c8030a5bf79649bce9dc7d264f55c SHA512 b0ee54be292ea15b02b82d9925399065deb6dae5aa1bb71771bb9467e8f53882b26a0ddc6ff43121b4d2999c5858399e61a779e04d14a4f4e8e0dfcf8baebbba
+DIST system.security.cryptography.csp.4.3.0.nupkg 117553 BLAKE2B 93f32c719f999c566ac7ebc486854778051ca885632a3ecf5b50af05a700df092a0e13ce08f16c854aee3ef06bc27fc61e6b03f79f3170eeb2bcce7e22d9728f SHA512 43317591747a18f52f683187e09adfe0e03573e6dac430bf3ba13f440cdb1c7bb1f9205369d5f3b2a0f3fdf9604d5ba1e6d94a899a25d2c533e453338578f351
+DIST system.security.cryptography.encoding.4.3.0.nupkg 144382 BLAKE2B 9f8e6a4ce5fe2a4de2be0c827e914a02a257011b508e97e289b9de4657b598fdbba4e64dcf23a29af6e4910af41e62f3b3f0d6a2156ab691e2e00ad76c6499ef SHA512 5c26add23e63542f37506f5fa1f72e8980f03743d529cd8e583d1054b8d8a579fb773fa035a00d9073db84db6be4f47cac340d1ebc6d23dd761dbdbd600075e0
+DIST system.security.cryptography.openssl.4.3.0.nupkg 71949 BLAKE2B ec1654bbd09e1244d260d1ddbefcbdeed207816a2719f3bb0f055a7a140d466f186667b1f202e0d1a3eda97f247d2c1776ad6f38f50de58960da5f0dfd2a2d08 SHA512 64530a19489730f873f8c68e6b245135ea260c02d68591880261768358d0145795132ba5ee877741822ff05dcd0c61edca27696ef99e8f9302a21cadf3b1329f
+DIST system.security.cryptography.pkcs.4.7.0.nupkg 1256766 BLAKE2B dd9cc730d4021a00a8e24291934abe7a68738c33459bf2656bf8a5cd342347de769e1af72b29826bb31d7a63503f900f0950bda451f090d85d5b19802f0f6d3f SHA512 f0ff06ff4cea14cbd6d53750376b2c4022c4e4a0c0f2b1519e7d1cb4cb5700d8384dd72be01e7321a76bb2c115b55871bff919b8b5c6d858d03923c6e527b9e3
+DIST system.security.cryptography.primitives.4.3.0.nupkg 81382 BLAKE2B 55bcbe3143e85d24f47c72ec5e1f0ad38a1f931932b3a8a03dc00028668fc085d070dfcded55654e09328a745b208b9f15928aaff1087d8906bad41d7cfb23e0 SHA512 5ad8273f998ebb9cca2f7bd03143d3f6d57b5d560657b26d6f4e78d038010fb30c379a23a27c08730f15c9b66f4ba565a06984ec246dfc79acf1a741b0dd4347
+DIST system.security.cryptography.protecteddata.4.7.0.nupkg 174838 BLAKE2B 4a72518cda8e0738648ee0951132b217031bf49a4223306bffd72451ea580a4e2e12f9729193e4c8e822545a4bd46c7d04868f9d1f211d9ad3b1a887b6c168b5 SHA512 a55ae6196de1e659228213282b1e5b640c8d8337281f914287960bb2057b14aa8e2efa623f789453beae9accbbc8cd6e88022bf9571667f0cd9cc329c2ce3e37
+DIST system.security.cryptography.protecteddata.6.0.0.nupkg 126768 BLAKE2B 3ec81101da96e2395944ce93506d8f23b0f82bceb95a08b784d3d7aed619bee7aea80dcf725babf9650931018ced7e49988ceaea571cea8ea2595b2556d3f070 SHA512 489b5dab0abfadfb8bc2d0437de83a1447918071949440e766db701c81c3518de6a38a3e0f699706b06d591ab5393c7bc0b2eaa81c15bff156339248e6c35730
+DIST system.security.cryptography.x509certificates.4.3.0.nupkg 706727 BLAKE2B 67c777394c982267c08dba232dd75aba6e924784d14388f7f8e347293c8f3a67ef9490a078b3f56f649a1ab352a4c924630f384850e3d5f1510dceae45fd0af1 SHA512 318d86ab5528e2b444ec3e4b9824c1be82bb93db513eab34b238e486f886c4d74310ed82c2110401fe5cd790e4d97f4a023a0b2d5c2e29952d3fd02e42734d00
+DIST system.security.cryptography.xml.4.7.0.nupkg 200623 BLAKE2B e389da9d8659c2138ff1affd72140dce2caccb40195957a82aa2ff402f0d7a5355ebb1c39a4c66a54b5354c9b34b0b60798965568ad282aa7539f16cc2d45561 SHA512 194399f64fe33164ef97033ad4103470a233d642421bab7026d49cbb382c97d47e58d4393ecb74141bc1866c0aca0e8e05ff394ca69b29df94f0d0727d23bd97
+DIST system.security.permissions.4.7.0.nupkg 540570 BLAKE2B 18eb652c1b5b8b4819cecc9074dfd388b95806a638c99c8d9b6bb1edf198573a2d2c52e27b2514053b780537bfc5b92ffcd85cf2d288f47a0685dbb40d3d2294 SHA512 9c86c3b424218d618d3028cd4e16e2b93140ee4e082d989a4b234941eb2822e5db9cd42165157e1de7a476482a94b947bc16ad9603888b3a926f63579733b684
+DIST system.security.permissions.6.0.0.nupkg 240029 BLAKE2B 3d213c22806d7ebed6e5c6de903b04610739d443deba18189b3322b68fa045b19c317ecda73fbab848bf9936f081443669bdf5aa6ad3c32680f5f1b108b12bb0 SHA512 d4f2172cc3b164f104fa2e3a330b62f2a15f50e050a91659db5728f28d4d5d6ca8660eec3a4f922090181a54bc1e9f6634ca49750398360727d1bc59db620278
+DIST system.security.principal.4.3.0.nupkg 94590 BLAKE2B c6fc5d6944a44b3ab125af5d59493aada6e8c73857311b8118adf197b9db3bf77fc8de9f320dcc0d55c6e529106b36307e14baab75766296bf804289de800a26 SHA512 db8a1ed0d189637d9ef83147550ce5da890cf6ec189a7d006ba9de86ab55679e7f025e18bdaed2dc137ddf82a7e6a0131fb4d54d4264831862b1d7c5ee62837e
+DIST system.security.principal.windows.4.3.0.nupkg 220931 BLAKE2B dcf84627ab57c5e72e0f1828b48c6e9bfa2ea2ead7b9c02bff03b9819f4057cb9d4a8821cfd0a98a381f2d7a2471df04041567de970f9d60557923e6e09317aa SHA512 66c1d5a9d649b964e1653fa2cd41d8f80515b7cd727fcd7f0890552070da1099ecd1032560f259a108e0d1d6a6da23fa07bc5c922f426a91f33b667f7c004019
+DIST system.security.principal.windows.4.6.0.nupkg 511112 BLAKE2B 72292a73d0def1363897dda18c79b86fb6a334d259ade9c664768f42ace6c52e012634996faee1fd3579e16dc557509612f55cfe79bab270cbeee1cfaed09b35 SHA512 bc5c54d73486b24876277a419855860c2374acd3a1be905bf3a4f38f5093896345d490ef3b7b246e7fbcec6db770e7fe7d65e8755fe78757d7958b80b32fec8d
+DIST system.security.principal.windows.4.7.0.nupkg 511086 BLAKE2B 11731c7ad320a4c58bbd78a5bc744acc58cf6860fdccf21c77a5edbbc4825dee7483fec004752dbfa77a6168de5833b458683f97beb096037e55a72f005babd6 SHA512 f30a16d34c8792db60b2240363a8b200cab28bc2c7441405cf19abf71dbf5fb0bf3bd1cbec4d9b5eb4cf73ec482e4505d08d80afdef00b2b4b3bb56d6d4cae96
+DIST system.text.encoding.4.0.11.nupkg 327286 BLAKE2B ec08fe2bfd3eaedc7a50d823ae424268d1f51f8816d9b3645b4210e10b8cf89e801f5f7d831a565e31cbf795952ee5a6a60a45d6432e0593727f0e0e213818ed SHA512 f974335143f36b318abf040ed535887f28089d749b1fa55056345df5243dfbd56d27b74c6e4d87a737fdbb8e699c5291bd25f1e5db4700bb00bf53330c7e3e9a
+DIST system.text.encoding.4.3.0.nupkg 327281 BLAKE2B e153609b257919932499a013337b8b2a4087ebff7e8ffe6854ad1c70fbd058aaabc4e974313dfb3cf1a9355b0ced87bd97cd39f6a4962b8a4a87003d3a66c53c SHA512 6ff7feec7313a7121f795ec7d376e4b8728c17294219fafdfd4ea078f9df1455b4685f0b3962c3810098e95d68594a8392c0b799d36ec8284cd6fcbd4cfe2c67
+DIST system.text.encoding.codepages.4.0.1.nupkg 1615060 BLAKE2B 158ad633b1dda45136413ecb49741d8f5c60217d4ccb8af0cbe49be5260298e44fa4f5d041677a2cbac0d521089869cfe1f6623fa1686bf84b0bd3a8fbf6e83c SHA512 da68445fffcffa0a8b8f2bdab880ec4cbe51dd66209ab455cf6f16166efdf31b47498e852f616b3b7ba0dd11209e05a2625cca6fb07fafa20a945cc501282026
+DIST system.text.encoding.codepages.4.5.1.nupkg 4234891 BLAKE2B d06be022d76a5793999248baa82db37adc262da2e74531d75f5f5e1a6c29b0ca702694b19c3254ab2e955f5b70959ff22f35d43593a2072af6ba5b7952155dc2 SHA512 12edddc9452a0c592eb24aeb2b9e152d60b8d44540349368e6fce3a239c6029847f8557adcd260df3b39c744ef45a6034d9db2fbce9e20e2b8dc78363578b0ef
+DIST system.text.encoding.extensions.4.0.11.nupkg 244203 BLAKE2B 957201548c8629ab5111cbbcae3518b7c07bef93ac972b557e4f9f729dfd2519ef4523d5f6ea23b22eb19f93a3b17dbf7f1b6bed105f89b9219d53d8ed1534f7 SHA512 b2ba1f2a96bf14466fb31e4ac1fad25e7032688357340ad8976b8aafe7cbe39c061835a4e17d7cf6ae291d3155f07d3371f6b65ffc1c15474c3c86dbb7735e82
+DIST system.text.encoding.extensions.4.3.0.nupkg 244195 BLAKE2B 9dc2fbf672e07c5302bbb8435e8c09bc91febb96f22b85b57b09b2046fca224c786f8710b634559de2722f3dbece7b30e6a3c6a78e98e77f955d550e440beb60 SHA512 e648c5dc781e35cf00c5cc8e7e42e815b963cf8fb788e8a817f9b53e318b2b42e2f7a556e9c3c64bf2f6a2fd4615f26ab4f0d4eb713a0151e71e0af3fe9c3eed
+DIST system.text.json.4.7.0.nupkg 398390 BLAKE2B a00b0bbc3aae8a8b292e3704b72794428724f1cf844dc9bfe8c2d29a8a9c9dc7b9c4b10a1e88aaf4cb559e53225d856d44925a149a8d8436d89765749c2c0441 SHA512 d6ad50bdc50a094b0e0d08cba8d708e77e974b11102b64e618bc8e324ef7288015f91b44ceddd845d974b138277c4a45aa27c32a4aeb0a918fa65929eb088e7c
+DIST system.text.json.5.0.2.nupkg 479580 BLAKE2B ba2c74f76ba8db91f43f24924e79f259714d1644c87b71c7b36f7192830210be4d65ad47b3b86593fd8da0b2d616053a797b2569b72a5ccd872604cbdc916d1a SHA512 3d32f887630b6ca12a67ff5313a484989a75b71221d068f360f42b5866df279b206cfae95f36fdb0ea177b7722779d730c113ed8a08b77de5eff4e0988daf44d
+DIST system.text.regularexpressions.4.1.0.nupkg 514882 BLAKE2B 864d70cdb65bf87b684561f98d2d5193e2d66015e4cd770ab823a6ba966b3813d75f0ed6aaec82012a3d5f66ef9be182e7773b4c3b94407ab10c9e5dcd9e9f2e SHA512 9b612027e43c33cc256e016e0b400547c5923e93ab6ed1a40d2b97292cb18a1195fa79aba2b0166a6b11842a0fef6685d31b848375daffdf6d2acf297af40bbe
+DIST system.text.regularexpressions.4.3.0.nupkg 530523 BLAKE2B fc77aa0a92658cfac1b3fc00b87fabbec1be5c79776b0b2680775615b273a5a49ff8d5000f97415b85fc0283ff95569ba9a5a72917828455646053033088b49b SHA512 80353c148df30d9a2c03ee10a624d91b64d7ccc3218cb966344cfa70657f0b59c867fed2ab94057f64ab281ad9318353f25c23375c00e1376b6589ae0a70aad3
+DIST system.threading.4.0.11.nupkg 708036 BLAKE2B 6b85f9c80dfddd5faa9799fdd64379c4c066b076596cd0008c46114b91025a20e00cb8b626b6fa5d139af6aeb8a3f6781ca7e55c4f7d147eae2f38e14d7a63c2 SHA512 05c0dd1bbcfcedb6fc6c5f311c41920a4775f8a28a61ca246b6c65ad8afd9b04881d3357880af000ac056fd121fc5c3ec0b56d6fd607e0c27e7a639157c85e3e
+DIST system.threading.4.3.0.nupkg 708088 BLAKE2B 004d01762fad35a4607522d974a0cdc3d0049c82fe704f2f86fb98ee81059ebb56d13c290fcd273d1067a1a7c7f17bf3259d4d7e802c1d09a95e3c5fa29ef3f3 SHA512 97a2751bdce69faaf9c54f834a9fd5c60c7a786faa52f420769828dbc9b5804c1f3721ba1ea945ea1d844835d909810f9e782c9a44d0faaecccb230c4cd95a88
+DIST system.threading.channels.4.7.1.nupkg 132386 BLAKE2B 7faf00c3af1b02878e2be6b30f79ab2e183cf9fd8acf5409b24a4b10450211396474ab2c30aad9803b39008029e68e30845656d30c0a208d022a744ce340c1fd SHA512 f401b7067893cb14056a343df6ca6bc96a00368466080b653399b6329afc1d2d5d27e4266e267fb76f8450fd87240142524926681351315f43713ba3f366aa25
+DIST system.threading.tasks.4.0.11.nupkg 840020 BLAKE2B ec5b6bbd3c912d3552922acd338611baa992dca6bf07b97b391e47b5b41ab718c373551dacffc7b4b67870287e93eb6e70ed184213e800fd9b424bf3e02cd8cb SHA512 fb66c496a5b4c88c5cb6e9d7b7d220e10f2fc0aed181420390f12f8d9986a1bd2829e9f1bf080bb6361cd8b8b4ffc9b622288dfa42124859e1be1e981b5cfa7b
+DIST system.threading.tasks.4.3.0.nupkg 840017 BLAKE2B 1cf4a8cc833da0a38304757db3808df5c217518c817d5807bf6f35393725a31223129fd1c4c964a36a60c65b686d24fc25d1777fa12ee622bddbb0f7c1772bec SHA512 7d488ff82cb20a3b3cef6380f2dae5ea9f7baa66bf75ad711aade1e3301b25993ccf2694e33c847ea5b9bdb90ff34c46fcd8a6ba7d6f95605ba0c124ed7c5d13
+DIST system.threading.tasks.dataflow.4.9.0.nupkg 384683 BLAKE2B 4f2f830178898584cf90adabdb2362ac5f86d4a5d9125904597bcc5898fa1096d7de5d15984e38d497f514dedea918d978bc43fee40dc76b3caf28953bf206f3 SHA512 2f2ac078cf0e9f5323fa8f4b3cfc19f2212fc83f033f397c47ed46baf8b33e5dc54a25530ffef2e103c333efa26eea8b4914a183ec98bcfbe7b844042076c667
+DIST system.threading.tasks.extensions.4.0.0.nupkg 49355 BLAKE2B 898f05110ec79e3518937d10df244782ae19e36a11228b427785f367e1974135836046a6a0445c87b206550c11fd23b6d22b0dd399992ae5ac20b3d5c3060056 SHA512 f294f1a4179f53d59f91f01a372cc7896bf8c322e9827299cb1aa3ae2b1f809e98034834f5ccd4cb3fa1c30735082d244fff6584dab6e8870ad409b55e8a4986
+DIST system.threading.tasks.extensions.4.3.0.nupkg 52499 BLAKE2B 3e6532ad1936859e2713e2e864831efe0af00a5ce561bd7f8723845bf285b8c15de00cb1fc246504f99599d183b400746cea987db883f0e61283db1fb2725a1e SHA512 2c33900ff7f544d6db31ad11b6baee1c9ecb40d5a54f51e5dd5bbbb37f4c50ee35ed481615cbf7c1da61a31ae3333c4454bfbeee4ae32241789e72ce3f910db6
+DIST system.threading.tasks.extensions.4.5.3.nupkg 87282 BLAKE2B 791552a498a86952a6e7e971616020c988ea7dd6dd60d89f3b3006c96e8885f264abf2a2504e68c13f69ce53fb525fc6846e7ab5eea2c15ae9a15777f6ca698a SHA512 10bb263e21c5aefba554ba6e9adcfcc31f9f3692f675665b58cf76b5a5bcc2133d56eedba94f422b30be9ad251edcfeba7ebc24a15ff4cb7838072e9bbb18470
+DIST system.threading.tasks.extensions.4.5.4.nupkg 89582 BLAKE2B 728fc5794745b706a7e3a7d05186f34e2a8c1837cafdc7fc9a1bd8fc6fd42025448cbdfa53415a05d872aa08db1deb31d104054630c9ac7ecd29a2ddd973fd5c SHA512 68052086e77d3c7198737a3da163d67740b7c44f93250c39659b3bf21b6547a9abf64cbf40481f5c78f24361af3aaf47d52d188b371554a0928a7f7665c1fc14
+DIST system.threading.threadpool.4.3.0.nupkg 89926 BLAKE2B ec4210a5862c0704b118e4055785c7094ff8c3586800fcae109fa60e77565d8288089c64bce105e9cab08f8bb107dca340e72ae1d39d19f6118538ed32f449d6 SHA512 450a40f94a48e9396979e764e494ad624d8333f3378b91ea69b23fc836df8f5c43bbd6c8cfd91da2ab95a476e1ff042338968e09b720447f2241c014bfc75159
+DIST system.threading.timer.4.3.0.nupkg 77054 BLAKE2B be1665b86776f2f7e780de889e363a3c10da581eaf9a414da5ae5d059564281d78691142281d31b48c47b9efc084f1826165763097273f77e58699742c8c93da SHA512 d5ce8e258b7be7be268f944e21621195948106f57e6c46e69b2887c46f567760368b14e84046b4be4466ecd08ecd4cb04016a2ff7948cb4640960befc7aa1739
+DIST system.windows.extensions.4.7.0.nupkg 96529 BLAKE2B eb5e3d2f4712b6c791d390de9517d5d435e1a6955966eb7472ba1c7faff12bd391ac4f23d02a6dc850a29a8d5d506f0a0fbbe1cd83d21863800aaa51b065752b SHA512 f7bc7cafc5f542a11457a27fdb96ab8a8c8d06851df6d8bc3ac40c2038abc71907feb64ad9ec27ca940d6e51b316f04d2dc3d24cf1b2b5173cde9e20b6aa0709
+DIST system.windows.extensions.6.0.0.nupkg 113560 BLAKE2B c1fb56b177368b49cb7a2bdd3307b70847ab70b5757c3e1923ea499afc8d43e14660a3e6330fa99e7e9e653d68563e93de96425d5f56a695ab478c4a8e3ac30c SHA512 f51eec8166f97b5fcea24816ec737c24d5c5a5cb145ef2d33277c9a16044f40bc3fb97b4cfe7f9a23af704ede91586c6abd2acf00b277538bb304d77a1ca54f0
+DIST system.xml.readerwriter.4.0.11.nupkg 1363068 BLAKE2B b151c0560022d796720ce342c6c47189d5cb5d292bdc62eb0439deb87b05e80d9c57cb38267a9e153e0d4513e8edf503d88926e9956eba118b5d00d488e2fc78 SHA512 d40d6e9d55e57acdf04132bcb8ae8abf1abb3483620cde969c78c6c393a9936abf742c1dcf66288e6e9dffcb399a880ee3c11540ac140cb32e20b41365aaf35e
+DIST system.xml.readerwriter.4.3.0.nupkg 1388897 BLAKE2B ae51b8fe4492dec1e4e3584d05b0f477fd4e75e79dddb46d8077ae5311245d6fc6213d0655025f25db56f1370cb0e88bd60a83dc937bb53db1db0262390281f2 SHA512 991101497fbd39e43fc306ca280a465318868afa8db1f34bb87c266fe61f0c81a0ec34a797b236ee823bd60d1149b7592def96fe044abb511858efffe890c2e6
+DIST system.xml.xdocument.4.0.11.nupkg 591353 BLAKE2B 8373fa19c6aafbe6e347db7bb1ec304dd8ce77df415acf0c3ee04ea2dcfce050f59d6e72cdeb14c4e54d29c1c07fc9eb0ef8045fb09830b48fb1a8e90dcb09a8 SHA512 f8ae902901963f2636f39c0652d82daa9df3fb3e3d5a60493c39f6cf01ed07c7d57f175a2d2895f4a872d4e92527e5131522218d1a67da2fd491e162273a8527
+DIST system.xml.xdocument.4.3.0.nupkg 591350 BLAKE2B 86f910cef36c056f4a9ea9dc26eea6e01070467d27ac80fb8a0af5e1a572ad5d2169e4f1297cd362fddc9e0309458dbd413fca85ef8e56f97781c218e594604a SHA512 c2d9236a696daf23a29b530b9aa510fb813041685a1bb9a95845a51e61d870a0615e988b150f5be0d0896ef94b123e97f96c8a43ee815cf5b9897593986b1113
+DIST system.xml.xmldocument.4.3.0.nupkg 285212 BLAKE2B 0d96ca356543e8e915597e0624dca42f0c7032a2ae9e380a6fba3fbee0dacb9e5f06017893b2b7a8b937dbb4de7d5665fa6648e3bf8df12e0d34e4075c125109 SHA512 22251b3f16de9aa06e091b24baea1b8c95752f0d22266faf34e1fb76b347b23f7910cdaf567058e23d06b7079961090ca70805070a2491add5da4d0271afd133
+DIST tomlyn.0.16.2.nupkg 146842 BLAKE2B 5292d6abae6eb514d6a0cf7b69e9ab47599fc1540c83a9861985293267c8137f856a1ec573d7f3b327c9a383905de4572f54d03c889951227549cc1bb8979f78 SHA512 69a4f67cd9a9cf593f79fd8cc0530a030a24a9a04e5b67ba39460668e5125d6859f54f3a3d485ec1e8d0be996f14ef14fb9e380e63c6e648bd1141dc31c58141
+DIST validation.2.4.18.nupkg 90984 BLAKE2B 3f319bd60a0b1d6b6d08188b1132c01fd417d7e205bc587edd7ffa0dfba4dc01b9e956df46ef03b0f909ff5b9a859a9620d1ededd8eef21fb6522aab2f12f1f2 SHA512 b49e4b992b40bb656821a7a6dd67fe464af14f0781cf677f58412d108678963f9f9347bd2e1091343c1aa522148ea187a25b45ef0eae5e7ffeb8f833396fcff2
+DIST xunit.2.4.1.nupkg 20733 BLAKE2B ee83156610dc4ade1f15c05d97725e1913a9dde04e474c11fe396c37df5d438ab934776e4660d3d139fe34949eb890dae67c0145d3815a8a25cc976b9d2cca7b SHA512 3b0061a5ecfd49166f123aa27375956c00aedb0b22f6ee6a8be629cd583a0532f7476e51ffacad3385245139f1f9d4990c9dc850fc7ef7d097fd85e7c6b40058
+DIST xunit.2.4.2.nupkg 25547 BLAKE2B bc9bc5049e9feaa9b658ff11ad3ed277c43089b5c341768425d401b98f5ca212d3f3828232a58716f7ea75e39007fb8ee04498208afed60d28e91ecfff31f1d6 SHA512 f57b8d3bbd04cc285c7913b5697a1b00cf0d6f2c70e35a592d61c8c866d79f3f6a913fa933b39224484bba439e6eee0ab917bf66cd19cbcb1dc3731437556c48
+DIST xunit.abstractions.2.0.2.nupkg 75852 BLAKE2B 13a214201e5756c0a3eddb7e93a91a19c828bee293e9dffea514bb7bd3f10e823c5489155707b17f58c23ddd24aa987eac0858632c5a55dcf84bdb44c5546a7a SHA512 957d3a0c6d048f30ba53e4155424e16838c6047324f6a6289a7128b4aee8c6382f5b78f1156e201164af45edbf1a5c818c8d08086076d55826bd2e4be4c33a5a
+DIST xunit.abstractions.2.0.3.nupkg 75155 BLAKE2B 8cfecf557dbe20e0e14b1d8b413acd7516b6538cb543a12708910311fa76b7dcd9d060c7be70a05b0af5ef3b8bd5f819104025afe9796e240c28fcae1c7460c1 SHA512 3ca26b8b97f4a8440f16f818e82651f571bc2513a5592742fd960b9240d0b880fef84827fb25a307e61fe7b019f14e864653fbcf7dee0d0e3faf90593deaf624
+DIST xunit.analyzers.0.10.0.nupkg 107050 BLAKE2B 2e79dab696767d34536ee6ba08fba2e4113b3e41073d1f07757113f0ce24766e8cbe801f06f3abe58eb46399fbe28ece6908a364b73023948450adc81a0f016d SHA512 530e84aa43a6b74232b2d52dce453853c8b1084cfea62aa0733ca83d3d344703c3b161ed5b0cde763b014134ba3f5876faec0317ac3952962de7f49213b79ec5
+DIST xunit.analyzers.1.0.0.nupkg 146928 BLAKE2B 942ce8bbd0ec670211e59c53f7128491917ff8d3343eaffe27a910179852f388ab92594a733ed5875516bd0821a73c87aa8da68518aaf5ce35212f4e6f740ccc SHA512 d3a58d37646082414d0954088d285068aef43c7992bdbdeccbb4f84e5850dbaafccd3275468031b51041a7a1a82a990a86e4fdeb5169684b878fd169b7fbbf73
+DIST xunit.assert.2.4.1.nupkg 67341 BLAKE2B a7f697049d3c24076857e4bec56afb43bace649c10a0731425b6e6652509b3ae5cd45e855230a6669322023d5c82a3e3a5d23f7db6058f286ac6e95b0eef23c4 SHA512 c5680265048178cf42ec093e56ecc6b10afb2b93832d5b172b7836b030f7f3fdcb8e89b621b5893ee746f3e22cb2982f7e91a1d20f4e7b9bcb73c53e8b38e279
+DIST xunit.assert.2.4.2.nupkg 93738 BLAKE2B 90e40be8ced67f45d68ef7e005e512120eb874bf28484927c7ed1ceda1ed7ce4e473f1081471dfeba398bbb44bd70b56bbdb0f366af8299f6a7efbf4433dc127 SHA512 ad6e6a723156d85bdc2cf58ca3e3bdca9632def2a231bda31e68358585434462e1f04675cd3801354074562880393645facfab40e50fa21112089275215bac4e
+DIST xunit.assertmessages.2.4.0.nupkg 32921 BLAKE2B 776290baae438a366f6f9fa5f324aa23bdc03544233b26683943a4f92ccff631fc22bee74603cb3d7c3a4767e4d5077ff2a4e9991afe1355727c2e089b3cff59 SHA512 316ae44cf16b444f02948a4098f8bd428c98c1128950e17aefeda3e3ca90fae9460c06a3a0b5043071e98faa3e0118679bb7352090db5b97f695e41b36b4d48c
+DIST xunit.core.2.4.1.nupkg 22659 BLAKE2B f810cae28847f7f6bc1dc5866c2526cc496f8f48f774545050d9ac41324fc42acd6a9204b0b0cf0836dacee3eb5a4246f21cebda074437cf59f4562588a5ee87 SHA512 f2d68c940432f6a43b4db8aaaf64c0c06914f97d2c72443ef7a8fb47d397fd4b758261c46b841822b23c735e63de22938f75f3c90315a219133166bcd0145feb
+DIST xunit.core.2.4.2.nupkg 27470 BLAKE2B fbadd7d1f585d7bff46e26d5b3c8ac578852beaaded11b5b7436528d43bbd4f9706713e9b21d42ba525459169be16e64a410a4f2c14d665eb065d1f7fd718597 SHA512 d83b2d0ab6f662dd9280b2fb2e3627f00e23c6968441cb371c1a4eca48e1a73115130796a87321f911e5e4597e4c6fce9a806a1cebbebecfcbda08001110c737
+DIST xunit.extensibility.core.2.4.0.nupkg 278959 BLAKE2B 58457d747683eabf4fc8aadeda9918297bb2113bfeb5aea97b858f77ee66540aa88cc36d6eff08ea70e947e5e94bd7b4f10a111e39b7e953f6471d93979ddb55 SHA512 4d3c560932a8b0785fbc7d7de47e8d848bf8d265d9a5a88153904822378c1c378a4f776bce00b8dfa1c7e1314728cf6135518c9d81b87fe8d48c4b6020bd03ef
+DIST xunit.extensibility.core.2.4.1.nupkg 238957 BLAKE2B ba1d6a3ba13da385fad20d09b7ca0bbe1c32d7ada1a4932e3e2100fbb8c049b9abfb15a2a8064022f7367ad0b804e9c5a6af9986155c7e31fed922061d51acd6 SHA512 aa477119fc5db00bab105b2bf33e8b7e805155be1571b7b2935c05f8c46b39baeec0eb65ecefa28505041d7f1f9d99e5505b18ea447ef6d7307a898bb28711d4
+DIST xunit.extensibility.core.2.4.2.nupkg 277418 BLAKE2B 17b4832e1394fd8ed822f7050b7d50ac3a7c3619f1e7e82796ef96426555a402c34064118a5f30ed3d49615ef4f344337711de9172a60b5fa5bc0cad12ed8189 SHA512 c8376e94345e381336dece119caaff3d18fd34743413a7fb54d4589e4c0c2119cc5a9b580c6858e1caa3f098a6888db6c4bd418be3d7f0def8d0a188a4d16ebf
+DIST xunit.extensibility.execution.2.4.0.nupkg 481651 BLAKE2B 8cd2bef58356196059e1236080186774af4f71d384533e01e16c33521628e9993fc2b5f3b0f35e68ee4b45690183df2c3bc2681689eb47c73b79d3a9ccdcbcc4 SHA512 adc865d290201f1dbdd5bbe678ed880f9dd39da42ad3a90db09dda95a0448a7bf3cf23ad92f9a8c463ecd408042e383d4914d394eba10077494d325ed0ddb361
+DIST xunit.extensibility.execution.2.4.1.nupkg 328138 BLAKE2B 963aae4c76cbb5d7d36fae036f5c6a50643588019639d358295d2298e2dbcf1890da459dc69db9b0eade5a7d779b5e13f2762e1e9b2b96c8ec00979491a5dc7f SHA512 81cf13c553dec37f87cbaa894ecef42478abb52b79932dfcd20c42f1017e56658eb3a11d586968f719b7511926fa03db13dae85557e7af0e40baa14daf8479d9
+DIST xunit.extensibility.execution.2.4.2.nupkg 353652 BLAKE2B f10e20d43b8030f51c9598afe247f46c0630fff6ad5e1cb82105182cac11b410c0c41c19fd513c5a3a59183ca45e1046af3289d670e0329a424ed7cb4a81735a SHA512 e654fcf8767427d5370746cab7f2078fddaf2239c9b312114bd68f1d91f739acef8586697e44c41442ace3a3d140591bd8ddeae81b3079f6719b3740757cc90d
+DIST xunit.runner.visualstudio.2.4.3.nupkg 809588 BLAKE2B ce18ac895657d1efa9752e44148812a452401fa06eba913dad716cfd6743d85a09ffbc0be52276a4b90d039ab76077cca7ab5316b73009aeff2b2fe77dc465f1 SHA512 d8b0d124425db24f98335b332fe55e1a08b39af55d8834dd4a2717fd4be45f3a06ae6cb16427a17adfb31e215dab622856152bb2da715acb1946ec9e935299f4
+DIST xunit.runner.visualstudio.2.5.1.nupkg 348549 BLAKE2B 530ffc6b699a1589ad6a7fb5aa826d7238b63ea8dcd13ce5705a3d29a0ba70edeac2d9950cd1a00a13a779add761e4e14335689051a43b4cd662a330734e4df7 SHA512 0cc7887e7c7c3315db31aab79df236db9b5542e0234c27543dd5b11cf917674a8fdebc384e7331663b08d586fcf20628479a20ad7edbed4e61667903e812c6f0
+DIST xunit.skippablefact.1.4.8.nupkg 44542 BLAKE2B 3c9b09d5196e8901770099b2e5078d9373e8ebc2da058a9071707d6fee56eab7c876578734f3be5b088db6ae83c8ad81a3aadfcab38e1fd2b28bd25601fe5463 SHA512 a2c680223bda4f9bfdbd751c8d6a5319e0a4611533272860ca0a396b26c473a13065301a5d8973074ea2bb5119caaeec5a67d547a96ae5d762dc09f337f51ad1
diff --git a/dev-lang/dafny/dafny-4.4.0-r1.ebuild b/dev-lang/dafny/dafny-4.4.0-r1.ebuild
new file mode 100644
index 000000000000..2fd7b19b0f00
--- /dev/null
+++ b/dev-lang/dafny/dafny-4.4.0-r1.ebuild
@@ -0,0 +1,592 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..12} )
+
+DOTNET_PKG_COMPAT=6.0
+NUGETS="
+boogie.abstractinterpretation@3.0.9
+boogie.basetypes@3.0.9
+boogie.codecontractsextender@3.0.9
+boogie.concurrency@3.0.9
+boogie.core@3.0.9
+boogie.executionengine@3.0.9
+boogie.graph@3.0.9
+boogie.houdini@3.0.9
+boogie.model@3.0.9
+boogie.provers.smtlib@3.0.9
+boogie.vcexpr@3.0.9
+boogie.vcgeneration@3.0.9
+castle.core@4.4.0
+commandlineparser@2.8.0
+commandlineparser@2.9.1
+coverlet.collector@3.2.0
+diffplex@1.7.0
+humanizer.core@2.2.0
+jetbrains.annotations@2021.1.0
+mediatr@8.1.0
+microsoft.bcl.asyncinterfaces@1.1.1
+microsoft.bcl.asyncinterfaces@5.0.0
+microsoft.bcl.asyncinterfaces@6.0.0
+microsoft.build.framework@17.0.0
+microsoft.build.locator@1.4.1
+microsoft.build.tasks.core@17.0.0
+microsoft.build.utilities.core@17.0.0
+microsoft.build@17.0.0
+microsoft.codeanalysis.analyzers@3.0.0
+microsoft.codeanalysis.analyzers@3.3.2
+microsoft.codeanalysis.common@3.7.0
+microsoft.codeanalysis.common@4.0.1
+microsoft.codeanalysis.csharp.workspaces@4.0.1
+microsoft.codeanalysis.csharp@3.7.0
+microsoft.codeanalysis.csharp@4.0.1
+microsoft.codeanalysis.visualbasic.workspaces@4.0.1
+microsoft.codeanalysis.visualbasic@4.0.1
+microsoft.codeanalysis.workspaces.common@4.0.1
+microsoft.codeanalysis.workspaces.msbuild@4.0.1
+microsoft.codeanalysis@4.0.1
+microsoft.codecoverage@16.11.0
+microsoft.codecoverage@16.9.4
+microsoft.codecoverage@17.1.0
+microsoft.csharp@4.0.1
+microsoft.dotnet.platformabstractions@2.0.4
+microsoft.extensions.configuration.abstractions@2.0.0
+microsoft.extensions.configuration.abstractions@5.0.0
+microsoft.extensions.configuration.binder@2.0.0
+microsoft.extensions.configuration.binder@5.0.0
+microsoft.extensions.configuration.commandline@5.0.0
+microsoft.extensions.configuration.fileextensions@5.0.0
+microsoft.extensions.configuration.json@5.0.0
+microsoft.extensions.configuration@2.0.0
+microsoft.extensions.configuration@5.0.0
+microsoft.extensions.dependencyinjection.abstractions@2.0.0
+microsoft.extensions.dependencyinjection.abstractions@5.0.0
+microsoft.extensions.dependencyinjection@2.0.0
+microsoft.extensions.dependencyinjection@5.0.0
+microsoft.extensions.dependencymodel@2.0.4
+microsoft.extensions.fileproviders.abstractions@5.0.0
+microsoft.extensions.fileproviders.physical@5.0.0
+microsoft.extensions.filesystemglobbing@5.0.0
+microsoft.extensions.logging.abstractions@2.0.0
+microsoft.extensions.logging.abstractions@5.0.0
+microsoft.extensions.logging.configuration@5.0.0
+microsoft.extensions.logging.console@5.0.0
+microsoft.extensions.logging@2.0.0
+microsoft.extensions.logging@5.0.0
+microsoft.extensions.options.configurationextensions@2.0.0
+microsoft.extensions.options.configurationextensions@5.0.0
+microsoft.extensions.options@2.0.0
+microsoft.extensions.options@5.0.0
+microsoft.extensions.primitives@2.0.0
+microsoft.extensions.primitives@5.0.0
+microsoft.net.stringtools@1.0.0
+microsoft.net.test.sdk@16.11.0
+microsoft.net.test.sdk@16.9.4
+microsoft.net.test.sdk@17.1.0
+microsoft.netcore.platforms@1.0.1
+microsoft.netcore.platforms@1.1.0
+microsoft.netcore.platforms@2.1.2
+microsoft.netcore.platforms@3.0.0
+microsoft.netcore.platforms@3.1.0
+microsoft.netcore.targets@1.0.1
+microsoft.netcore.targets@1.1.0
+microsoft.netframework.referenceassemblies.net452@1.0.2
+microsoft.netframework.referenceassemblies@1.0.2
+microsoft.testplatform.extensions.trxlogger@17.0.0
+microsoft.testplatform.objectmodel@16.11.0
+microsoft.testplatform.objectmodel@16.9.4
+microsoft.testplatform.objectmodel@17.0.0
+microsoft.testplatform.objectmodel@17.1.0
+microsoft.testplatform.testhost@16.11.0
+microsoft.testplatform.testhost@16.9.4
+microsoft.testplatform.testhost@17.1.0
+microsoft.visualstudio.threading.analyzers@16.7.56
+microsoft.visualstudio.threading@16.7.56
+microsoft.visualstudio.validation@15.5.31
+microsoft.win32.primitives@4.3.0
+microsoft.win32.registry@4.3.0
+microsoft.win32.registry@4.6.0
+microsoft.win32.systemevents@4.7.0
+microsoft.win32.systemevents@6.0.0
+moq@4.16.1
+nerdbank.streams@2.6.81
+netstandard.library@1.6.1
+netstandard.library@2.0.3
+newtonsoft.json@11.0.2
+newtonsoft.json@13.0.1
+newtonsoft.json@9.0.1
+nuget.frameworks@5.0.0
+nuget.frameworks@5.11.0
+omnisharp.extensions.jsonrpc.generators@0.19.5
+omnisharp.extensions.jsonrpc.testing@0.19.5
+omnisharp.extensions.jsonrpc@0.19.5
+omnisharp.extensions.languageclient@0.19.5
+omnisharp.extensions.languageprotocol.testing@0.19.5
+omnisharp.extensions.languageprotocol@0.19.5
+omnisharp.extensions.languageserver.shared@0.19.5
+omnisharp.extensions.languageserver@0.19.5
+rangetree@3.0.1
+runtime.any.system.collections@4.3.0
+runtime.any.system.diagnostics.tools@4.3.0
+runtime.any.system.diagnostics.tracing@4.3.0
+runtime.any.system.globalization.calendars@4.3.0
+runtime.any.system.globalization@4.3.0
+runtime.any.system.io@4.3.0
+runtime.any.system.reflection.extensions@4.3.0
+runtime.any.system.reflection.primitives@4.3.0
+runtime.any.system.reflection@4.3.0
+runtime.any.system.resources.resourcemanager@4.3.0
+runtime.any.system.runtime.handles@4.3.0
+runtime.any.system.runtime.interopservices@4.3.0
+runtime.any.system.runtime@4.3.0
+runtime.any.system.text.encoding.extensions@4.3.0
+runtime.any.system.text.encoding@4.3.0
+runtime.any.system.threading.tasks@4.3.0
+runtime.any.system.threading.timer@4.3.0
+runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.native.system.io.compression@4.3.0
+runtime.native.system.net.http@4.3.0
+runtime.native.system.security.cryptography.apple@4.3.0
+runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.native.system@4.0.0
+runtime.native.system@4.3.0
+runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple@4.3.0
+runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.unix.microsoft.win32.primitives@4.3.0
+runtime.unix.system.console@4.3.0
+runtime.unix.system.diagnostics.debug@4.3.0
+runtime.unix.system.io.filesystem@4.3.0
+runtime.unix.system.net.primitives@4.3.0
+runtime.unix.system.net.sockets@4.3.0
+runtime.unix.system.private.uri@4.3.0
+runtime.unix.system.runtime.extensions@4.3.0
+serilog.extensions.logging@3.0.1
+serilog.settings.configuration@3.1.0
+serilog.sinks.debug@2.0.0
+serilog.sinks.file@5.0.0
+serilog.sinks.inmemory@0.11.0
+serilog@2.10.0
+serilog@2.12.0
+system.appcontext@4.1.0
+system.appcontext@4.3.0
+system.buffers@4.3.0
+system.buffers@4.4.0
+system.codedom@4.4.0
+system.collections.concurrent@4.3.0
+system.collections.immutable@1.5.0
+system.collections.immutable@1.7.0
+system.collections.immutable@1.7.1
+system.collections.immutable@5.0.0
+system.collections.nongeneric@4.0.1
+system.collections.nongeneric@4.3.0
+system.collections.specialized@4.0.1
+system.collections.specialized@4.3.0
+system.collections@4.0.11
+system.collections@4.3.0
+system.commandline@2.0.0-beta4.22272.1
+system.componentmodel.primitives@4.3.0
+system.componentmodel.typeconverter@4.3.0
+system.componentmodel@4.3.0
+system.composition.attributedmodel@1.0.31
+system.composition.convention@1.0.31
+system.composition.hosting@1.0.31
+system.composition.runtime@1.0.31
+system.composition.typedparts@1.0.31
+system.composition@1.0.31
+system.configuration.configurationmanager@4.7.0
+system.configuration.configurationmanager@6.0.0
+system.console@4.3.0
+system.diagnostics.debug@4.0.11
+system.diagnostics.debug@4.3.0
+system.diagnostics.diagnosticsource@4.3.0
+system.diagnostics.tools@4.0.1
+system.diagnostics.tools@4.3.0
+system.diagnostics.tracesource@4.3.0
+system.diagnostics.tracing@4.3.0
+system.drawing.common@4.7.0
+system.drawing.common@6.0.0
+system.dynamic.runtime@4.0.11
+system.dynamic.runtime@4.3.0
+system.globalization.calendars@4.3.0
+system.globalization.extensions@4.0.1
+system.globalization.extensions@4.3.0
+system.globalization@4.0.11
+system.globalization@4.3.0
+system.io.compression.zipfile@4.3.0
+system.io.compression@4.3.0
+system.io.filesystem.primitives@4.0.1
+system.io.filesystem.primitives@4.3.0
+system.io.filesystem@4.0.1
+system.io.filesystem@4.3.0
+system.io.pipelines@4.7.3
+system.io.pipelines@5.0.1
+system.io@4.1.0
+system.io@4.3.0
+system.linq.async@6.0.1
+system.linq.expressions@4.1.0
+system.linq.expressions@4.3.0
+system.linq@4.1.0
+system.linq@4.3.0
+system.memory@4.5.3
+system.memory@4.5.4
+system.net.http@4.3.0
+system.net.nameresolution@4.3.0
+system.net.primitives@4.3.0
+system.net.sockets@4.3.0
+system.net.websockets@4.3.0
+system.numerics.vectors@4.4.0
+system.objectmodel@4.0.12
+system.objectmodel@4.3.0
+system.private.uri@4.3.0
+system.reactive@4.4.1
+system.reflection.emit.ilgeneration@4.0.1
+system.reflection.emit.ilgeneration@4.3.0
+system.reflection.emit.lightweight@4.0.1
+system.reflection.emit.lightweight@4.3.0
+system.reflection.emit@4.0.1
+system.reflection.emit@4.3.0
+system.reflection.extensions@4.0.1
+system.reflection.extensions@4.3.0
+system.reflection.metadata@1.6.0
+system.reflection.metadata@5.0.0
+system.reflection.primitives@4.0.1
+system.reflection.primitives@4.3.0
+system.reflection.typeextensions@4.1.0
+system.reflection.typeextensions@4.3.0
+system.reflection@4.1.0
+system.reflection@4.3.0
+system.resources.extensions@4.6.0
+system.resources.resourcemanager@4.0.1
+system.resources.resourcemanager@4.3.0
+system.runtime.caching@6.0.0
+system.runtime.compilerservices.unsafe@4.4.0
+system.runtime.compilerservices.unsafe@4.5.2
+system.runtime.compilerservices.unsafe@4.7.0
+system.runtime.compilerservices.unsafe@4.7.1
+system.runtime.compilerservices.unsafe@5.0.0
+system.runtime.extensions@4.1.0
+system.runtime.extensions@4.3.0
+system.runtime.handles@4.0.1
+system.runtime.handles@4.3.0
+system.runtime.interopservices.runtimeinformation@4.0.0
+system.runtime.interopservices.runtimeinformation@4.3.0
+system.runtime.interopservices@4.1.0
+system.runtime.interopservices@4.3.0
+system.runtime.numerics@4.3.0
+system.runtime.serialization.primitives@4.1.1
+system.runtime@4.1.0
+system.runtime@4.3.0
+system.security.accesscontrol@4.6.0
+system.security.accesscontrol@4.7.0
+system.security.accesscontrol@6.0.0
+system.security.claims@4.3.0
+system.security.cryptography.algorithms@4.3.0
+system.security.cryptography.cng@4.3.0
+system.security.cryptography.cng@4.7.0
+system.security.cryptography.csp@4.3.0
+system.security.cryptography.encoding@4.3.0
+system.security.cryptography.openssl@4.3.0
+system.security.cryptography.pkcs@4.7.0
+system.security.cryptography.primitives@4.3.0
+system.security.cryptography.protecteddata@4.7.0
+system.security.cryptography.protecteddata@6.0.0
+system.security.cryptography.x509certificates@4.3.0
+system.security.cryptography.xml@4.7.0
+system.security.permissions@4.7.0
+system.security.permissions@6.0.0
+system.security.principal.windows@4.3.0
+system.security.principal.windows@4.6.0
+system.security.principal.windows@4.7.0
+system.security.principal@4.3.0
+system.text.encoding.codepages@4.0.1
+system.text.encoding.codepages@4.5.1
+system.text.encoding.extensions@4.0.11
+system.text.encoding.extensions@4.3.0
+system.text.encoding@4.0.11
+system.text.encoding@4.3.0
+system.text.json@4.7.0
+system.text.json@5.0.2
+system.text.regularexpressions@4.1.0
+system.text.regularexpressions@4.3.0
+system.threading.channels@4.7.1
+system.threading.tasks.dataflow@4.9.0
+system.threading.tasks.extensions@4.0.0
+system.threading.tasks.extensions@4.3.0
+system.threading.tasks.extensions@4.5.3
+system.threading.tasks.extensions@4.5.4
+system.threading.tasks@4.0.11
+system.threading.tasks@4.3.0
+system.threading.threadpool@4.3.0
+system.threading.timer@4.3.0
+system.threading@4.0.11
+system.threading@4.3.0
+system.windows.extensions@4.7.0
+system.windows.extensions@6.0.0
+system.xml.readerwriter@4.0.11
+system.xml.readerwriter@4.3.0
+system.xml.xdocument@4.0.11
+system.xml.xdocument@4.3.0
+system.xml.xmldocument@4.3.0
+tomlyn@0.16.2
+validation@2.4.18
+xunit.abstractions@2.0.2
+xunit.abstractions@2.0.3
+xunit.analyzers@0.10.0
+xunit.analyzers@1.0.0
+xunit.assert@2.4.1
+xunit.assert@2.4.2
+xunit.assertmessages@2.4.0
+xunit.core@2.4.1
+xunit.core@2.4.2
+xunit.extensibility.core@2.4.0
+xunit.extensibility.core@2.4.1
+xunit.extensibility.core@2.4.2
+xunit.extensibility.execution@2.4.0
+xunit.extensibility.execution@2.4.1
+xunit.extensibility.execution@2.4.2
+xunit.runner.visualstudio@2.4.3
+xunit.runner.visualstudio@2.5.1
+xunit.skippablefact@1.4.8
+xunit@2.4.1
+xunit@2.4.2
+"
+
+inherit check-reqs dotnet-pkg edo java-pkg-2 multiprocessing python-any-r1
+
+DESCRIPTION="Dafny is a verification-aware programming language"
+HOMEPAGE="https://dafny.org/
+ https://github.com/dafny-lang/dafny/"
+
+if [[ "${PV}" == *9999* ]] ; then
+ inherit git-r3
+
+ EGIT_REPO_URI="https://github.com/dafny-lang/${PN}.git"
+else
+ SRC_URI="https://github.com/dafny-lang/${PN}/archive/v${PV}.tar.gz
+ -> ${P}.tar.gz"
+
+ KEYWORDS="amd64"
+fi
+
+SRC_URI+="
+ ${NUGET_URIS}
+ test? ( https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz )
+"
+
+LICENSE="MIT"
+SLOT="0"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ !dev-lang/dafny-bin
+ >=virtual/jre-1.8:*
+ sci-mathematics/z3
+"
+DEPEND="
+ >=virtual/jdk-1.8:*
+"
+BDEPEND="
+ ${RDEPEND}
+ dev-dotnet/coco
+ test? (
+ ${PYTHON_DEPS}
+ dev-lang/boogie
+ dev-lang/go
+ dev-python/OutputCheck
+ dev-python/lit
+ net-libs/nodejs[npm]
+ )
+"
+
+CHECKREQS_DISK_BUILD="2G"
+DOTNET_PKG_PROJECTS=(
+ "${S}/Source/Dafny/Dafny.csproj"
+ "${S}/Source/TestDafny/TestDafny.csproj"
+)
+
+PATCHES=(
+ "${FILESDIR}/${PN}-3.12.0-DafnyCore-csproj.patch"
+ "${FILESDIR}/${PN}-3.12.0-DafnyRuntime-csproj.patch"
+ "${FILESDIR}/${PN}-4.4.0-lit-config.patch"
+ "${FILESDIR}/${PN}-4.4.0-lit-system-boogie.patch"
+)
+
+DOCS=(
+ CODE_OF_CONDUCT.md
+ CONTRIBUTING.md
+ NOTICES.txt
+ README.md
+ RELEASE_NOTES.md
+ docs/DafnyCheatsheet.pdf
+ docs/DafnyRef/out/DafnyRef.pdf
+)
+
+TEST_S="${S}/Source/IntegrationTests/TestFiles/LitTests/LitTest"
+
+pkg_setup() {
+ # Clean the environment.
+ unset NPM_CONFIG_USERCONFIG
+
+ if [[ -n "${_JAVA_OPTIONS}" ]] ; then
+ ewarn "Cleaning _JAVA_OPTIONS because when set compile and test may fail"
+
+ unset _JAVA_OPTIONS
+ fi
+
+ check-reqs_pkg_setup
+ dotnet-pkg_pkg_setup
+ java-pkg-2_pkg_setup
+
+ # We need to set up Python only for running test tools (called via lit).
+ if use test ; then
+ python-any-r1_pkg_setup
+ fi
+}
+
+src_unpack() {
+ dotnet-pkg_src_unpack
+
+ if [[ -n "${EGIT_REPO_URI}" ]] ; then
+ git-r3_src_unpack
+ fi
+}
+
+src_prepare() {
+ # Using "for-each-compiler" will fail because of Cargo requiring network access.
+ while read -r test_file ; do
+ if grep "// RUN: %testDafnyForEachCompiler" "${test_file}" >/dev/null ; then
+ rm "${test_file}" || die
+ fi
+ done < <(find "${TEST_S}" -type f -name "*.dfy")
+
+ # Remove bad tests (recursive).
+ local -a bad_tests=(
+ # Following tests fail:
+ VSComp2010/Problem2-Invert.dfy
+ auditor/TestAuditor.dfy
+ benchmarks/sequence-race/SequenceRace.dfy
+ dafny0/Fuel.legacy.dfy
+ dafny0/JavaUseRuntimeLib.dfy
+ dafny0/Stdin.dfy
+ dafny4/Lucas-up.legacy.dfy
+ git-issues/git-issue-2026.dfy
+ git-issues/git-issue-2299.dfy
+ git-issues/git-issue-2301.dfy
+ separate-verification/assumptions.dfy
+ server/counterexample_none.transcript
+ wishlist/exists-b-exists-not-b.dfy
+
+ # Following tests are very slow:
+ VSI-Benchmarks/b4.dfy
+ comp/CompileWithArguments.dfy
+ comp/MainMethod.dfy
+ comp/compile3/JustRun.dfy
+ concurrency/07-CounterThreadOwnership.dfy
+ concurrency/09-CounterNoStateMachine.dfy
+ concurrency/10-SequenceInvariant.dfy
+ concurrency/12-MutexLifetime-short.dfy
+ dafny1/SchorrWaite.dfy
+ dafny2/SnapshotableTrees.dfy
+ dafny4/git-issue250.dfy
+ git-issues/git-issue-Main4.dfy
+ git-issues/git-issue-MainE.dfy
+ unicodechars/comp/CompileWithArguments.dfy
+ )
+ local bad_test
+ for bad_test in "${bad_tests[@]}" ; do
+ rm "${TEST_S}/${bad_test}" || die "failed to remove test ${bad_test}"
+ done
+
+ dotnet-pkg_src_prepare
+
+ # Update lit's "lit.site.cfg" file.
+ local dotnet_exec="${DOTNET_PKG_EXECUTABLE} exec ${DOTNET_PKG_OUTPUT}"
+ local lit_config="${TEST_S}/lit.site.cfg"
+
+ sed "/^defaultDafnyExecutable/s|=.*|= '${dotnet_exec}/Dafny.dll '|" \
+ -i "${lit_config}" || die "failed to update ${lit_config}"
+ sed "/^dafnyExecutable/s|=.*|= '${dotnet_exec}/Dafny.dll '|" \
+ -i "${lit_config}" || die "failed to update ${lit_config}"
+ sed "/^testDafnyExecutableCompiler/s|=.*|= '${dotnet_exec}/TestDafny.dll for-each-compiler '|" \
+ -i "${lit_config}" || die "failed to update ${lit_config}"
+ sed "/^testDafnyExecutableResolver/s|=.*|= '${dotnet_exec}/TestDafny.dll for-each-resolver '|" \
+ -i "${lit_config}" || die "failed to update ${lit_config}"
+ sed "/^defaultServerExecutable/s|=.*|= '${dotnet_exec}/DafnyServer.dll'|" \
+ -i "${lit_config}" || die "failed to update ${lit_config}"
+ sed "/^serverExecutable/s|=.*|= '${dotnet_exec}/DafnyServer.dll'|" \
+ -i "${lit_config}" || die "failed to update ${lit_config}"
+}
+
+src_compile () {
+ einfo "Building DafnyRuntimeJava JAR."
+ local dafny_runtime_java="${S}/Source/DafnyRuntime/DafnyRuntimeJava"
+ mkdir -p "${dafny_runtime_java}/build/libs/" || die
+ pushd "${dafny_runtime_java}/build" || die
+
+ ejavac -d ./ $(find "${dafny_runtime_java}/src/main" -type f -name "*.java")
+ edo jar cvf "DafnyRuntime-${PV}.jar" dafny/*
+
+ cp "DafnyRuntime-${PV}.jar" "${dafny_runtime_java}/build/libs/" || die
+ popd || die
+
+ # Build main dotnet package.
+ dotnet-pkg_src_compile
+}
+
+src_test() {
+ # The test "dafny0/DafnyLibClient.dfy" expects to use "DafnyRuntime.dll"
+ # from the "Binaries" directory.
+ ln -s "${DOTNET_PKG_OUTPUT}/DafnyRuntime.dll" "${S}/Binaries/" || die
+
+ einfo "Installing bignumber.js package required for tests using NodeJS."
+ local -a npm_opts=(
+ --audit false
+ --color false
+ --foreground-scripts
+ --offline
+ --progress false
+ --verbose
+ )
+ edob npm "${npm_opts[@]}" install "${DISTDIR}/bignumber.js-9.1.2.tgz"
+
+ einfo "Starting tests using the lit test tool."
+ local -a lit_opts=(
+ --order=lexical
+ --time-tests
+ --verbose
+ --workers="$(makeopts_jobs)"
+ )
+ edob lit "${lit_opts[@]}" "${TEST_S}"
+}
+
+src_install() {
+ dotnet-pkg-base_install
+
+ local -a dafny_exes=(
+ Dafny
+ DafnyDriver
+ DafnyLanguageServer
+ DafnyServer
+ TestDafny
+ )
+ local dafny_exe
+ for dafny_exe in "${dafny_exes[@]}" ; do
+ dotnet-pkg-base_dolauncher "/usr/share/${P}/${dafny_exe}" "${dafny_exe}"
+ done
+
+ dosym -r /usr/bin/Dafny /usr/bin/dafny
+ dosym -r /usr/bin/DafnyServer /usr/bin/dafny-server
+
+ einstalldocs
+}
diff --git a/dev-lang/dafny/dafny-4.5.0.ebuild b/dev-lang/dafny/dafny-4.5.0.ebuild
new file mode 100644
index 000000000000..601423b0fbfa
--- /dev/null
+++ b/dev-lang/dafny/dafny-4.5.0.ebuild
@@ -0,0 +1,624 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..12} )
+
+DOTNET_PKG_COMPAT=6.0
+NUGETS="
+boogie.abstractinterpretation@3.1.3
+boogie.basetypes@3.1.3
+boogie.codecontractsextender@3.1.3
+boogie.concurrency@3.1.3
+boogie.core@3.1.3
+boogie.executionengine@3.1.3
+boogie.graph@3.1.3
+boogie.houdini@3.1.3
+boogie.model@3.1.3
+boogie.provers.smtlib@3.1.3
+boogie.vcexpr@3.1.3
+boogie.vcgeneration@3.1.3
+castle.core@4.4.0
+commandlineparser@2.8.0
+commandlineparser@2.9.1
+coverlet.collector@3.2.0
+diffplex@1.7.0
+humanizer.core@2.2.0
+jetbrains.annotations@2021.1.0
+mediatr@8.1.0
+microsoft.bcl.asyncinterfaces@1.1.1
+microsoft.bcl.asyncinterfaces@5.0.0
+microsoft.bcl.asyncinterfaces@6.0.0
+microsoft.build.framework@17.0.0
+microsoft.build.locator@1.4.1
+microsoft.build.tasks.core@17.0.0
+microsoft.build.utilities.core@17.0.0
+microsoft.build@17.0.0
+microsoft.codeanalysis.analyzers@3.0.0
+microsoft.codeanalysis.analyzers@3.3.2
+microsoft.codeanalysis.common@3.7.0
+microsoft.codeanalysis.common@4.0.1
+microsoft.codeanalysis.csharp.workspaces@4.0.1
+microsoft.codeanalysis.csharp@3.7.0
+microsoft.codeanalysis.csharp@4.0.1
+microsoft.codeanalysis.visualbasic.workspaces@4.0.1
+microsoft.codeanalysis.visualbasic@4.0.1
+microsoft.codeanalysis.workspaces.common@4.0.1
+microsoft.codeanalysis.workspaces.msbuild@4.0.1
+microsoft.codeanalysis@4.0.1
+microsoft.codecoverage@16.11.0
+microsoft.codecoverage@16.9.4
+microsoft.codecoverage@17.1.0
+microsoft.csharp@4.0.1
+microsoft.dotnet.platformabstractions@2.0.4
+microsoft.extensions.configuration.abstractions@2.0.0
+microsoft.extensions.configuration.abstractions@5.0.0
+microsoft.extensions.configuration.binder@2.0.0
+microsoft.extensions.configuration.binder@5.0.0
+microsoft.extensions.configuration.commandline@5.0.0
+microsoft.extensions.configuration.fileextensions@5.0.0
+microsoft.extensions.configuration.json@5.0.0
+microsoft.extensions.configuration@2.0.0
+microsoft.extensions.configuration@5.0.0
+microsoft.extensions.dependencyinjection.abstractions@2.0.0
+microsoft.extensions.dependencyinjection.abstractions@5.0.0
+microsoft.extensions.dependencyinjection@2.0.0
+microsoft.extensions.dependencyinjection@5.0.0
+microsoft.extensions.dependencymodel@2.0.4
+microsoft.extensions.fileproviders.abstractions@5.0.0
+microsoft.extensions.fileproviders.physical@5.0.0
+microsoft.extensions.filesystemglobbing@5.0.0
+microsoft.extensions.logging.abstractions@2.0.0
+microsoft.extensions.logging.abstractions@5.0.0
+microsoft.extensions.logging.configuration@5.0.0
+microsoft.extensions.logging.console@5.0.0
+microsoft.extensions.logging@2.0.0
+microsoft.extensions.logging@5.0.0
+microsoft.extensions.options.configurationextensions@2.0.0
+microsoft.extensions.options.configurationextensions@5.0.0
+microsoft.extensions.options@2.0.0
+microsoft.extensions.options@5.0.0
+microsoft.extensions.primitives@2.0.0
+microsoft.extensions.primitives@5.0.0
+microsoft.net.stringtools@1.0.0
+microsoft.net.test.sdk@16.11.0
+microsoft.net.test.sdk@16.9.4
+microsoft.net.test.sdk@17.1.0
+microsoft.netcore.platforms@1.0.1
+microsoft.netcore.platforms@1.1.0
+microsoft.netcore.platforms@2.1.2
+microsoft.netcore.platforms@3.0.0
+microsoft.netcore.platforms@3.1.0
+microsoft.netcore.targets@1.0.1
+microsoft.netcore.targets@1.1.0
+microsoft.netframework.referenceassemblies.net452@1.0.2
+microsoft.netframework.referenceassemblies@1.0.2
+microsoft.testplatform.extensions.trxlogger@17.9.0
+microsoft.testplatform.objectmodel@16.11.0
+microsoft.testplatform.objectmodel@16.9.4
+microsoft.testplatform.objectmodel@17.1.0
+microsoft.testplatform.objectmodel@17.9.0
+microsoft.testplatform.testhost@16.11.0
+microsoft.testplatform.testhost@16.9.4
+microsoft.testplatform.testhost@17.1.0
+microsoft.testplatform.testhost@17.9.0
+microsoft.visualstudio.threading.analyzers@16.7.56
+microsoft.visualstudio.threading@16.7.56
+microsoft.visualstudio.validation@15.5.31
+microsoft.win32.primitives@4.3.0
+microsoft.win32.registry@4.3.0
+microsoft.win32.registry@4.6.0
+microsoft.win32.systemevents@4.7.0
+microsoft.win32.systemevents@6.0.0
+moq@4.16.1
+nerdbank.streams@2.6.81
+netstandard.library@1.6.1
+netstandard.library@2.0.3
+newtonsoft.json@11.0.2
+newtonsoft.json@13.0.1
+newtonsoft.json@9.0.1
+nuget.frameworks@5.0.0
+nuget.frameworks@5.11.0
+omnisharp.extensions.jsonrpc.generators@0.19.5
+omnisharp.extensions.jsonrpc.testing@0.19.5
+omnisharp.extensions.jsonrpc@0.19.5
+omnisharp.extensions.languageclient@0.19.5
+omnisharp.extensions.languageprotocol.testing@0.19.5
+omnisharp.extensions.languageprotocol@0.19.5
+omnisharp.extensions.languageserver.shared@0.19.5
+omnisharp.extensions.languageserver@0.19.5
+rangetree@3.0.1
+runtime.any.system.collections@4.3.0
+runtime.any.system.diagnostics.tools@4.3.0
+runtime.any.system.diagnostics.tracing@4.3.0
+runtime.any.system.globalization.calendars@4.3.0
+runtime.any.system.globalization@4.3.0
+runtime.any.system.io@4.3.0
+runtime.any.system.reflection.extensions@4.3.0
+runtime.any.system.reflection.primitives@4.3.0
+runtime.any.system.reflection@4.3.0
+runtime.any.system.resources.resourcemanager@4.3.0
+runtime.any.system.runtime.handles@4.3.0
+runtime.any.system.runtime.interopservices@4.3.0
+runtime.any.system.runtime@4.3.0
+runtime.any.system.text.encoding.extensions@4.3.0
+runtime.any.system.text.encoding@4.3.0
+runtime.any.system.threading.tasks@4.3.0
+runtime.any.system.threading.timer@4.3.0
+runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.native.system.io.compression@4.3.0
+runtime.native.system.net.http@4.3.0
+runtime.native.system.security.cryptography.apple@4.3.0
+runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.native.system@4.0.0
+runtime.native.system@4.3.0
+runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple@4.3.0
+runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.unix.microsoft.win32.primitives@4.3.0
+runtime.unix.system.console@4.3.0
+runtime.unix.system.diagnostics.debug@4.3.0
+runtime.unix.system.io.filesystem@4.3.0
+runtime.unix.system.net.primitives@4.3.0
+runtime.unix.system.net.sockets@4.3.0
+runtime.unix.system.private.uri@4.3.0
+runtime.unix.system.runtime.extensions@4.3.0
+serilog.extensions.logging@3.0.1
+serilog.settings.configuration@3.1.0
+serilog.sinks.debug@2.0.0
+serilog.sinks.file@5.0.0
+serilog.sinks.inmemory@0.11.0
+serilog@2.12.0
+system.appcontext@4.1.0
+system.appcontext@4.3.0
+system.buffers@4.3.0
+system.buffers@4.4.0
+system.codedom@4.4.0
+system.collections.concurrent@4.3.0
+system.collections.immutable@1.5.0
+system.collections.immutable@1.7.0
+system.collections.immutable@1.7.1
+system.collections.immutable@5.0.0
+system.collections.nongeneric@4.3.0
+system.collections.specialized@4.3.0
+system.collections@4.0.11
+system.collections@4.3.0
+system.commandline@2.0.0-beta4.22272.1
+system.componentmodel.primitives@4.3.0
+system.componentmodel.typeconverter@4.3.0
+system.componentmodel@4.3.0
+system.composition.attributedmodel@1.0.31
+system.composition.convention@1.0.31
+system.composition.hosting@1.0.31
+system.composition.runtime@1.0.31
+system.composition.typedparts@1.0.31
+system.composition@1.0.31
+system.configuration.configurationmanager@4.7.0
+system.configuration.configurationmanager@6.0.0
+system.console@4.3.0
+system.diagnostics.debug@4.0.11
+system.diagnostics.debug@4.3.0
+system.diagnostics.diagnosticsource@4.3.0
+system.diagnostics.tools@4.0.1
+system.diagnostics.tools@4.3.0
+system.diagnostics.tracesource@4.3.0
+system.diagnostics.tracing@4.3.0
+system.drawing.common@4.7.0
+system.drawing.common@6.0.0
+system.dynamic.runtime@4.0.11
+system.dynamic.runtime@4.3.0
+system.globalization.calendars@4.3.0
+system.globalization.extensions@4.3.0
+system.globalization@4.0.11
+system.globalization@4.3.0
+system.io.compression.zipfile@4.3.0
+system.io.compression@4.3.0
+system.io.filesystem.primitives@4.0.1
+system.io.filesystem.primitives@4.3.0
+system.io.filesystem@4.0.1
+system.io.filesystem@4.3.0
+system.io.pipelines@4.7.3
+system.io.pipelines@5.0.1
+system.io@4.1.0
+system.io@4.3.0
+system.linq.async@6.0.1
+system.linq.expressions@4.1.0
+system.linq.expressions@4.3.0
+system.linq@4.1.0
+system.linq@4.3.0
+system.memory@4.5.3
+system.memory@4.5.4
+system.net.http@4.3.0
+system.net.nameresolution@4.3.0
+system.net.primitives@4.3.0
+system.net.sockets@4.3.0
+system.net.websockets@4.3.0
+system.numerics.vectors@4.4.0
+system.objectmodel@4.0.12
+system.objectmodel@4.3.0
+system.private.uri@4.3.0
+system.reactive@4.4.1
+system.reflection.emit.ilgeneration@4.0.1
+system.reflection.emit.ilgeneration@4.3.0
+system.reflection.emit.lightweight@4.0.1
+system.reflection.emit.lightweight@4.3.0
+system.reflection.emit@4.0.1
+system.reflection.emit@4.3.0
+system.reflection.extensions@4.0.1
+system.reflection.extensions@4.3.0
+system.reflection.metadata@1.6.0
+system.reflection.metadata@5.0.0
+system.reflection.primitives@4.0.1
+system.reflection.primitives@4.3.0
+system.reflection.typeextensions@4.1.0
+system.reflection.typeextensions@4.3.0
+system.reflection@4.1.0
+system.reflection@4.3.0
+system.resources.extensions@4.6.0
+system.resources.resourcemanager@4.0.1
+system.resources.resourcemanager@4.3.0
+system.runtime.caching@6.0.0
+system.runtime.compilerservices.unsafe@4.4.0
+system.runtime.compilerservices.unsafe@4.5.2
+system.runtime.compilerservices.unsafe@4.7.0
+system.runtime.compilerservices.unsafe@4.7.1
+system.runtime.compilerservices.unsafe@5.0.0
+system.runtime.extensions@4.1.0
+system.runtime.extensions@4.3.0
+system.runtime.handles@4.0.1
+system.runtime.handles@4.3.0
+system.runtime.interopservices.runtimeinformation@4.0.0
+system.runtime.interopservices.runtimeinformation@4.3.0
+system.runtime.interopservices@4.1.0
+system.runtime.interopservices@4.3.0
+system.runtime.numerics@4.3.0
+system.runtime.serialization.primitives@4.1.1
+system.runtime@4.1.0
+system.runtime@4.3.0
+system.security.accesscontrol@4.6.0
+system.security.accesscontrol@4.7.0
+system.security.accesscontrol@6.0.0
+system.security.claims@4.3.0
+system.security.cryptography.algorithms@4.3.0
+system.security.cryptography.cng@4.3.0
+system.security.cryptography.cng@4.7.0
+system.security.cryptography.csp@4.3.0
+system.security.cryptography.encoding@4.3.0
+system.security.cryptography.openssl@4.3.0
+system.security.cryptography.pkcs@4.7.0
+system.security.cryptography.primitives@4.3.0
+system.security.cryptography.protecteddata@4.7.0
+system.security.cryptography.protecteddata@6.0.0
+system.security.cryptography.x509certificates@4.3.0
+system.security.cryptography.xml@4.7.0
+system.security.permissions@4.7.0
+system.security.permissions@6.0.0
+system.security.principal.windows@4.3.0
+system.security.principal.windows@4.6.0
+system.security.principal.windows@4.7.0
+system.security.principal@4.3.0
+system.text.encoding.codepages@4.0.1
+system.text.encoding.codepages@4.5.1
+system.text.encoding.extensions@4.0.11
+system.text.encoding.extensions@4.3.0
+system.text.encoding@4.0.11
+system.text.encoding@4.3.0
+system.text.json@4.7.0
+system.text.json@5.0.2
+system.text.regularexpressions@4.1.0
+system.text.regularexpressions@4.3.0
+system.threading.channels@4.7.1
+system.threading.tasks.dataflow@4.9.0
+system.threading.tasks.extensions@4.0.0
+system.threading.tasks.extensions@4.3.0
+system.threading.tasks.extensions@4.5.3
+system.threading.tasks.extensions@4.5.4
+system.threading.tasks@4.0.11
+system.threading.tasks@4.3.0
+system.threading.threadpool@4.3.0
+system.threading.timer@4.3.0
+system.threading@4.0.11
+system.threading@4.3.0
+system.windows.extensions@4.7.0
+system.windows.extensions@6.0.0
+system.xml.readerwriter@4.0.11
+system.xml.readerwriter@4.3.0
+system.xml.xdocument@4.0.11
+system.xml.xdocument@4.3.0
+system.xml.xmldocument@4.3.0
+tomlyn@0.16.2
+validation@2.4.18
+xunit.abstractions@2.0.2
+xunit.abstractions@2.0.3
+xunit.analyzers@0.10.0
+xunit.analyzers@1.0.0
+xunit.assert@2.4.1
+xunit.assert@2.4.2
+xunit.assertmessages@2.4.0
+xunit.core@2.4.1
+xunit.core@2.4.2
+xunit.extensibility.core@2.4.0
+xunit.extensibility.core@2.4.1
+xunit.extensibility.core@2.4.2
+xunit.extensibility.execution@2.4.0
+xunit.extensibility.execution@2.4.1
+xunit.extensibility.execution@2.4.2
+xunit.runner.visualstudio@2.4.3
+xunit.runner.visualstudio@2.5.1
+xunit.skippablefact@1.4.8
+xunit@2.4.1
+xunit@2.4.2
+"
+
+inherit check-reqs dotnet-pkg edo java-pkg-2 multiprocessing python-any-r1 optfeature
+
+DESCRIPTION="Dafny is a verification-aware programming language"
+HOMEPAGE="https://dafny.org/
+ https://github.com/dafny-lang/dafny/"
+
+if [[ "${PV}" == *9999* ]] ; then
+ inherit git-r3
+
+ EGIT_REPO_URI="https://github.com/dafny-lang/${PN}.git"
+else
+ SRC_URI="https://github.com/dafny-lang/${PN}/archive/v${PV}.tar.gz
+ -> ${P}.tar.gz"
+
+ KEYWORDS="~amd64"
+fi
+
+SRC_URI+="
+ ${NUGET_URIS}
+ test? ( https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz )
+"
+
+LICENSE="MIT"
+SLOT="0"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ !dev-lang/dafny-bin
+ >=virtual/jre-1.8:*
+ sci-mathematics/z3
+"
+DEPEND="
+ >=virtual/jdk-1.8:*
+"
+BDEPEND="
+ ${RDEPEND}
+ dev-dotnet/coco
+ test? (
+ ${PYTHON_DEPS}
+ dev-go/go-tools
+ dev-lang/boogie
+ dev-lang/go
+ dev-python/OutputCheck
+ dev-python/lit
+ dev-python/psutil
+ net-libs/nodejs[npm]
+ )
+"
+
+CHECKREQS_DISK_BUILD="2G"
+DOTNET_PKG_PROJECTS=(
+ "${S}/Source/Dafny/Dafny.csproj"
+)
+
+PATCHES=(
+ "${FILESDIR}/${PN}-3.12.0-DafnyCore-csproj.patch"
+ "${FILESDIR}/${PN}-3.12.0-DafnyRuntime-csproj.patch"
+ "${FILESDIR}/${PN}-4.5.0-lit-config.patch"
+)
+
+DOCS=(
+ CODE_OF_CONDUCT.md
+ CONTRIBUTING.md
+ NOTICES.txt
+ README.md
+ RELEASE_NOTES.md
+ docs/DafnyCheatsheet.pdf
+ docs/DafnyRef/out/DafnyRef.pdf
+)
+
+TEST_S="${S}/Source/IntegrationTests/TestFiles/LitTests/LitTest"
+
+pkg_setup() {
+ # Clean the environment.
+ unset NPM_CONFIG_USERCONFIG
+
+ if [[ -n "${_JAVA_OPTIONS}" ]] ; then
+ ewarn "Cleaning _JAVA_OPTIONS because when set compile and test may fail"
+
+ unset _JAVA_OPTIONS
+ fi
+
+ check-reqs_pkg_setup
+ dotnet-pkg_pkg_setup
+ java-pkg-2_pkg_setup
+
+ # We need to set up Python only for running test tools (called via lit).
+ if use test ; then
+ python-any-r1_pkg_setup
+ fi
+}
+
+src_unpack() {
+ dotnet-pkg_src_unpack
+
+ if [[ -n "${EGIT_REPO_URI}" ]] ; then
+ git-r3_src_unpack
+ fi
+}
+
+src_prepare() {
+ # Using "for-each-compiler" will fail because of Cargo requiring network access.
+ while read -r test_file ; do
+ if grep "// RUN: %testDafnyForEachCompiler" "${test_file}" >/dev/null ; then
+ rm "${test_file}" || die "failed to remove test ${bad_test}"
+ fi
+ done < <(find "${TEST_S}" -type f -name "*.dfy")
+
+ # Remove bad tests (recursive).
+ local -a bad_tests=(
+ # Following tests fail:
+ VSComp2010/Problem2-Invert.dfy
+ auditor/TestAuditor.dfy
+ benchmarks/sequence-race/SequenceRace.dfy
+ comp/CoverageReport.dfy
+ concurrency/06-ThreadOwnership.dfy
+ dafny0/Fuel.legacy.dfy
+ dafny0/Stdin.dfy
+ dafny1/MoreInduction.dfy
+ dafny4/Lucas-up.legacy.dfy
+ dafny4/Primes.dfy
+ examples/Simple_compiler/Compiler.dfy
+ git-issues/git-issue-2026.dfy
+ git-issues/git-issue-2299.dfy
+ git-issues/git-issue-2301.dfy
+ git-issues/git-issue-505.dfy
+ metatests/InconsistentCompilerBehavior.dfy
+ metatests/TestBeyondVerifierExpect.dfy
+ separate-verification/assumptions.dfy
+ server/counterexample_none.transcript
+ triggers/emptyTrigger.dfy
+ unicodechars/DafnyTests/RunAllTestsOption.dfy
+ vstte2012/Combinators.dfy
+ wishlist/exists-b-exists-not-b.dfy
+
+ # Following tests are very slow:
+ DafnyTests/RunAllTests/RunAllTestsOption.dfy
+ VSI-Benchmarks/b4.dfy
+ blogposts/TestGenerationNoInliningEnumerativeDefinitions.dfy
+ comp/BranchCoverage.dfy
+ comp/CompileWithArguments.dfy
+ comp/Extern.dfy
+ comp/MainMethod.dfy
+ comp/Print.dfy
+ comp/SequenceConcatOptimization.dfy
+ comp/compile1quiet/CompileRunQuietly.dfy
+ comp/compile1verbose/CompileAndThenRun.dfy
+ comp/compile3/JustRun.dfy
+ comp/manualcompile/ManualCompile.dfy
+ comp/replaceables/complex/user.dfy
+ concurrency/07-CounterThreadOwnership.dfy
+ concurrency/08-CounterNoTermination.dfy
+ concurrency/09-CounterNoStateMachine.dfy
+ concurrency/10-SequenceInvariant.dfy
+ concurrency/12-MutexLifetime-short.dfy
+ dafny0/RlimitMultiplier.dfy
+ dafny1/SchorrWaite.dfy
+ dafny2/SnapshotableTrees.dfy
+ dafny4/git-issue250.dfy
+ git-issues/git-issue-Main4.dfy
+ git-issues/git-issue-MainE.dfy
+ unicodechars/comp/CompileWithArguments.dfy
+ )
+ local bad_test
+ for bad_test in "${bad_tests[@]}" ; do
+ if [[ -f "${TEST_S}/${bad_test}" ]] ; then
+ rm "${TEST_S}/${bad_test}" || die "failed to remove test ${bad_test}"
+ else
+ ewarn "Test file ${bad_test} does not exist"
+ fi
+ done
+
+ dotnet-pkg_src_prepare
+
+ # Update lit's "lit.site.cfg" file.
+ local dotnet_exec="${DOTNET_PKG_EXECUTABLE} exec ${DOTNET_PKG_OUTPUT}"
+ local lit_config="${TEST_S}/lit.site.cfg"
+
+ sed -i "${lit_config}" \
+ -e "/^defaultDafnyExecutable/s|=.*|= '${dotnet_exec}/Dafny.dll '|" \
+ -e "/^dafnyExecutable/s|=.*|= '${dotnet_exec}/Dafny.dll '|" \
+ -e "/^defaultServerExecutable/s|=.*|= '${dotnet_exec}/DafnyServer.dll'|" \
+ -e "/^serverExecutable/s|=.*|= '${dotnet_exec}/DafnyServer.dll'|" \
+ -e "s|dotnet run |${DOTNET_PKG_EXECUTABLE} run |g" \
+ || die "failed to update ${lit_config}"
+}
+
+src_compile () {
+ einfo "Building DafnyRuntimeJava JAR."
+ local dafny_runtime_java="${S}/Source/DafnyRuntime/DafnyRuntimeJava"
+ mkdir -p "${dafny_runtime_java}/build/libs/" || die
+ pushd "${dafny_runtime_java}/build" || die
+
+ ejavac -d ./ $(find "${dafny_runtime_java}/src/main" -type f -name "*.java")
+ edo jar cvf "DafnyRuntime-${PV}.jar" dafny/*
+
+ cp "DafnyRuntime-${PV}.jar" "${dafny_runtime_java}/build/libs/" || die
+ popd || die
+
+ # Build main dotnet package.
+ dotnet-pkg_src_compile
+
+ if use test ; then
+ # Build "TestDafny" without saving artifacts.
+ edotnet build \
+ --configuration Debug \
+ --no-self-contained \
+ -maxCpuCount:$(makeopts_jobs) \
+ "${S}/Source/TestDafny/TestDafny.csproj"
+ fi
+}
+
+src_test() {
+ # Dafny GOLang transpiler tests need "goimports" from "/usr/lib/go/bin".
+ local -x PATH="${EPREFIX}/usr/lib/go/bin:${PATH}"
+
+ einfo "Installing bignumber.js package required for tests using NodeJS."
+ local -a npm_opts=(
+ --audit false
+ --color false
+ --foreground-scripts
+ --offline
+ --progress false
+ --verbose
+ )
+ edob npm "${npm_opts[@]}" install "${DISTDIR}/bignumber.js-9.1.2.tgz"
+
+ einfo "Starting tests using the lit test tool."
+ local -a lit_opts=(
+ --order=lexical
+ --time-tests
+ --timeout 1800 # Let one test take no mere than half a hour.
+ --verbose
+ --workers="$(makeopts_jobs)"
+ )
+ edob lit "${lit_opts[@]}" "${TEST_S}"
+}
+
+src_install() {
+ dotnet-pkg-base_install
+
+ local -a dafny_exes=(
+ Dafny
+ DafnyDriver
+ DafnyLanguageServer
+ DafnyServer
+ TestDafny
+ )
+ local dafny_exe
+ for dafny_exe in "${dafny_exes[@]}" ; do
+ dotnet-pkg-base_dolauncher "/usr/share/${P}/${dafny_exe}" "${dafny_exe}"
+ done
+
+ dosym -r /usr/bin/Dafny /usr/bin/dafny
+ dosym -r /usr/bin/DafnyServer /usr/bin/dafny-server
+
+ einstalldocs
+}
+
+pkg_postinst() {
+ optfeature "Dafny GO language backend" dev-go/go-tools
+ optfeature "Dafny Rust language backend" virtual/rust
+}
diff --git a/dev-lang/dafny/dafny-4.6.0.ebuild b/dev-lang/dafny/dafny-4.6.0.ebuild
new file mode 100644
index 000000000000..ca5c0f6861e7
--- /dev/null
+++ b/dev-lang/dafny/dafny-4.6.0.ebuild
@@ -0,0 +1,627 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..12} )
+
+DOTNET_PKG_COMPAT=6.0
+NUGETS="
+boogie.abstractinterpretation@3.1.3
+boogie.basetypes@3.1.3
+boogie.codecontractsextender@3.1.3
+boogie.concurrency@3.1.3
+boogie.core@3.1.3
+boogie.executionengine@3.1.3
+boogie.graph@3.1.3
+boogie.houdini@3.1.3
+boogie.model@3.1.3
+boogie.provers.smtlib@3.1.3
+boogie.vcexpr@3.1.3
+boogie.vcgeneration@3.1.3
+castle.core@4.4.0
+commandlineparser@2.8.0
+commandlineparser@2.9.1
+coverlet.collector@3.2.0
+diffplex@1.7.0
+humanizer.core@2.2.0
+jetbrains.annotations@2021.1.0
+mediatr@8.1.0
+microsoft.bcl.asyncinterfaces@1.1.1
+microsoft.bcl.asyncinterfaces@5.0.0
+microsoft.bcl.asyncinterfaces@6.0.0
+microsoft.build.framework@17.0.0
+microsoft.build.locator@1.4.1
+microsoft.build.tasks.core@17.0.0
+microsoft.build.utilities.core@17.0.0
+microsoft.build@17.0.0
+microsoft.codeanalysis.analyzers@3.0.0
+microsoft.codeanalysis.analyzers@3.3.2
+microsoft.codeanalysis.common@3.7.0
+microsoft.codeanalysis.common@4.0.1
+microsoft.codeanalysis.csharp.workspaces@4.0.1
+microsoft.codeanalysis.csharp@3.7.0
+microsoft.codeanalysis.csharp@4.0.1
+microsoft.codeanalysis.visualbasic.workspaces@4.0.1
+microsoft.codeanalysis.visualbasic@4.0.1
+microsoft.codeanalysis.workspaces.common@4.0.1
+microsoft.codeanalysis.workspaces.msbuild@4.0.1
+microsoft.codeanalysis@4.0.1
+microsoft.codecoverage@16.11.0
+microsoft.codecoverage@16.9.4
+microsoft.codecoverage@17.1.0
+microsoft.csharp@4.0.1
+microsoft.dotnet.platformabstractions@2.0.4
+microsoft.extensions.configuration.abstractions@2.0.0
+microsoft.extensions.configuration.abstractions@5.0.0
+microsoft.extensions.configuration.binder@2.0.0
+microsoft.extensions.configuration.binder@5.0.0
+microsoft.extensions.configuration.commandline@5.0.0
+microsoft.extensions.configuration.fileextensions@5.0.0
+microsoft.extensions.configuration.json@5.0.0
+microsoft.extensions.configuration@2.0.0
+microsoft.extensions.configuration@5.0.0
+microsoft.extensions.dependencyinjection.abstractions@2.0.0
+microsoft.extensions.dependencyinjection.abstractions@5.0.0
+microsoft.extensions.dependencyinjection@2.0.0
+microsoft.extensions.dependencyinjection@5.0.0
+microsoft.extensions.dependencymodel@2.0.4
+microsoft.extensions.fileproviders.abstractions@5.0.0
+microsoft.extensions.fileproviders.physical@5.0.0
+microsoft.extensions.filesystemglobbing@5.0.0
+microsoft.extensions.logging.abstractions@2.0.0
+microsoft.extensions.logging.abstractions@5.0.0
+microsoft.extensions.logging.configuration@5.0.0
+microsoft.extensions.logging.console@5.0.0
+microsoft.extensions.logging@2.0.0
+microsoft.extensions.logging@5.0.0
+microsoft.extensions.options.configurationextensions@2.0.0
+microsoft.extensions.options.configurationextensions@5.0.0
+microsoft.extensions.options@2.0.0
+microsoft.extensions.options@5.0.0
+microsoft.extensions.primitives@2.0.0
+microsoft.extensions.primitives@5.0.0
+microsoft.net.stringtools@1.0.0
+microsoft.net.test.sdk@16.11.0
+microsoft.net.test.sdk@16.9.4
+microsoft.net.test.sdk@17.1.0
+microsoft.netcore.platforms@1.0.1
+microsoft.netcore.platforms@1.1.0
+microsoft.netcore.platforms@2.1.2
+microsoft.netcore.platforms@3.0.0
+microsoft.netcore.platforms@3.1.0
+microsoft.netcore.targets@1.0.1
+microsoft.netcore.targets@1.1.0
+microsoft.netframework.referenceassemblies.net452@1.0.2
+microsoft.netframework.referenceassemblies@1.0.2
+microsoft.testplatform.extensions.trxlogger@17.9.0
+microsoft.testplatform.objectmodel@16.11.0
+microsoft.testplatform.objectmodel@16.9.4
+microsoft.testplatform.objectmodel@17.1.0
+microsoft.testplatform.objectmodel@17.9.0
+microsoft.testplatform.testhost@16.11.0
+microsoft.testplatform.testhost@16.9.4
+microsoft.testplatform.testhost@17.1.0
+microsoft.testplatform.testhost@17.9.0
+microsoft.visualstudio.threading.analyzers@16.7.56
+microsoft.visualstudio.threading@16.7.56
+microsoft.visualstudio.validation@15.5.31
+microsoft.win32.primitives@4.3.0
+microsoft.win32.registry@4.3.0
+microsoft.win32.registry@4.6.0
+microsoft.win32.systemevents@4.7.0
+microsoft.win32.systemevents@6.0.0
+moq@4.16.1
+nerdbank.streams@2.6.81
+netstandard.library@1.6.1
+netstandard.library@2.0.3
+newtonsoft.json@11.0.2
+newtonsoft.json@13.0.1
+newtonsoft.json@9.0.1
+nuget.frameworks@5.0.0
+nuget.frameworks@5.11.0
+omnisharp.extensions.jsonrpc.generators@0.19.5
+omnisharp.extensions.jsonrpc.testing@0.19.5
+omnisharp.extensions.jsonrpc@0.19.5
+omnisharp.extensions.languageclient@0.19.5
+omnisharp.extensions.languageprotocol.testing@0.19.5
+omnisharp.extensions.languageprotocol@0.19.5
+omnisharp.extensions.languageserver.shared@0.19.5
+omnisharp.extensions.languageserver@0.19.5
+rangetree@3.0.1
+runtime.any.system.collections@4.3.0
+runtime.any.system.diagnostics.tools@4.3.0
+runtime.any.system.diagnostics.tracing@4.3.0
+runtime.any.system.globalization.calendars@4.3.0
+runtime.any.system.globalization@4.3.0
+runtime.any.system.io@4.3.0
+runtime.any.system.reflection.extensions@4.3.0
+runtime.any.system.reflection.primitives@4.3.0
+runtime.any.system.reflection@4.3.0
+runtime.any.system.resources.resourcemanager@4.3.0
+runtime.any.system.runtime.handles@4.3.0
+runtime.any.system.runtime.interopservices@4.3.0
+runtime.any.system.runtime@4.3.0
+runtime.any.system.text.encoding.extensions@4.3.0
+runtime.any.system.text.encoding@4.3.0
+runtime.any.system.threading.tasks@4.3.0
+runtime.any.system.threading.timer@4.3.0
+runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.native.system.io.compression@4.3.0
+runtime.native.system.net.http@4.3.0
+runtime.native.system.security.cryptography.apple@4.3.0
+runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.native.system@4.0.0
+runtime.native.system@4.3.0
+runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple@4.3.0
+runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.unix.microsoft.win32.primitives@4.3.0
+runtime.unix.system.console@4.3.0
+runtime.unix.system.diagnostics.debug@4.3.0
+runtime.unix.system.io.filesystem@4.3.0
+runtime.unix.system.net.primitives@4.3.0
+runtime.unix.system.net.sockets@4.3.0
+runtime.unix.system.private.uri@4.3.0
+runtime.unix.system.runtime.extensions@4.3.0
+serilog.extensions.logging@3.0.1
+serilog.settings.configuration@3.1.0
+serilog.sinks.debug@2.0.0
+serilog.sinks.file@5.0.0
+serilog.sinks.inmemory@0.11.0
+serilog@2.12.0
+system.appcontext@4.1.0
+system.appcontext@4.3.0
+system.buffers@4.3.0
+system.buffers@4.4.0
+system.codedom@4.4.0
+system.collections.concurrent@4.3.0
+system.collections.immutable@1.5.0
+system.collections.immutable@1.7.0
+system.collections.immutable@1.7.1
+system.collections.immutable@5.0.0
+system.collections.nongeneric@4.3.0
+system.collections.specialized@4.3.0
+system.collections@4.0.11
+system.collections@4.3.0
+system.commandline@2.0.0-beta4.22272.1
+system.componentmodel.primitives@4.3.0
+system.componentmodel.typeconverter@4.3.0
+system.componentmodel@4.3.0
+system.composition.attributedmodel@1.0.31
+system.composition.convention@1.0.31
+system.composition.hosting@1.0.31
+system.composition.runtime@1.0.31
+system.composition.typedparts@1.0.31
+system.composition@1.0.31
+system.configuration.configurationmanager@4.7.0
+system.configuration.configurationmanager@6.0.0
+system.console@4.3.0
+system.diagnostics.debug@4.0.11
+system.diagnostics.debug@4.3.0
+system.diagnostics.diagnosticsource@4.3.0
+system.diagnostics.tools@4.0.1
+system.diagnostics.tools@4.3.0
+system.diagnostics.tracesource@4.3.0
+system.diagnostics.tracing@4.3.0
+system.drawing.common@4.7.0
+system.drawing.common@6.0.0
+system.dynamic.runtime@4.0.11
+system.dynamic.runtime@4.3.0
+system.globalization.calendars@4.3.0
+system.globalization.extensions@4.3.0
+system.globalization@4.0.11
+system.globalization@4.3.0
+system.io.compression.zipfile@4.3.0
+system.io.compression@4.3.0
+system.io.filesystem.primitives@4.0.1
+system.io.filesystem.primitives@4.3.0
+system.io.filesystem@4.0.1
+system.io.filesystem@4.3.0
+system.io.pipelines@4.7.3
+system.io.pipelines@5.0.1
+system.io@4.1.0
+system.io@4.3.0
+system.linq.async@6.0.1
+system.linq.expressions@4.1.0
+system.linq.expressions@4.3.0
+system.linq@4.1.0
+system.linq@4.3.0
+system.memory@4.5.3
+system.memory@4.5.4
+system.net.http@4.3.0
+system.net.nameresolution@4.3.0
+system.net.primitives@4.3.0
+system.net.sockets@4.3.0
+system.net.websockets@4.3.0
+system.numerics.vectors@4.4.0
+system.objectmodel@4.0.12
+system.objectmodel@4.3.0
+system.private.uri@4.3.0
+system.reactive@4.4.1
+system.reflection.emit.ilgeneration@4.0.1
+system.reflection.emit.ilgeneration@4.3.0
+system.reflection.emit.lightweight@4.0.1
+system.reflection.emit.lightweight@4.3.0
+system.reflection.emit@4.0.1
+system.reflection.emit@4.3.0
+system.reflection.extensions@4.0.1
+system.reflection.extensions@4.3.0
+system.reflection.metadata@1.6.0
+system.reflection.metadata@5.0.0
+system.reflection.primitives@4.0.1
+system.reflection.primitives@4.3.0
+system.reflection.typeextensions@4.1.0
+system.reflection.typeextensions@4.3.0
+system.reflection@4.1.0
+system.reflection@4.3.0
+system.resources.extensions@4.6.0
+system.resources.resourcemanager@4.0.1
+system.resources.resourcemanager@4.3.0
+system.runtime.caching@6.0.0
+system.runtime.compilerservices.unsafe@4.4.0
+system.runtime.compilerservices.unsafe@4.5.2
+system.runtime.compilerservices.unsafe@4.7.0
+system.runtime.compilerservices.unsafe@4.7.1
+system.runtime.compilerservices.unsafe@5.0.0
+system.runtime.extensions@4.1.0
+system.runtime.extensions@4.3.0
+system.runtime.handles@4.0.1
+system.runtime.handles@4.3.0
+system.runtime.interopservices.runtimeinformation@4.0.0
+system.runtime.interopservices.runtimeinformation@4.3.0
+system.runtime.interopservices@4.1.0
+system.runtime.interopservices@4.3.0
+system.runtime.numerics@4.3.0
+system.runtime.serialization.primitives@4.1.1
+system.runtime@4.1.0
+system.runtime@4.3.0
+system.security.accesscontrol@4.6.0
+system.security.accesscontrol@4.7.0
+system.security.accesscontrol@6.0.0
+system.security.claims@4.3.0
+system.security.cryptography.algorithms@4.3.0
+system.security.cryptography.cng@4.3.0
+system.security.cryptography.cng@4.7.0
+system.security.cryptography.csp@4.3.0
+system.security.cryptography.encoding@4.3.0
+system.security.cryptography.openssl@4.3.0
+system.security.cryptography.pkcs@4.7.0
+system.security.cryptography.primitives@4.3.0
+system.security.cryptography.protecteddata@4.7.0
+system.security.cryptography.protecteddata@6.0.0
+system.security.cryptography.x509certificates@4.3.0
+system.security.cryptography.xml@4.7.0
+system.security.permissions@4.7.0
+system.security.permissions@6.0.0
+system.security.principal.windows@4.3.0
+system.security.principal.windows@4.6.0
+system.security.principal.windows@4.7.0
+system.security.principal@4.3.0
+system.text.encoding.codepages@4.0.1
+system.text.encoding.codepages@4.5.1
+system.text.encoding.extensions@4.0.11
+system.text.encoding.extensions@4.3.0
+system.text.encoding@4.0.11
+system.text.encoding@4.3.0
+system.text.json@4.7.0
+system.text.json@5.0.2
+system.text.regularexpressions@4.1.0
+system.text.regularexpressions@4.3.0
+system.threading.channels@4.7.1
+system.threading.tasks.dataflow@4.9.0
+system.threading.tasks.extensions@4.0.0
+system.threading.tasks.extensions@4.3.0
+system.threading.tasks.extensions@4.5.3
+system.threading.tasks.extensions@4.5.4
+system.threading.tasks@4.0.11
+system.threading.tasks@4.3.0
+system.threading.threadpool@4.3.0
+system.threading.timer@4.3.0
+system.threading@4.0.11
+system.threading@4.3.0
+system.windows.extensions@4.7.0
+system.windows.extensions@6.0.0
+system.xml.readerwriter@4.0.11
+system.xml.readerwriter@4.3.0
+system.xml.xdocument@4.0.11
+system.xml.xdocument@4.3.0
+system.xml.xmldocument@4.3.0
+tomlyn@0.16.2
+validation@2.4.18
+xunit.abstractions@2.0.2
+xunit.abstractions@2.0.3
+xunit.analyzers@0.10.0
+xunit.analyzers@1.0.0
+xunit.assert@2.4.1
+xunit.assert@2.4.2
+xunit.assertmessages@2.4.0
+xunit.core@2.4.1
+xunit.core@2.4.2
+xunit.extensibility.core@2.4.0
+xunit.extensibility.core@2.4.1
+xunit.extensibility.core@2.4.2
+xunit.extensibility.execution@2.4.0
+xunit.extensibility.execution@2.4.1
+xunit.extensibility.execution@2.4.2
+xunit.runner.visualstudio@2.4.3
+xunit.runner.visualstudio@2.5.1
+xunit.skippablefact@1.4.8
+xunit@2.4.1
+xunit@2.4.2
+"
+
+inherit check-reqs dotnet-pkg edo java-pkg-2 multiprocessing python-any-r1 optfeature
+
+DESCRIPTION="Dafny is a verification-aware programming language"
+HOMEPAGE="https://dafny.org/
+ https://github.com/dafny-lang/dafny/"
+
+if [[ "${PV}" == *9999* ]] ; then
+ inherit git-r3
+
+ EGIT_REPO_URI="https://github.com/dafny-lang/${PN}.git"
+else
+ SRC_URI="https://github.com/dafny-lang/${PN}/archive/v${PV}.tar.gz
+ -> ${P}.tar.gz"
+
+ KEYWORDS="~amd64"
+fi
+
+SRC_URI+="
+ ${NUGET_URIS}
+ test? ( https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz )
+"
+
+LICENSE="MIT"
+SLOT="0"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ !dev-lang/dafny-bin
+ >=virtual/jre-1.8:*
+ sci-mathematics/z3
+"
+DEPEND="
+ >=virtual/jdk-1.8:*
+"
+BDEPEND="
+ ${RDEPEND}
+ dev-dotnet/coco
+ test? (
+ ${PYTHON_DEPS}
+ dev-go/go-tools
+ dev-lang/boogie
+ dev-lang/go
+ dev-python/OutputCheck
+ dev-python/lit
+ dev-python/psutil
+ net-libs/nodejs[npm]
+ )
+"
+
+CHECKREQS_DISK_BUILD="2G"
+DOTNET_PKG_PROJECTS=(
+ "${S}/Source/Dafny/Dafny.csproj"
+)
+
+PATCHES=(
+ "${FILESDIR}/${PN}-3.12.0-DafnyCore-csproj.patch"
+ "${FILESDIR}/${PN}-3.12.0-DafnyRuntime-csproj.patch"
+ "${FILESDIR}/${PN}-4.5.0-lit-config.patch"
+)
+
+DOCS=(
+ CODE_OF_CONDUCT.md
+ CONTRIBUTING.md
+ NOTICES.txt
+ README.md
+ RELEASE_NOTES.md
+ docs/DafnyCheatsheet.pdf
+ docs/DafnyRef/out/DafnyRef.pdf
+)
+
+TEST_S="${S}/Source/IntegrationTests/TestFiles/LitTests/LitTest"
+
+pkg_setup() {
+ # Clean the environment.
+ unset NPM_CONFIG_USERCONFIG
+
+ if [[ -n "${_JAVA_OPTIONS}" ]] ; then
+ ewarn "Cleaning _JAVA_OPTIONS because when set compile and test may fail"
+
+ unset _JAVA_OPTIONS
+ fi
+
+ check-reqs_pkg_setup
+ dotnet-pkg_pkg_setup
+ java-pkg-2_pkg_setup
+
+ # We need to set up Python only for running test tools (called via lit).
+ if use test ; then
+ python-any-r1_pkg_setup
+ fi
+}
+
+src_unpack() {
+ dotnet-pkg_src_unpack
+
+ if [[ -n "${EGIT_REPO_URI}" ]] ; then
+ git-r3_src_unpack
+ fi
+}
+
+src_prepare() {
+ # Using "for-each-compiler" will fail because of Cargo requiring network access.
+ while read -r test_file ; do
+ if grep "// RUN: %testDafnyForEachCompiler" "${test_file}" >/dev/null ; then
+ rm "${test_file}" || die "failed to remove test ${bad_test}"
+ fi
+ done < <(find "${TEST_S}" -type f -name "*.dfy")
+
+ # Remove bad tests (recursive).
+ local -a bad_tests=(
+ # Following tests fail:
+ VSComp2010/Problem2-Invert.dfy
+ auditor/TestAuditor.dfy
+ benchmarks/sequence-race/SequenceRace.dfy
+ cli/runArgument.dfy
+ comp/CoverageReport.dfy
+ concurrency/06-ThreadOwnership.dfy
+ dafny0/Fuel.legacy.dfy
+ dafny0/Stdin.dfy
+ dafny1/MoreInduction.dfy
+ dafny4/Lucas-up.legacy.dfy
+ dafny4/Primes.dfy
+ examples/Simple_compiler/Compiler.dfy
+ git-issues/git-issue-2026.dfy
+ git-issues/git-issue-2299.dfy
+ git-issues/git-issue-2301.dfy
+ git-issues/git-issue-505.dfy
+ metatests/InconsistentCompilerBehavior.dfy
+ metatests/TestBeyondVerifierExpect.dfy
+ separate-verification/assumptions.dfy
+ server/counterexample_none.transcript
+ triggers/emptyTrigger.dfy
+ unicodechars/DafnyTests/RunAllTestsOption.dfy
+ verification/isolate-assertions.dfy
+ verification/progress.dfy
+ vstte2012/Combinators.dfy
+ wishlist/exists-b-exists-not-b.dfy
+
+ # Following tests are very slow:
+ DafnyTests/RunAllTests/RunAllTestsOption.dfy
+ VSI-Benchmarks/b4.dfy
+ blogposts/TestGenerationNoInliningEnumerativeDefinitions.dfy
+ comp/BranchCoverage.dfy
+ comp/CompileWithArguments.dfy
+ comp/Extern.dfy
+ comp/MainMethod.dfy
+ comp/Print.dfy
+ comp/SequenceConcatOptimization.dfy
+ comp/compile1quiet/CompileRunQuietly.dfy
+ comp/compile1verbose/CompileAndThenRun.dfy
+ comp/compile3/JustRun.dfy
+ comp/manualcompile/ManualCompile.dfy
+ comp/replaceables/complex/user.dfy
+ concurrency/07-CounterThreadOwnership.dfy
+ concurrency/08-CounterNoTermination.dfy
+ concurrency/09-CounterNoStateMachine.dfy
+ concurrency/10-SequenceInvariant.dfy
+ concurrency/12-MutexLifetime-short.dfy
+ dafny0/RlimitMultiplier.dfy
+ dafny1/SchorrWaite.dfy
+ dafny2/SnapshotableTrees.dfy
+ dafny4/git-issue250.dfy
+ git-issues/git-issue-Main4.dfy
+ git-issues/git-issue-MainE.dfy
+ unicodechars/comp/CompileWithArguments.dfy
+ )
+ local bad_test
+ for bad_test in "${bad_tests[@]}" ; do
+ if [[ -f "${TEST_S}/${bad_test}" ]] ; then
+ rm "${TEST_S}/${bad_test}" || die "failed to remove test ${bad_test}"
+ else
+ ewarn "Test file ${bad_test} does not exist"
+ fi
+ done
+
+ dotnet-pkg_src_prepare
+
+ # Update lit's "lit.site.cfg" file.
+ local dotnet_exec="${DOTNET_PKG_EXECUTABLE} exec ${DOTNET_PKG_OUTPUT}"
+ local lit_config="${TEST_S}/lit.site.cfg"
+
+ sed -i "${lit_config}" \
+ -e "/^defaultDafnyExecutable/s|=.*|= '${dotnet_exec}/Dafny.dll '|" \
+ -e "/^dafnyExecutable/s|=.*|= '${dotnet_exec}/Dafny.dll '|" \
+ -e "/^defaultServerExecutable/s|=.*|= '${dotnet_exec}/DafnyServer.dll'|" \
+ -e "/^serverExecutable/s|=.*|= '${dotnet_exec}/DafnyServer.dll'|" \
+ -e "s|dotnet run |${DOTNET_PKG_EXECUTABLE} run |g" \
+ || die "failed to update ${lit_config}"
+}
+
+src_compile () {
+ einfo "Building DafnyRuntimeJava JAR."
+ local dafny_runtime_java="${S}/Source/DafnyRuntime/DafnyRuntimeJava"
+ mkdir -p "${dafny_runtime_java}/build/libs/" || die
+ pushd "${dafny_runtime_java}/build" || die
+
+ ejavac -d ./ $(find "${dafny_runtime_java}/src/main" -type f -name "*.java")
+ edo jar cvf "DafnyRuntime-${PV}.jar" dafny/*
+
+ cp "DafnyRuntime-${PV}.jar" "${dafny_runtime_java}/build/libs/" || die
+ popd || die
+
+ # Build main dotnet package.
+ dotnet-pkg_src_compile
+
+ if use test ; then
+ # Build "TestDafny" without saving artifacts.
+ edotnet build \
+ --configuration Debug \
+ --no-self-contained \
+ -maxCpuCount:$(makeopts_jobs) \
+ "${S}/Source/TestDafny/TestDafny.csproj"
+ fi
+}
+
+src_test() {
+ # Dafny GOLang transpiler tests need "goimports" from "/usr/lib/go/bin".
+ local -x PATH="${EPREFIX}/usr/lib/go/bin:${PATH}"
+
+ einfo "Installing bignumber.js package required for tests using NodeJS."
+ local -a npm_opts=(
+ --audit false
+ --color false
+ --foreground-scripts
+ --offline
+ --progress false
+ --verbose
+ )
+ edob npm "${npm_opts[@]}" install "${DISTDIR}/bignumber.js-9.1.2.tgz"
+
+ einfo "Starting tests using the lit test tool."
+ local -a lit_opts=(
+ --order=lexical
+ --time-tests
+ --timeout 1800 # Let one test take no mere than half a hour.
+ --verbose
+ --workers="$(makeopts_jobs)"
+ )
+ edob lit "${lit_opts[@]}" "${TEST_S}"
+}
+
+src_install() {
+ dotnet-pkg-base_install
+
+ local -a dafny_exes=(
+ Dafny
+ DafnyDriver
+ DafnyLanguageServer
+ DafnyServer
+ TestDafny
+ )
+ local dafny_exe
+ for dafny_exe in "${dafny_exes[@]}" ; do
+ dotnet-pkg-base_dolauncher "/usr/share/${P}/${dafny_exe}" "${dafny_exe}"
+ done
+
+ dosym -r /usr/bin/Dafny /usr/bin/dafny
+ dosym -r /usr/bin/DafnyServer /usr/bin/dafny-server
+
+ einstalldocs
+}
+
+pkg_postinst() {
+ optfeature "Dafny GO language backend" dev-go/go-tools
+ optfeature "Dafny Rust language backend" virtual/rust
+}
diff --git a/dev-lang/dafny/files/dafny-3.12.0-DafnyCore-csproj.patch b/dev-lang/dafny/files/dafny-3.12.0-DafnyCore-csproj.patch
new file mode 100644
index 000000000000..663c99061ad4
--- /dev/null
+++ b/dev-lang/dafny/files/dafny-3.12.0-DafnyCore-csproj.patch
@@ -0,0 +1,13 @@
+--- a/Source/DafnyCore/DafnyCore.csproj
++++ b/Source/DafnyCore/DafnyCore.csproj
+@@ -1,9 +1,7 @@
+ <Project Sdk="Microsoft.NET.Sdk">
+
+ <Target Name="RunCoco" BeforeTargets="PreBuildEvent" Outputs="$(ProjectDir)Parser.cs;$(ProjectDir)Scanner.cs" Inputs="$(ProjectDir)Dafny.atg;$(ProjectDir)/CoCo/Parser.frame;$(ProjectDir)/CoCo/Scanner.frame">
+- <Exec Command="dotnet tool restore" />
+- <Exec Command="dotnet --info" />
+- <Exec Command="dotnet tool run coco &quot;$(ProjectDir)Dafny.atg&quot; -namespace Microsoft.Dafny -frames &quot;$(ProjectDir)Coco&quot;" />
++ <Exec Command="coco &quot;$(ProjectDir)Dafny.atg&quot; -namespace Microsoft.Dafny -frames &quot;$(ProjectDir)Coco&quot;" />
+ <!-- Recompute files to build according to https://stackoverflow.com/a/44829863/93197 -->
+ <ItemGroup>
+ <Compile Include="**/*$(DefaultLanguageSourceExtension)" Exclude="$(DefaultItemExcludes);$(DefaultExcludesInProjectFolder);$(BaseIntermediateOutputPath)**;$(BaseOutputPath)**;@(Compile)" />
diff --git a/dev-lang/dafny/files/dafny-3.12.0-DafnyRuntime-csproj.patch b/dev-lang/dafny/files/dafny-3.12.0-DafnyRuntime-csproj.patch
new file mode 100644
index 000000000000..452763ef967d
--- /dev/null
+++ b/dev-lang/dafny/files/dafny-3.12.0-DafnyRuntime-csproj.patch
@@ -0,0 +1,11 @@
+--- a/Source/DafnyRuntime/DafnyRuntime.csproj
++++ b/Source/DafnyRuntime/DafnyRuntime.csproj
+@@ -33,8 +33,6 @@
+ <Message Text="Compiling DafnyRuntimeJava to $(DafnyRuntimeJar)..." Importance="high" />
+ <!-- For some reason the DafnyRuntime.jar was often not (yet?) created after this Target was run, leading to build failures.
+ We've removed the 'clean' step that was before 'build', so the DafnyRuntime.jar from a previous run can be used. -->
+- <Exec WorkingDirectory="DafnyRuntimeJava" Condition="!$([MSBuild]::IsOSPlatform('Windows'))" Command="./gradlew build" />
+- <Exec WorkingDirectory="DafnyRuntimeJava" Condition="$([MSBuild]::IsOSPlatform('Windows'))" Command="./gradlew.bat build" />
+ <ItemGroup>
+ <!-- Register the generated file to be deleted when cleaning -->
+ <FileWrites Include="$(DafnyRuntimeJar)" />
diff --git a/dev-lang/dafny/files/dafny-4.4.0-lit-config.patch b/dev-lang/dafny/files/dafny-4.4.0-lit-config.patch
new file mode 100644
index 000000000000..31e6619c0c44
--- /dev/null
+++ b/dev-lang/dafny/files/dafny-4.4.0-lit-config.patch
@@ -0,0 +1,14 @@
+--- a/Source/IntegrationTests/TestFiles/LitTests/LitTest/lit.site.cfg
++++ b/Source/IntegrationTests/TestFiles/LitTests/LitTest/lit.site.cfg
+@@ -215,9 +215,9 @@ def find(name, rooot):
+ return name
+ return ""
+
++import shutil
+ solverPath = \
+- find("z3-4.12.1", binaryDir) or \
+- find("cvc4", binaryDir)
++ shutil.which("z3")
+
+ if not solverPath:
+ lit_config.fatal('Could not find solver')
diff --git a/dev-lang/dafny/files/dafny-4.4.0-lit-system-boogie.patch b/dev-lang/dafny/files/dafny-4.4.0-lit-system-boogie.patch
new file mode 100644
index 000000000000..b661ccf96af6
--- /dev/null
+++ b/dev-lang/dafny/files/dafny-4.4.0-lit-system-boogie.patch
@@ -0,0 +1,11 @@
+--- a/Source/IntegrationTests/TestFiles/LitTests/LitTest/lit.site.cfg
++++ b/Source/IntegrationTests/TestFiles/LitTests/LitTest/lit.site.cfg
+@@ -107,7 +107,7 @@ testDafnyExecutable = 'dotnet-bin-6.0 exec /var/tmp/portage/dev-lang/dafny-4.2.0
+ defaultServerExecutable = 'dotnet-bin-6.0 exec /var/tmp/portage/dev-lang/dafny-4.2.0/work/dafny-4.2.0_net6.0_Release/DafnyServer.dll'
+ serverExecutable = 'dotnet-bin-6.0 exec /var/tmp/portage/dev-lang/dafny-4.2.0/work/dafny-4.2.0_net6.0_Release/DafnyServer.dll'
+
+-boogieExecutable = 'dotnet tool run boogie'
++boogieExecutable = 'boogie'
+
+ config.suffixes.append('.transcript')
+
diff --git a/dev-lang/dafny/files/dafny-4.5.0-lit-config.patch b/dev-lang/dafny/files/dafny-4.5.0-lit-config.patch
new file mode 100644
index 000000000000..87ce510a3592
--- /dev/null
+++ b/dev-lang/dafny/files/dafny-4.5.0-lit-config.patch
@@ -0,0 +1,20 @@
+index d7945a9..2a175fe 100644
+--- a/Source/IntegrationTests/TestFiles/LitTests/LitTest/lit.site.cfg
++++ b/Source/IntegrationTests/TestFiles/LitTests/LitTest/lit.site.cfg
+@@ -106,7 +106,7 @@ testDafnyExecutableResolver = 'dotnet run --no-build --project ' + quotePath(os.
+ defaultServerExecutable = 'dotnet run --no-build --project ' + quotePath(os.path.join(sourceDirectory, 'DafnyServer', 'DafnyServer.csproj'))
+ serverExecutable = lit_config.params.get('serverExecutable', defaultServerExecutable)
+
+-boogieExecutable = 'dotnet tool run boogie'
++boogieExecutable = 'boogie'
+
+ config.suffixes.append('.transcript')
+
+@@ -217,6 +217,7 @@ solverRoots = os.pathsep.join(
+ print(solverRoots)
+
+ solverPath = \
++ shutil.which("z3") or \
+ lit.util.which("z3-4.8.5", solverRoots) or \
+ lit.util.which("cvc4", solverRoots)
+
diff --git a/dev-lang/dafny/metadata.xml b/dev-lang/dafny/metadata.xml
new file mode 100644
index 000000000000..a9de2e33a4dd
--- /dev/null
+++ b/dev-lang/dafny/metadata.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+
+<pkgmetadata>
+ <maintainer type="project">
+ <email>dotnet@gentoo.org</email>
+ <name>Gentoo Dotnet Project</name>
+ </maintainer>
+ <longdescription>
+ Dafny is a verification-ready programming language. As you type in your
+ program, Dafny's verifier constantly looks over your shoulder, flags any
+ errors, shows you counterexamples, and congratulates you when your code
+ matches your specifications. When you're done, Dafny can compile your code
+ to C#, Java, JavaScript or Go (more to come!), so it can integrate with
+ your existing workflow. Dafny will give you assurance that your code meets
+ the specifications you write, while letting you write both code and
+ specifications in the Dafny programming language itself. Since verification
+ is an integral part of development, it will thus reduce the risk of costly
+ late-stage bugs that are typically missed by testing. Dafny has support for
+ common programming concepts such as classes and trait inheritance,
+ inductive datatypes that can have methods and are suitable for pattern
+ matching, lazily unbounded datatypes, subset types e.g. for bounded
+ integers, lambdas, and immutable and mutable data structures. Dafny also
+ offers an extensive toolbox for mathematical proofs, such as unbounded and
+ bounded quantifiers, calculational proofs, pre- and post-conditions,
+ termination conditions, loop invariants, and read/write specifications.
+ </longdescription>
+ <upstream>
+ <changelog>https://github.com/dafny-lang/dafny/releases/</changelog>
+ <doc>https://dafny.org/latest/DafnyRef/DafnyRef</doc>
+ <bugs-to>https://github.com/dafny-lang/dafny/issues/</bugs-to>
+ <remote-id type="github">dafny-lang/dafny</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-lang/duktape/Manifest b/dev-lang/duktape/Manifest
index a9ff63d0552c..50e7d3685ae3 100644
--- a/dev-lang/duktape/Manifest
+++ b/dev-lang/duktape/Manifest
@@ -1,3 +1 @@
-DIST duktape-2.4.0.tar.xz 1027744 BLAKE2B 9fb74b0586a5ccf5ef80d69955ab0ddb94428d463e300a558b5ab6e279d2c416b794434466604caa80581883df85f889694af1dd3ea0aaa4a3d53babb855f3ef SHA512 be6b7c73ae7c3419e8ced375fcff9680946e780b71d30e3be4e4e3b4b3a2710aa8f86530081c64958507a11fc215cacc5409c7d3a1d30b757838a00c748fa281
-DIST duktape-2.5.0.tar.xz 1031188 BLAKE2B 15d9190e9c723bacf8249ea31bf528793ca06e86d2697648192fee50b4ba2f7cf091e1392ac14a7a5c35b05a3ff5f200e0318cc8a4b873ad26f0c97683a2cb72 SHA512 230e298a91cb48407d7c2a4b7c85cf9d53151d550e2fd7ba6cb8f9115682abce295fb78a3c3cd22b4812ce86944dd6d28c2b25c3845668a17232e3a08ea63837
-DIST duktape-2.6.0.tar.xz 1035160 BLAKE2B 98155e1bf7e76aab37f5ccdb951d9d456df3d984ebed5058d8931e25317ffd94b4d95f08e102eb6eb2fa36ab6d2d60be6072b4101b7754e1c1440f7d6fb2c91b SHA512 d72a2aaa05391fa243861aca6ca6082f91a08b9c5d60c7b246d35d7161532b0048bb67bd8fec7996c700ee317ac2bb52e528582682e5425b0431757d8b1c5be4
+DIST duktape-2.7.0.tar.xz 1026524 BLAKE2B da5eea88758201177f32c5611a3757433ef1b0173d6430eff1f067abd7535f3e4b9c3717290fbd8475827a53f7a2a74818287a65e563f14e91761f5cd0fe30d5 SHA512 8ff5465c9c335ea08ebb0d4a06569c991b9dc4661b63e10da6b123b882e7375e82291d6b883c2644902d68071a29ccc880dae8229447cebe710c910b54496c1d
diff --git a/dev-lang/duktape/duktape-2.4.0.ebuild b/dev-lang/duktape/duktape-2.4.0.ebuild
deleted file mode 100644
index 40429cd2db27..000000000000
--- a/dev-lang/duktape/duktape-2.4.0.ebuild
+++ /dev/null
@@ -1,43 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-DESCRIPTION="Embeddable Javascript engine"
-HOMEPAGE="https://duktape.org"
-SRC_URI="https://duktape.org/${P}.tar.xz"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE=""
-
-DEPEND=""
-RDEPEND="${DEPEND}"
-
-src_prepare() {
- eapply_user
-
- # Set install path
- sed -i "s#INSTALL_PREFIX = /usr/local#INSTALL_PREFIX = ${D::-1}/usr#" \
- Makefile.sharedlibrary || die "failed to set install path"
-
- # Edit pkgconfig
- sed "s#VERSION#${PV}#" "${FILESDIR}/${PN}.pc" > "${S}/${PN}.pc" || die
- sed -i "s#LIBDIR#$(get_libdir)#" "${S}/${PN}.pc" || die
-
- # Set lib folder
- sed -i "s#(INSTALL_PREFIX)/lib#(INSTALL_PREFIX)/$(get_libdir)#" \
- Makefile.sharedlibrary || die
-
- mv Makefile.sharedlibrary Makefile || die "failed to rename makefile"
-}
-
-src_install() {
- dodir /usr/$(get_libdir)
- dodir /usr/include
- emake install
-
- insinto /usr/$(get_libdir)/pkgconfig/
- doins "${S}/${PN}.pc"
-}
diff --git a/dev-lang/duktape/duktape-2.5.0-r1.ebuild b/dev-lang/duktape/duktape-2.5.0-r1.ebuild
deleted file mode 100644
index 3f817f751d2b..000000000000
--- a/dev-lang/duktape/duktape-2.5.0-r1.ebuild
+++ /dev/null
@@ -1,49 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit toolchain-funcs
-
-DESCRIPTION="Embeddable Javascript engine"
-HOMEPAGE="https://duktape.org"
-SRC_URI="https://duktape.org/${P}.tar.xz"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="amd64 ~arm ~arm64 ppc ~ppc64 x86"
-IUSE=""
-
-DEPEND=""
-RDEPEND="${DEPEND}"
-
-src_prepare() {
- eapply_user
-
- # Set install path
- sed -i "s#INSTALL_PREFIX = /usr/local#INSTALL_PREFIX = ${ED}/usr#" \
- Makefile.sharedlibrary || die "failed to set install path"
-
- # Edit pkgconfig
- sed "s#VERSION#${PV}#" "${FILESDIR}/${PN}.pc" > "${S}/${PN}.pc" || die
- sed -i "s#LIBDIR#$(get_libdir)#" "${S}/${PN}.pc" || die
-
- # Set lib folder
- sed -i "s#(INSTALL_PREFIX)/lib#(INSTALL_PREFIX)/$(get_libdir)#" \
- Makefile.sharedlibrary || die
-
- mv Makefile.sharedlibrary Makefile || die "failed to rename makefile"
-}
-
-src_compile() {
- emake CC="$(tc-getCC)"
-}
-
-src_install() {
- dodir /usr/$(get_libdir)
- dodir /usr/include
- emake install
-
- insinto /usr/$(get_libdir)/pkgconfig/
- doins "${S}/${PN}.pc"
-}
diff --git a/dev-lang/duktape/duktape-2.6.0.ebuild b/dev-lang/duktape/duktape-2.6.0.ebuild
deleted file mode 100644
index 9a5300f0e887..000000000000
--- a/dev-lang/duktape/duktape-2.6.0.ebuild
+++ /dev/null
@@ -1,51 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit toolchain-funcs
-
-DESCRIPTION="Embeddable Javascript engine"
-HOMEPAGE="https://duktape.org"
-SRC_URI="https://duktape.org/${P}.tar.xz"
-
-LICENSE="MIT"
-# Upstream don't maintain binary compatibility
-# https://github.com/svaarala/duktape/issues/1524
-SLOT="0/${PV}"
-KEYWORDS="amd64 ~arm ~arm64 ppc ~ppc64 x86"
-
-PATCHES=(
- "${FILESDIR}/${PN}-2.6.0-respect-tc-env.patch"
-)
-
-src_prepare() {
- default
-
- # Set install path
- sed -i "s#INSTALL_PREFIX = /usr/local#INSTALL_PREFIX = ${ED}/usr#" \
- Makefile.sharedlibrary || die "failed to set install path"
-
- # Edit pkgconfig
- sed "s#VERSION#${PV}#" "${FILESDIR}/${PN}.pc" > "${S}/${PN}.pc" || die
- sed -i "s#LIBDIR#$(get_libdir)#" "${S}/${PN}.pc" || die
-
- # Set lib folder
- sed -i "s#(INSTALL_PREFIX)/lib#(INSTALL_PREFIX)/$(get_libdir)#" \
- Makefile.sharedlibrary || die
-
- mv Makefile.sharedlibrary Makefile || die "failed to rename makefile"
-}
-
-src_compile() {
- emake CC="$(tc-getCC)"
-}
-
-src_install() {
- dodir /usr/$(get_libdir)
- dodir /usr/include
- emake install
-
- insinto /usr/$(get_libdir)/pkgconfig/
- doins "${S}/${PN}.pc"
-}
diff --git a/dev-lang/duktape/duktape-2.7.0-r3.ebuild b/dev-lang/duktape/duktape-2.7.0-r3.ebuild
new file mode 100644
index 000000000000..f77166dfcd44
--- /dev/null
+++ b/dev-lang/duktape/duktape-2.7.0-r3.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+DESCRIPTION="Embeddable Javascript engine"
+HOMEPAGE="https://duktape.org"
+SRC_URI="https://duktape.org/${P}.tar.xz"
+
+LICENSE="MIT"
+# Upstream don't maintain binary compatibility
+# https://github.com/svaarala/duktape/issues/1524
+SLOT="0/${PV}"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.7.0-respect-tc-env.patch
+ "${FILESDIR}"/${P}-underlinked-libm.patch
+)
+
+src_prepare() {
+ default
+
+ mv Makefile.sharedlibrary Makefile || die "failed to rename makefile"
+}
+
+src_compile() {
+ emake CC="$(tc-getCC)" INSTALL_PREFIX="${EPREFIX}"/usr LIBDIR="/$(get_libdir)"
+}
+
+src_install() {
+ dodir /usr/$(get_libdir)
+ dodir /usr/include
+ emake DESTDIR="${D}" INSTALL_PREFIX="${EPREFIX}"/usr LIBDIR="/$(get_libdir)" install
+}
diff --git a/dev-lang/duktape/files/duktape-2.6.0-respect-tc-env.patch b/dev-lang/duktape/files/duktape-2.6.0-respect-tc-env.patch
deleted file mode 100644
index cb92d0ab8d30..000000000000
--- a/dev-lang/duktape/files/duktape-2.6.0-respect-tc-env.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-diff --git a/Makefile.sharedlibrary b/Makefile.sharedlibrary
-index 156ea96..a0997b1 100644
---- a/Makefile.sharedlibrary
-+++ b/Makefile.sharedlibrary
-@@ -52,7 +52,7 @@ INSTALL_PREFIX = /usr/local
- DUKTAPE_SRCDIR = ./src
- #DUKTAPE_SRCDIR = ./src-noline
-
--CC = gcc
-+CC ?= gcc
-
- .PHONY: all
- all: libduktape.$(SO_REALNAME_SUFFIX) libduktaped.$(SO_REALNAME_SUFFIX)
-@@ -62,11 +62,11 @@ all: libduktape.$(SO_REALNAME_SUFFIX) libduktaped.$(SO_REALNAME_SUFFIX)
- # to $INSTALL_PREFIX/include on installation.
-
- libduktape.$(SO_REALNAME_SUFFIX):
-- $(CC) -shared -fPIC -Wall -Wextra -Os -Wl,$(LD_SONAME_ARG),libduktape.$(SO_SONAME_SUFFIX) \
-+ $(CC) -shared -fPIC ${CFLAGS} ${LDFLAGS} -Wl,$(LD_SONAME_ARG),libduktape.$(SO_SONAME_SUFFIX) -lm \
- -o $@ $(DUKTAPE_SRCDIR)/duktape.c
-
- libduktaped.$(SO_REALNAME_SUFFIX):
-- $(CC) -shared -fPIC -g -Wall -Wextra -Os -Wl,$(LD_SONAME_ARG),libduktaped.$(SO_SONAME_SUFFIX) \
-+ $(CC) -shared -fPIC ${CFLAGS} ${LDFLAGS} -Wl,$(LD_SONAME_ARG),libduktaped.$(SO_SONAME_SUFFIX) -lm \
- -o $@ $(DUKTAPE_SRCDIR)/duktape.c
-
- # Symlinks depend on platform conventions.
-@@ -85,4 +85,4 @@ install: libduktape.$(SO_REALNAME_SUFFIX) libduktaped.$(SO_REALNAME_SUFFIX)
-
- CCOPTS = -I./examples/cmdline
- duk:
-- $(CC) $(CCOPTS) -I$(INSTALL_PREFIX)/include -L$(INSTALL_PREFIX)/lib -Wall -Wextra -Os -o $@ ./examples/cmdline/duk_cmdline.c -lduktape -lm
-+ $(CC) $(CCOPTS) -I$(INSTALL_PREFIX)/include -L$(INSTALL_PREFIX)/lib ${CFLAGS} -o $@ ./examples/cmdline/duk_cmdline.c -lduktape -lm
diff --git a/dev-lang/duktape/files/duktape-2.7.0-respect-tc-env.patch b/dev-lang/duktape/files/duktape-2.7.0-respect-tc-env.patch
new file mode 100644
index 000000000000..f29f9c7073a0
--- /dev/null
+++ b/dev-lang/duktape/files/duktape-2.7.0-respect-tc-env.patch
@@ -0,0 +1,24 @@
+diff --git a/Makefile.sharedlibrary b/Makefile.sharedlibrary
+index bf5c0cb..5862b4f 100644
+--- a/Makefile.sharedlibrary
++++ b/Makefile.sharedlibrary
+@@ -70,11 +70,11 @@ all: libduktape.$(SO_REALNAME_SUFFIX) libduktaped.$(SO_REALNAME_SUFFIX) duktape.
+ # to $INSTALL_PREFIX/include on installation.
+
+ libduktape.$(SO_REALNAME_SUFFIX):
+- $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -shared -fPIC -Wall -Wextra -Os -Wl,$(LD_SONAME_ARG),libduktape.$(SO_SONAME_SUFFIX) \
++ $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -shared -fPIC -Wall -Wextra -Wl,$(LD_SONAME_ARG),libduktape.$(SO_SONAME_SUFFIX) \
+ -o $@ $(DUKTAPE_SRCDIR)/duktape.c
+
+ libduktaped.$(SO_REALNAME_SUFFIX):
+- $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -shared -fPIC -g -Wall -Wextra -Os -Wl,$(LD_SONAME_ARG),libduktaped.$(SO_SONAME_SUFFIX) \
++ $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -shared -fPIC -Wall -Wextra -Wl,$(LD_SONAME_ARG),libduktaped.$(SO_SONAME_SUFFIX) \
+ -o $@ $(DUKTAPE_SRCDIR)/duktape.c
+
+ duktape.pc:
+@@ -101,4 +101,4 @@ install: libduktape.$(SO_REALNAME_SUFFIX) libduktaped.$(SO_REALNAME_SUFFIX) dukt
+
+ CCOPTS = -I./examples/cmdline
+ duk:
+- $(CC) $(CCOPTS) -I$(INSTALL_PREFIX)/include -L$(INSTALL_PREFIX)$(LIBDIR) -Wall -Wextra -Os -o $@ ./examples/cmdline/duk_cmdline.c -lduktape -lm
++ $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) $(CCOPTS) -I$(INSTALL_PREFIX)/include -L$(INSTALL_PREFIX)$(LIBDIR) -Wall -Wextra -o $@ ./examples/cmdline/duk_cmdline.c -lduktape -lm
diff --git a/dev-lang/duktape/files/duktape-2.7.0-underlinked-libm.patch b/dev-lang/duktape/files/duktape-2.7.0-underlinked-libm.patch
new file mode 100644
index 000000000000..6b0962ed7617
--- /dev/null
+++ b/dev-lang/duktape/files/duktape-2.7.0-underlinked-libm.patch
@@ -0,0 +1,25 @@
+https://github.com/svaarala/duktape/commit/d898ad3920cb08d6918d11d9678bae28393a82d1
+https://bugs.gentoo.org/870163
+
+From d898ad3920cb08d6918d11d9678bae28393a82d1 Mon Sep 17 00:00:00 2001 (rebased)
+From: tinywrkb <tinywrkb@gmail.com>
+Date: Thu, 17 Mar 2022 03:55:51 +0200
+Subject: [PATCH] Makefile.sharedlibrary: link against libm
+
+Closes #2464.
+--- a/Makefile.sharedlibrary
++++ b/Makefile.sharedlibrary
+@@ -71,11 +71,11 @@ all: libduktape.$(SO_REALNAME_SUFFIX) libduktaped.$(SO_REALNAME_SUFFIX) duktape.
+
+ libduktape.$(SO_REALNAME_SUFFIX):
+ $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -shared -fPIC -Wall -Wextra -Wl,$(LD_SONAME_ARG),libduktape.$(SO_SONAME_SUFFIX) \
+- -o $@ $(DUKTAPE_SRCDIR)/duktape.c
++ -o $@ $(DUKTAPE_SRCDIR)/duktape.c -lm
+
+ libduktaped.$(SO_REALNAME_SUFFIX):
+ $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -shared -fPIC -Wall -Wextra -Wl,$(LD_SONAME_ARG),libduktaped.$(SO_SONAME_SUFFIX) \
+- -o $@ $(DUKTAPE_SRCDIR)/duktape.c
++ -o $@ $(DUKTAPE_SRCDIR)/duktape.c -lm
+
+ duktape.pc:
+ sed -e "s|@PREFIX@|$(INSTALL_PREFIX)|" \
diff --git a/dev-lang/duktape/files/duktape.pc b/dev-lang/duktape/files/duktape.pc
deleted file mode 100644
index 56eff91ada9e..000000000000
--- a/dev-lang/duktape/files/duktape.pc
+++ /dev/null
@@ -1,10 +0,0 @@
-prefix=/usr
-exec_prefix=${prefix}
-libdir=${exec_prefix}/LIBDIR
-includedir=${prefix}/include
-
-Name: duktape
-Description: Embeddable Javascript engine
-Version: VERSION
-Libs: -L${libdir} -lduktape
-Cflags: -I${includedir}
diff --git a/dev-lang/duktape/metadata.xml b/dev-lang/duktape/metadata.xml
index 0ce1ed4de1e5..fa4a06426fce 100644
--- a/dev-lang/duktape/metadata.xml
+++ b/dev-lang/duktape/metadata.xml
@@ -1,11 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="person">
- <email>thev00d00@gentoo.org</email>
- <name>Ian Whyman</name>
- </maintainer>
- <upstream>
- <remote-id type="github">svaarala/duktape</remote-id>
- </upstream>
+ <maintainer type="person">
+ <email>sam@gentoo.org</email>
+ <name>Sam James</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">svaarala/duktape</remote-id>
+ </upstream>
</pkgmetadata>
diff --git a/dev-lang/dzaima-bqn/Manifest b/dev-lang/dzaima-bqn/Manifest
new file mode 100644
index 000000000000..6a78fb32eec6
--- /dev/null
+++ b/dev-lang/dzaima-bqn/Manifest
@@ -0,0 +1 @@
+DIST dzaima-bqn-0.2.1.tar.gz 315654 BLAKE2B 1b11ad6901ec2fbb6b10a87d7e46e098cceb2ffdfd351d82a3709df3370f30e0aaee1b2e270c4d228f305ed573f1e1a979238fcbc6ca8ac690f26048a30bff2c SHA512 92ab33ed64ace127ece76526ea298f131d720e7deaa917551e16c0eb0e626b1b0074668260fcc652e18b1c90603149f8631a574b0e98d2b715bd73dbc3340d8e
diff --git a/dev-lang/dzaima-bqn/dzaima-bqn-0.2.1.ebuild b/dev-lang/dzaima-bqn/dzaima-bqn-0.2.1.ebuild
new file mode 100644
index 000000000000..de1b210a761b
--- /dev/null
+++ b/dev-lang/dzaima-bqn/dzaima-bqn-0.2.1.ebuild
@@ -0,0 +1,61 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit edo java-pkg-2
+
+DESCRIPTION="A BQN language implementation written in Java, also know as dbqn"
+HOMEPAGE="https://github.com/dzaima/BQN/"
+
+if [[ ${PV} == *9999* ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/dzaima/BQN.git"
+else
+ SRC_URI="https://github.com/dzaima/BQN/archive/v${PV}.tar.gz
+ -> ${P}.tar.gz"
+ S="${WORKDIR}/BQN-${PV}"
+ KEYWORDS="amd64 ~x86"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+
+RDEPEND=">=virtual/jre-1.8"
+DEPEND=">=virtual/jdk-1.8"
+
+BUILD_DIR="${WORKDIR}/${P}_BuildDir"
+BUILD_JAR="${BUILD_DIR}/dbqn.jar"
+
+DOCS=( readme.md )
+
+src_prepare() {
+ default
+ java-pkg-2_src_prepare
+
+ mkdir -p "${BUILD_DIR}" || die
+}
+
+src_compile() {
+ # This is the "build8" (or "build") script rewritten for our purposes.
+
+ ejavac -d "${BUILD_DIR}" $(find ./src -name "*.java")
+
+ cd "${BUILD_DIR}" || die
+ edob jar cvfe "${BUILD_JAR}" BQN.Main BQN
+}
+
+src_test() {
+ edob java -jar "${BUILD_JAR}" -f "${S}"/test/test
+}
+
+src_install() {
+ java-pkg_dojar "${BUILD_JAR}"
+ java-pkg_dolauncher dbqn --jar dbqn.jar
+
+ einstalldocs
+}
+
+pkg_postinst() {
+ einfo "The ${CATEGORY}/${PN} installs the main executable under the name \"dbqn\"."
+}
diff --git a/dev-lang/dzaima-bqn/dzaima-bqn-9999.ebuild b/dev-lang/dzaima-bqn/dzaima-bqn-9999.ebuild
new file mode 100644
index 000000000000..9c7b4bd92031
--- /dev/null
+++ b/dev-lang/dzaima-bqn/dzaima-bqn-9999.ebuild
@@ -0,0 +1,61 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit edo java-pkg-2
+
+DESCRIPTION="A BQN language implementation written in Java, also know as dbqn"
+HOMEPAGE="https://github.com/dzaima/BQN/"
+
+if [[ ${PV} == *9999* ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/dzaima/BQN.git"
+else
+ SRC_URI="https://github.com/dzaima/BQN/archive/v${PV}.tar.gz
+ -> ${P}.tar.gz"
+ S="${WORKDIR}/BQN-${PV}"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+
+RDEPEND=">=virtual/jre-1.8"
+DEPEND=">=virtual/jdk-1.8"
+
+BUILD_DIR="${WORKDIR}/${P}_BuildDir"
+BUILD_JAR="${BUILD_DIR}/dbqn.jar"
+
+DOCS=( readme.md )
+
+src_prepare() {
+ default
+ java-pkg-2_src_prepare
+
+ mkdir -p "${BUILD_DIR}" || die
+}
+
+src_compile() {
+ # This is the "build8" (or "build") script rewritten for our purposes.
+
+ ejavac -d "${BUILD_DIR}" $(find ./src -name "*.java")
+
+ cd "${BUILD_DIR}" || die
+ edob jar cvfe "${BUILD_JAR}" BQN.Main BQN
+}
+
+src_test() {
+ edob java -jar "${BUILD_JAR}" -f "${S}"/test/test
+}
+
+src_install() {
+ java-pkg_dojar "${BUILD_JAR}"
+ java-pkg_dolauncher dbqn --jar dbqn.jar
+
+ einstalldocs
+}
+
+pkg_postinst() {
+ einfo "The ${CATEGORY}/${PN} installs the main executable under the name \"dbqn\"."
+}
diff --git a/dev-lang/dzaima-bqn/metadata.xml b/dev-lang/dzaima-bqn/metadata.xml
new file mode 100644
index 000000000000..f2ef816f9ece
--- /dev/null
+++ b/dev-lang/dzaima-bqn/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+
+<pkgmetadata>
+ <maintainer type="person">
+ <email>xgqt@gentoo.org</email>
+ <name>Maciej Barć</name>
+ </maintainer>
+ <upstream>
+ <bugs-to>https://github.com/dzaima/BQN/issues/</bugs-to>
+ <remote-id type="github">dzaima/BQN</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-lang/eisl/Manifest b/dev-lang/eisl/Manifest
new file mode 100644
index 000000000000..a583abb34d28
--- /dev/null
+++ b/dev-lang/eisl/Manifest
@@ -0,0 +1,3 @@
+DIST eisl-3.70.tar.gz 2431916 BLAKE2B 113ff28ecc9312647a07602b03968d90760397b97262ba36e43caa7b4197808b23410387c222b77ab162aab31a988d6af30e37295f5fb6cb1c84b359355877f6 SHA512 a830ff39eb165fec4367e54d7d2a90e1a53405b151a89e455ae8ed8eee681aab3761ae0a71ae15a9e4f029c2c0ec7a31f4e9c03f2be385784c2c6100c2de63c4
+DIST eisl-3.72.tar.gz 2430755 BLAKE2B e64f249ada16fb291e3aeb29e2a3366936fe458f2ae1e1915b7577f1d212c577438debaf73ad2daae59af52c3b8a72253160b4cc84bd0f338c57dcb164b4a235 SHA512 bc73008732505e5b610dd4797302c4e37730bfbf17d46643c616f7aaa5bbd63a3f0909be3f047c1134302fb017827c2883ce7ec5e2bf9d96ee06bc77557c596d
+DIST eisl-3.90.tar.gz 2435398 BLAKE2B 168c96312783542d2011fc190bd471d9ed9f7f384cc38a5e05617b873623a44641e0fad155c1970b30edd333d03b77ad228798c7f340a63e26d64f79ad7f8cce SHA512 1295d77c25779258882541f4d2a3cd75eb31dbcd89c03144028bfc86453f69c90f822deaca5a20bd45c6361bb0ba74f544c344cd92e6bca6ce8983c36c1860d6
diff --git a/dev-lang/eisl/eisl-3.70.ebuild b/dev-lang/eisl/eisl-3.70.ebuild
new file mode 100644
index 000000000000..1e6288f65690
--- /dev/null
+++ b/dev-lang/eisl/eisl-3.70.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+DESCRIPTION="Interpreter and compiler compatible with the ISLisp standard"
+HOMEPAGE="https://github.com/sasagawa888/eisl/"
+
+if [[ "${PV}" == *9999* ]] ; then
+ inherit git-r3
+
+ EGIT_REPO_URI="https://github.com/sasagawa888/${PN}.git"
+else
+ SRC_URI="https://github.com/sasagawa888/${PN}/archive/v${PV}.tar.gz
+ -> ${P}.tar.gz"
+
+ KEYWORDS="amd64 ~x86"
+fi
+
+LICENSE="BSD-2"
+SLOT="0"
+RESTRICT="test" # Tests run cppcheck (and fail)
+
+DOCS=( README{,-ja}.md documents )
+
+RDEPEND="
+ sys-libs/ncurses:=
+"
+DEPEND="
+ ${RDEPEND}
+"
+
+PATCHES=( "${FILESDIR}/${PN}-3.60-Makefile.patch" )
+
+src_compile() {
+ emake CC="$(tc-getCC)" clean edlis eisl
+}
+
+src_install() {
+ exeinto /usr/bin
+ doexe edlis eisl
+
+ # Compilation of ISLisp files on installation fails.
+ # Do not compile them and mimic "make install".
+ insinto "/usr/share/${PN}"
+ doins -r library
+ doins fast.h ffi.h
+
+ einstalldocs
+}
diff --git a/dev-lang/eisl/eisl-3.72.ebuild b/dev-lang/eisl/eisl-3.72.ebuild
new file mode 100644
index 000000000000..1e6288f65690
--- /dev/null
+++ b/dev-lang/eisl/eisl-3.72.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+DESCRIPTION="Interpreter and compiler compatible with the ISLisp standard"
+HOMEPAGE="https://github.com/sasagawa888/eisl/"
+
+if [[ "${PV}" == *9999* ]] ; then
+ inherit git-r3
+
+ EGIT_REPO_URI="https://github.com/sasagawa888/${PN}.git"
+else
+ SRC_URI="https://github.com/sasagawa888/${PN}/archive/v${PV}.tar.gz
+ -> ${P}.tar.gz"
+
+ KEYWORDS="amd64 ~x86"
+fi
+
+LICENSE="BSD-2"
+SLOT="0"
+RESTRICT="test" # Tests run cppcheck (and fail)
+
+DOCS=( README{,-ja}.md documents )
+
+RDEPEND="
+ sys-libs/ncurses:=
+"
+DEPEND="
+ ${RDEPEND}
+"
+
+PATCHES=( "${FILESDIR}/${PN}-3.60-Makefile.patch" )
+
+src_compile() {
+ emake CC="$(tc-getCC)" clean edlis eisl
+}
+
+src_install() {
+ exeinto /usr/bin
+ doexe edlis eisl
+
+ # Compilation of ISLisp files on installation fails.
+ # Do not compile them and mimic "make install".
+ insinto "/usr/share/${PN}"
+ doins -r library
+ doins fast.h ffi.h
+
+ einstalldocs
+}
diff --git a/dev-lang/eisl/eisl-3.90.ebuild b/dev-lang/eisl/eisl-3.90.ebuild
new file mode 100644
index 000000000000..0ef48728bee1
--- /dev/null
+++ b/dev-lang/eisl/eisl-3.90.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+DESCRIPTION="Interpreter and compiler compatible with the ISLisp standard"
+HOMEPAGE="https://github.com/sasagawa888/eisl/"
+
+if [[ "${PV}" == *9999* ]] ; then
+ inherit git-r3
+
+ EGIT_REPO_URI="https://github.com/sasagawa888/${PN}.git"
+else
+ SRC_URI="https://github.com/sasagawa888/${PN}/archive/v${PV}.tar.gz
+ -> ${P}.tar.gz"
+
+ KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="BSD-2"
+SLOT="0"
+RESTRICT="test" # Tests run cppcheck (and fail)
+
+DOCS=( README{,-ja}.md documents )
+
+RDEPEND="
+ sys-libs/ncurses:=
+"
+DEPEND="
+ ${RDEPEND}
+"
+
+PATCHES=( "${FILESDIR}/${PN}-3.60-Makefile.patch" )
+
+src_compile() {
+ emake CC="$(tc-getCC)" clean edlis eisl
+}
+
+src_install() {
+ exeinto /usr/bin
+ doexe edlis eisl
+
+ # Compilation of ISLisp files on installation fails.
+ # Do not compile them and mimic "make install".
+ insinto "/usr/share/${PN}"
+ doins -r library
+ doins fast.h ffi.h
+
+ einstalldocs
+}
diff --git a/dev-lang/eisl/eisl-9999.ebuild b/dev-lang/eisl/eisl-9999.ebuild
new file mode 100644
index 000000000000..866b41aa1866
--- /dev/null
+++ b/dev-lang/eisl/eisl-9999.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+DESCRIPTION="Interpreter and compiler compatible with the ISLisp standard"
+HOMEPAGE="https://github.com/sasagawa888/eisl/"
+
+if [[ "${PV}" == *9999* ]] ; then
+ inherit git-r3
+
+ EGIT_REPO_URI="https://github.com/sasagawa888/${PN}.git"
+else
+ SRC_URI="https://github.com/sasagawa888/${PN}/archive/v${PV}.tar.gz
+ -> ${P}.tar.gz"
+
+ KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="BSD-2"
+SLOT="0"
+RESTRICT="test" # Tests run cppcheck (and fail)
+
+DOCS=( README{,-ja}.md documents )
+
+RDEPEND="sys-libs/ncurses:="
+DEPEND="${RDEPEND}"
+
+PATCHES=( "${FILESDIR}/${PN}-3.60-Makefile.patch" )
+
+src_compile() {
+ emake CC="$(tc-getCC)" clean edlis eisl
+}
+
+src_install() {
+ exeinto /usr/bin
+ doexe edlis eisl
+
+ # Compilation of ISLisp files on installation fails.
+ # Do not compile them and mimic "make install".
+ insinto "/usr/share/${PN}"
+ doins -r library
+ doins fast.h ffi.h
+
+ einstalldocs
+}
diff --git a/dev-lang/eisl/files/eisl-3.60-Makefile.patch b/dev-lang/eisl/files/eisl-3.60-Makefile.patch
new file mode 100644
index 000000000000..3c9c763fd608
--- /dev/null
+++ b/dev-lang/eisl/files/eisl-3.60-Makefile.patch
@@ -0,0 +1,32 @@
+--- a/makefile
++++ b/makefile
+@@ -39,7 +39,7 @@ else
+ endif
+ endif
+ endif
+-CFLAGS += $(INCS) -g -Wall -Wextra -D_FORTIFY_SOURCE=2 $(CURSES_CFLAGS) -U_XOPEN_SOURCE -Inana/src
++CFLAGS += $(INCS) -g $(CURSES_CFLAGS) -U_XOPEN_SOURCE -Inana/src
+ DFLAGS := --preview=all --de -w --O3 --release --betterC
+ SRC_CII := cii/src/except.c cii/src/fmt.c cii/src/str.c cii/src/text.c
+ SRC_D := dextension.d disl.d
+@@ -69,7 +69,7 @@ ifeq ($(DEBUG),1)
+ LDFLAGS += -fsanitize=undefined
+ endif
+ else
+- CFLAGS += -O3 -flto -DNDEBUG=1 -DWITHOUT_NANA=1
++ CFLAGS += -DNDEBUG=1 -DWITHOUT_NANA=1
+ SRC_CII += cii/src/mem.c
+ endif
+ OBJ_CII := $(SRC_CII:.c=.o)
+@@ -87,11 +87,8 @@ ifeq ($(shell uname -n),raspberrypi)
+ CFLAGS += -D__rpi__
+ endif
+ ifneq ($(DEBUG),1)
+- LDFLAGS += -flto
+ ifeq ($(shell uname),Darwin)
+ LDFLAGS += -Wl,-S,-x
+- else
+- LDFLAGS += -s
+ endif
+ endif
+ PREFIX := /usr/local
diff --git a/dev-lang/eisl/metadata.xml b/dev-lang/eisl/metadata.xml
new file mode 100644
index 000000000000..4351ebea821e
--- /dev/null
+++ b/dev-lang/eisl/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+
+<pkgmetadata>
+ <maintainer type="person">
+ <email>xgqt@gentoo.org</email>
+ <name>Maciej Barć</name>
+ </maintainer>
+ <longdescription>
+ Easy-ISLisp(EISL) is an interpreter and compiler compatible with the ISLisp
+ standard. EISL was written by Kenichi Sasagawa
+ https://qiita.com/sym_num/items/793adfe118514668e5b0
+ </longdescription>
+ <upstream>
+ <bugs-to>https://github.com/sasagawa888/eisl/issues</bugs-to>
+ <remote-id type="github">sasagawa888/eisl</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-lang/elixir/Manifest b/dev-lang/elixir/Manifest
index 9f9de7f05df4..1719aa5b5565 100644
--- a/dev-lang/elixir/Manifest
+++ b/dev-lang/elixir/Manifest
@@ -1,3 +1,5 @@
-DIST elixir-1.10.4.tar.gz 2331003 BLAKE2B 8cb54bcb16762ae345ad9d36a25c28696fd5bb57cf97c5037c21458671e001cfe51a722287243c6a70fe3cea65c9c219e759c8312fc168e93974ac5f0870b47a SHA512 844e405cf344539a9d32dc7f1ead0dc1dfb0d70a9ab718269f4e25e5262f611f96346f5be93cf8e34a75c58c6aabb12e8a796c5cb182955922510c270ef169e7
-DIST elixir-1.11.2.tar.gz 2391833 BLAKE2B 1c11e96830c8719e05e5bc832d4e1d9ca5bb8036803360568fbf4a06a11bb8eb4656aaf1e57a7e04669ddc240d1c04c6a15475e98fcf613ea8bf52b15723fe7f SHA512 472a531353d5f393b0223008ac95ae67b0dc6708143df59a4dd359fdb631329f8a8bded886f53be232e076d194e14a76325fab51a59ec2451706f4f35836bc70
-DIST elixir-1.11.3.tar.gz 2394406 BLAKE2B 066e11651265d63c713809f1968b7dc7faf70e8254ef0aec1978a3db0f92da6bb894e882a1a6c1ba8da13d234c91dc84d2d750b0e044e4cd8706986ec7b2f382 SHA512 4962bb9fcf5f4190a8da22a3e42df5b4e521d73771f6a067edb482b911b0f9fbd2883841d06d94ae4ad6b1db2f61f691e5de4c118c722a16f95830c67ce3e45b
+DIST elixir-1.13.4.tar.gz 2912984 BLAKE2B 3849e7be7d1ba54ac3f96690f158b60a3b7da720e85a6c2ef38b078da795c1debaff319133eae6d5e77a7159f452b2ee6a7ad9ebbf7339391e4ee9ae8838d848 SHA512 cd3a28cd227bf60f09500563b7ad4700b2688e0361f975268d5fa81b530aee80ed4f8640335bf08a8c544a2f5d79dbf96c97f281bd3bf4582466a73a9d2edbec
+DIST elixir-1.14.3.tar.gz 3086297 BLAKE2B b162ea35a762bc1e151c7844237f3167c97da9aae44bca9fe022d09cde6f6909103b383e67b2133b68e76c061c4ed05cdd081070bdbb48be85bbc0ed067fadfd SHA512 eec1e161364f823e26d79596d18b0ff7e6ade1c2c1f6f9ca84eb34d20fd90f434bbd29ef74cd41096e8f25e71d9cd1da0ec6f0a4f24c485124f9525b1ae2c4e0
+DIST elixir-1.14.5.tar.gz 3076366 BLAKE2B cf1487c269b4f09c5a7771339782ddc5f6dc2d5f31bd098486824e1f50040462a55a6135e76a7d635461b8d61ce8ab45be2d1da86d60ecf0bc3c86c98b86531d SHA512 589482fb080eb9f71319b7927312ee255dab0376a8fb781533bc97b6a75dd71ec43cd022bb2eff12eca205cdeaf9a6d629f754c555c17cd6222e05912ff3d960
+DIST elixir-1.15.7.tar.gz 3151775 BLAKE2B 62dc5e390f7b704fdab2be91b36faabc62aed097ec1a077476fee0e50717cfe527322d8eaf2afd90035bf1b4fb48803112ef4c7fded20f133b64cea3bee43c6d SHA512 a46f0569cbff342f15a04776f8d57cf2554867546004adabd9b9dff36c184ec56a78f2df2fc6c0855e65c11277662f694f5e6a8c6e1716cf4e22d8fdd5e1d4ae
+DIST elixir-1.16.2.tar.gz 3357093 BLAKE2B 61ba738542d33e827f7352b7f0a27aa76fc06f037d35c56efd96be1c26e28be90b6f2998cd2cac0090e5da771f6c45ad12d68644e36a214de36c9e26d4ac9686 SHA512 1e90adcd5d0512d4b394276e431f3987fc61a3f6191cd5c1d0f7fdd82baba99747aa553a3583e0813ffb5a48a32ce02a24e27b641f86a61e421722a802a850c1
diff --git a/dev-lang/elixir/elixir-1.11.2.ebuild b/dev-lang/elixir/elixir-1.13.4-r1.ebuild
index 00e05b4cf117..1fb0c382166f 100644
--- a/dev-lang/elixir/elixir-1.11.2.ebuild
+++ b/dev-lang/elixir/elixir-1.13.4-r1.ebuild
@@ -1,7 +1,7 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
DESCRIPTION="Elixir programming language"
HOMEPAGE="https://elixir-lang.org"
@@ -9,13 +9,15 @@ SRC_URI="https://github.com/elixir-lang/elixir/archive/v${PV}.tar.gz -> ${P}.tar
LICENSE="Apache-2.0 ErlPL-1.1"
SLOT="0"
-KEYWORDS="amd64 ~arm ~arm64 ~ia64 ppc ~sparc x86"
+KEYWORDS="amd64 ~arm ~arm64 ~ia64 ppc ~riscv ~sparc x86"
IUSE="test"
RESTRICT="!test? ( test )"
+# https://hexdocs.pm/elixir/compatibility-and-deprecations.html#compatibility-between-elixir-and-erlang-otp
DEPEND="
- >=dev-lang/erlang-21:0=[ssl]
+ >=dev-lang/erlang-22:0=[ssl]
+ <dev-lang/erlang-26
"
# 'mix' tool collides with sci-biology/phylip, bug #537514
RDEPEND="${DEPEND}
@@ -29,7 +31,7 @@ PATCHES=(
"${FILESDIR}"/${PN}-1.9.1-disable-network-tests.patch
"${FILESDIR}"/${PN}-1.10.3-no-Q.patch
"${FILESDIR}"/${PN}-1.10.3-epmd-daemon.patch
- "${FILESDIR}"/${PN}-1.11.2-mksh.patch
+ "${FILESDIR}"/${PN}-1.14.1-make44-parallel-build.patch
)
src_install() {
diff --git a/dev-lang/elixir/elixir-1.11.3.ebuild b/dev-lang/elixir/elixir-1.14.3-r1.ebuild
index 4c9e14b12b16..13dd40642c9d 100644
--- a/dev-lang/elixir/elixir-1.11.3.ebuild
+++ b/dev-lang/elixir/elixir-1.14.3-r1.ebuild
@@ -1,7 +1,7 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
DESCRIPTION="Elixir programming language"
HOMEPAGE="https://elixir-lang.org"
@@ -9,13 +9,15 @@ SRC_URI="https://github.com/elixir-lang/elixir/archive/v${PV}.tar.gz -> ${P}.tar
LICENSE="Apache-2.0 ErlPL-1.1"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ia64 ~ppc ~sparc ~x86"
+KEYWORDS="amd64 ~arm ~arm64 ~ia64 ppc ~riscv ~sparc x86"
IUSE="test"
RESTRICT="!test? ( test )"
+# https://hexdocs.pm/elixir/compatibility-and-deprecations.html#compatibility-between-elixir-and-erlang-otp
DEPEND="
- >=dev-lang/erlang-21:0=[ssl]
+ >=dev-lang/erlang-23:0=[ssl]
+ <dev-lang/erlang-26
"
# 'mix' tool collides with sci-biology/phylip, bug #537514
RDEPEND="${DEPEND}
@@ -29,7 +31,7 @@ PATCHES=(
"${FILESDIR}"/${PN}-1.9.1-disable-network-tests.patch
"${FILESDIR}"/${PN}-1.10.3-no-Q.patch
"${FILESDIR}"/${PN}-1.10.3-epmd-daemon.patch
- "${FILESDIR}"/${PN}-1.11.2-mksh.patch
+ "${FILESDIR}"/${PN}-1.14.1-make44-parallel-build.patch
)
src_install() {
diff --git a/dev-lang/elixir/elixir-1.14.5-r2.ebuild b/dev-lang/elixir/elixir-1.14.5-r2.ebuild
new file mode 100644
index 000000000000..77baef256235
--- /dev/null
+++ b/dev-lang/elixir/elixir-1.14.5-r2.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="Elixir programming language"
+HOMEPAGE="https://elixir-lang.org"
+SRC_URI="https://github.com/elixir-lang/elixir/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0 ErlPL-1.1"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ia64 ~ppc ~riscv ~sparc ~x86"
+IUSE="test"
+
+RESTRICT="!test? ( test )"
+
+# https://hexdocs.pm/elixir/compatibility-and-deprecations.html#compatibility-between-elixir-and-erlang-otp
+DEPEND="
+ >=dev-lang/erlang-23:0=[ssl]
+ <dev-lang/erlang-27
+"
+# 'mix' tool collides with sci-biology/phylip, bug #537514
+RDEPEND="${DEPEND}
+ !!sci-biology/phylip
+"
+DEPEND+="
+ test? ( dev-vcs/git )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.9.1-disable-network-tests.patch
+ "${FILESDIR}"/${PN}-1.10.3-no-Q.patch
+ "${FILESDIR}"/${PN}-1.10.3-epmd-daemon.patch
+ "${FILESDIR}"/${PN}-1.14.1-make44-parallel-build.patch
+ "${FILESDIR}"/${PN}-1.14.5-otp26-tests.patch
+)
+
+src_install() {
+ emake DESTDIR="${D}" LIBDIR="$(get_libdir)" PREFIX="${EPREFIX}/usr" install
+ dodoc README.md CHANGELOG.md CODE_OF_CONDUCT.md
+}
diff --git a/dev-lang/elixir/elixir-1.10.4.ebuild b/dev-lang/elixir/elixir-1.15.7.ebuild
index 5d77e804b6ce..5e2210fd3a54 100644
--- a/dev-lang/elixir/elixir-1.10.4.ebuild
+++ b/dev-lang/elixir/elixir-1.15.7.ebuild
@@ -1,7 +1,7 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
DESCRIPTION="Elixir programming language"
HOMEPAGE="https://elixir-lang.org"
@@ -9,13 +9,15 @@ SRC_URI="https://github.com/elixir-lang/elixir/archive/v${PV}.tar.gz -> ${P}.tar
LICENSE="Apache-2.0 ErlPL-1.1"
SLOT="0"
-KEYWORDS="amd64 ~arm ~arm64 ~ia64 ppc ~sparc x86"
+KEYWORDS="amd64 ~arm ~arm64 ~ia64 ppc ~riscv ~sparc x86"
IUSE="test"
RESTRICT="!test? ( test )"
+# https://hexdocs.pm/elixir/compatibility-and-deprecations.html#compatibility-between-elixir-and-erlang-otp
DEPEND="
- >=dev-lang/erlang-21:0=[ssl]
+ >=dev-lang/erlang-24:0=[ssl]
+ <dev-lang/erlang-27
"
# 'mix' tool collides with sci-biology/phylip, bug #537514
RDEPEND="${DEPEND}
diff --git a/dev-lang/elixir/elixir-1.16.2.ebuild b/dev-lang/elixir/elixir-1.16.2.ebuild
new file mode 100644
index 000000000000..429d175339cf
--- /dev/null
+++ b/dev-lang/elixir/elixir-1.16.2.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="Elixir programming language"
+HOMEPAGE="https://elixir-lang.org"
+SRC_URI="https://github.com/elixir-lang/elixir/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0 ErlPL-1.1"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ia64 ~ppc ~riscv ~sparc ~x86"
+IUSE="test"
+
+RESTRICT="!test? ( test )"
+
+# https://hexdocs.pm/elixir/compatibility-and-deprecations.html#between-elixir-and-erlang-otp
+DEPEND="
+ >=dev-lang/erlang-24:0=[ssl]
+ <dev-lang/erlang-27
+"
+# 'mix' tool collides with sci-biology/phylip, bug #537514
+RDEPEND="${DEPEND}
+ !!sci-biology/phylip
+"
+DEPEND+="
+ test? ( dev-vcs/git )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.9.1-disable-network-tests.patch
+ "${FILESDIR}"/${PN}-1.10.3-no-Q.patch
+ "${FILESDIR}"/${PN}-1.10.3-epmd-daemon.patch
+ "${FILESDIR}"/${PN}-1.16.1-skip-tests-requiring-erlang-docs.patch
+)
+
+src_install() {
+ emake DESTDIR="${D}" LIBDIR="$(get_libdir)" PREFIX="${EPREFIX}/usr" install
+ dodoc README.md CHANGELOG.md CODE_OF_CONDUCT.md
+}
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.14.1-make44-parallel-build.patch b/dev-lang/elixir/files/elixir-1.14.1-make44-parallel-build.patch
new file mode 100644
index 000000000000..81d40f751da8
--- /dev/null
+++ b/dev-lang/elixir/files/elixir-1.14.1-make44-parallel-build.patch
@@ -0,0 +1,27 @@
+From c668ce22b0dd72261621f19f124490eb5425eacd Mon Sep 17 00:00:00 2001
+From: Matthew Smith <matthew@gentoo.org>
+Date: Tue, 15 Nov 2022 21:38:50 +0000
+Subject: [PATCH] Disable parallel build in Make 4.4
+
+In versions of GNU Make prior to 4.4, ".NOTPARALLEL: compile" made the whole
+build run serially. In 4.4 and later, ".NOTPARALLEL: compile" makes only
+the compile target run serially.
+
+This breaks the build and can lead to e.g. EEx being built before Mix.
+---
+ Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index f6ba18d90e..8bb5bcdc65 100644
+--- a/Makefile
++++ b/Makefile
+@@ -24,7 +24,7 @@ SOURCE_DATE_EPOCH_PATH = lib/elixir/tmp/ebin_reproducible
+ SOURCE_DATE_EPOCH_FILE = $(SOURCE_DATE_EPOCH_PATH)/SOURCE_DATE_EPOCH
+
+ .PHONY: install compile erlang elixir unicode app build_plt clean_plt dialyze test check_reproducible clean clean_residual_files format install_man clean_man docs Docs.zip Precompiled.zip zips
+-.NOTPARALLEL: compile
++.NOTPARALLEL:
+
+ #==> Functions
+
diff --git a/dev-lang/elixir/files/elixir-1.14.5-otp26-tests.patch b/dev-lang/elixir/files/elixir-1.14.5-otp26-tests.patch
new file mode 100644
index 000000000000..4e554cda252a
--- /dev/null
+++ b/dev-lang/elixir/files/elixir-1.14.5-otp26-tests.patch
@@ -0,0 +1,107 @@
+Grabbed as-is from https://github.com/elixir-lang/elixir/commit/54516c5684daa3af7f15477c77fae39e8d0c6482 which was done for 1.15.x
+
+From 54516c5684daa3af7f15477c77fae39e8d0c6482 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Jos=C3=A9=20Valim?= <jose.valim@dashbit.co>
+Date: Sun, 1 Oct 2023 15:46:17 +0200
+Subject: [PATCH] Address tests on Erlang/OTP 26.1, closes #12975
+
+---
+ lib/ex_unit/lib/ex_unit/callbacks.ex | 9 +-----
+ lib/ex_unit/test/ex_unit/formatter_test.exs | 31 +++++++++-----------
+ lib/ex_unit/test/ex_unit/supervised_test.exs | 11 ++-----
+ 3 files changed, 18 insertions(+), 33 deletions(-)
+
+diff --git a/lib/ex_unit/lib/ex_unit/callbacks.ex b/lib/ex_unit/lib/ex_unit/callbacks.ex
+index 060d207516a..2dbe9bd0e4a 100644
+--- a/lib/ex_unit/lib/ex_unit/callbacks.ex
++++ b/lib/ex_unit/lib/ex_unit/callbacks.ex
+@@ -549,14 +549,7 @@ defmodule ExUnit.Callbacks do
+ end
+
+ child_spec = Supervisor.child_spec(child_spec_or_module, opts)
+-
+- case Supervisor.start_child(sup, child_spec) do
+- {:error, {:already_started, _pid}} ->
+- {:error, {:duplicate_child_name, child_spec.id}}
+-
+- other ->
+- other
+- end
++ Supervisor.start_child(sup, child_spec)
+ end
+
+ @doc """
+diff --git a/lib/ex_unit/test/ex_unit/formatter_test.exs b/lib/ex_unit/test/ex_unit/formatter_test.exs
+index afb66a52436..bb9642fbcc4 100644
+--- a/lib/ex_unit/test/ex_unit/formatter_test.exs
++++ b/lib/ex_unit/test/ex_unit/formatter_test.exs
+@@ -491,28 +491,25 @@ defmodule ExUnit.FormatterTest do
+ test "inspect failure" do
+ failure = [{:error, catch_assertion(assert :will_fail == %BadInspect{}), []}]
+
+- message = ~S'''
+- got FunctionClauseError with message:
+-
+- """
+- no function clause matching in Inspect.ExUnit.FormatterTest.BadInspect.inspect/2
+- """
+-
+- while inspecting:
+-
+- %{__struct__: ExUnit.FormatterTest.BadInspect, key: 0}
+-
+- Stacktrace:
+- '''
+-
+- assert format_test_failure(test(), failure, 1, 80, &formatter/2) =~ """
++ assert format_test_failure(test(), failure, 1, 80, &formatter/2) =~ ~s'''
+ 1) world (Hello)
+ test/ex_unit/formatter_test.exs:1
+ Assertion with == failed
+ code: assert :will_fail == %BadInspect{}
+ left: :will_fail
+- right: #Inspect.Error<\n#{message}\
+- """
++ right: #Inspect.Error<
++ got FunctionClauseError with message:
++
++ """
++ no function clause matching in Inspect.ExUnit.FormatterTest.BadInspect.inspect/2
++ """
++
++ while inspecting:
++
++ #{inspect(%BadInspect{}, structs: false)}
++
++ Stacktrace:
++ '''
+ end
+
+ defmodule BadMessage do
+diff --git a/lib/ex_unit/test/ex_unit/supervised_test.exs b/lib/ex_unit/test/ex_unit/supervised_test.exs
+index 577ae6b9676..a02dfe3c0c5 100644
+--- a/lib/ex_unit/test/ex_unit/supervised_test.exs
++++ b/lib/ex_unit/test/ex_unit/supervised_test.exs
+@@ -73,19 +73,14 @@ defmodule ExUnit.SupervisedTest do
+
+ test "starts a supervised process with ID checks" do
+ {:ok, pid} = start_supervised({MyAgent, 0})
++ assert is_pid(pid)
+
+- assert {:error, {:duplicate_child_name, ExUnit.SupervisedTest.MyAgent}} =
+- start_supervised({MyAgent, 0})
+-
+- assert {:error, {{:already_started, ^pid}, _}} = start_supervised({MyAgent, 0}, id: :another)
++ assert {:error, _} = start_supervised({MyAgent, 0})
++ assert {:error, _} = start_supervised({MyAgent, 0}, id: :another)
+
+ assert_raise RuntimeError, ~r"Reason: bad child specification", fn ->
+ start_supervised!(%{id: 1, start: :oops})
+ end
+-
+- assert_raise RuntimeError, ~r"Reason: already started", fn ->
+- start_supervised!({MyAgent, 0}, id: :another)
+- end
+ end
+
+ test "stops a supervised process" do
diff --git a/dev-lang/elixir/files/elixir-1.16.1-skip-tests-requiring-erlang-docs.patch b/dev-lang/elixir/files/elixir-1.16.1-skip-tests-requiring-erlang-docs.patch
new file mode 100644
index 000000000000..187c45a7d902
--- /dev/null
+++ b/dev-lang/elixir/files/elixir-1.16.1-skip-tests-requiring-erlang-docs.patch
@@ -0,0 +1,90 @@
+Upstream-Commit: https://github.com/elixir-lang/elixir/commit/c50863615c0e8ac957e22ae01a6f9af23978c3f9
+
+From c50863615c0e8ac957e22ae01a6f9af23978c3f9 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Jos=C3=A9=20Valim?= <jose.valim@dashbit.co>
+Date: Thu, 8 Feb 2024 08:08:03 +0100
+Subject: [PATCH] Skip tests if Erlang was compiled without docs, closes #13322
+
+---
+ lib/iex/test/iex/helpers_test.exs | 12 +++++++++---
+ lib/iex/test/test_helper.exs | 10 +++++++++-
+ 2 files changed, 18 insertions(+), 4 deletions(-)
+
+diff --git a/lib/iex/test/iex/helpers_test.exs b/lib/iex/test/iex/helpers_test.exs
+index 54f946516ce..171acc72abc 100644
+--- a/lib/iex/test/iex/helpers_test.exs
++++ b/lib/iex/test/iex/helpers_test.exs
+@@ -332,17 +332,20 @@ defmodule IEx.HelpersTest do
+ assert help =~ "Welcome to Interactive Elixir"
+ end
+
++ @tag :erlang_doc
+ test "prints Erlang module documentation" do
+ captured = capture_io(fn -> h(:timer) end)
+ assert captured =~ "This module provides useful functions related to time."
+ end
+
++ @tag :erlang_doc
+ test "prints Erlang module function specs" do
+ captured = capture_io(fn -> h(:timer.sleep() / 1) end)
+ assert captured =~ ":timer.sleep/1"
+ assert captured =~ "-spec sleep(Time) -> ok when Time :: timeout()."
+ end
+
++ @tag :erlang_doc
+ test "handles non-existing Erlang module function" do
+ captured = capture_io(fn -> h(:timer.baz() / 1) end)
+ assert captured =~ "No documentation for :timer.baz was found"
+@@ -1008,13 +1011,15 @@ defmodule IEx.HelpersTest do
+ cleanup_modules([TypeSample])
+ end
+
+- test "prints all types in erlang module" do
++ @tag :erlang_doc
++ test "prints all types in Erlang module" do
+ captured = capture_io(fn -> t(:queue) end)
+ assert captured =~ "-type queue() :: queue(_)"
+ assert captured =~ "-opaque queue(Item)"
+ end
+
+- test "prints single type from erlang module" do
++ @tag :erlang_doc
++ test "prints single type from Erlang module" do
+ captured = capture_io(fn -> t(:erlang.iovec()) end)
+ assert captured =~ "-type iovec() :: [binary()]"
+ assert captured =~ "A list of binaries."
+@@ -1024,7 +1029,8 @@ defmodule IEx.HelpersTest do
+ assert captured =~ "A list of binaries."
+ end
+
+- test "handles non-existing types from erlang module" do
++ @tag :erlang_doc
++ test "handles non-existing types from Erlang module" do
+ captured = capture_io(fn -> t(:erlang.foo()) end)
+ assert captured =~ "No type information for :erlang.foo was found or :erlang.foo is private"
+
+diff --git a/lib/iex/test/test_helper.exs b/lib/iex/test/test_helper.exs
+index f5a55f0aa80..b32c8be4e91 100644
+--- a/lib/iex/test/test_helper.exs
++++ b/lib/iex/test/test_helper.exs
+@@ -7,11 +7,19 @@ IEx.configure(colors: [enabled: false])
+ {line_exclude, line_include} =
+ if line = System.get_env("LINE"), do: {[:test], [line: line]}, else: {[], []}
+
++erlang_doc_exclude =
++ if match?({:docs_v1, _, _, _, _, _, _}, Code.fetch_docs(:array)) do
++ []
++ else
++ IO.puts("Erlang/OTP compiled without docs, some tests are excluded...")
++ [:erlang_doc]
++ end
++
+ ExUnit.start(
+ assert_receive_timeout: assert_timeout,
+ trace: !!System.get_env("TRACE"),
+ include: line_include,
+- exclude: line_exclude
++ exclude: line_exclude ++ erlang_doc_exclude
+ )
+
+ defmodule IEx.Case do
diff --git a/dev-lang/elixir/metadata.xml b/dev-lang/elixir/metadata.xml
index fbe86b3bebe7..10b86bcffd2c 100644
--- a/dev-lang/elixir/metadata.xml
+++ b/dev-lang/elixir/metadata.xml
@@ -1,18 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="person">
- <email>styx.mp@gmail.com</email>
- <name>Mikhail</name>
+ <maintainer type="person" proxied="yes">
+ <email>contact@hacktivis.me</email>
+ <name>Haelwenn (lanodan) Monnier</name>
</maintainer>
- <maintainer type="project">
+ <maintainer type="project" proxied="proxy">
<email>proxy-maint@gentoo.org</email>
<name>Proxy Maintainers</name>
</maintainer>
- <maintainer type="person">
- <email>slyfox@gentoo.org</email>
- <name>Sergei Trofimovich</name>
- </maintainer>
<upstream>
<bugs-to>
https://github.com/elixir-lang/elixir/issues
@@ -23,8 +19,6 @@
<doc lang="en">
http://elixir-lang.org/docs.html
</doc>
- <remote-id type="github">
- elixir-lang/elixir
- </remote-id>
+ <remote-id type="github">elixir-lang/elixir</remote-id>
</upstream>
</pkgmetadata>
diff --git a/dev-lang/elpi/Manifest b/dev-lang/elpi/Manifest
new file mode 100644
index 000000000000..6022c7d0f219
--- /dev/null
+++ b/dev-lang/elpi/Manifest
@@ -0,0 +1,2 @@
+DIST elpi-1.17.0.tar.gz 2607106 BLAKE2B 7e6a2f1305ec69f93f7519bb8ced9e2b3d38106cf71a1506941f0c50e3af4959838fe01a092ddaad49f41de59aac34ff45c972099f1797d86ec2b446475c9391 SHA512 6539593bd4a4ff516f023601d4dbe10cf4c99d2fd99e5b6ed89da0a8d63f8c79fac0c667b11ca77e0ae618ec036c27a7adcefbd19fc26e6d11672b90f412654b
+DIST elpi-1.17.4.tar.gz 2609080 BLAKE2B 5280f0eed17b80abb1ce68613beb57bd9aba900c821b71d5f184f98c0042b69fa016426f35e531a106ae6597bbb11237b56bd38dcf08ed56cbca624f2afbdbe6 SHA512 0a4a85c967d4016c3cf4b6613e561b45b935aef3cec68fd4e3764cd7f64420cf41ce0562804b1647fef9ed2d564da737fabd9a3e42e2b9e70071be6f64a3a611
diff --git a/dev-lang/elpi/elpi-1.17.0.ebuild b/dev-lang/elpi/elpi-1.17.0.ebuild
new file mode 100644
index 000000000000..184849b51e67
--- /dev/null
+++ b/dev-lang/elpi/elpi-1.17.0.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit dune
+
+DESCRIPTION="Embeddable Lambda Prolog Interpreter in OCaml"
+HOMEPAGE="https://github.com/LPCIC/elpi/"
+
+if [[ ${PV} == *9999* ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/LPCIC/${PN}.git"
+else
+ SRC_URI="https://github.com/LPCIC/${PN}/archive/v${PV}.tar.gz
+ -> ${P}.tar.gz"
+ KEYWORDS="~amd64"
+fi
+
+LICENSE="LGPL-2.1+"
+SLOT="0/${PV}"
+IUSE="+ocamlopt test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-lang/ocaml-4.08.0:=
+ >=dev-ml/menhir-20211230:=
+ dev-ml/atd:=
+ dev-ml/ppx_deriving:=
+ dev-ml/ppxlib:=
+ dev-ml/re:=
+ dev-ml/stdlib-shims:=
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ test? (
+ dev-ml/ANSITerminal
+ dev-ml/cmdliner
+ )
+"
+
+DOCS=( AUTHORS.md CHANGES.md ELPI.md INCOMPATIBILITIES.md README.md )
+
+src_install() {
+ dune_src_install
+ einstalldocs
+}
diff --git a/dev-lang/elpi/elpi-1.17.4.ebuild b/dev-lang/elpi/elpi-1.17.4.ebuild
new file mode 100644
index 000000000000..184849b51e67
--- /dev/null
+++ b/dev-lang/elpi/elpi-1.17.4.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit dune
+
+DESCRIPTION="Embeddable Lambda Prolog Interpreter in OCaml"
+HOMEPAGE="https://github.com/LPCIC/elpi/"
+
+if [[ ${PV} == *9999* ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/LPCIC/${PN}.git"
+else
+ SRC_URI="https://github.com/LPCIC/${PN}/archive/v${PV}.tar.gz
+ -> ${P}.tar.gz"
+ KEYWORDS="~amd64"
+fi
+
+LICENSE="LGPL-2.1+"
+SLOT="0/${PV}"
+IUSE="+ocamlopt test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-lang/ocaml-4.08.0:=
+ >=dev-ml/menhir-20211230:=
+ dev-ml/atd:=
+ dev-ml/ppx_deriving:=
+ dev-ml/ppxlib:=
+ dev-ml/re:=
+ dev-ml/stdlib-shims:=
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ test? (
+ dev-ml/ANSITerminal
+ dev-ml/cmdliner
+ )
+"
+
+DOCS=( AUTHORS.md CHANGES.md ELPI.md INCOMPATIBILITIES.md README.md )
+
+src_install() {
+ dune_src_install
+ einstalldocs
+}
diff --git a/dev-lang/elpi/metadata.xml b/dev-lang/elpi/metadata.xml
new file mode 100644
index 000000000000..30a70f111a2f
--- /dev/null
+++ b/dev-lang/elpi/metadata.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+
+<pkgmetadata>
+ <maintainer type="project">
+ <email>ml@gentoo.org</email>
+ <name>ML</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>sci-mathematics@gentoo.org</email>
+ <name>Gentoo Mathematics Project</name>
+ </maintainer>
+ <longdescription>
+ ELPI implements a variant of λProlog enriched with Constraint Handling
+ Rules, a programming language well suited to manipulate syntax trees with
+ binders. ELPI is designed to be embedded into larger applications written
+ in OCaml as an extension language. It comes with an API to drive the
+ interpreter and with an FFI for defining built-in predicates and data
+ types, as well as quotations and similar goodies that are handy to adapt
+ the language to the host application.
+ </longdescription>
+ <upstream>
+ <changelog>https://raw.githubusercontent.com/LPCIC/elpi/master/CHANGES.md</changelog>
+ <bugs-to>https://github.com/LPCIC/elpi/issues/</bugs-to>
+ <remote-id type="github">LPCIC/elpi</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-lang/erlang/Manifest b/dev-lang/erlang/Manifest
index 9b1c6f1f1347..46bf6c6b7422 100644
--- a/dev-lang/erlang/Manifest
+++ b/dev-lang/erlang/Manifest
@@ -1,12 +1,15 @@
-DIST erlang-23.0.4.tar.gz 56394805 BLAKE2B 10a4e9e3084ad2d1bb10fa736d86eb03fa6b249f83b9d06bfef4c37f99ad86dd1415c2fbaa1524cddaf57dd228d25f388fa9fe9f5b4a03ba7477080e11020fb1 SHA512 53d4b7a5e76113bb3a9695a266e58dbebb57887b1eea4e8acb56bb85d194295231d739719d526dfc6d1f0bf745d7f059fdf5ec9dc79859f5b16a75c4d0a6b348
-DIST erlang-23.1.4.tar.gz 56503340 BLAKE2B f4b26aa5882bb3d2218897706734798a80cbb5113008be70b2a0c793a5cc1eb01eb1ace17ae525e19f176e47ffc85b108240b7fec71cf8eedb4d67860ecaa98b SHA512 864b69fc69f3843dfe839faf1c1e86ec505282ec4d86ed1add445998ba28bcc623522471d8d8636a9cf1e24e84f99d5cae3880a4b1171abab9651ef242a55367
-DIST erlang-23.1.5.tar.gz 56508089 BLAKE2B 7784cbed8df68d449cbace6d84b37208b739a3b12fbed1117f05c765883d348e877001f5eba15ffdec5acc47725bf69d06a7f02b48766efa5496a8326fb8eb8c SHA512 dccb863ace1f3c3fd17c848bf21c982338546e2be2a3b81ade35bcefeb4ff75afff28ebe2363ccf7f4680417f83bbeaa51c74274a23621139b5a4be6bb824955
-DIST erlang-23.2.1.tar.gz 56580525 BLAKE2B 4b5d4be9d0501dd2eb5d44357ccc9a169dc3b5742380264a7929e6aebf1d003327b2c109aa7dc4ad668f1576376e54022ff240f41df7af9010184d643eae2371 SHA512 444c19fac295a979321ccde1f516156a25faa79d66437ddf7bc0a197f3fb8d2ddd6c056d565f9b6bc47e8444b8feda790c4844dbe95ec0b300428fb22c4e0531
-DIST erlang-23.2.2.tar.gz 56594755 BLAKE2B 3f5c552d3cd070b36bc7a1112b9541f358001ee4ad49a62ccce3462b02b642d4abc0bf8844e5441168be850f5588cf4ecdbf545fcff60e7746cec637898f2c7e SHA512 26743a7a4b2e31e63c0940ed6fdad64427c22e0f08fc063e1b8639bea6fa89c6b24e9c87ca572475d3ce39a18857ef6143676653cdf97b374656ae49f5892633
-DIST erlang-23.2.tar.gz 56581092 BLAKE2B f3191b99465ab18eaf13c6d15f79ae150fb04337450b3ff145532aab0da229c44c082bb138a79c84860f09107a363c34e2b2505ce38c6c8dea1ede5fbe3ce044 SHA512 3bdb464992387c5a352c11bf9dc49c6a982dac10865d2b668d8db6fb45db15f4d79d38976d04fbbd51568ee9efb8b5295bb06b6fee37b81fde6fa43c51dcc313
-DIST erlang_doc_html_23.0.tar.gz 36238699 BLAKE2B bce5fb1d766d3a795728cf7c00529129690f52e5dbe7363095cb7e63d5331a4dfc05c2042d24f10c7f3facbd187284aa323a92c0ed7515c1750aee4cd890fbd4 SHA512 bd0b1adf8639674d31152024e1351105249c6e6f93f28362e9e4b66ce6daadbe5eef5917a5889c926130e81bd000cfc44895ebaa309bf9a0c1c125713b715927
-DIST erlang_doc_html_23.1.tar.gz 36285075 BLAKE2B e2e24ac4cecfc9c10853fd3718e8e332579a91bf25eaaf9e0fc2044d89bcd6d03fd251d6a8ab64a86439f1244e275ef398701b47933a741d4e64016838db48aa SHA512 c8fecb08344c9c7a4c7b911ac4f73e2d8c0c3778d665098c3377e055346a7ecfcc378bca28dff768c36dc7bf7447308f4fb58273875c22f2d6cd896fd6232656
-DIST erlang_doc_html_23.2.tar.gz 36537148 BLAKE2B b19d3fb5836b50512db6913ccb9116bc06ef4677c9514db89714ac72a9e7569b2c52612c357ccbf9a12610000885cbc8a43cc17f80c533a3c65af89c1b592ba6 SHA512 0d334dfe46ecffd6ff720d176c4514e2d49ba1b5feccd80f8392a8335100a6c289207431d2c0da02043c923de083290f9fd23726a1d1481508acdd7596f67ea4
-DIST erlang_doc_man_23.0.tar.gz 1383486 BLAKE2B 63a9989c26797fe07fbd0ccca0d8425d94bc60a86fa93b5332c8d1f3e12a0071d9e6d4759be73bf44bf35dd14723b9e6707a84ba834e1775bc28aeec1edbe168 SHA512 81575ce7b267f5bb48bd844808e8edd4e373640bbc481372b288602eb9d3c9917e6c7c040c035b63a2f6edf437c3d826d6afdf5801765b51d9edd4a3b2a5b16f
-DIST erlang_doc_man_23.1.tar.gz 1384042 BLAKE2B 914f64d9317e45e22dc0a3025306d36f12eb998734bd15cd29b540f9a848f11c1cf6897f9cd7aea2d2c95ed6ef3e544ee674a9a97a87e0340e4b65e09b0cee6e SHA512 90f026618f45a2a78590f093378e4883c5f442816367eb1691ea4fe7c36694f4a47325e738e6b585195678993bcdefdf4f8180894b16721277d02b2b79aef285
-DIST erlang_doc_man_23.2.tar.gz 1386417 BLAKE2B 91fb2646461330c2f3793e7819e4c77ba9259366098b710fd102ffbcbcf38fa84ad720613313e3c59c1d419aaddd5a1a85d26c5d41a71d6692d428a494f57012 SHA512 464fa2c3608a6c096a241e5fc2cee710ef51394b169e3b3ce3ab5f69d847437c54780d4afc1a799d13f88ea88ac64056b19bff4d927e1e6bbe54a773b0ccd89d
+DIST erlang-25.3.tar.gz 60060354 BLAKE2B c18beb1aa00f88ac303ce2488da6973cd63b4cb3c611d9ee93bdb8a522fa068bfab2307448d085e40c7c6e1b300a1d2b72f0626e8fd236c84617ff031afcb569 SHA512 cf104918917e33db250b48aaad3c098899739358035d764ea2ee1fc9ba7937504190752163ce8430bdbfc576ce2c2533d4f50fc8f0994ff155e3df188a8db99e
+DIST erlang-26.0.tar.gz 61355457 BLAKE2B 4f5abc04b794d2b2b9e27e20be9197a7c81113607a5ca2605c189212eef70db55eee5120eca36426a2c16237f576751605cdc943c7c2f070d68c6cca6585c46b SHA512 732e259f2018102b62a5d8076953a6a78d3e1f1714edde2c306fe863e5377b9a7f87052e03e92df93eea270a608b29ab4e22d5841d1314f9a532dac4aeff5436
+DIST erlang-26.1.2.tar.gz 63932020 BLAKE2B 56c862270398b458106056ea0e86a167b40d769c5b2fd84c39a0ed0c074c00d301145a98ef6e5f4b755d1124005da382ade6d4f0648823cf0e7d662a9b6bdcf2 SHA512 6907bba4ee726582b6344995c73223f725ea628897b34fc807a2a0306536bb15ce55c7fd4da1cb596dc59c9695b3bb6bba59618ca2a7a9a999e183f671656710
+DIST erlang-26.2.1.tar.gz 62435848 BLAKE2B 4e257c73de868b5bbd213a66ece60f29e5231845c5f40b17876b8f042c20ba89bced920ffdbb2a44b890b920d8a147b0a0cb4a2bce66a51e49b720ee794c06c9 SHA512 f4fa0d11ecbd99ca5ef4421abb78ef2aba8ea0f8d19e4aed991c2afcc42bb057a37ae34a416b050fd7ed8ca39ba7cc8b3619ff371bc09f56dfd5b523988a8f8c
+DIST erlang-26.2.2.tar.gz 62440930 BLAKE2B c2746b3eb4ffcd3643803745df3e6474291edfb1bd50a0a7cd858942d89808d8b041afd7d8c9dbd0ac336b71412cad972768a3c11d06908605e8a9521f5f5c11 SHA512 27d89f4ee1c7beccd27348ad0d5d9650cda58614f3c278b0a7cf062bf4efc91bd1c7aecfff55b934c57f69cb30c41ead89b94625616817acb2e5910b95bc80fd
+DIST erlang-26.2.4.tar.gz 62476971 BLAKE2B f3acfb05a569ce0b4cfd9d9a30ac4840845cc285691294c2ff2776c45812b9046d3453700150912128c385458a3afba7dc54ab773611d46de31b4d2744fcdaf6 SHA512 2fa385b5ec93810c984f31e22757fe8614087191adf0f99376702bd15a316237f8abc1b65d40a302d3919cd28afe65fb4086e39638c6c39af165c0c1ee6fb51d
+DIST erlang-26.2.tar.gz 64008902 BLAKE2B 145ade4a05a8c92f9ba848774e927fc0a186aba834b2d4850cbe92f7604aac6136b16e3e6208658220c8c07b906be06263dfc7173f588165bb7bd5b98fe8a162 SHA512 647f38e7a1d2a0e49aee982d9f6461a83df01d6248756eea3cc926c60dd03e82d881534e3ce3374e233a3ab7b0fad7c775a54d0079f4d5b13de8d8a97c7de642
+DIST erlang_doc_html_25.3.tar.gz 37134864 BLAKE2B 86af9f6eacccbdc8e66e1407a29bc70620052f5968f4378df751f89795f98898a057c2e187553e5b938b5a9cc55a223fedb9bc2936cb3ade5f444e05a810f7d0 SHA512 d469f6088a20a840687ceed66b3d4ef3bf9446a00ea490f6bb14e5ec8a0b642ac0ff14243010e45483e9d4d33742525916d05ec93e171fe9f5e0dfbac3733837
+DIST erlang_doc_html_26.0.tar.gz 37434137 BLAKE2B 0a1bd0f4966d90cc5aaa8852b280204d81271af0449a019399dfcbeab4b2427a91fa57e1dafe24c55ee1a7abf5f52c019ca7454f7c2ca8dbe604d60ef437a4e0 SHA512 c11cf064808bee3a9e8334ee597daadfff397bd700622c80affa8df127a53de3cb5685c3338fa6d28b5c7a5c171379e0289f557dc3fc6ab0459ada757219ce3e
+DIST erlang_doc_html_26.1.tar.gz 37562532 BLAKE2B 235841cd644deb5c4d47adf7aa49cdb9be5dcb17154d91b8716ab8dcd8b74ca8f805348879c7ebb45a4b31dfabab772aa9f0d5dd5eb4e573a4a687ed0a93cec2 SHA512 160f208c81cbd8c615d233ad913a2e1ddfac4f3a3368f9b33ddb5202b5bf839116cddce2dbe1c5d7ba38d30083a0b33fe3a4fe5121452057d898be1a4e8950f9
+DIST erlang_doc_html_26.2.tar.gz 37572819 BLAKE2B c9e5dcaf4a282063a58883fc63adb14e4448333e07994542fdf6dfb29cf4c782f3b7a33b4b6543ffa64b2ce9f40fa9482ca798181bd84e00ebaf5a3223d300d4 SHA512 846f42666d190c9c2b4c11048e842f921d2bc9767483b6f54095c3aba0cbea9a0fbe06daac4c4837b371f9653346660704ea957fd9fbb6606e4274897042abaa
+DIST erlang_doc_man_25.3.tar.gz 1719335 BLAKE2B d3d91e5920648ddb5b8375c969586b904d743f1d60acbefddd98577bd11b82246a2f149fdaa8ff1d16e8efc9f3793ce1dbc61efc9bc28c68f50919460d1e8e24 SHA512 9f2e6c4e4a39dd41deb6a2d7b7a04dd374f110bf776c8d08f3139265a8fa00e7c9420e2d2c406231a8d2748bdc65ca7e40ef1d4b9bfe6b06f52a24881ee8747d
+DIST erlang_doc_man_26.0.tar.gz 1742307 BLAKE2B cd52b6e148fd45a1a1b427fa9dccdb7127082f0cfc23a850c519a9dc9e6cc7e0fca3894433d44dcad27e2a8123626b09d86b7f581e503d977f0977ef62a574d8 SHA512 9e3fc06667e633fd1c90f57d86159cbbdbb6105719e3c1ab6733e5190aa48b8c8fbf735172e5763b6893e89a56ec13c0afcdf6c6505de739312b37ff246ed113
+DIST erlang_doc_man_26.1.tar.gz 1745691 BLAKE2B b06532551ab9d02c08a664eeeeae495d706969eed5151a013eb64da962e73d871c6e8a17506bdd854a3ac86caa756f78be0fdcfc76c00be89b8e4564ab881457 SHA512 2129c7c7f60f456dd0322d4fbbf3fc0398f8cdb982bb9450a99d7f45573f685fddd36a0440c4d51b89c0e4f19dc2145d1285b9fcf847c7c8bc3d95b2393c20b9
+DIST erlang_doc_man_26.2.tar.gz 1746046 BLAKE2B 20f3c5203313bc40595f9a0996c1a31c76d9b1da1ba90fd99b8946b23425c13ce11d27fb9b042911a39297c5bceeff098b44082a007cb2373cac253321f4435c SHA512 bdde6687b449391af5144de54e6d4edbaa75065e9f9cf1ec3878a034968785c2b35eb95331cad329fae6656461f1bc9475b68d1ee05af48166aa9c1083f841a0
diff --git a/dev-lang/erlang/erlang-23.0.4.ebuild b/dev-lang/erlang/erlang-23.0.4.ebuild
deleted file mode 100644
index 15f8ee9a7d15..000000000000
--- a/dev-lang/erlang/erlang-23.0.4.ebuild
+++ /dev/null
@@ -1,158 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-WX_GTK_VER="3.0-gtk3"
-
-inherit elisp-common java-pkg-opt-2 systemd wxwidgets
-
-# NOTE: If you need symlinks for binaries please tell maintainers or
-# open up a bug to let it be created.
-
-UPSTREAM_V="$(ver_cut 1-2)"
-
-DESCRIPTION="Erlang programming language, runtime environment and libraries (OTP)"
-HOMEPAGE="https://www.erlang.org/"
-SRC_URI="https://github.com/erlang/otp/archive/OTP-${PV}.tar.gz -> ${P}.tar.gz
- http://erlang.org/download/otp_doc_man_${UPSTREAM_V}.tar.gz -> ${PN}_doc_man_${UPSTREAM_V}.tar.gz
- doc? ( http://erlang.org/download/otp_doc_html_${UPSTREAM_V}.tar.gz -> ${PN}_doc_html_${UPSTREAM_V}.tar.gz )"
-
-LICENSE="Apache-2.0"
-# We use this subslot because Compiled HiPE Code can be loaded on the exact
-# same build of ERTS that was used when compiling the code. See
-# http://erlang.org/doc/system_principles/misc.html for more information.
-SLOT="0/${PV}"
-KEYWORDS="amd64 ~arm ~arm64 ~hppa ~ia64 ppc ppc64 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
-IUSE="doc emacs +hipe java +kpoll libressl odbc sctp ssl systemd tk wxwidgets"
-
-RDEPEND="
- acct-group/epmd
- acct-user/epmd
- sys-libs/ncurses:0
- sys-libs/zlib
- emacs? ( >=app-editors/emacs-23.1:* )
- java? ( >=virtual/jdk-1.8:* )
- odbc? ( dev-db/unixODBC )
- sctp? ( net-misc/lksctp-tools )
- ssl? (
- !libressl? ( >=dev-libs/openssl-0.9.7d:0= )
- libressl? ( dev-libs/libressl:0= )
- )
- systemd? ( sys-apps/systemd )
- wxwidgets? ( x11-libs/wxGTK:${WX_GTK_VER}[X,opengl] )
-"
-DEPEND="${RDEPEND}
- dev-lang/perl
-"
-
-S="${WORKDIR}/otp-OTP-${PV}"
-
-PATCHES=(
- "${FILESDIR}/18.2.1-wx3.0.patch"
- "${FILESDIR}/${PN}-22.0-dont-ignore-LDFLAGS.patch"
-)
-
-SITEFILE=50"${PN}"-gentoo.el
-
-src_prepare() {
- default
-
- ./otp_build autoconf || die
-}
-
-src_configure() {
- use wxwidgets && setup-wxwidgets
-
- local myconf=(
- --disable-builtin-zlib
- $(use_enable hipe)
- $(use_enable kpoll kernel-poll)
- $(use_with java javac)
- $(use_enable sctp)
- $(use_with ssl ssl "${EPREFIX}"/usr)
- $(use_enable ssl dynamic-ssl-lib)
- $(use_enable systemd)
- $(usex wxwidgets "--with-wx-config=${WX_CONFIG}" "--with-wxdir=/dev/null")
- )
- econf "${myconf[@]}"
-}
-
-src_compile() {
- emake
-
- if use emacs ; then
- pushd lib/tools/emacs &>/dev/null || die
- elisp-compile *.el
- popd &>/dev/null || die
- fi
-}
-
-extract_version() {
- local path="$1"
- local var_name="$2"
- sed -n -e "/^${var_name} = \(.*\)$/s::\1:p" "${S}/${path}/vsn.mk" || die "extract_version() failed"
-}
-
-src_install() {
- local erl_libdir_rel="$(get_libdir)/erlang"
- local erl_libdir="/usr/${erl_libdir_rel}"
- local erl_interface_ver="$(extract_version lib/erl_interface EI_VSN)"
- local erl_erts_ver="$(extract_version erts VSN)"
- local my_manpath="/usr/share/${PN}/man"
-
- [[ -z "${erl_erts_ver}" ]] && die "Couldn't determine erts version"
- [[ -z "${erl_interface_ver}" ]] && die "Couldn't determine interface version"
-
- emake INSTALL_PREFIX="${D}" install
-
- if use doc ; then
- # Note: we explicitly install docs into:
- # /usr/share/doc/${PF}/{doc,lib,erts-*}
- # To maintain that layout we gather everything in 'html-docs'.
- # See bug #684376.
- mkdir html-docs || die
- mv "${WORKDIR}"/doc "${WORKDIR}"/lib "${WORKDIR}"/erts-* html-docs/ || die
- local DOCS=( "AUTHORS" "HOWTO"/* "README.md" "CONTRIBUTING.md" html-docs/. )
- docompress -x /usr/share/doc/${PF}
- else
- local DOCS=("README.md")
- fi
-
- einstalldocs
-
- dosym "../${erl_libdir_rel}/bin/erl" /usr/bin/erl
- dosym "../${erl_libdir_rel}/bin/erlc" /usr/bin/erlc
- dosym "../${erl_libdir_rel}/bin/escript" /usr/bin/escript
- dosym "../${erl_libdir_rel}/lib/erl_interface-${erl_interface_ver}/bin/erl_call" /usr/bin/erl_call
- dosym "../${erl_libdir_rel}/erts-${erl_erts_ver}/bin/beam.smp" /usr/bin/beam.smp
-
- ## Clean up the no longer needed files
- rm "${ED}/${erl_libdir}/Install" || die
-
- insinto "${my_manpath}"
- doins -r "${WORKDIR}"/man/*
- # extend MANPATH, so the normal man command can find it
- # see bug 189639
- newenvd - "90erlang" <<-_EOF_
- MANPATH="${my_manpath}"
- _EOF_
-
- if use emacs ; then
- elisp-install erlang lib/tools/emacs/*.{el,elc}
- sed -e "s:/usr/share:${EPREFIX}/usr/share:g" \
- "${FILESDIR}/${SITEFILE}" > "${T}/${SITEFILE}" || die
- elisp-site-file-install "${T}/${SITEFILE}"
- fi
-
- newinitd "${FILESDIR}"/epmd.init-r2 epmd
- newconfd "${FILESDIR}"/epmd.confd-r2 epmd
- use systemd && systemd_newunit "${FILESDIR}"/epmd.service-r1 epmd.service
-}
-
-pkg_postinst() {
- use emacs && elisp-site-regen
-}
-
-pkg_postrm() {
- use emacs && elisp-site-regen
-}
diff --git a/dev-lang/erlang/erlang-23.2.ebuild b/dev-lang/erlang/erlang-23.2.ebuild
deleted file mode 100644
index 3c1427ccf895..000000000000
--- a/dev-lang/erlang/erlang-23.2.ebuild
+++ /dev/null
@@ -1,159 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-WX_GTK_VER="3.0-gtk3"
-
-inherit elisp-common java-pkg-opt-2 systemd wxwidgets
-
-# NOTE: If you need symlinks for binaries please tell maintainers or
-# open up a bug to let it be created.
-
-UPSTREAM_V="$(ver_cut 1-2)"
-
-DESCRIPTION="Erlang programming language, runtime environment and libraries (OTP)"
-HOMEPAGE="https://www.erlang.org/"
-SRC_URI="https://github.com/erlang/otp/archive/OTP-${PV}.tar.gz -> ${P}.tar.gz
- http://erlang.org/download/otp_doc_man_${UPSTREAM_V}.tar.gz -> ${PN}_doc_man_${UPSTREAM_V}.tar.gz
- doc? ( http://erlang.org/download/otp_doc_html_${UPSTREAM_V}.tar.gz -> ${PN}_doc_html_${UPSTREAM_V}.tar.gz )"
-
-LICENSE="Apache-2.0"
-# We use this subslot because Compiled HiPE Code can be loaded on the exact
-# same build of ERTS that was used when compiling the code. See
-# http://erlang.org/doc/system_principles/misc.html for more information.
-SLOT="0/${PV}"
-KEYWORDS="amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
-IUSE="doc emacs +hipe java +kpoll libressl odbc sctp ssl systemd tk wxwidgets"
-
-RDEPEND="
- acct-group/epmd
- acct-user/epmd
- sys-libs/ncurses:0
- sys-libs/zlib
- emacs? ( >=app-editors/emacs-23.1:* )
- java? ( >=virtual/jdk-1.8:* )
- odbc? ( dev-db/unixODBC )
- sctp? ( net-misc/lksctp-tools )
- ssl? (
- !libressl? ( >=dev-libs/openssl-0.9.7d:0= )
- libressl? ( dev-libs/libressl:0= )
- )
- systemd? ( sys-apps/systemd )
- wxwidgets? ( x11-libs/wxGTK:${WX_GTK_VER}[X,opengl] )
-"
-DEPEND="${RDEPEND}
- dev-lang/perl
-"
-
-S="${WORKDIR}/otp-OTP-${PV}"
-
-PATCHES=(
- "${FILESDIR}"/18.2.1-wx3.0.patch
- "${FILESDIR}"/${PN}-22.0-dont-ignore-LDFLAGS.patch
- "${FILESDIR}"/${PN}-23.1.2-ac2.70.patch
-)
-
-SITEFILE=50"${PN}"-gentoo.el
-
-src_prepare() {
- default
-
- ./otp_build autoconf || die
-}
-
-src_configure() {
- use wxwidgets && setup-wxwidgets
-
- local myconf=(
- --disable-builtin-zlib
- $(use_enable hipe)
- $(use_enable kpoll kernel-poll)
- $(use_with java javac)
- $(use_enable sctp)
- $(use_with ssl ssl "${EPREFIX}"/usr)
- $(use_enable ssl dynamic-ssl-lib)
- $(use_enable systemd)
- $(usex wxwidgets "--with-wx-config=${WX_CONFIG}" "--with-wxdir=/dev/null")
- )
- econf "${myconf[@]}"
-}
-
-src_compile() {
- emake
-
- if use emacs ; then
- pushd lib/tools/emacs &>/dev/null || die
- elisp-compile *.el
- popd &>/dev/null || die
- fi
-}
-
-extract_version() {
- local path="$1"
- local var_name="$2"
- sed -n -e "/^${var_name} = \(.*\)$/s::\1:p" "${S}/${path}/vsn.mk" || die "extract_version() failed"
-}
-
-src_install() {
- local erl_libdir_rel="$(get_libdir)/erlang"
- local erl_libdir="/usr/${erl_libdir_rel}"
- local erl_interface_ver="$(extract_version lib/erl_interface EI_VSN)"
- local erl_erts_ver="$(extract_version erts VSN)"
- local my_manpath="/usr/share/${PN}/man"
-
- [[ -z "${erl_erts_ver}" ]] && die "Couldn't determine erts version"
- [[ -z "${erl_interface_ver}" ]] && die "Couldn't determine interface version"
-
- emake INSTALL_PREFIX="${D}" install
-
- if use doc ; then
- # Note: we explicitly install docs into:
- # /usr/share/doc/${PF}/{doc,lib,erts-*}
- # To maintain that layout we gather everything in 'html-docs'.
- # See bug #684376.
- mkdir html-docs || die
- mv "${WORKDIR}"/doc "${WORKDIR}"/lib "${WORKDIR}"/erts-* html-docs/ || die
- local DOCS=( "AUTHORS" "HOWTO"/* "README.md" "CONTRIBUTING.md" html-docs/. )
- docompress -x /usr/share/doc/${PF}
- else
- local DOCS=("README.md")
- fi
-
- einstalldocs
-
- dosym "../${erl_libdir_rel}/bin/erl" /usr/bin/erl
- dosym "../${erl_libdir_rel}/bin/erlc" /usr/bin/erlc
- dosym "../${erl_libdir_rel}/bin/escript" /usr/bin/escript
- dosym "../${erl_libdir_rel}/lib/erl_interface-${erl_interface_ver}/bin/erl_call" /usr/bin/erl_call
- dosym "../${erl_libdir_rel}/erts-${erl_erts_ver}/bin/beam.smp" /usr/bin/beam.smp
-
- ## Clean up the no longer needed files
- rm "${ED}/${erl_libdir}/Install" || die
-
- insinto "${my_manpath}"
- doins -r "${WORKDIR}"/man/*
- # extend MANPATH, so the normal man command can find it
- # see bug 189639
- newenvd - "90erlang" <<-_EOF_
- MANPATH="${my_manpath}"
- _EOF_
-
- if use emacs ; then
- elisp-install erlang lib/tools/emacs/*.{el,elc}
- sed -e "s:/usr/share:${EPREFIX}/usr/share:g" \
- "${FILESDIR}/${SITEFILE}" > "${T}/${SITEFILE}" || die
- elisp-site-file-install "${T}/${SITEFILE}"
- fi
-
- newinitd "${FILESDIR}"/epmd.init-r2 epmd
- newconfd "${FILESDIR}"/epmd.confd-r2 epmd
- use systemd && systemd_newunit "${FILESDIR}"/epmd.service-r1 epmd.service
-}
-
-pkg_postinst() {
- use emacs && elisp-site-regen
-}
-
-pkg_postrm() {
- use emacs && elisp-site-regen
-}
diff --git a/dev-lang/erlang/erlang-23.1.4.ebuild b/dev-lang/erlang/erlang-25.3.ebuild
index 27ebfc6b45ee..554952363897 100644
--- a/dev-lang/erlang/erlang-23.1.4.ebuild
+++ b/dev-lang/erlang/erlang-25.3.ebuild
@@ -1,10 +1,10 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
WX_GTK_VER="3.0-gtk3"
-inherit elisp-common java-pkg-opt-2 systemd wxwidgets
+inherit autotools elisp-common flag-o-matic java-pkg-opt-2 systemd toolchain-funcs wxwidgets
# NOTE: If you need symlinks for binaries please tell maintainers or
# open up a bug to let it be created.
@@ -14,16 +14,16 @@ UPSTREAM_V="$(ver_cut 1-2)"
DESCRIPTION="Erlang programming language, runtime environment and libraries (OTP)"
HOMEPAGE="https://www.erlang.org/"
SRC_URI="https://github.com/erlang/otp/archive/OTP-${PV}.tar.gz -> ${P}.tar.gz
- http://erlang.org/download/otp_doc_man_${UPSTREAM_V}.tar.gz -> ${PN}_doc_man_${UPSTREAM_V}.tar.gz
- doc? ( http://erlang.org/download/otp_doc_html_${UPSTREAM_V}.tar.gz -> ${PN}_doc_html_${UPSTREAM_V}.tar.gz )"
+ https://github.com/erlang/otp/releases/download/OTP-${UPSTREAM_V}/otp_doc_man_${UPSTREAM_V}.tar.gz -> ${PN}_doc_man_${UPSTREAM_V}.tar.gz
+ doc? ( https://github.com/erlang/otp/releases/download/OTP-${UPSTREAM_V}/otp_doc_html_${UPSTREAM_V}.tar.gz -> ${PN}_doc_html_${UPSTREAM_V}.tar.gz )"
LICENSE="Apache-2.0"
# We use this subslot because Compiled HiPE Code can be loaded on the exact
# same build of ERTS that was used when compiling the code. See
# http://erlang.org/doc/system_principles/misc.html for more information.
SLOT="0/${PV}"
-KEYWORDS="amd64 ~arm ~arm64 ~hppa ~ia64 ppc ppc64 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
-IUSE="doc emacs +hipe java +kpoll libressl odbc sctp ssl systemd tk wxwidgets"
+KEYWORDS="amd64 ~arm ~arm64 ~hppa ~ia64 ppc ppc64 ~riscv sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
+IUSE="doc emacs java +kpoll odbc sctp ssl systemd tk wxwidgets"
RDEPEND="
acct-group/epmd
@@ -34,10 +34,7 @@ RDEPEND="
java? ( >=virtual/jdk-1.8:* )
odbc? ( dev-db/unixODBC )
sctp? ( net-misc/lksctp-tools )
- ssl? (
- !libressl? ( >=dev-libs/openssl-0.9.7d:0= )
- libressl? ( dev-libs/libressl:0= )
- )
+ ssl? ( >=dev-libs/openssl-0.9.7d:0= )
systemd? ( sys-apps/systemd )
wxwidgets? ( x11-libs/wxGTK:${WX_GTK_VER}[X,opengl] )
"
@@ -48,9 +45,9 @@ DEPEND="${RDEPEND}
S="${WORKDIR}/otp-OTP-${PV}"
PATCHES=(
- "${FILESDIR}"/18.2.1-wx3.0.patch
"${FILESDIR}"/${PN}-22.0-dont-ignore-LDFLAGS.patch
- "${FILESDIR}"/${PN}-23.1.2-ac2.70.patch
+ "${FILESDIR}"/${PN}-24.0.2-serial-configure.patch
+ "${FILESDIR}"/${PN}-25.1.2-c99.patch # Bug #882887
)
SITEFILE=50"${PN}"-gentoo.el
@@ -58,7 +55,19 @@ SITEFILE=50"${PN}"-gentoo.el
src_prepare() {
default
- ./otp_build autoconf || die
+ tc-export AR CPP CXX LD
+
+ # bug #797886: erlang's VM does unsafe casts for ints
+ # to pointers and back. This breaks on gcc-11 -flto.
+ append-flags -fno-strict-aliasing
+
+ # Ensure that we use erl_interface's libei.a, and not the system
+ # libei.so from dev-libs/libei. Bug #912888.
+ sed -i 's/-lei$/-l:libei.a/' \
+ "${S}"/lib/odbc/c_src/Makefile.in || die
+ (cd "${S}"/lib/odbc &&
+ eautoconf -B "${S}"/make/autoconf &&
+ eautoheader -B "${S}"/make/autoconf) || die
}
src_configure() {
@@ -66,11 +75,14 @@ src_configure() {
local myconf=(
--disable-builtin-zlib
- $(use_enable hipe)
+
+ # don't search for static zlib
+ --with-ssl-zlib=no
+
$(use_enable kpoll kernel-poll)
$(use_with java javac)
$(use_enable sctp)
- $(use_with ssl ssl "${EPREFIX}"/usr)
+ $(use_with ssl ssl)
$(use_enable ssl dynamic-ssl-lib)
$(use_enable systemd)
$(usex wxwidgets "--with-wx-config=${WX_CONFIG}" "--with-wxdir=/dev/null")
@@ -81,6 +93,10 @@ src_configure() {
src_compile() {
emake
+ if use doc ; then
+ emake docs DOC_TARGETS=chunks
+ fi
+
if use emacs ; then
pushd lib/tools/emacs &>/dev/null || die
elisp-compile *.el
@@ -107,6 +123,8 @@ src_install() {
emake INSTALL_PREFIX="${D}" install
if use doc ; then
+ emake INSTALL_PREFIX="${D}" install-docs DOC_TARGETS=chunks
+
# Note: we explicitly install docs into:
# /usr/share/doc/${PF}/{doc,lib,erts-*}
# To maintain that layout we gather everything in 'html-docs'.
@@ -145,11 +163,16 @@ src_install() {
elisp-site-file-install "${T}/${SITEFILE}"
fi
- newinitd "${FILESDIR}"/epmd.init-r2 epmd
- newconfd "${FILESDIR}"/epmd.confd-r2 epmd
+ newinitd "${FILESDIR}"/epmd.init-r3 epmd
use systemd && systemd_newunit "${FILESDIR}"/epmd.service-r1 epmd.service
}
+src_test() {
+ # Only run a subset of tests to test that everything was built
+ # successfully, otherwise we will be here for a long time.
+ emake kernel_test ARGS="-suite os_SUITE"
+}
+
pkg_postinst() {
use emacs && elisp-site-regen
}
diff --git a/dev-lang/erlang/erlang-23.2.2.ebuild b/dev-lang/erlang/erlang-26.0.ebuild
index e78f4f36b069..69fd2d8496d2 100644
--- a/dev-lang/erlang/erlang-23.2.2.ebuild
+++ b/dev-lang/erlang/erlang-26.0.ebuild
@@ -1,10 +1,10 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
WX_GTK_VER="3.0-gtk3"
-inherit elisp-common java-pkg-opt-2 systemd wxwidgets
+inherit autotools elisp-common flag-o-matic java-pkg-opt-2 systemd toolchain-funcs wxwidgets
# NOTE: If you need symlinks for binaries please tell maintainers or
# open up a bug to let it be created.
@@ -14,16 +14,16 @@ UPSTREAM_V="$(ver_cut 1-2)"
DESCRIPTION="Erlang programming language, runtime environment and libraries (OTP)"
HOMEPAGE="https://www.erlang.org/"
SRC_URI="https://github.com/erlang/otp/archive/OTP-${PV}.tar.gz -> ${P}.tar.gz
- http://erlang.org/download/otp_doc_man_${UPSTREAM_V}.tar.gz -> ${PN}_doc_man_${UPSTREAM_V}.tar.gz
- doc? ( http://erlang.org/download/otp_doc_html_${UPSTREAM_V}.tar.gz -> ${PN}_doc_html_${UPSTREAM_V}.tar.gz )"
+ https://github.com/erlang/otp/releases/download/OTP-${UPSTREAM_V}/otp_doc_man_${UPSTREAM_V}.tar.gz -> ${PN}_doc_man_${UPSTREAM_V}.tar.gz
+ doc? ( https://github.com/erlang/otp/releases/download/OTP-${UPSTREAM_V}/otp_doc_html_${UPSTREAM_V}.tar.gz -> ${PN}_doc_html_${UPSTREAM_V}.tar.gz )"
LICENSE="Apache-2.0"
# We use this subslot because Compiled HiPE Code can be loaded on the exact
# same build of ERTS that was used when compiling the code. See
# http://erlang.org/doc/system_principles/misc.html for more information.
SLOT="0/${PV}"
-KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
-IUSE="doc emacs +hipe java +kpoll libressl odbc sctp ssl systemd tk wxwidgets"
+KEYWORDS="amd64 ~arm ~arm64 ~hppa ~ia64 ppc ppc64 ~riscv sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
+IUSE="doc emacs java +kpoll odbc sctp ssl systemd tk wxwidgets"
RDEPEND="
acct-group/epmd
@@ -34,10 +34,7 @@ RDEPEND="
java? ( >=virtual/jdk-1.8:* )
odbc? ( dev-db/unixODBC )
sctp? ( net-misc/lksctp-tools )
- ssl? (
- !libressl? ( >=dev-libs/openssl-0.9.7d:0= )
- libressl? ( dev-libs/libressl:0= )
- )
+ ssl? ( >=dev-libs/openssl-0.9.7d:0= )
systemd? ( sys-apps/systemd )
wxwidgets? ( x11-libs/wxGTK:${WX_GTK_VER}[X,opengl] )
"
@@ -48,8 +45,9 @@ DEPEND="${RDEPEND}
S="${WORKDIR}/otp-OTP-${PV}"
PATCHES=(
- "${FILESDIR}"/18.2.1-wx3.0.patch
"${FILESDIR}"/${PN}-22.0-dont-ignore-LDFLAGS.patch
+ "${FILESDIR}"/${PN}-24.0.2-serial-configure.patch
+ "${FILESDIR}"/${PN}-25.1.2-c99.patch # Bug #882887
)
SITEFILE=50"${PN}"-gentoo.el
@@ -57,7 +55,19 @@ SITEFILE=50"${PN}"-gentoo.el
src_prepare() {
default
- ./otp_build autoconf || die
+ tc-export AR CPP CXX LD
+
+ # bug #797886: erlang's VM does unsafe casts for ints
+ # to pointers and back. This breaks on gcc-11 -flto.
+ append-flags -fno-strict-aliasing
+
+ # Ensure that we use erl_interface's libei.a, and not the system
+ # libei.so from dev-libs/libei. Bug #912888.
+ sed -i 's/-lei$/-l:libei.a/' \
+ "${S}"/lib/odbc/c_src/Makefile.in || die
+ (cd "${S}"/lib/odbc &&
+ eautoconf -B "${S}"/make/autoconf &&
+ eautoheader -B "${S}"/make/autoconf) || die
}
src_configure() {
@@ -65,11 +75,14 @@ src_configure() {
local myconf=(
--disable-builtin-zlib
- $(use_enable hipe)
+
+ # don't search for static zlib
+ --with-ssl-zlib=no
+
$(use_enable kpoll kernel-poll)
$(use_with java javac)
$(use_enable sctp)
- $(use_with ssl ssl "${EPREFIX}"/usr)
+ $(use_with ssl ssl)
$(use_enable ssl dynamic-ssl-lib)
$(use_enable systemd)
$(usex wxwidgets "--with-wx-config=${WX_CONFIG}" "--with-wxdir=/dev/null")
@@ -80,6 +93,10 @@ src_configure() {
src_compile() {
emake
+ if use doc ; then
+ emake docs DOC_TARGETS=chunks
+ fi
+
if use emacs ; then
pushd lib/tools/emacs &>/dev/null || die
elisp-compile *.el
@@ -106,6 +123,8 @@ src_install() {
emake INSTALL_PREFIX="${D}" install
if use doc ; then
+ emake INSTALL_PREFIX="${D}" install-docs DOC_TARGETS=chunks
+
# Note: we explicitly install docs into:
# /usr/share/doc/${PF}/{doc,lib,erts-*}
# To maintain that layout we gather everything in 'html-docs'.
@@ -144,11 +163,16 @@ src_install() {
elisp-site-file-install "${T}/${SITEFILE}"
fi
- newinitd "${FILESDIR}"/epmd.init-r2 epmd
- newconfd "${FILESDIR}"/epmd.confd-r2 epmd
+ newinitd "${FILESDIR}"/epmd.init-r3 epmd
use systemd && systemd_newunit "${FILESDIR}"/epmd.service-r1 epmd.service
}
+src_test() {
+ # Only run a subset of tests to test that everything was built
+ # successfully, otherwise we will be here for a long time.
+ emake kernel_test ARGS="-suite os_SUITE"
+}
+
pkg_postinst() {
use emacs && elisp-site-regen
}
diff --git a/dev-lang/erlang/erlang-23.2.1.ebuild b/dev-lang/erlang/erlang-26.1.2.ebuild
index e266bd5246c6..1f48b8bb0ef4 100644
--- a/dev-lang/erlang/erlang-23.2.1.ebuild
+++ b/dev-lang/erlang/erlang-26.1.2.ebuild
@@ -1,10 +1,10 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
-WX_GTK_VER="3.0-gtk3"
+EAPI=8
+WX_GTK_VER="3.2-gtk3"
-inherit elisp-common java-pkg-opt-2 systemd wxwidgets
+inherit autotools elisp-common flag-o-matic java-pkg-opt-2 systemd toolchain-funcs wxwidgets
# NOTE: If you need symlinks for binaries please tell maintainers or
# open up a bug to let it be created.
@@ -14,16 +14,16 @@ UPSTREAM_V="$(ver_cut 1-2)"
DESCRIPTION="Erlang programming language, runtime environment and libraries (OTP)"
HOMEPAGE="https://www.erlang.org/"
SRC_URI="https://github.com/erlang/otp/archive/OTP-${PV}.tar.gz -> ${P}.tar.gz
- http://erlang.org/download/otp_doc_man_${UPSTREAM_V}.tar.gz -> ${PN}_doc_man_${UPSTREAM_V}.tar.gz
- doc? ( http://erlang.org/download/otp_doc_html_${UPSTREAM_V}.tar.gz -> ${PN}_doc_html_${UPSTREAM_V}.tar.gz )"
+ https://github.com/erlang/otp/releases/download/OTP-${UPSTREAM_V}/otp_doc_man_${UPSTREAM_V}.tar.gz -> ${PN}_doc_man_${UPSTREAM_V}.tar.gz
+ doc? ( https://github.com/erlang/otp/releases/download/OTP-${UPSTREAM_V}/otp_doc_html_${UPSTREAM_V}.tar.gz -> ${PN}_doc_html_${UPSTREAM_V}.tar.gz )"
LICENSE="Apache-2.0"
# We use this subslot because Compiled HiPE Code can be loaded on the exact
# same build of ERTS that was used when compiling the code. See
# http://erlang.org/doc/system_principles/misc.html for more information.
SLOT="0/${PV}"
-KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
-IUSE="doc emacs +hipe java +kpoll libressl odbc sctp ssl systemd tk wxwidgets"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
+IUSE="doc emacs java +kpoll odbc sctp ssl systemd tk wxwidgets"
RDEPEND="
acct-group/epmd
@@ -34,10 +34,7 @@ RDEPEND="
java? ( >=virtual/jdk-1.8:* )
odbc? ( dev-db/unixODBC )
sctp? ( net-misc/lksctp-tools )
- ssl? (
- !libressl? ( >=dev-libs/openssl-0.9.7d:0= )
- libressl? ( dev-libs/libressl:0= )
- )
+ ssl? ( >=dev-libs/openssl-0.9.7d:0= )
systemd? ( sys-apps/systemd )
wxwidgets? ( x11-libs/wxGTK:${WX_GTK_VER}[X,opengl] )
"
@@ -48,9 +45,9 @@ DEPEND="${RDEPEND}
S="${WORKDIR}/otp-OTP-${PV}"
PATCHES=(
- "${FILESDIR}"/18.2.1-wx3.0.patch
"${FILESDIR}"/${PN}-22.0-dont-ignore-LDFLAGS.patch
- "${FILESDIR}"/${PN}-23.1.2-ac2.70.patch
+ "${FILESDIR}"/${PN}-24.0.2-serial-configure.patch
+ "${FILESDIR}"/${PN}-25.1.2-c99.patch # Bug #882887
)
SITEFILE=50"${PN}"-gentoo.el
@@ -58,7 +55,19 @@ SITEFILE=50"${PN}"-gentoo.el
src_prepare() {
default
- ./otp_build autoconf || die
+ tc-export AR CPP CXX LD
+
+ # bug #797886: erlang's VM does unsafe casts for ints
+ # to pointers and back. This breaks on gcc-11 -flto.
+ append-flags -fno-strict-aliasing
+
+ # Ensure that we use erl_interface's libei.a, and not the system
+ # libei.so from dev-libs/libei. Bug #912888.
+ sed -i 's/-lei$/-l:libei.a/' \
+ "${S}"/lib/odbc/c_src/Makefile.in || die
+ (cd "${S}"/lib/odbc &&
+ eautoconf -B "${S}"/make/autoconf &&
+ eautoheader -B "${S}"/make/autoconf) || die
}
src_configure() {
@@ -66,11 +75,14 @@ src_configure() {
local myconf=(
--disable-builtin-zlib
- $(use_enable hipe)
+
+ # don't search for static zlib
+ --with-ssl-zlib=no
+
$(use_enable kpoll kernel-poll)
$(use_with java javac)
$(use_enable sctp)
- $(use_with ssl ssl "${EPREFIX}"/usr)
+ $(use_with ssl ssl)
$(use_enable ssl dynamic-ssl-lib)
$(use_enable systemd)
$(usex wxwidgets "--with-wx-config=${WX_CONFIG}" "--with-wxdir=/dev/null")
@@ -81,6 +93,10 @@ src_configure() {
src_compile() {
emake
+ if use doc ; then
+ emake docs DOC_TARGETS=chunks
+ fi
+
if use emacs ; then
pushd lib/tools/emacs &>/dev/null || die
elisp-compile *.el
@@ -107,6 +123,8 @@ src_install() {
emake INSTALL_PREFIX="${D}" install
if use doc ; then
+ emake INSTALL_PREFIX="${D}" install-docs DOC_TARGETS=chunks
+
# Note: we explicitly install docs into:
# /usr/share/doc/${PF}/{doc,lib,erts-*}
# To maintain that layout we gather everything in 'html-docs'.
@@ -145,11 +163,16 @@ src_install() {
elisp-site-file-install "${T}/${SITEFILE}"
fi
- newinitd "${FILESDIR}"/epmd.init-r2 epmd
- newconfd "${FILESDIR}"/epmd.confd-r2 epmd
+ newinitd "${FILESDIR}"/epmd.init-r3 epmd
use systemd && systemd_newunit "${FILESDIR}"/epmd.service-r1 epmd.service
}
+src_test() {
+ # Only run a subset of tests to test that everything was built
+ # successfully, otherwise we will be here for a long time.
+ emake kernel_test ARGS="-suite os_SUITE"
+}
+
pkg_postinst() {
use emacs && elisp-site-regen
}
diff --git a/dev-lang/erlang/erlang-23.1.5.ebuild b/dev-lang/erlang/erlang-26.2.1.ebuild
index 27ebfc6b45ee..a59eaf942aa4 100644
--- a/dev-lang/erlang/erlang-23.1.5.ebuild
+++ b/dev-lang/erlang/erlang-26.2.1.ebuild
@@ -1,29 +1,26 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
-WX_GTK_VER="3.0-gtk3"
+EAPI=8
+WX_GTK_VER="3.2-gtk3"
-inherit elisp-common java-pkg-opt-2 systemd wxwidgets
-
-# NOTE: If you need symlinks for binaries please tell maintainers or
-# open up a bug to let it be created.
+inherit autotools elisp-common flag-o-matic java-pkg-opt-2 systemd toolchain-funcs wxwidgets
UPSTREAM_V="$(ver_cut 1-2)"
DESCRIPTION="Erlang programming language, runtime environment and libraries (OTP)"
HOMEPAGE="https://www.erlang.org/"
SRC_URI="https://github.com/erlang/otp/archive/OTP-${PV}.tar.gz -> ${P}.tar.gz
- http://erlang.org/download/otp_doc_man_${UPSTREAM_V}.tar.gz -> ${PN}_doc_man_${UPSTREAM_V}.tar.gz
- doc? ( http://erlang.org/download/otp_doc_html_${UPSTREAM_V}.tar.gz -> ${PN}_doc_html_${UPSTREAM_V}.tar.gz )"
+ https://github.com/erlang/otp/releases/download/OTP-${UPSTREAM_V}/otp_doc_man_${UPSTREAM_V}.tar.gz -> ${PN}_doc_man_${UPSTREAM_V}.tar.gz
+ doc? ( https://github.com/erlang/otp/releases/download/OTP-${UPSTREAM_V}/otp_doc_html_${UPSTREAM_V}.tar.gz -> ${PN}_doc_html_${UPSTREAM_V}.tar.gz )"
LICENSE="Apache-2.0"
# We use this subslot because Compiled HiPE Code can be loaded on the exact
# same build of ERTS that was used when compiling the code. See
# http://erlang.org/doc/system_principles/misc.html for more information.
SLOT="0/${PV}"
-KEYWORDS="amd64 ~arm ~arm64 ~hppa ~ia64 ppc ppc64 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
-IUSE="doc emacs +hipe java +kpoll libressl odbc sctp ssl systemd tk wxwidgets"
+KEYWORDS="amd64 ~arm ~arm64 ~hppa ~ia64 ppc ppc64 ~riscv sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
+IUSE="doc emacs java +kpoll odbc sctp ssl systemd tk wxwidgets"
RDEPEND="
acct-group/epmd
@@ -34,12 +31,12 @@ RDEPEND="
java? ( >=virtual/jdk-1.8:* )
odbc? ( dev-db/unixODBC )
sctp? ( net-misc/lksctp-tools )
- ssl? (
- !libressl? ( >=dev-libs/openssl-0.9.7d:0= )
- libressl? ( dev-libs/libressl:0= )
- )
+ ssl? ( >=dev-libs/openssl-0.9.7d:0= )
systemd? ( sys-apps/systemd )
- wxwidgets? ( x11-libs/wxGTK:${WX_GTK_VER}[X,opengl] )
+ wxwidgets? (
+ dev-libs/glib:2
+ x11-libs/wxGTK:${WX_GTK_VER}[X,opengl]
+ )
"
DEPEND="${RDEPEND}
dev-lang/perl
@@ -48,9 +45,9 @@ DEPEND="${RDEPEND}
S="${WORKDIR}/otp-OTP-${PV}"
PATCHES=(
- "${FILESDIR}"/18.2.1-wx3.0.patch
"${FILESDIR}"/${PN}-22.0-dont-ignore-LDFLAGS.patch
- "${FILESDIR}"/${PN}-23.1.2-ac2.70.patch
+ "${FILESDIR}"/${PN}-24.0.2-serial-configure.patch
+ "${FILESDIR}"/${PN}-25.1.2-c99.patch # Bug #882887
)
SITEFILE=50"${PN}"-gentoo.el
@@ -58,7 +55,19 @@ SITEFILE=50"${PN}"-gentoo.el
src_prepare() {
default
- ./otp_build autoconf || die
+ tc-export AR CPP CXX LD
+
+ # bug #797886: erlang's VM does unsafe casts for ints
+ # to pointers and back. This breaks on gcc-11 -flto.
+ append-flags -fno-strict-aliasing
+
+ # Ensure that we use erl_interface's libei.a, and not the system
+ # libei.so from dev-libs/libei. Bug #912888.
+ sed -i 's/-lei$/-l:libei.a/' \
+ "${S}"/lib/odbc/c_src/Makefile.in || die
+ (cd "${S}"/lib/odbc &&
+ eautoconf -B "${S}"/make/autoconf &&
+ eautoheader -B "${S}"/make/autoconf) || die
}
src_configure() {
@@ -66,11 +75,15 @@ src_configure() {
local myconf=(
--disable-builtin-zlib
- $(use_enable hipe)
+
+ # don't search for static zlib
+ --with-ssl-zlib=no
+
$(use_enable kpoll kernel-poll)
$(use_with java javac)
+ $(use_with odbc)
$(use_enable sctp)
- $(use_with ssl ssl "${EPREFIX}"/usr)
+ $(use_with ssl ssl)
$(use_enable ssl dynamic-ssl-lib)
$(use_enable systemd)
$(usex wxwidgets "--with-wx-config=${WX_CONFIG}" "--with-wxdir=/dev/null")
@@ -81,6 +94,10 @@ src_configure() {
src_compile() {
emake
+ if use doc ; then
+ emake docs DOC_TARGETS=chunks
+ fi
+
if use emacs ; then
pushd lib/tools/emacs &>/dev/null || die
elisp-compile *.el
@@ -107,6 +124,8 @@ src_install() {
emake INSTALL_PREFIX="${D}" install
if use doc ; then
+ emake INSTALL_PREFIX="${D}" install-docs DOC_TARGETS=chunks
+
# Note: we explicitly install docs into:
# /usr/share/doc/${PF}/{doc,lib,erts-*}
# To maintain that layout we gather everything in 'html-docs'.
@@ -145,11 +164,16 @@ src_install() {
elisp-site-file-install "${T}/${SITEFILE}"
fi
- newinitd "${FILESDIR}"/epmd.init-r2 epmd
- newconfd "${FILESDIR}"/epmd.confd-r2 epmd
+ newinitd "${FILESDIR}"/epmd.init-r3 epmd
use systemd && systemd_newunit "${FILESDIR}"/epmd.service-r1 epmd.service
}
+src_test() {
+ # Only run a subset of tests to test that everything was built
+ # successfully, otherwise we will be here for a long time.
+ emake kernel_test ARGS="-suite os_SUITE"
+}
+
pkg_postinst() {
use emacs && elisp-site-regen
}
diff --git a/dev-lang/erlang/erlang-26.2.2.ebuild b/dev-lang/erlang/erlang-26.2.2.ebuild
new file mode 100644
index 000000000000..df4dbc9c93da
--- /dev/null
+++ b/dev-lang/erlang/erlang-26.2.2.ebuild
@@ -0,0 +1,186 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+WX_GTK_VER="3.2-gtk3"
+
+inherit autotools elisp-common flag-o-matic java-pkg-opt-2 systemd toolchain-funcs wxwidgets
+
+UPSTREAM_V="$(ver_cut 1-2)"
+
+DESCRIPTION="Erlang programming language, runtime environment and libraries (OTP)"
+HOMEPAGE="https://www.erlang.org/"
+SRC_URI="https://github.com/erlang/otp/archive/OTP-${PV}.tar.gz -> ${P}.tar.gz
+ https://github.com/erlang/otp/releases/download/OTP-${UPSTREAM_V}/otp_doc_man_${UPSTREAM_V}.tar.gz -> ${PN}_doc_man_${UPSTREAM_V}.tar.gz
+ doc? ( https://github.com/erlang/otp/releases/download/OTP-${UPSTREAM_V}/otp_doc_html_${UPSTREAM_V}.tar.gz -> ${PN}_doc_html_${UPSTREAM_V}.tar.gz )"
+
+LICENSE="Apache-2.0"
+# We use this subslot because Compiled HiPE Code can be loaded on the exact
+# same build of ERTS that was used when compiling the code. See
+# http://erlang.org/doc/system_principles/misc.html for more information.
+SLOT="0/${PV}"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
+IUSE="doc emacs java +kpoll odbc sctp ssl systemd tk wxwidgets"
+
+RDEPEND="
+ acct-group/epmd
+ acct-user/epmd
+ sys-libs/ncurses:0
+ sys-libs/zlib
+ emacs? ( >=app-editors/emacs-23.1:* )
+ java? ( >=virtual/jdk-1.8:* )
+ odbc? ( dev-db/unixODBC )
+ sctp? ( net-misc/lksctp-tools )
+ ssl? ( >=dev-libs/openssl-0.9.7d:0= )
+ systemd? ( sys-apps/systemd )
+ wxwidgets? (
+ dev-libs/glib:2
+ x11-libs/wxGTK:${WX_GTK_VER}[X,opengl]
+ )
+"
+DEPEND="${RDEPEND}
+ dev-lang/perl
+"
+
+S="${WORKDIR}/otp-OTP-${PV}"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-22.0-dont-ignore-LDFLAGS.patch
+ "${FILESDIR}"/${PN}-24.0.2-serial-configure.patch
+ "${FILESDIR}"/${PN}-25.1.2-c99.patch # Bug #882887
+)
+
+SITEFILE=50"${PN}"-gentoo.el
+
+src_prepare() {
+ default
+
+ tc-export AR CPP CXX LD
+
+ # bug #797886: erlang's VM does unsafe casts for ints
+ # to pointers and back. This breaks on gcc-11 -flto.
+ append-flags -fno-strict-aliasing
+
+ # Ensure that we use erl_interface's libei.a, and not the system
+ # libei.so from dev-libs/libei. Bug #912888.
+ sed -i 's/-lei$/-l:libei.a/' \
+ "${S}"/lib/odbc/c_src/Makefile.in || die
+ (cd "${S}"/lib/odbc &&
+ eautoconf -B "${S}"/make/autoconf &&
+ eautoheader -B "${S}"/make/autoconf) || die
+}
+
+src_configure() {
+ use wxwidgets && setup-wxwidgets
+
+ local myconf=(
+ --disable-builtin-zlib
+
+ # don't search for static zlib
+ --with-ssl-zlib=no
+
+ $(use_enable kpoll kernel-poll)
+ $(use_with java javac)
+ $(use_with odbc)
+ $(use_enable sctp)
+ $(use_with ssl ssl)
+ $(use_enable ssl dynamic-ssl-lib)
+ $(use_enable systemd)
+ $(usex wxwidgets "--with-wx-config=${WX_CONFIG}" "--with-wxdir=/dev/null")
+ )
+ econf "${myconf[@]}"
+}
+
+src_compile() {
+ emake
+
+ if use doc ; then
+ emake docs DOC_TARGETS=chunks
+ fi
+
+ if use emacs ; then
+ pushd lib/tools/emacs &>/dev/null || die
+ elisp-compile *.el
+ popd &>/dev/null || die
+ fi
+}
+
+extract_version() {
+ local path="$1"
+ local var_name="$2"
+ sed -n -e "/^${var_name} = \(.*\)$/s::\1:p" "${S}/${path}/vsn.mk" || die "extract_version() failed"
+}
+
+src_install() {
+ local erl_libdir_rel="$(get_libdir)/erlang"
+ local erl_libdir="/usr/${erl_libdir_rel}"
+ local erl_interface_ver="$(extract_version lib/erl_interface EI_VSN)"
+ local erl_erts_ver="$(extract_version erts VSN)"
+ local my_manpath="/usr/share/${PN}/man"
+
+ [[ -z "${erl_erts_ver}" ]] && die "Couldn't determine erts version"
+ [[ -z "${erl_interface_ver}" ]] && die "Couldn't determine interface version"
+
+ emake INSTALL_PREFIX="${D}" install
+
+ if use doc ; then
+ emake INSTALL_PREFIX="${D}" install-docs DOC_TARGETS=chunks
+
+ # Note: we explicitly install docs into:
+ # /usr/share/doc/${PF}/{doc,lib,erts-*}
+ # To maintain that layout we gather everything in 'html-docs'.
+ # See bug #684376.
+ mkdir html-docs || die
+ mv "${WORKDIR}"/doc "${WORKDIR}"/lib "${WORKDIR}"/erts-* html-docs/ || die
+ local DOCS=( "AUTHORS" "HOWTO"/* "README.md" "CONTRIBUTING.md" html-docs/. )
+ docompress -x /usr/share/doc/${PF}
+ else
+ local DOCS=("README.md")
+ fi
+
+ einstalldocs
+
+ dosym "../${erl_libdir_rel}/bin/erl" /usr/bin/erl
+ dosym "../${erl_libdir_rel}/bin/erlc" /usr/bin/erlc
+ dosym "../${erl_libdir_rel}/bin/escript" /usr/bin/escript
+ dosym "../${erl_libdir_rel}/lib/erl_interface-${erl_interface_ver}/bin/erl_call" /usr/bin/erl_call
+ dosym "../${erl_libdir_rel}/erts-${erl_erts_ver}/bin/beam.smp" /usr/bin/beam.smp
+
+ ## Clean up the no longer needed files
+ rm "${ED}/${erl_libdir}/Install" || die
+
+ # Bug #922743
+ docompress "${my_manpath}"
+
+ insinto "${my_manpath}"
+ doins -r "${WORKDIR}"/man/*
+ # extend MANPATH, so the normal man command can find it
+ # see bug 189639
+ newenvd - "90erlang" <<-_EOF_
+ MANPATH="${my_manpath}"
+ _EOF_
+
+ if use emacs ; then
+ elisp-install erlang lib/tools/emacs/*.{el,elc}
+ sed -e "s:/usr/share:${EPREFIX}/usr/share:g" \
+ "${FILESDIR}/${SITEFILE}" > "${T}/${SITEFILE}" || die
+ elisp-site-file-install "${T}/${SITEFILE}"
+ fi
+
+ newinitd "${FILESDIR}"/epmd.init-r3 epmd
+ use systemd && systemd_newunit "${FILESDIR}"/epmd.service-r1 epmd.service
+}
+
+src_test() {
+ # Only run a subset of tests to test that everything was built
+ # successfully, otherwise we will be here for a long time.
+ emake kernel_test ARGS="-suite os_SUITE"
+}
+
+pkg_postinst() {
+ use emacs && elisp-site-regen
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}
diff --git a/dev-lang/erlang/erlang-26.2.4.ebuild b/dev-lang/erlang/erlang-26.2.4.ebuild
new file mode 100644
index 000000000000..233389fa0b29
--- /dev/null
+++ b/dev-lang/erlang/erlang-26.2.4.ebuild
@@ -0,0 +1,187 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+WX_GTK_VER="3.2-gtk3"
+
+inherit autotools elisp-common flag-o-matic java-pkg-opt-2 systemd toolchain-funcs wxwidgets
+
+UPSTREAM_V="$(ver_cut 1-2)"
+
+DESCRIPTION="Erlang programming language, runtime environment and libraries (OTP)"
+HOMEPAGE="https://www.erlang.org/"
+SRC_URI="https://github.com/erlang/otp/archive/OTP-${PV}.tar.gz -> ${P}.tar.gz
+ https://github.com/erlang/otp/releases/download/OTP-${UPSTREAM_V}/otp_doc_man_${UPSTREAM_V}.tar.gz -> ${PN}_doc_man_${UPSTREAM_V}.tar.gz
+ doc? ( https://github.com/erlang/otp/releases/download/OTP-${UPSTREAM_V}/otp_doc_html_${UPSTREAM_V}.tar.gz -> ${PN}_doc_html_${UPSTREAM_V}.tar.gz )"
+
+LICENSE="Apache-2.0"
+# We use this subslot because Compiled HiPE Code can be loaded on the exact
+# same build of ERTS that was used when compiling the code. See
+# http://erlang.org/doc/system_principles/misc.html for more information.
+SLOT="0/${PV}"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
+IUSE="doc emacs java +kpoll odbc sctp ssl systemd tk wxwidgets"
+
+RDEPEND="
+ acct-group/epmd
+ acct-user/epmd
+ sys-libs/ncurses:0
+ sys-libs/zlib
+ emacs? ( >=app-editors/emacs-23.1:* )
+ java? ( >=virtual/jdk-1.8:* )
+ odbc? ( dev-db/unixODBC )
+ sctp? ( net-misc/lksctp-tools )
+ ssl? ( >=dev-libs/openssl-0.9.7d:0= )
+ systemd? ( sys-apps/systemd )
+ wxwidgets? (
+ dev-libs/glib:2
+ x11-libs/wxGTK:${WX_GTK_VER}[X,opengl]
+ )
+"
+DEPEND="${RDEPEND}
+ dev-lang/perl
+"
+
+S="${WORKDIR}/otp-OTP-${PV}"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-22.0-dont-ignore-LDFLAGS.patch
+ "${FILESDIR}"/${PN}-24.0.2-serial-configure.patch
+ "${FILESDIR}"/${PN}-25.1.2-c99.patch # Bug #882887
+ "${FILESDIR}"/${PN}-26.2.4-test-errorinfo.patch
+)
+
+SITEFILE=50"${PN}"-gentoo.el
+
+src_prepare() {
+ default
+
+ tc-export AR CPP CXX LD
+
+ # bug #797886: erlang's VM does unsafe casts for ints
+ # to pointers and back. This breaks on gcc-11 -flto.
+ append-flags -fno-strict-aliasing
+
+ # Ensure that we use erl_interface's libei.a, and not the system
+ # libei.so from dev-libs/libei. Bug #912888.
+ sed -i 's/-lei$/-l:libei.a/' \
+ "${S}"/lib/odbc/c_src/Makefile.in || die
+ (cd "${S}"/lib/odbc &&
+ eautoconf -B "${S}"/make/autoconf &&
+ eautoheader -B "${S}"/make/autoconf) || die
+}
+
+src_configure() {
+ use wxwidgets && setup-wxwidgets
+
+ local myconf=(
+ --disable-builtin-zlib
+
+ # don't search for static zlib
+ --with-ssl-zlib=no
+
+ $(use_enable kpoll kernel-poll)
+ $(use_with java javac)
+ $(use_with odbc)
+ $(use_enable sctp)
+ $(use_with ssl ssl)
+ $(use_enable ssl dynamic-ssl-lib)
+ $(use_enable systemd)
+ $(usex wxwidgets "--with-wx-config=${WX_CONFIG}" "--with-wxdir=/dev/null")
+ )
+ econf "${myconf[@]}"
+}
+
+src_compile() {
+ emake
+
+ if use doc ; then
+ emake docs DOC_TARGETS=chunks
+ fi
+
+ if use emacs ; then
+ pushd lib/tools/emacs &>/dev/null || die
+ elisp-compile *.el
+ popd &>/dev/null || die
+ fi
+}
+
+extract_version() {
+ local path="$1"
+ local var_name="$2"
+ sed -n -e "/^${var_name} = \(.*\)$/s::\1:p" "${S}/${path}/vsn.mk" || die "extract_version() failed"
+}
+
+src_install() {
+ local erl_libdir_rel="$(get_libdir)/erlang"
+ local erl_libdir="/usr/${erl_libdir_rel}"
+ local erl_interface_ver="$(extract_version lib/erl_interface EI_VSN)"
+ local erl_erts_ver="$(extract_version erts VSN)"
+ local my_manpath="/usr/share/${PN}/man"
+
+ [[ -z "${erl_erts_ver}" ]] && die "Couldn't determine erts version"
+ [[ -z "${erl_interface_ver}" ]] && die "Couldn't determine interface version"
+
+ emake INSTALL_PREFIX="${D}" install
+
+ if use doc ; then
+ emake INSTALL_PREFIX="${D}" install-docs DOC_TARGETS=chunks
+
+ # Note: we explicitly install docs into:
+ # /usr/share/doc/${PF}/{doc,lib,erts-*}
+ # To maintain that layout we gather everything in 'html-docs'.
+ # See bug #684376.
+ mkdir html-docs || die
+ mv "${WORKDIR}"/doc "${WORKDIR}"/lib "${WORKDIR}"/erts-* html-docs/ || die
+ local DOCS=( "AUTHORS" "HOWTO"/* "README.md" "CONTRIBUTING.md" html-docs/. )
+ docompress -x /usr/share/doc/${PF}
+ else
+ local DOCS=("README.md")
+ fi
+
+ einstalldocs
+
+ dosym "../${erl_libdir_rel}/bin/erl" /usr/bin/erl
+ dosym "../${erl_libdir_rel}/bin/erlc" /usr/bin/erlc
+ dosym "../${erl_libdir_rel}/bin/escript" /usr/bin/escript
+ dosym "../${erl_libdir_rel}/lib/erl_interface-${erl_interface_ver}/bin/erl_call" /usr/bin/erl_call
+ dosym "../${erl_libdir_rel}/erts-${erl_erts_ver}/bin/beam.smp" /usr/bin/beam.smp
+
+ ## Clean up the no longer needed files
+ rm "${ED}/${erl_libdir}/Install" || die
+
+ # Bug #922743
+ docompress "${my_manpath}"
+
+ insinto "${my_manpath}"
+ doins -r "${WORKDIR}"/man/*
+ # extend MANPATH, so the normal man command can find it
+ # see bug 189639
+ newenvd - "90erlang" <<-_EOF_
+ MANPATH="${my_manpath}"
+ _EOF_
+
+ if use emacs ; then
+ elisp-install erlang lib/tools/emacs/*.{el,elc}
+ sed -e "s:/usr/share:${EPREFIX}/usr/share:g" \
+ "${FILESDIR}/${SITEFILE}" > "${T}/${SITEFILE}" || die
+ elisp-site-file-install "${T}/${SITEFILE}"
+ fi
+
+ newinitd "${FILESDIR}"/epmd.init-r3 epmd
+ use systemd && systemd_newunit "${FILESDIR}"/epmd.service-r1 epmd.service
+}
+
+src_test() {
+ # Only run a subset of tests to test that everything was built
+ # successfully, otherwise we will be here for a long time.
+ emake kernel_test ARGS="-suite os_SUITE"
+}
+
+pkg_postinst() {
+ use emacs && elisp-site-regen
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}
diff --git a/dev-lang/erlang/erlang-26.2.ebuild b/dev-lang/erlang/erlang-26.2.ebuild
new file mode 100644
index 000000000000..981ad712372f
--- /dev/null
+++ b/dev-lang/erlang/erlang-26.2.ebuild
@@ -0,0 +1,183 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+WX_GTK_VER="3.2-gtk3"
+
+inherit autotools elisp-common flag-o-matic java-pkg-opt-2 systemd toolchain-funcs wxwidgets
+
+UPSTREAM_V="$(ver_cut 1-2)"
+
+DESCRIPTION="Erlang programming language, runtime environment and libraries (OTP)"
+HOMEPAGE="https://www.erlang.org/"
+SRC_URI="https://github.com/erlang/otp/archive/OTP-${PV}.tar.gz -> ${P}.tar.gz
+ https://github.com/erlang/otp/releases/download/OTP-${UPSTREAM_V}/otp_doc_man_${UPSTREAM_V}.tar.gz -> ${PN}_doc_man_${UPSTREAM_V}.tar.gz
+ doc? ( https://github.com/erlang/otp/releases/download/OTP-${UPSTREAM_V}/otp_doc_html_${UPSTREAM_V}.tar.gz -> ${PN}_doc_html_${UPSTREAM_V}.tar.gz )"
+
+LICENSE="Apache-2.0"
+# We use this subslot because Compiled HiPE Code can be loaded on the exact
+# same build of ERTS that was used when compiling the code. See
+# http://erlang.org/doc/system_principles/misc.html for more information.
+SLOT="0/${PV}"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
+IUSE="doc emacs java +kpoll odbc sctp ssl systemd tk wxwidgets"
+
+RDEPEND="
+ acct-group/epmd
+ acct-user/epmd
+ sys-libs/ncurses:0
+ sys-libs/zlib
+ emacs? ( >=app-editors/emacs-23.1:* )
+ java? ( >=virtual/jdk-1.8:* )
+ odbc? ( dev-db/unixODBC )
+ sctp? ( net-misc/lksctp-tools )
+ ssl? ( >=dev-libs/openssl-0.9.7d:0= )
+ systemd? ( sys-apps/systemd )
+ wxwidgets? (
+ dev-libs/glib:2
+ x11-libs/wxGTK:${WX_GTK_VER}[X,opengl]
+ )
+"
+DEPEND="${RDEPEND}
+ dev-lang/perl
+"
+
+S="${WORKDIR}/otp-OTP-${PV}"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-22.0-dont-ignore-LDFLAGS.patch
+ "${FILESDIR}"/${PN}-24.0.2-serial-configure.patch
+ "${FILESDIR}"/${PN}-25.1.2-c99.patch # Bug #882887
+)
+
+SITEFILE=50"${PN}"-gentoo.el
+
+src_prepare() {
+ default
+
+ tc-export AR CPP CXX LD
+
+ # bug #797886: erlang's VM does unsafe casts for ints
+ # to pointers and back. This breaks on gcc-11 -flto.
+ append-flags -fno-strict-aliasing
+
+ # Ensure that we use erl_interface's libei.a, and not the system
+ # libei.so from dev-libs/libei. Bug #912888.
+ sed -i 's/-lei$/-l:libei.a/' \
+ "${S}"/lib/odbc/c_src/Makefile.in || die
+ (cd "${S}"/lib/odbc &&
+ eautoconf -B "${S}"/make/autoconf &&
+ eautoheader -B "${S}"/make/autoconf) || die
+}
+
+src_configure() {
+ use wxwidgets && setup-wxwidgets
+
+ local myconf=(
+ --disable-builtin-zlib
+
+ # don't search for static zlib
+ --with-ssl-zlib=no
+
+ $(use_enable kpoll kernel-poll)
+ $(use_with java javac)
+ $(use_with odbc)
+ $(use_enable sctp)
+ $(use_with ssl ssl)
+ $(use_enable ssl dynamic-ssl-lib)
+ $(use_enable systemd)
+ $(usex wxwidgets "--with-wx-config=${WX_CONFIG}" "--with-wxdir=/dev/null")
+ )
+ econf "${myconf[@]}"
+}
+
+src_compile() {
+ emake
+
+ if use doc ; then
+ emake docs DOC_TARGETS=chunks
+ fi
+
+ if use emacs ; then
+ pushd lib/tools/emacs &>/dev/null || die
+ elisp-compile *.el
+ popd &>/dev/null || die
+ fi
+}
+
+extract_version() {
+ local path="$1"
+ local var_name="$2"
+ sed -n -e "/^${var_name} = \(.*\)$/s::\1:p" "${S}/${path}/vsn.mk" || die "extract_version() failed"
+}
+
+src_install() {
+ local erl_libdir_rel="$(get_libdir)/erlang"
+ local erl_libdir="/usr/${erl_libdir_rel}"
+ local erl_interface_ver="$(extract_version lib/erl_interface EI_VSN)"
+ local erl_erts_ver="$(extract_version erts VSN)"
+ local my_manpath="/usr/share/${PN}/man"
+
+ [[ -z "${erl_erts_ver}" ]] && die "Couldn't determine erts version"
+ [[ -z "${erl_interface_ver}" ]] && die "Couldn't determine interface version"
+
+ emake INSTALL_PREFIX="${D}" install
+
+ if use doc ; then
+ emake INSTALL_PREFIX="${D}" install-docs DOC_TARGETS=chunks
+
+ # Note: we explicitly install docs into:
+ # /usr/share/doc/${PF}/{doc,lib,erts-*}
+ # To maintain that layout we gather everything in 'html-docs'.
+ # See bug #684376.
+ mkdir html-docs || die
+ mv "${WORKDIR}"/doc "${WORKDIR}"/lib "${WORKDIR}"/erts-* html-docs/ || die
+ local DOCS=( "AUTHORS" "HOWTO"/* "README.md" "CONTRIBUTING.md" html-docs/. )
+ docompress -x /usr/share/doc/${PF}
+ else
+ local DOCS=("README.md")
+ fi
+
+ einstalldocs
+
+ dosym "../${erl_libdir_rel}/bin/erl" /usr/bin/erl
+ dosym "../${erl_libdir_rel}/bin/erlc" /usr/bin/erlc
+ dosym "../${erl_libdir_rel}/bin/escript" /usr/bin/escript
+ dosym "../${erl_libdir_rel}/lib/erl_interface-${erl_interface_ver}/bin/erl_call" /usr/bin/erl_call
+ dosym "../${erl_libdir_rel}/erts-${erl_erts_ver}/bin/beam.smp" /usr/bin/beam.smp
+
+ ## Clean up the no longer needed files
+ rm "${ED}/${erl_libdir}/Install" || die
+
+ insinto "${my_manpath}"
+ doins -r "${WORKDIR}"/man/*
+ # extend MANPATH, so the normal man command can find it
+ # see bug 189639
+ newenvd - "90erlang" <<-_EOF_
+ MANPATH="${my_manpath}"
+ _EOF_
+
+ if use emacs ; then
+ elisp-install erlang lib/tools/emacs/*.{el,elc}
+ sed -e "s:/usr/share:${EPREFIX}/usr/share:g" \
+ "${FILESDIR}/${SITEFILE}" > "${T}/${SITEFILE}" || die
+ elisp-site-file-install "${T}/${SITEFILE}"
+ fi
+
+ newinitd "${FILESDIR}"/epmd.init-r3 epmd
+ use systemd && systemd_newunit "${FILESDIR}"/epmd.service-r1 epmd.service
+}
+
+src_test() {
+ # Only run a subset of tests to test that everything was built
+ # successfully, otherwise we will be here for a long time.
+ emake kernel_test ARGS="-suite os_SUITE"
+}
+
+pkg_postinst() {
+ use emacs && elisp-site-regen
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}
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/epmd.confd-r2 b/dev-lang/erlang/files/epmd.confd-r2
deleted file mode 100644
index 69fcb0d2aa17..000000000000
--- a/dev-lang/erlang/files/epmd.confd-r2
+++ /dev/null
@@ -1,2 +0,0 @@
-#arguments for run erlang
-command_args="-address 127.0.0.1"
diff --git a/dev-lang/erlang/files/epmd.init b/dev-lang/erlang/files/epmd.init
deleted file mode 100644
index 92318d051bff..000000000000
--- a/dev-lang/erlang/files/epmd.init
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/sbin/openrc-run
-# Copyright 2010-2019 Gentoo Authors
-# Distributed under the terms of the Apache License, Version 2.0
-
-ZT_ADDRESS=""
-pidfile="/var/run/epmd.pid"
-command_args="-daemon -relaxed_command_check -address 127.0.0.1"
-
-depend() {
- need net.lo
- before sshd
-}
-
-start() {
- ebegin "Starting Erlang Port Mapper Daemon"
- start-stop-daemon --start --quiet \
- --pidfile $pidfile \
- --exec /usr/bin/epmd -- $command_args
- eend $?
-}
-
-stop() {
- ebegin "Stopping Erlang Port Mapper Daemon"
- /usr/bin/epmd -kill >/dev/null
- eend $?
-}
diff --git a/dev-lang/erlang/files/epmd.init-r2 b/dev-lang/erlang/files/epmd.init-r3
index 52f6d72b0fe7..7748a94c2ac7 100644
--- a/dev-lang/erlang/files/epmd.init-r2
+++ b/dev-lang/erlang/files/epmd.init-r3
@@ -1,5 +1,5 @@
#!/sbin/openrc-run
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the Erlang Public License 1.1
name="Erlang Port Mapper Daemon"
@@ -12,7 +12,7 @@ command_background=yes
pidfile="/var/run/epmd.pid"
depend() {
- need net.lo
+ use net
before sshd
}
diff --git a/dev-lang/erlang/files/epmd.service b/dev-lang/erlang/files/epmd.service
deleted file mode 100644
index 57382ff36a40..000000000000
--- a/dev-lang/erlang/files/epmd.service
+++ /dev/null
@@ -1,9 +0,0 @@
-[Unit]
-Description=Erlang Portmapper Daemon
-Wants=network.target
-
-[Service]
-ExecStart=/usr/bin/epmd
-
-[Install]
-WantedBy=multi-user.target
diff --git a/dev-lang/erlang/files/erlang-23.1.2-ac2.70.patch b/dev-lang/erlang/files/erlang-23.1.2-ac2.70.patch
deleted file mode 100644
index 3c3a119270dd..000000000000
--- a/dev-lang/erlang/files/erlang-23.1.2-ac2.70.patch
+++ /dev/null
@@ -1,99 +0,0 @@
---- a/lib/crypto/configure.in
-+++ b/lib/crypto/configure.in
-@@ -26,10 +26,11 @@ dnl define([AC_CACHE_SAVE], )dnl
- AC_INIT(vsn.mk)
-
- if test -z "$ERL_TOP" || test ! -d "$ERL_TOP" ; then
-- AC_CONFIG_AUX_DIRS(autoconf)
-+ :
-+ AC_CONFIG_AUX_DIR(autoconf)
- else
- erl_top=${ERL_TOP}
-- AC_CONFIG_AUX_DIRS($erl_top/erts/autoconf)
-+ AC_CONFIG_AUX_DIR(../../erts/autoconf)
- fi
-
- if test "X$host" != "Xfree_source" -a "X$host" != "Xwin32"; then
---- a/lib/megaco/configure.in
-+++ b/lib/megaco/configure.in
-@@ -26,10 +26,11 @@ dnl define([AC_CACHE_SAVE], )dnl
- AC_INIT(vsn.mk)
-
- if test -z "$ERL_TOP" || test ! -d $ERL_TOP ; then
-- AC_CONFIG_AUX_DIRS(autoconf)
-+ :
-+ AC_CONFIG_AUX_DIR(autoconf)
- else
- erl_top=${ERL_TOP}
-- AC_CONFIG_AUX_DIRS($erl_top/erts/autoconf)
-+ AC_CONFIG_AUX_DIR(../../erts/autoconf)
- fi
-
- if test "X$host" != "Xfree_source" -a "X$host" != "Xwin32"; then
---- a/lib/odbc/configure.in
-+++ b/lib/odbc/configure.in
-@@ -26,10 +26,11 @@ dnl Process this file with autoconf to produce a configure script.
- AC_INIT(c_src/odbcserver.c)
-
- if test -z "$ERL_TOP" || test ! -d $ERL_TOP ; then
-- AC_CONFIG_AUX_DIRS(autoconf)
-+ :
-+ AC_CONFIG_AUX_DIR(autoconf)
- else
- erl_top=${ERL_TOP}
-- AC_CONFIG_AUX_DIRS($erl_top/erts/autoconf)
-+ AC_CONFIG_AUX_DIR(../../erts/autoconf)
- fi
-
- if test "X$host" != "Xfree_source" -a "X$host" != "Xwin32"; then
---- a/lib/snmp/configure.in
-+++ b/lib/snmp/configure.in
-@@ -5,10 +5,11 @@ define([AC_CACHE_SAVE], )dnl
- AC_INIT(vsn.mk)
-
- if test -z "$ERL_TOP" || test ! -d $ERL_TOP ; then
-- AC_CONFIG_AUX_DIRS(autoconf)
-+ :
-+ AC_CONFIG_AUX_DIR(autoconf)
- else
- erl_top=${ERL_TOP}
-- AC_CONFIG_AUX_DIRS($erl_top/erts/autoconf)
-+ AC_CONFIG_AUX_DIR(../../erts/autoconf)
- fi
-
- if test "X$host" != "Xfree_source" -a "X$host" != "Xwin32"; then
---- a/lib/wx/configure.in
-+++ b/lib/wx/configure.in
-@@ -20,7 +20,7 @@ dnl %CopyrightEnd%
-
- AC_INIT()
-
--AC_CONFIG_AUX_DIRS($srcdir/autoconf)
-+AC_CONFIG_AUX_DIR($srcdir/autoconf)
-
- AC_PREREQ(2.59)
-
-@@ -30,10 +30,11 @@ if test -f ./CONF_INFO; then
- fi
-
- if test -z "$ERL_TOP" || test ! -d $ERL_TOP ; then
-+ :
- AC_MSG_ERROR([ERL_TOP is not set])
- else
- erl_top=${ERL_TOP}
-- AC_CONFIG_AUX_DIRS($erl_top/erts/autoconf)
-+ AC_CONFIG_AUX_DIR(../../erts/autoconf)
- WX_BUILDING_INSIDE_ERLSRC=true
- fi
-
---- a/make/configure.in
-+++ b/make/configure.in
-@@ -82,7 +82,7 @@ AC_SUBST(ERL_TOP)
- dnl
- dnl Aux programs are found in erts/autoconf
- dnl
--AC_CONFIG_AUX_DIR(${srcdir}/erts/autoconf)
-+AC_CONFIG_AUX_DIR(../erts/autoconf)
-
- dnl
- dnl Figure out what we are running on. And in violation of autoconf
diff --git a/dev-lang/erlang/files/erlang-24.0.2-serial-configure.patch b/dev-lang/erlang/files/erlang-24.0.2-serial-configure.patch
new file mode 100644
index 000000000000..5068be153eaa
--- /dev/null
+++ b/dev-lang/erlang/files/erlang-24.0.2-serial-configure.patch
@@ -0,0 +1,12 @@
+https://bugs.gentoo.org/790563
+--- a/configure
++++ b/configure
+@@ -355,7 +355,7 @@ for app_dir in $app_dirs; do
+ echo ""
+ elif test $app_dir != erts; then
+ echo $cmd_str >./configure.result.command
+- eval $cmd_str 1>./configure.result.stdout 2>./configure.result.stderr || echo "fatal" > "./configure.result.failed" &
++ eval $cmd_str 1>./configure.result.stdout 2>./configure.result.stderr || echo "fatal" > "./configure.result.failed"
+ else
+ # ERTS configure gets to use stdout/stderr; the others are printed when done...
+ echo "=== Running configure in $ERL_TOP/erts ==="
diff --git a/dev-lang/erlang/files/erlang-25.1.2-c99.patch b/dev-lang/erlang/files/erlang-25.1.2-c99.patch
new file mode 100644
index 000000000000..bc8ffdaace6c
--- /dev/null
+++ b/dev-lang/erlang/files/erlang-25.1.2-c99.patch
@@ -0,0 +1,101 @@
+Bug: https://bugs.gentoo.org/882887
+From: https://github.com/erlang/otp/pull/6504
+From: Florian Weimer <fweimer@redhat.com>
+Date: Thu, 24 Nov 2022 11:57:49 +0100
+Subject: [PATCH 1/2] configure.ac: C99 fix for
+ ERTS___AFTER_MORECORE_HOOK_CAN_TRACK_MALLOC
+
+#include <unistd.h> for the sbrk function if the header is available.
+--- a/erts/configure
++++ b/erts/configure
+@@ -20752,6 +20752,9 @@ else $as_nop
+ #ifdef HAVE_MALLOC_H
+ # include <malloc.h>
+ #endif
++#ifdef HAVE_UNISTD_H
++# include <unistd.h>
++#endif
+ #if defined(HAVE_END_SYMBOL)
+ extern char end;
+ #elif defined(HAVE__END_SYMBOL)
+--- a/erts/configure.ac
++++ b/erts/configure.ac
+@@ -2436,6 +2436,9 @@ AC_CACHE_CHECK([if __after_morecore_hook can track malloc()s core memory use],
+ #ifdef HAVE_MALLOC_H
+ # include <malloc.h>
+ #endif
++#ifdef HAVE_UNISTD_H
++# include <unistd.h>
++#endif
+ #if defined(HAVE_END_SYMBOL)
+ extern char end;
+ #elif defined(HAVE__END_SYMBOL)
+
+From 7b720d2bb9e742110ff90ec2495747b2c477e2c7 Mon Sep 17 00:00:00 2001
+From: Florian Weimer <fweimer@redhat.com>
+Date: Thu, 24 Nov 2022 11:59:22 +0100
+Subject: [PATCH 2/2] configure.ac: C99 fixes for poll_works check
+
+Include <fcntl.h> if it is available for the open prototype.
+Return from main instead of calling exit, so that no function
+declaration is needed.
+--- a/erts/configure
++++ b/erts/configure
+@@ -24663,10 +24663,13 @@ else $as_nop
+ /* end confdefs.h. */
+
+ #include <poll.h>
+-main()
++#ifdef HAVE_FCNTL_H
++#include <fcntl.h>
++#endif
++int main()
+ {
+ #ifdef _POLL_EMUL_H_
+- exit(1); /* Implemented using select() -- fail */
++ return 1; /* Implemented using select() -- fail */
+ #else
+ struct pollfd fds[1];
+ int fd;
+@@ -24675,9 +24678,9 @@ main()
+ fds[0].events = POLLIN;
+ fds[0].revents = 0;
+ if (poll(fds, 1, 0) < 0 || (fds[0].revents & POLLNVAL) != 0) {
+- exit(1); /* Does not work for devices -- fail */
++ return 1; /* Does not work for devices -- fail */
+ }
+- exit(0);
++ return 0;
+ #endif
+ }
+
+--- a/erts/configure.ac
++++ b/erts/configure.ac
+@@ -3036,10 +3036,13 @@ poll_works=no
+
+ AC_RUN_IFELSE([AC_LANG_SOURCE([[
+ #include <poll.h>
+-main()
++#ifdef HAVE_FCNTL_H
++#include <fcntl.h>
++#endif
++int main()
+ {
+ #ifdef _POLL_EMUL_H_
+- exit(1); /* Implemented using select() -- fail */
++ return 1; /* Implemented using select() -- fail */
+ #else
+ struct pollfd fds[1];
+ int fd;
+@@ -3048,9 +3051,9 @@ main()
+ fds[0].events = POLLIN;
+ fds[0].revents = 0;
+ if (poll(fds, 1, 0) < 0 || (fds[0].revents & POLLNVAL) != 0) {
+- exit(1); /* Does not work for devices -- fail */
++ return 1; /* Does not work for devices -- fail */
+ }
+- exit(0);
++ return 0;
+ #endif
+ }
+ ]])],[poll_works=yes],[poll_works=no],[
diff --git a/dev-lang/erlang/files/erlang-26.2.4-test-errorinfo.patch b/dev-lang/erlang/files/erlang-26.2.4-test-errorinfo.patch
new file mode 100644
index 000000000000..4119a6b39bd1
--- /dev/null
+++ b/dev-lang/erlang/files/erlang-26.2.4-test-errorinfo.patch
@@ -0,0 +1,14 @@
+Skip the error_info test. This test tries to open fds until exhausted which
+seems to be quite unreliable/brittle.
+--- a/lib/kernel/test/os_SUITE.erl
++++ b/lib/kernel/test/os_SUITE.erl
+@@ -42,8 +42,7 @@ all() ->
+ env,
+ find_executable, unix_comment_in_command, deep_list_command,
+ large_output_command, background_command, message_leak,
+- close_stdin, max_size_command, perf_counter_api,
+- error_info].
++ close_stdin, max_size_command, perf_counter_api].
+
+ groups() ->
+ [].
diff --git a/dev-lang/erlang/metadata.xml b/dev-lang/erlang/metadata.xml
index 7e9a773063d1..a13621315bcc 100644
--- a/dev-lang/erlang/metadata.xml
+++ b/dev-lang/erlang/metadata.xml
@@ -1,20 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
- <email>slyfox@gentoo.org</email>
- <name>Sergei Trofimovich</name>
- </maintainer>
- <maintainer type="person">
- <email>arkamar@atlas.cz</email>
- <name>Petr Vaněk</name>
- </maintainer>
- <maintainer type="project">
- <email>proxy-maint@gentoo.org</email>
- <name>Proxy Maintainers</name>
+ <email>matthew@gentoo.org</email>
+ <name>Matthew Smith</name>
</maintainer>
<use>
- <flag name="hipe">HIgh Performance Erlang extension</flag>
<flag name="kpoll">Enable kernel polling support</flag>
</use>
<longdescription>
@@ -23,4 +14,7 @@
released to help encourage the spread of Erlang outside
Ericsson.
</longdescription>
+ <upstream>
+ <remote-id type="github">erlang/otp</remote-id>
+ </upstream>
</pkgmetadata>
diff --git a/dev-lang/esco/Manifest b/dev-lang/esco/Manifest
index 8b07e14c4a61..221082f47812 100644
--- a/dev-lang/esco/Manifest
+++ b/dev-lang/esco/Manifest
@@ -1 +1 @@
-DIST esco-src-0.512.tar.gz 382056 BLAKE2B d68440b57987fbb0c73f4ecae31c08818580ddd0403a6cd9821fc2ff9d25f12d8a8bb766a1bf760379ce8e667ffb3b817d88b5600309cacbd2cab1276860d51b SHA512 4d02af7097abbd6770a891065ea9d7d3f9acdd9c7c9164f726dba2385db48993e7fe9baa4fc57aac2d998544788416700933d473f1e9467c9f94e240f80ccf97
+DIST esco-srv-0.513.tar.gz 382658 BLAKE2B 323b4690c5e3537fe9c6b765ab644ae18122c81aa334c10a6b131db727d3b8d3f61d15eece5d6c205fd439c0858d10f1e9f97c74545248a92b6cfa9b5386a354 SHA512 4148a39f1cc4cacbbca1b1e5504530e945cba04acca8cf9b28b47eaf88860dbaea0c1ff7e46c59ea6a57b57a796437eb9577e38f8a06fa4bd34fdb543e4e5909
diff --git a/dev-lang/esco/esco-0.512.ebuild b/dev-lang/esco/esco-0.513.ebuild
index 98743c402a65..c99061bc3d05 100644
--- a/dev-lang/esco/esco-0.512.ebuild
+++ b/dev-lang/esco/esco-0.513.ebuild
@@ -1,19 +1,18 @@
-# Copyright 1999-2016 Gentoo Foundation
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=6
+EAPI=8
-MY_PN="${PN}-src"
+MY_PN="${PN}-srv"
MY_P="${MY_PN}-${PV}"
DESCRIPTION="Combine interpreter of esoteric languages"
-HOMEPAGE="http://esco.sourceforge.net/"
-SRC_URI="mirror://sourceforge/${PN}/${MY_P}.tar.gz"
+HOMEPAGE="https://esco.sourceforge.net/"
+SRC_URI="https://downloads.sourceforge.net/${PN}/${MY_P}.tar.gz"
-LICENSE="GPL-2"
+LICENSE="GPL-2+"
SLOT="0"
KEYWORDS="~amd64 ~x86"
-
IUSE="gmp l10n_ru"
DEPEND="gmp? ( dev-libs/gmp:0 )"
diff --git a/dev-lang/esco/metadata.xml b/dev-lang/esco/metadata.xml
index af98e87ab5b2..fbb57e224338 100644
--- a/dev-lang/esco/metadata.xml
+++ b/dev-lang/esco/metadata.xml
@@ -1,11 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+
<pkgmetadata>
- <maintainer type="person">
- <email>pinkbyte@gentoo.org</email>
- <name>Sergey Popov</name>
- </maintainer>
- <upstream>
- <remote-id type="sourceforge">esco</remote-id>
- </upstream>
+ <maintainer type="person">
+ <email>xgqt@gentoo.org</email>
+ <name>Maciej Barć</name>
+ </maintainer>
+ <upstream>
+ <bugs-to>https://sourceforge.net/p/esco/bugs/</bugs-to>
+ <remote-id type="sourceforge">esco</remote-id>
+ </upstream>
</pkgmetadata>
diff --git a/dev-lang/execline/Manifest b/dev-lang/execline/Manifest
index db4ed12e206c..a7f9a70f696d 100644
--- a/dev-lang/execline/Manifest
+++ b/dev-lang/execline/Manifest
@@ -1,7 +1,2 @@
-DIST execline-2.1.1.0.tar.gz 75967 BLAKE2B 196edcfce385a2a3ef8bc3b16f94401430e06649c1ef9157da603904c296e3601433248046393d0c5ef9805107d09caf21f185b0c3ea3cabfde88508280bd5bd SHA512 250fe449b39a198193f1431b249b342f3c6c499fea12779a55d0e27aec2095285bbf9dc2a48d84eebdf9f540ecf5e67ef39393243ca0fadfc764d2cc95ac0b6b
-DIST execline-2.3.0.3.tar.gz 82476 BLAKE2B e54bf40037d988848a31b90ca477fb1a297bfc91a6ceb51289944cccc7af36a26b8323c63e8178bd9a252b482a703329c04c9f08a25c2cfe94f5baf60983d04c SHA512 2858ce62853f00f59e0cea8b886cd042f7ad04c6a86208266654d3d2e820b5d440e41cc4efb96fccdcc653d19957d343115a8e8c394b68f23addf941294fb172
-DIST execline-2.3.0.4.tar.gz 82774 BLAKE2B a658b538d0a17f15876fe9a822bb7c7e4edba48d2fce1d3c0fe0fd06fd8a414e062a962ca3935992903a4abccf920bf6ee957743609905a6ce498e6fd3deded8 SHA512 ce73b69394ec061ad85cf6f69211180bffe69f1b9716217dadca5894a261f77343d54d5f0339b3822c472720e60c4aa100a0e05dc83f2ad6b926bb53b5141c15
-DIST execline-2.5.0.1.tar.gz 81854 BLAKE2B a70e8c9c3a739fb32573937c9b5c1fb65c730bea7e7760d81b62ea7666727a29ae9902139f78660891e65ed3e6769fc5d6afcb2fb3e030e0c75d3acb6392fd39 SHA512 9e013a83844fc3f5b28c6aea44b446f550dafe52131facf0d7c0648c9ae62c4a62d895f72cedb010754319c0e298fb4c8396d2c6be019cd6218558934bffaea3
-DIST execline-2.5.1.0.tar.gz 83681 BLAKE2B c07b9b6d1c328bc3a96480e59b67676dde82df9112de6c1bd150509f0e062d289390fa935cebe48bc38a769be53ce7b3ef122bc0bd0172c997a56d28a6a11018 SHA512 461a91d0e790e96233179c89c783bb29d89592def451643265c97259db83056556cd5f231d668e8c460396c35a8792f56b30193171e85488e60e3cb4feb7379c
-DIST execline-2.5.3.0.tar.gz 86575 BLAKE2B fa61ef88a3e2db7e7a051d45e270f40891d46bd2e4349e1569539f964e49f6814c00dcbb496f0185bdd08d43dbf2c038caf5c088ecb54f82a239a85c30a500c6 SHA512 75b584e2365288bb1d05fd67e390fab1b6ccf48cb0a2ccbfb84a7d22ddf6957c9c591ab165542ed180b2ff1ef9ceb2a16cbae569e69c5dd5f20e52be092cff15
-DIST execline-2.6.1.1.tar.gz 92495 BLAKE2B 6b901819e49c424d52ce2d87b6b42aec1595fb97fef7905e93eca2f3ac029a35f826e37e519e2c6ab9e2638f625a446db363f5fbfd5530a93b52c831660b7a11 SHA512 5826abb407742ad8a2cd48c09b966827d129dda420db07c893cd7a27e806441d7b117a0c61fdc0222e527aada976da26e4779a4896fc084cdf6efa8294ffac5b
+DIST execline-2.9.4.0.tar.gz 110097 BLAKE2B a59af5d1cff360ab6c2c41f3156d762e2928b22d7cab8a3b499935ded102e5b9e4efc2a0849875cf6a44cdca0e9b1f13a41443c0343ca3d7a068e4d749774701 SHA512 11d96863d2f90abc371656e17bac9fd83f1303337444db5a1f24e8a02cab654a3b5e9081af130d5cbca5a4f6ea5cf5f6c2affa66e2b4a9eb39c20410efeb8795
+DIST execline-2.9.5.1.tar.gz 110874 BLAKE2B bef3cb560f00c01c96065429220017315edc8378403c73e4a0edba67ee248f76ca849cd8a107756251db9844d3ac650259b33db2f93abc1c7aa4f68995b5b624 SHA512 11bfd825b0b72cba118eff9ecb97672d0c015e0bd50c7c8f83e101ee41c323b3a3c82e42fed75b6bc65ab6edb85a8bbeef8900b594cf651825b6313a5123c88f
diff --git a/dev-lang/execline/execline-2.1.1.0.ebuild b/dev-lang/execline/execline-2.1.1.0.ebuild
deleted file mode 100644
index fecff914bdda..000000000000
--- a/dev-lang/execline/execline-2.1.1.0.ebuild
+++ /dev/null
@@ -1,54 +0,0 @@
-# Copyright 2013-2016 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-
-inherit multilib
-
-DESCRIPTION="a non-interactive scripting language similar to SH"
-HOMEPAGE="http://www.skarnet.org/software/execline/"
-SRC_URI="http://www.skarnet.org/software/${PN}/${P}.tar.gz"
-
-LICENSE="ISC"
-SLOT="0"
-KEYWORDS="amd64 x86"
-IUSE="static static-libs"
-
-DEPEND=">=sys-devel/make-4.0
- static? ( >=dev-libs/skalibs-2.3.1.0[static-libs] )
- !static? ( >=dev-libs/skalibs-2.3.1.0 )
-"
-RDEPEND="!static? ( >=dev-libs/skalibs-2.3.1.0 )"
-
-src_prepare() {
- # Remove QA warning about LDFLAGS addition
- sed -i "s~tryldflag LDFLAGS_AUTO -Wl,--hash-style=both~:~" "${S}/configure" || die
-}
-
-src_configure()
-{
- econf \
- $(use_enable static-libs static) \
- $(use_enable static allstatic) \
- $(use_enable !static shared) \
- --bindir=/bin \
- --sbindir=/sbin \
- --dynlibdir=/$(get_libdir) \
- --libdir=/usr/$(get_libdir)/${PN} \
- --datadir=/etc \
- --sysdepdir=/usr/$(get_libdir)/${PN} \
- --with-dynlib=/$(get_libdir) \
- --with-lib=/usr/$(get_libdir)/skalibs \
- --with-sysdeps=/usr/$(get_libdir)/skalibs
-}
-
-src_compile()
-{
- emake DESTDIR="${D}"
-}
-
-src_install()
-{
- default
- dohtml -r doc/*
-}
diff --git a/dev-lang/execline/execline-2.3.0.3.ebuild b/dev-lang/execline/execline-2.3.0.3.ebuild
deleted file mode 100644
index 19fe49f212fe..000000000000
--- a/dev-lang/execline/execline-2.3.0.3.ebuild
+++ /dev/null
@@ -1,55 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit versionator
-
-DESCRIPTION="a non-interactive scripting language"
-HOMEPAGE="https://www.skarnet.org/software/execline/"
-SRC_URI="https://www.skarnet.org/software/${PN}/${P}.tar.gz"
-
-LICENSE="ISC"
-SLOT="0/$(get_version_component_range 1-2)"
-KEYWORDS="~amd64 ~arm ~x86"
-IUSE="static static-libs"
-
-DEPEND=">=sys-devel/make-3.81
- static? (
- >=dev-libs/skalibs-2.6.0.1[static-libs]
- )
- !static? (
- >=dev-libs/skalibs-2.6.0.1
- )
-"
-RDEPEND="
- !static? (
- >=dev-libs/skalibs-2.6.0.1:=
- )
-"
-
-HTML_DOCS="doc/*"
-
-src_prepare() {
- default
-
- # Remove QA warning about LDFLAGS addition
- sed -i "s/tryldflag LDFLAGS_AUTO -Wl,--hash-style=both/:/" "${S}/configure" || die
-
- # configure overrides gentoo's -fstack-protector default
- sed -i "/^tryflag CFLAGS -fno-stack-protector$/d" "${S}/configure" || die
-}
-
-src_configure() {
- econf \
- --bindir=/bin \
- --dynlibdir=/$(get_libdir) \
- --libdir=/usr/$(get_libdir)/${PN} \
- --with-dynlib=/$(get_libdir) \
- --with-lib=/usr/$(get_libdir)/skalibs \
- --with-sysdeps=/usr/$(get_libdir)/skalibs \
- $(use_enable !static shared) \
- $(use_enable static allstatic) \
- $(use_enable static static-libc) \
- $(use_enable static-libs static)
-}
diff --git a/dev-lang/execline/execline-2.3.0.4.ebuild b/dev-lang/execline/execline-2.3.0.4.ebuild
deleted file mode 100644
index 83c57271fbbf..000000000000
--- a/dev-lang/execline/execline-2.3.0.4.ebuild
+++ /dev/null
@@ -1,55 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit versionator
-
-DESCRIPTION="a non-interactive scripting language"
-HOMEPAGE="https://www.skarnet.org/software/execline/"
-SRC_URI="https://www.skarnet.org/software/${PN}/${P}.tar.gz"
-
-LICENSE="ISC"
-SLOT="0/$(get_version_component_range 1-2)"
-KEYWORDS="~amd64 ~arm ~x86"
-IUSE="static static-libs"
-
-DEPEND=">=sys-devel/make-3.81
- static? (
- >=dev-libs/skalibs-2.6.2.0[static-libs]
- )
- !static? (
- >=dev-libs/skalibs-2.6.2.0
- )
-"
-RDEPEND="
- !static? (
- >=dev-libs/skalibs-2.6.2.0:=
- )
-"
-
-HTML_DOCS="doc/*"
-
-src_prepare() {
- default
-
- # Remove QA warning about LDFLAGS addition
- sed -i "s/tryldflag LDFLAGS_AUTO -Wl,--hash-style=both/:/" "${S}/configure" || die
-
- # configure overrides gentoo's -fstack-protector default
- sed -i "/^tryflag CFLAGS -fno-stack-protector$/d" "${S}/configure" || die
-}
-
-src_configure() {
- econf \
- --bindir=/bin \
- --dynlibdir=/$(get_libdir) \
- --libdir=/usr/$(get_libdir)/${PN} \
- --with-dynlib=/$(get_libdir) \
- --with-lib=/usr/$(get_libdir)/skalibs \
- --with-sysdeps=/usr/$(get_libdir)/skalibs \
- $(use_enable !static shared) \
- $(use_enable static allstatic) \
- $(use_enable static static-libc) \
- $(use_enable static-libs static)
-}
diff --git a/dev-lang/execline/execline-2.5.0.1.ebuild b/dev-lang/execline/execline-2.5.0.1.ebuild
deleted file mode 100644
index e3d5fb4aabe0..000000000000
--- a/dev-lang/execline/execline-2.5.0.1.ebuild
+++ /dev/null
@@ -1,44 +0,0 @@
-# Copyright 1999-2018 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-DESCRIPTION="a non-interactive scripting language"
-HOMEPAGE="https://www.skarnet.org/software/execline/"
-SRC_URI="https://www.skarnet.org/software/${PN}/${P}.tar.gz"
-
-LICENSE="ISC"
-SLOT="0/$(ver_cut 1-2)"
-KEYWORDS="~amd64 ~arm ~x86"
-IUSE="static static-libs"
-
-REQUIRED_USE="static? ( static-libs )"
-
-DEPEND=">=dev-libs/skalibs-2.7.0.0[static-libs?]"
-RDEPEND="!static? ( >=dev-libs/skalibs-2.7.0.0:= )"
-
-HTML_DOCS="doc/*"
-
-src_prepare() {
- default
-
- # Remove QA warning about LDFLAGS addition
- sed -i "s/tryldflag LDFLAGS_AUTO -Wl,--hash-style=both/:/" "${S}/configure" || die
-
- # configure overrides gentoo's -fstack-protector default
- sed -i "/^tryflag CFLAGS -fno-stack-protector$/d" "${S}/configure" || die
-}
-
-src_configure() {
- econf \
- --bindir=/bin \
- --dynlibdir=/$(get_libdir) \
- --libdir=/usr/$(get_libdir)/${PN} \
- --with-dynlib=/$(get_libdir) \
- --with-lib=/usr/$(get_libdir)/skalibs \
- --with-sysdeps=/usr/$(get_libdir)/skalibs \
- --enable-shared \
- $(use_enable static allstatic) \
- $(use_enable static static-libc) \
- $(use_enable static-libs static)
-}
diff --git a/dev-lang/execline/execline-2.5.1.0.ebuild b/dev-lang/execline/execline-2.5.1.0.ebuild
deleted file mode 100644
index 70c3c769f1be..000000000000
--- a/dev-lang/execline/execline-2.5.1.0.ebuild
+++ /dev/null
@@ -1,42 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-DESCRIPTION="A non-interactive scripting language"
-HOMEPAGE="https://www.skarnet.org/software/execline/"
-SRC_URI="https://www.skarnet.org/software/${PN}/${P}.tar.gz"
-
-LICENSE="ISC"
-SLOT="0/$(ver_cut 1-2)"
-KEYWORDS="~amd64 ~arm ~x86"
-IUSE="static static-libs"
-
-REQUIRED_USE="static? ( static-libs )"
-
-RDEPEND=">=dev-libs/skalibs-2.8.0.0:=[static-libs?]"
-DEPEND="${RDEPEND}"
-
-HTML_DOCS=( doc/. )
-
-src_prepare() {
- default
-
- # Avoid QA warning for LDFLAGS addition; avoid overriding -fstack-protector
- sed -i -e 's/.*-Wl,--hash-style=both$/:/' -e '/-fno-stack-protector$/d' \
- configure || die
-}
-
-src_configure() {
- econf \
- --bindir=/bin \
- --dynlibdir=/usr/$(get_libdir) \
- --libdir=/usr/$(get_libdir)/${PN} \
- --with-dynlib=/usr/$(get_libdir) \
- --with-lib=/usr/$(get_libdir)/skalibs \
- --with-sysdeps=/usr/$(get_libdir)/skalibs \
- --enable-shared \
- $(use_enable static allstatic) \
- $(use_enable static static-libc) \
- $(use_enable static-libs static)
-}
diff --git a/dev-lang/execline/execline-2.5.3.0.ebuild b/dev-lang/execline/execline-2.5.3.0.ebuild
deleted file mode 100644
index e1b054e6a45f..000000000000
--- a/dev-lang/execline/execline-2.5.3.0.ebuild
+++ /dev/null
@@ -1,42 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-DESCRIPTION="A non-interactive scripting language"
-HOMEPAGE="https://www.skarnet.org/software/execline/"
-SRC_URI="https://www.skarnet.org/software/${PN}/${P}.tar.gz"
-
-LICENSE="ISC"
-SLOT="0/$(ver_cut 1-2)"
-KEYWORDS="~amd64 ~arm ~x86"
-IUSE="static static-libs"
-
-REQUIRED_USE="static? ( static-libs )"
-
-RDEPEND=">=dev-libs/skalibs-2.9.1.0:=[static-libs?]"
-DEPEND="${RDEPEND}"
-
-HTML_DOCS=( doc/. )
-
-src_prepare() {
- default
-
- # Avoid QA warning for LDFLAGS addition; avoid overriding -fstack-protector
- sed -i -e 's/.*-Wl,--hash-style=both$/:/' -e '/-fno-stack-protector$/d' \
- configure || die
-}
-
-src_configure() {
- econf \
- --bindir=/bin \
- --dynlibdir=/usr/$(get_libdir) \
- --libdir=/usr/$(get_libdir)/${PN} \
- --with-dynlib=/usr/$(get_libdir) \
- --with-lib=/usr/$(get_libdir)/skalibs \
- --with-sysdeps=/usr/$(get_libdir)/skalibs \
- --enable-shared \
- $(use_enable static allstatic) \
- $(use_enable static static-libc) \
- $(use_enable static-libs static)
-}
diff --git a/dev-lang/execline/execline-2.6.1.1.ebuild b/dev-lang/execline/execline-2.6.1.1.ebuild
deleted file mode 100644
index 56df74d7c553..000000000000
--- a/dev-lang/execline/execline-2.6.1.1.ebuild
+++ /dev/null
@@ -1,42 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-DESCRIPTION="A non-interactive scripting language"
-HOMEPAGE="https://www.skarnet.org/software/execline/"
-SRC_URI="https://www.skarnet.org/software/${PN}/${P}.tar.gz"
-
-LICENSE="ISC"
-SLOT="0/$(ver_cut 1-2)"
-KEYWORDS="~amd64 ~arm ~x86"
-IUSE="static static-libs"
-
-REQUIRED_USE="static? ( static-libs )"
-
-RDEPEND=">=dev-libs/skalibs-2.9.3.0:=[static-libs?]"
-DEPEND="${RDEPEND}"
-
-HTML_DOCS=( doc/. )
-
-src_prepare() {
- default
-
- # Avoid QA warning for LDFLAGS addition; avoid overriding -fstack-protector
- sed -i -e 's/.*-Wl,--hash-style=both$/:/' -e '/-fno-stack-protector$/d' \
- configure || die
-}
-
-src_configure() {
- econf \
- --bindir=/bin \
- --dynlibdir=/usr/$(get_libdir) \
- --libdir=/usr/$(get_libdir)/${PN} \
- --with-dynlib=/usr/$(get_libdir) \
- --with-lib=/usr/$(get_libdir)/skalibs \
- --with-sysdeps=/usr/$(get_libdir)/skalibs \
- --enable-shared \
- $(use_enable static allstatic) \
- $(use_enable static static-libc) \
- $(use_enable static-libs static)
-}
diff --git a/dev-lang/execline/execline-2.9.4.0.ebuild b/dev-lang/execline/execline-2.9.4.0.ebuild
new file mode 100644
index 000000000000..da959d63bdca
--- /dev/null
+++ b/dev-lang/execline/execline-2.9.4.0.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit optfeature toolchain-funcs
+
+DESCRIPTION="A non-interactive scripting language"
+HOMEPAGE="https://www.skarnet.org/software/execline/"
+SRC_URI="https://www.skarnet.org/software/${PN}/${P}.tar.gz"
+
+LICENSE="ISC"
+SLOT="0/$(ver_cut 1-2).4"
+KEYWORDS="~alpha amd64 arm ~mips ~riscv x86"
+
+RDEPEND=">=dev-libs/skalibs-2.14.0.0:="
+DEPEND="${RDEPEND}"
+
+HTML_DOCS=( doc/. )
+
+src_prepare() {
+ default
+
+ # Avoid QA warning for LDFLAGS addition
+ sed -i -e 's/.*-Wl,--hash-style=both$/:/' configure || die
+
+ sed -i -e '/AR := /d' -e '/RANLIB := /d' Makefile || die
+}
+
+src_configure() {
+ tc-export AR CC RANLIB
+
+ local myconf=(
+ --bindir=/bin
+ --dynlibdir="/$(get_libdir)"
+ --libdir="/usr/$(get_libdir)/${PN}"
+ --with-dynlib="/$(get_libdir)"
+ --with-lib="/usr/$(get_libdir)/skalibs"
+ --with-sysdeps="/usr/$(get_libdir)/skalibs"
+ --enable-shared
+ --disable-allstatic
+ --disable-static
+ --disable-static-libc
+ )
+
+ econf "${myconf[@]}"
+}
+
+pkg_postinst() {
+ optfeature "man pages" app-doc/execline-man-pages
+}
diff --git a/dev-lang/execline/execline-2.9.5.1.ebuild b/dev-lang/execline/execline-2.9.5.1.ebuild
new file mode 100644
index 000000000000..cb8dadc3aff3
--- /dev/null
+++ b/dev-lang/execline/execline-2.9.5.1.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit optfeature toolchain-funcs
+
+DESCRIPTION="A non-interactive scripting language"
+HOMEPAGE="https://www.skarnet.org/software/execline/"
+SRC_URI="https://www.skarnet.org/software/${PN}/${P}.tar.gz"
+
+LICENSE="ISC"
+SLOT="0/$(ver_cut 1-2).4"
+KEYWORDS="~alpha ~amd64 ~arm ~mips ~riscv ~x86"
+
+RDEPEND=">=dev-libs/skalibs-2.14.0.0:="
+DEPEND="${RDEPEND}"
+
+HTML_DOCS=( doc/. )
+
+src_prepare() {
+ default
+
+ # Avoid QA warning for LDFLAGS addition
+ sed -i -e 's/.*-Wl,--hash-style=both$/:/' configure || die
+
+ sed -i -e '/AR := /d' -e '/RANLIB := /d' Makefile || die
+}
+
+src_configure() {
+ tc-export AR CC RANLIB
+
+ local myconf=(
+ --bindir=/bin
+ --dynlibdir="/$(get_libdir)"
+ --libdir="/usr/$(get_libdir)/${PN}"
+ --with-dynlib="/$(get_libdir)"
+ --with-lib="/usr/$(get_libdir)/skalibs"
+ --with-sysdeps="/usr/$(get_libdir)/skalibs"
+ --enable-shared
+ --disable-allstatic
+ --disable-static
+ --disable-static-libc
+ )
+
+ econf "${myconf[@]}"
+}
+
+pkg_postinst() {
+ optfeature "man pages" app-doc/execline-man-pages
+}
diff --git a/dev-lang/execline/metadata.xml b/dev-lang/execline/metadata.xml
index a297f89a0795..78bbeb81fcdf 100644
--- a/dev-lang/execline/metadata.xml
+++ b/dev-lang/execline/metadata.xml
@@ -1,7 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
+ <email>arkamar@gentoo.org</email>
+ <name>Petr Vaněk</name>
+ </maintainer>
+ <maintainer type="person">
<email>williamh@gentoo.org</email>
<name>William Hubbs</name>
</maintainer>
diff --git a/dev-lang/f2c/Manifest b/dev-lang/f2c/Manifest
index 0c71c3a35293..861e2b882435 100644
--- a/dev-lang/f2c/Manifest
+++ b/dev-lang/f2c/Manifest
@@ -1,2 +1,4 @@
+DIST f2c-20240130.tar.gz 285158 BLAKE2B 525f53b12f3ab8c7dd5d4156dd03569b0923df3a5af04fc56965edb18932808434944b8b99fa8c1541ff3e9d6b413441f4dd55d921b63964f8906872f1674231 SHA512 dfa702a6f05139557e1f8f6d8dd9f4b54a5b277094f5202a8f9acf83f4043a9dfae3455bbac4f5c86f6027ffbe36b334b2bc085f85d3ced43634d6face9fec45
+DIST f2c-20240312.tar.gz 243278 BLAKE2B 4a2e4efeb25446449339516218a37cd4561a9676ddee82b8d46add49cadefad9aa39eb62147137b9199e72c4464032b90d4be25d784156cdf1a85bcbca471f9a SHA512 4af5d453b4635416f0a38cfa2bafd78d82f77a403e85d4041b18a8a7c20beadc979303c1cae2c3a89be0f5381497cedf65af618661c27af1e79141688914e69a
DIST f2c_20100827-1.debian.tar.gz 15659 BLAKE2B 4773a939e51074df34b48540ed67d0bd3dce85b64d6118c480217b569bbe11a9907a7a8bf2d68f0ec5fae51c65ec29a9dafdac1a009a90b5c6d02306496a72d5 SHA512 784d3f1a74311a933b54103d36dd18eb879bef1816ea82e8d93ef5a0eb7582d4ddde3a2b764d15b78194bab4cdf940480089e8b920002134af66cdf095708535
DIST f2c_20100827.orig.tar.gz 417930 BLAKE2B 4ccd59762947de9d316520f213d33e095a559dfe914c06d58f4db21a031b6dca332d75473dbaa6a6167ef3f0459c68235fdddac3ed4dcea34e9597a8ab0ae982 SHA512 2c28d8c06e53b569816e7982725133d46e9b145a84ec51771f4cca2409098f894648ebe5b8089a1ddd8468be62394b0edb5985e50baeea8129e4f507236d6c0d
diff --git a/dev-lang/f2c/f2c-20100827-r1.ebuild b/dev-lang/f2c/f2c-20100827-r1.ebuild
index 9293b9d5a313..ef0a15a3ef97 100644
--- a/dev-lang/f2c/f2c-20100827-r1.ebuild
+++ b/dev-lang/f2c/f2c-20100827-r1.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
-inherit toolchain-funcs
+inherit flag-o-matic toolchain-funcs
DEB_PV=20100827
DEB_PR=1
@@ -35,6 +35,12 @@ PATCHES=(
)
src_configure() {
+ # -Werror=strict-aliasing
+ # https://bugs.gentoo.org/855593
+ #
+ append-flags -fno-strict-aliasing
+ filter-lto
+
tc-export CC
}
diff --git a/dev-lang/f2c/f2c-20240130.ebuild b/dev-lang/f2c/f2c-20240130.ebuild
new file mode 100644
index 000000000000..8ce0baf4d65a
--- /dev/null
+++ b/dev-lang/f2c/f2c-20240130.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit flag-o-matic toolchain-funcs
+
+DESCRIPTION="Fortran to C converter"
+HOMEPAGE="https://www.netlib.org/f2c"
+SRC_URI="
+ https://www.netlib.org/f2c/src.tgz -> ${P}.tar.gz
+"
+
+LICENSE="HPND"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+
+RDEPEND=">=dev-libs/libf2c-20130927-r1"
+
+S="${WORKDIR}"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-20100827-fix-buildsystem.patch
+)
+
+src_configure() {
+ # -Werror=strict-aliasing
+ # https://bugs.gentoo.org/855593
+ # Upstream bug reports are handled via email. I have sent one and
+ # will follow up by myself.
+ #
+ # Do not trust with LTO either
+ append-flags -fno-strict-aliasing
+ filter-lto
+
+ tc-export CC
+}
+
+src_compile() {
+ emake -C src -f makefile.u f2c
+}
+
+src_install() {
+ dobin src/f2c
+
+ dodoc src/README src/Notice
+
+}
diff --git a/dev-lang/f2c/f2c-20240312.ebuild b/dev-lang/f2c/f2c-20240312.ebuild
new file mode 100644
index 000000000000..89c0a85ceab8
--- /dev/null
+++ b/dev-lang/f2c/f2c-20240312.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+DESCRIPTION="Fortran to C converter"
+HOMEPAGE="https://www.netlib.org/f2c"
+SRC_URI="
+ https://www.netlib.org/f2c/src.tgz -> ${P}.tar.gz
+"
+
+LICENSE="HPND"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+
+RDEPEND=">=dev-libs/libf2c-20130927-r1"
+
+S="${WORKDIR}"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-20100827-fix-buildsystem.patch
+)
+
+src_configure() {
+ tc-export CC
+}
+
+src_compile() {
+ emake -C src -f makefile.u f2c
+}
+
+src_install() {
+ dobin src/f2c
+
+ dodoc src/README src/Notice
+
+}
diff --git a/dev-lang/f2c/metadata.xml b/dev-lang/f2c/metadata.xml
index 52a68bb17fdb..8a1f31b237c1 100644
--- a/dev-lang/f2c/metadata.xml
+++ b/dev-lang/f2c/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>sci@gentoo.org</email>
diff --git a/dev-lang/fennel/Manifest b/dev-lang/fennel/Manifest
new file mode 100644
index 000000000000..18fdb5f8393e
--- /dev/null
+++ b/dev-lang/fennel/Manifest
@@ -0,0 +1,2 @@
+DIST fennel-1.4.0.tar.gz 299561 BLAKE2B a94bb15c04b69154dbea1bc562347cef0b9ddd9ec3c3994bf5999593ef89422338f54dfb0bbd6c8e6f487eeb6d1178cc916ed8a92ec7755c43108ff58d3a842e SHA512 0c92496db478eb5445d95057433b54a945c38a40541c6891c1d887a296ce3c89468c688702249488b34192ce1783b4891e292b9b1702a0620e51cc103602694a
+DIST fennel-1.4.2.tar.gz 301195 BLAKE2B f5a124725b4d2573275f179090b0400ed07dcc50d6ae661dd588887b8774a2cb48ab9f720dfb7bc7049d1e353f430e75da48e9a08b716cc1a80e4e09bf269bc7 SHA512 13b6020314d010566c7521b85065a446e09f8a0cfec9b9cb4bc2e23fe59369d105538bcb8a3a7cd865c399742d98a1742da932f8bde993c1136422f803069071
diff --git a/dev-lang/fennel/fennel-1.4.0-r2.ebuild b/dev-lang/fennel/fennel-1.4.0-r2.ebuild
new file mode 100644
index 000000000000..68ee8a548f2b
--- /dev/null
+++ b/dev-lang/fennel/fennel-1.4.0-r2.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Fails to build with with "lua5-1".
+LUA_COMPAT=( lua5-{3,4} luajit )
+
+inherit lua-single
+
+DESCRIPTION="Lisp-like language that compiles to Lua"
+HOMEPAGE="https://fennel-lang.org/
+ https://sr.ht/~technomancy/fennel/"
+
+if [[ "${PV}" == *9999* ]] ; then
+ inherit git-r3
+
+ EGIT_REPO_URI="https://git.sr.ht/~technomancy/${PN}"
+else
+ SRC_URI="https://git.sr.ht/~technomancy/${PN}/archive/${PV}.tar.gz
+ -> ${P}.tar.gz"
+
+ KEYWORDS="amd64 ~arm ~arm64 ~ppc ~x86"
+fi
+
+LICENSE="MIT"
+SLOT="0/${PV}"
+REQUIRED_USE="${LUA_REQUIRED_USE}"
+
+RDEPEND="
+ ${LUA_DEPS}
+"
+BDEPEND="
+ ${RDEPEND}
+"
+
+src_prepare() {
+ default
+
+ # Turn off failing tests. bug https://bugs.gentoo.org/906351
+ sed -e 's|"failures",||' -e 's|"repl",||' -i test/init.lua || die
+
+ # Remove bad tests, bug #923281
+ rm test/macro.fnl || die
+ sed -i test/init.lua -e 's|"test.macro",||' || die
+}
+
+src_test() {
+ emake test
+}
+
+src_install() {
+ emake LUA_LIB_DIR="${ED}/$(lua_get_lmod_dir)" PREFIX="${ED}/usr" install
+
+ dodoc *.md
+}
diff --git a/dev-lang/fennel/fennel-1.4.2-r1.ebuild b/dev-lang/fennel/fennel-1.4.2-r1.ebuild
new file mode 100644
index 000000000000..68ee8a548f2b
--- /dev/null
+++ b/dev-lang/fennel/fennel-1.4.2-r1.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Fails to build with with "lua5-1".
+LUA_COMPAT=( lua5-{3,4} luajit )
+
+inherit lua-single
+
+DESCRIPTION="Lisp-like language that compiles to Lua"
+HOMEPAGE="https://fennel-lang.org/
+ https://sr.ht/~technomancy/fennel/"
+
+if [[ "${PV}" == *9999* ]] ; then
+ inherit git-r3
+
+ EGIT_REPO_URI="https://git.sr.ht/~technomancy/${PN}"
+else
+ SRC_URI="https://git.sr.ht/~technomancy/${PN}/archive/${PV}.tar.gz
+ -> ${P}.tar.gz"
+
+ KEYWORDS="amd64 ~arm ~arm64 ~ppc ~x86"
+fi
+
+LICENSE="MIT"
+SLOT="0/${PV}"
+REQUIRED_USE="${LUA_REQUIRED_USE}"
+
+RDEPEND="
+ ${LUA_DEPS}
+"
+BDEPEND="
+ ${RDEPEND}
+"
+
+src_prepare() {
+ default
+
+ # Turn off failing tests. bug https://bugs.gentoo.org/906351
+ sed -e 's|"failures",||' -e 's|"repl",||' -i test/init.lua || die
+
+ # Remove bad tests, bug #923281
+ rm test/macro.fnl || die
+ sed -i test/init.lua -e 's|"test.macro",||' || die
+}
+
+src_test() {
+ emake test
+}
+
+src_install() {
+ emake LUA_LIB_DIR="${ED}/$(lua_get_lmod_dir)" PREFIX="${ED}/usr" install
+
+ dodoc *.md
+}
diff --git a/dev-lang/fennel/metadata.xml b/dev-lang/fennel/metadata.xml
new file mode 100644
index 000000000000..63abd338943f
--- /dev/null
+++ b/dev-lang/fennel/metadata.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>xgqt@gentoo.org</email>
+ <name>Maciej Barć</name>
+ </maintainer>
+ <longdescription>
+ Fennel is a lisp that compiles to Lua. It aims to be easy to use,
+ expressive, and has almost zero overhead compared to handwritten Lua.
+ Full Lua compatibility - You can use any function or library from Lua.
+ Zero overhead - Compiled code should be just as or more efficient
+ than hand-written Lua.
+ Compile-time macros - Ship compiled code with no runtime dependency
+ on Fennel.
+ Embeddable - Fennel is a one-file library as well as an executable.
+ Embed it in other programs to support runtime extensibility and
+ interactive development.
+ At https://fennel-lang.org there's a live in-browser REPL you can use
+ without installing anything.
+ </longdescription>
+ <upstream>
+ <remote-id type="sourcehut">~technomancy/fennel</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-lang/ferite/Manifest b/dev-lang/ferite/Manifest
deleted file mode 100644
index 0f1167f97e8c..000000000000
--- a/dev-lang/ferite/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-DIST ferite-1.1.17.tar.gz 2174774 BLAKE2B 5e55ed4101bc5a9c031afef0d9bfcafdc0c498c4ddc712eb17e3059ebd55b925e6b0343113853b946a31a428e5f71c17a2365e629447bb504453b6a7d61358d8 SHA512 475983b865fba492661e59b7470b7e46889f29ed8ba829b112354963fafcbed6ab4d4677579337c1c4ed730c6fe02897743f56edae335ceda6277da975d1098f
diff --git a/dev-lang/ferite/ferite-1.1.17-r1.ebuild b/dev-lang/ferite/ferite-1.1.17-r1.ebuild
deleted file mode 100644
index 89bf1582aa04..000000000000
--- a/dev-lang/ferite/ferite-1.1.17-r1.ebuild
+++ /dev/null
@@ -1,83 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-inherit autotools
-
-DESCRIPTION="A clean, lightweight, object oriented scripting language"
-HOMEPAGE="http://ferite.sourceforge.net/"
-SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
-
-LICENSE="BSD"
-SLOT="1"
-KEYWORDS="~alpha amd64 ppc -sparc x86 ~amd64-linux ~x86-linux ~ppc-macos"
-IUSE=""
-
-RDEPEND="
- dev-libs/boehm-gc[threads]
- >=dev-libs/libpcre-5:3
- dev-libs/libxml2:2
-"
-DEPEND="${RDEPEND}"
-
-src_prepare() {
- default
-
- eapply "${FILESDIR}"/ferite-pcre.patch
-
- # use docsdir variable, install to DESTDIR
- sed \
- -e '/docsdir =/!s:$(prefix)/share/doc/ferite:$(DESTDIR)$(docsdir):' \
- -i docs/Makefile.am || die
-
- # Install docs to /usr/share/doc/${PF}, not .../${PN}
- sed \
- -e "s:doc/ferite:doc/${PF}:" \
- -i Makefile.am \
- docs/Makefile.am \
- scripts/test/Makefile.am \
- scripts/test/rmi/Makefile.am || die
-
- # Don't override the user's LDFLAGS
- sed \
- -e 's:_LDFLAGS = :&$(AM_LDFLAGS) :' \
- -e '/^LDFLAGS/s:^:AM_:' \
- -i modules/*/Makefile.am \
- libs/{aphex,triton}/src/Makefile.am \
- src/Makefile.am || die
-
- # Only build/install shared libs for modules (can't use static anyway)
- sed -i -e '/_LDFLAGS/s:-module:& -shared:' modules/*/Makefile.am || die
-
- # use LIBADD to ensure proper deps (fix parallel build)
- sed \
- -e '/^stream_la_LDFLAGS/s:-L\. -lferitestream::' \
- -e '/^stream_la_LIBADD/s:$:libferitestream.la:' \
- -i modules/stream/Makefile.am || die
-
- # Make sure we install in $(get_libdir), not lib
- sed -i -e "s|\$prefix/lib|\$prefix/$(get_libdir)|g" configure.ac || die
-
- # We copy feritedoc to ${T} in src_install, then patch it in-situ
- # note that this doesn't actually work right, currently - it still tries
- # to pull from / instead of ${D}, and I can't figure out how to fix that
- sed -i -e 's:$(prefix)/bin/:${T}/:' docs/Makefile.am || die
-
- eautoreconf
-}
-
-src_configure() {
- econf --libdir="${EPREFIX}/usr/$(get_libdir)"
-}
-
-src_install() {
- cp tools/doc/feritedoc "${T}" || die
- sed -i -e '/^prefix/s:prefix:${T}:g' "${T}"/feritedoc || die
- sed -i -e '/^$prefix/s:$prefix/bin/ferite:'"${ED}"'/usr/bin/ferite:' "${T}"/feritedoc || die
- sed -i -e 's:$library_path $library_path:${S}/tools/doc ${S}/tools/doc:' "${T}"/feritedoc || die
-
- export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}${LD_LIBRARY_PATH:+:}${ED}/usr/lib"
- emake DESTDIR="${D}" LIBDIR="${EPREFIX}"/usr/$(get_libdir) install
-
- find "${D}" -name '*.la' -delete || die
-}
diff --git a/dev-lang/ferite/files/ferite-pcre.patch b/dev-lang/ferite/files/ferite-pcre.patch
deleted file mode 100644
index 1e2e19ce4811..000000000000
--- a/dev-lang/ferite/files/ferite-pcre.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-diff -pruN ferite-1.1.17.orig/modules/regexp/regexp.fec ferite-1.1.17/modules/regexp/regexp.fec
---- ferite-1.1.17.orig/modules/regexp/regexp.fec 2009-07-15 19:21:34.000000000 +0200
-+++ ferite-1.1.17/modules/regexp/regexp.fec 2013-02-01 02:33:40.438849775 +0100
-@@ -427,7 +427,8 @@ class Regexp {
- }
-
- /* get the number of subparts */
-- captured_str_cnt = pcre_info( rgx->compiled_re, NULL, NULL ) + 1;
-+ pcre_fullinfo( rgx->compiled_re, NULL, PCRE_INFO_CAPTURECOUNT, &captured_str_cnt );
-+ captured_str_cnt++;
- /* create an offset array */
- size_offsets = (int)(captured_str_cnt * 3);
- offsets = (int *)fmalloc(size_offsets * sizeof(int));
-diff -pruN ferite-1.1.17.orig/modules/regexp/regexp_Regexp.c ferite-1.1.17/modules/regexp/regexp_Regexp.c
---- ferite-1.1.17.orig/modules/regexp/regexp_Regexp.c 2009-07-17 08:59:19.000000000 +0200
-+++ ferite-1.1.17/modules/regexp/regexp_Regexp.c 2013-02-01 02:33:16.647875845 +0100
-@@ -88,7 +88,8 @@ FE_NATIVE_FUNCTION( ferite_regexp_Regexp
- }
-
- /* get the number of subparts */
-- captured_str_cnt = pcre_info( rgx->compiled_re, NULL, NULL ) + 1;
-+ pcre_fullinfo( rgx->compiled_re, NULL, PCRE_INFO_CAPTURECOUNT, &captured_str_cnt );
-+ captured_str_cnt++;
- /* create an offset array */
- size_offsets = (int)(captured_str_cnt * 3);
- offsets = (int *)fmalloc(size_offsets * sizeof(int));
diff --git a/dev-lang/ferite/metadata.xml b/dev-lang/ferite/metadata.xml
deleted file mode 100644
index e00696046401..000000000000
--- a/dev-lang/ferite/metadata.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
- <!-- maintainer-needed -->
- <upstream>
- <remote-id type="sourceforge">ferite</remote-id>
- </upstream>
-</pkgmetadata>
diff --git a/dev-lang/fpc/Manifest b/dev-lang/fpc/Manifest
index e31c7ab20f94..94f8c15f47f4 100644
--- a/dev-lang/fpc/Manifest
+++ b/dev-lang/fpc/Manifest
@@ -1,5 +1,7 @@
-DIST fpc-3.0.4-doc-html.tar.gz 5658315 BLAKE2B 49f9e6f3848ad1aaad8b1621ffd5d2026590b3eed515b9bebe09c489cdf2d7170fcf7413794daebf3465190f5588317325b81d9723d824ab49c81db796f2f48f SHA512 1ebc8c5c5f213568dd24d50667c7939e00c33796c131db174ee93a4dc36122383e7d803cd280896c603eccfadc5bc3474b1831fa7f3e457a58fb3a045b8c33b1
-DIST fpc-3.0.4.i386-linux.tar 54691840 BLAKE2B c0951c85a3916c29e8e7391408da09abd86898a42159bfd7e637410ecf3e3a3f266a33edb5eb5ad458be92cf1fc7741eb249a512fe817a73a13207e216e0c0d2 SHA512 eee7528a69d5c745981efc90f571542047a5e6b4f1b391ad5341460035da5feffdfc4c38229134d23513239ccb33dcbc95354559e45746f1f6665541c60d0ca7
-DIST fpc-3.0.4.source.tar.gz 40347617 BLAKE2B 0764c92cc379d6e70a3f33368d96244ea0203b3395a5dbcadebe6ef51b508cbc7c112f9bc7bce69ae6dae1fde03bc9e45a1a8ad70ca154cc4dd51bc93cab82f9 SHA512 fc64fd94c39f220bd7531126d6281fa2141aed61c218595a7906a025660b46629a305ff7eb023f5e1359eafdec2dba69aa5405f1bbc3c1182414968689cbb52e
-DIST fpc-3.0.4.x86_64-linux.tar 56842240 BLAKE2B fda488466f409d4f50501ad17edcce2740f0a7e60ac86bbfec235ccc27c619d62d2aab01aa7878ba3e174c35fd46aab98e43eda4528e98fdf3e098330eea9b26 SHA512 085110d0fade11c4e6e79c002522080eb070cebb8ebbed48ca35e3a2dc025df678516e36c7cba5f951e20c0da57dd261d673dda6839ecdf5d88aa8dfe15a56e5
-DIST fpcbuild-3.0.4.tar.gz 68908523 BLAKE2B b5c3936cf0b803aa2cc71f9c25ded470f207c540a1691cf3c2a9876c9e4eefd5c04f45b9f1f3ca17917b14ba4a90e0f16cc890b27024ff225d9d6bb25649862b SHA512 eedfeb4d25b3f4cb30ae9c8f30e0fec2405ef806fa565933cef7904d512f781730e3f023aea2f908c21250e3ced4f74fa780abad77b560728a88cedf591505b6
+DIST fpc-3.2.2-doc-html.tar.gz 5810672 BLAKE2B 5d2c0ce35024f58d35e59034d4c071ec58214874f31ef44b8f4ea8cb68636080b61dea9a5d0ccc8062814c0b2fe3bc5269e6584ae30fedb29dbb0709ce1b3103 SHA512 0bdefd25b9f46bb6684bb4dd8f60de796cbbf81049a7e8bac4cc4bc87dd6100a42ea05601cf1bb0254e8b73ddaf5d1bf186dbf1909f1ed7db7bdf97f50df7cdc
+DIST fpc-3.2.2.aarch64-linux.tar 137943040 BLAKE2B 1f2b3ff35d33419bd60a65bee8e20264a7970e515e0d8239dc51bd415b9a4fc580b7d3bd7fcd2a6964f78669e9dda13d1349281116004d582236a4f314dc6935 SHA512 8a52c53cd167af39222296db7c91aadf0b5d845272833a961c5db0c7d2d4cb5e61f41f71e0989c193dc2923770440b19d7d3d71de65291d0a3e0a15edc793316
+DIST fpc-3.2.2.i386-linux.tar 85043200 BLAKE2B 9e2fae2d272c79cc7fcf4d062589bd888c342ccfb01e3f14e412bc58ff6b04928c6a7a0a4b3392b30f0864f16029d063632bd72bd9cac55e0a40a00fb726ef93 SHA512 b4f1a94d1a05901f4ffc2e07519e9b03666850211e571cbce33f0ba16d8a1d88de256c8e111579f46d56f157630dfc722a8ae9ce2b200fc784c588ea4e6bd5df
+DIST fpc-3.2.2.source.tar.gz 52240052 BLAKE2B e30cf1b10c4cafd0ae2a25673678213669c29dec0549f4d7b357011e84a0a2c8ecf343cb6443798e6c36c02ae97a0c7cae7ca24829510c552968d4a58426576f SHA512 6d320b4e0805d63c40d3037f9d2078068c2c9fcdeb6ac073a6fcc19249bd6325dc542fcc7fc6dbb7e69507dcd84cf9e720e7d73925afe955e2a24e8c7d92606a
+DIST fpc-3.2.2.sparc64-linux.tar 141895680 BLAKE2B 0cfa9584cf330bbafa3d6b2c03c1fe88563b17cbb9e1d4fd75b94083bbf08fcba3086daa7988056d9a4f832d315f8919d3e5d07dad1f080afb09b6836a237d74 SHA512 ceda87e9a06a433967c080d11ae3d949fbd629994083fdf5cdfc3d1db239cc1ba54d2bc0879c85b81f27296803f6b955598a0595f7d4f27bbcb4251d23bca4d1
+DIST fpc-3.2.2.x86_64-linux.tar 86978560 BLAKE2B 29cac8c0da4ba65cee6a0e0cd3c111202c8943ca61a02c5dfeaeb174c353db6fc07e291794ef7433f9fdf88ed694260e734bc715567c6a12292b0c8524d17f4e SHA512 534df830a951824525044479ded23ef1e61b104c0dd65c837ad0d8d9ced9eb7349925a3f759756aa95ae17e567d8b1cd5c7e2092d3c665eaac578845b48aa467
+DIST fpcbuild-3.2.2.tar.gz 84195619 BLAKE2B 88848308c93f949b59197649cc344498082b6520e43eb1d4413bf68eb251fcab75c863794a188a2298d9e8aba47346253a596ac630b30049ac8bd6f6934aa5a2 SHA512 75889bb54adc70a6e2cbd291476b9b12d61c8f943a05b7d16d2024de3215c935465ff43b1400c412e128e260c7f49a9c66e35c21f86cb866e671b5b60a282d82
diff --git a/dev-lang/fpc/files/fpc-3.2.2-sparc-find-libs.patch b/dev-lang/fpc/files/fpc-3.2.2-sparc-find-libs.patch
new file mode 100644
index 000000000000..c7f7d6d6829b
--- /dev/null
+++ b/dev-lang/fpc/files/fpc-3.2.2-sparc-find-libs.patch
@@ -0,0 +1,16 @@
+# Fix finding a user's library dirs on sparc64.
+# Patch adapted from https://gitlab.com/freepascal.org/fpc/source/-/commit/aca84a812800fce7ef0377b43501a8efae755a13
+
+diff --git a/compiler/systems/t_linux.pas b/compiler/systems/t_linux.pas
+index 2dad1d321cc246ae69996a7df29270762a2f1fec..9768d756acbabe9edeac3c9378c0be0b6d5d4d9d 100644
+--- a/compiler/systems/t_linux.pas
++++ b/compiler/systems/t_linux.pas
+@@ -182,5 +199,8 @@ procedure SetupLibrarySearchPath;
+ {$ifdef sparc64}
+ LibrarySearchPath.AddLibraryPath(sysrootpath,'=/usr/lib/sparc64-linux-gnu',true);
++ LibrarySearchPath.AddLibraryPath(sysrootpath,'=/lib/sparc64-linux-gnu',true);
++ LibrarySearchPath.AddLibraryPath(sysrootpath,'=/usr/lib64',true);
++ LibrarySearchPath.AddLibraryPath(sysrootpath,'=/lib64',true);
+ {$endif sparc64}
+ {$ifdef riscv32}
+ LibrarySearchPath.AddLibraryPath(sysrootpath,'=/usr/lib/riscv32-linux-gnu',true);
diff --git a/dev-lang/fpc/fpc-3.0.4.ebuild b/dev-lang/fpc/fpc-3.0.4.ebuild
deleted file mode 100644
index 1f46d2453e6a..000000000000
--- a/dev-lang/fpc/fpc-3.0.4.ebuild
+++ /dev/null
@@ -1,165 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-
-inherit prefix toolchain-funcs
-
-HOMEPAGE="https://www.freepascal.org/"
-DESCRIPTION="Free Pascal Compiler"
-SRC_URI="mirror://sourceforge/freepascal/fpcbuild-${PV}.tar.gz
- mirror://sourceforge/freepascal/fpc-${PV}.source.tar.gz
- amd64? ( mirror://sourceforge/freepascal/${P}.x86_64-linux.tar )
- x86? ( mirror://sourceforge/freepascal/${P}.i386-linux.tar )
- doc? ( mirror://sourceforge/freepascal/Documentation/${PV}/doc-html.tar.gz -> ${P}-doc-html.tar.gz )"
-
-SLOT="0"
-LICENSE="GPL-2 LGPL-2.1-with-linking-exception"
-KEYWORDS="amd64 x86"
-IUSE="doc ide source"
-
-RDEPEND="ide? ( !dev-lang/fpc-ide )"
-
-RESTRICT="strip" #269221
-
-S=${WORKDIR}/fpcbuild-${PV}/fpcsrc
-
-pkg_pretend() {
- if [[ ${MERGE_TYPE} != binary ]]; then
- # Bug 475210
- if $(tc-getLD) --version | grep -q "GNU gold"; then
- eerror "fpc does not function correctly when built with the gold linker."
- eerror "Please select the bfd linker with binutils-config."
- die "GNU gold detected"
- fi
- fi
-}
-
-src_unpack() {
- case ${ARCH} in
- amd64) FPC_ARCH="x86_64" PV_BIN=${PV} ;;
- x86) FPC_ARCH="i386" PV_BIN=${PV} ;;
- *) die "This ebuild doesn't support ${ARCH}." ;;
- esac
-
- unpack ${A}
-
- tar -xf ${PN}-${PV_BIN}.${FPC_ARCH}-linux/binary.${FPC_ARCH}-linux.tar || die "Unpacking binary.${FPC_ARCH}-linux.tar failed!"
- tar -xzf base.${FPC_ARCH}-linux.tar.gz || die "Unpacking base.${FPC_ARCH}-linux.tar.gz failed!"
-}
-
-src_prepare() {
- find "${WORKDIR}" -name Makefile -exec sed -i -e 's/ -Xs / /g' {} + || die
-
- # let the pkg manager compress man files
- sed -i '/find man.* gzip /d' "${WORKDIR}"/fpcbuild-${PV}/install/man/Makefile || die
-
- # make the compiled binary check for fpc.cfg under the prefixed /etc/ path
- hprefixify "${WORKDIR}"/fpcbuild-${PV}/fpcsrc/compiler/options.pas
-}
-
-set_pp() {
- case ${ARCH} in
- amd64) FPC_ARCH="x64" FPC_PARCH="x86_64" ;;
- x86) FPC_ARCH="386" FPC_PARCH="i386" ;;
- *) die "This ebuild doesn't support ${ARCH}." ;;
- esac
-
- case ${1} in
- bootstrap) pp="${WORKDIR}"/lib/fpc/${PV_BIN}/ppc${FPC_ARCH} ;;
- new) pp="${S}"/compiler/ppc${FPC_ARCH} ;;
- *) die "set_pp: unknown argument: ${1}" ;;
- esac
-}
-
-src_compile() {
- local pp
-
- # Using the bootstrap compiler.
- set_pp bootstrap
-
- emake -j1 PP="${pp}" compiler_cycle AS="$(tc-getAS)"
-
- # Save new compiler from cleaning...
- cp "${S}"/compiler/ppc${FPC_ARCH} "${S}"/ppc${FPC_ARCH}.new || die
-
- # ...rebuild with current version...
- emake -j1 PP="${S}"/ppc${FPC_ARCH}.new AS="$(tc-getAS)" compiler_cycle
-
- # ..and clean up afterwards
- rm "${S}"/ppc${FPC_ARCH}.new || die
-
- # Using the new compiler.
- set_pp new
-
- emake -j1 PP="${pp}" AS="$(tc-getAS)" rtl_clean
-
- emake -j1 PP="${pp}" AS="$(tc-getAS)" rtl packages_all utils
-
- if use ide ; then
- cd "${S}"/ide || die
- emake -j1 PP="${pp}" AS="$(tc-getAS)"
- fi
-}
-
-src_install() {
- local pp
- set_pp new
-
- #fpcbuild-3.0.0/utils/fpcm/fpcmake
- #${WORKDIR}/${PN}build-${PV}/utils/fpcm/fpcmake"
- #fpcbuild-3.0.0/fpcsrc/utils/fpcm/bin/x86_64-linux/fpcmake
- set -- PP="${pp}" FPCMAKE="${S}/utils/fpcm/bin/${FPC_PARCH}-linux/fpcmake" \
- INSTALL_PREFIX="${ED}"/usr \
- INSTALL_DOCDIR="${ED}"/usr/share/doc/${PF} \
- INSTALL_MANDIR="${ED}"/usr/share/man \
- INSTALL_SOURCEDIR="${ED}"/usr/lib/fpc/${PV}/source
-
- emake -j1 "$@" compiler_install rtl_install packages_install utils_install
-
- dosym ../lib/fpc/${PV}/ppc${FPC_ARCH} /usr/bin/ppc${FPC_ARCH}
-
- cd "${S}"/../install/doc || die
- emake -j1 "$@" installdoc
-
- cd "${S}"/../install/man || die
- emake -j1 "$@" installman
-
- if use doc ; then
- cd "${S}"/../../doc || die
- dodoc -r *
- fi
-
- if use ide ; then
- cd "${S}"/ide || die
- emake -j1 "$@" install
- fi
-
- if use source ; then
- cd "${S}" || die
- shift
- emake -j1 PP="${ED}"/usr/bin/ppc${FPC_ARCH} "$@" sourceinstall
- find "${ED}"/usr/lib/fpc/${PV}/source -name '*.o' -exec rm {} \;
- fi
-
- "${ED}"/usr/lib/fpc/${PV}/samplecfg "${ED}"/usr/lib/fpc/${PV} "${ED}"/etc || die
-
- # set correct (prefixed) path for e.g. unit files
- sed -i "s:${ED}:${EPREFIX}:g" "${ED}"/etc/fpc.cfg || die
-
- if use ide ; then
- sed -e "s:${ED}::g" \
- -i "${ED}"/etc/fppkg.cfg \
- -i "${ED}"/etc/fppkg/* \
- -i "${ED}"/usr/lib/fpc/${PV}/ide/text/fp*.cfg \
- || die
- fi
-
- rm -r "${ED}"/usr/lib/fpc/lexyacc || die
-}
-
-pkg_postinst() {
- if [[ -z ${REPLACING_VERSIONS} ]] && use ide; then
- einfo "To read the documentation in the fpc IDE, enable the doc USE flag"
- fi
-}
diff --git a/dev-lang/fpc/fpc-3.2.2.ebuild b/dev-lang/fpc/fpc-3.2.2.ebuild
new file mode 100644
index 000000000000..8230343c8e34
--- /dev/null
+++ b/dev-lang/fpc/fpc-3.2.2.ebuild
@@ -0,0 +1,199 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit prefix toolchain-funcs
+
+HOMEPAGE="https://www.freepascal.org/"
+DESCRIPTION="Free Pascal Compiler"
+SRC_URI="https://downloads.sourceforge.net/freepascal/fpcbuild-${PV}.tar.gz
+ https://downloads.sourceforge.net/freepascal/fpc-${PV}.source.tar.gz
+ amd64? ( https://downloads.sourceforge.net/freepascal/${P}.x86_64-linux.tar )
+ arm64? ( https://downloads.sourceforge.net/freepascal/${P}.aarch64-linux.tar )
+ sparc? ( https://downloads.sourceforge.net/freepascal/${P}.sparc64-linux.tar )
+ x86? ( https://downloads.sourceforge.net/freepascal/${P}.i386-linux.tar )
+ doc? ( https://downloads.sourceforge.net/freepascal/Documentation/${PV}/doc-html.tar.gz -> ${P}-doc-html.tar.gz )"
+S="${WORKDIR}/fpcbuild-${PV}/fpcsrc"
+
+LICENSE="GPL-2 LGPL-2.1-with-linking-exception"
+SLOT="0"
+KEYWORDS="-* amd64 ~arm64 ~sparc x86"
+IUSE="doc source"
+RESTRICT="strip" #269221
+
+PATCHES=(
+ "${FILESDIR}/${P}-sparc-find-libs.patch"
+)
+
+# fpc is special: it can't use CFLAGS and LDFLAGS directly
+# since those are geared for running through gcc's frontend
+QA_FLAGS_IGNORED="
+ usr/bin/.*
+ usr/lib.*/.*"
+
+pkg_pretend() {
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ # Bug 475210
+ if $(tc-getLD) --version | grep -q "GNU gold"; then
+ eerror "fpc has several issues with the gold linker and does not easily"
+ eerror "permit selection. Please do not use USE=default-gold on binutils."
+ die "GNU gold detected from $(tc-getLD)"
+ fi
+ fi
+}
+
+src_unpack() {
+ case ${ARCH} in
+ amd64)
+ FPC_ARCH="x86_64"
+ PV_BIN="${PV}"
+ ;;
+ arm64)
+ FPC_ARCH="aarch64"
+ PV_BIN="${PV}"
+ ;;
+ sparc)
+ FPC_ARCH="sparc64"
+ PV_BIN="${PV}"
+ ;;
+ x86)
+ FPC_ARCH="i386"
+ PV_BIN="${PV}"
+ ;;
+ *)
+ die "This ebuild doesn't support ${ARCH}" ;;
+ esac
+
+ unpack ${A}
+
+ unpack "${PN}-${PV_BIN}.${FPC_ARCH}-linux/binary.${FPC_ARCH}-linux.tar"
+ unpack ./base.${FPC_ARCH}-linux.tar.gz
+}
+
+src_prepare() {
+ default
+
+ find "${WORKDIR}" -name Makefile -exec sed -i 's/ -Xs / /' {} + || die
+
+ # let the pkg manager compress man files
+ sed -i '/find man.* gzip /d' "${WORKDIR}"/fpcbuild-${PV}/install/man/Makefile || die
+
+ # make the compiled binary check for fpc.cfg under the prefixed /etc/ path
+ hprefixify "${WORKDIR}"/fpcbuild-${PV}/fpcsrc/compiler/options.pas
+}
+
+set_pp() {
+ case ${ARCH} in
+ amd64)
+ FPC_ARCH="x64"
+ FPC_PARCH="x86_64"
+ ;;
+ arm64)
+ FPC_ARCH="a64"
+ FPC_PARCH="aarch64"
+ ;;
+ sparc)
+ FPC_ARCH="sparc64"
+ FPC_PARCH="sparc64"
+ ;;
+ x86)
+ FPC_ARCH="386"
+ FPC_PARCH="i386"
+ ;;
+ *)
+ die "This ebuild doesn't support ${ARCH}" ;;
+ esac
+
+ case ${1} in
+ bootstrap)
+ pp="${WORKDIR}/lib/fpc/${PV_BIN}/ppc${FPC_ARCH}"
+ ;;
+ new)
+ pp="${S}/compiler/ppc${FPC_ARCH}"
+ ;;
+ *)
+ die "set_pp: unknown argument: ${1}" ;;
+ esac
+}
+
+src_compile() {
+ local pp
+
+ # Using the bootstrap compiler.
+ set_pp bootstrap
+
+ emake PP="${pp}" compiler_cycle AS="$(tc-getAS)"
+
+ # Save new compiler from cleaning...
+ cp compiler/ppc${FPC_ARCH} ppc${FPC_ARCH}.new || die
+
+ # ...rebuild with current version...
+ emake PP="${S}/ppc${FPC_ARCH}.new" AS="$(tc-getAS)" compiler_cycle
+
+ # ..and clean up afterwards
+ rm ppc${FPC_ARCH}.new || die
+
+ # Using the new compiler.
+ set_pp new
+
+ emake PP="${pp}" AS="$(tc-getAS)" rtl_clean
+
+ # ide is moved to packages directory and build unconditionally
+ emake PP="${pp}" AS="$(tc-getAS)" rtl packages_all utils
+}
+
+src_install() {
+ local pp
+ set_pp new
+
+ #fpcbuild-3.0.0/utils/fpcm/fpcmake
+ #${WORKDIR}/${PN}build-${PV}/utils/fpcm/fpcmake"
+ #fpcbuild-3.0.0/fpcsrc/utils/fpcm/bin/x86_64-linux/fpcmake
+ set -- PP="${pp}" FPCMAKE="${S}/utils/fpcm/bin/${FPC_PARCH}-linux/fpcmake" \
+ INSTALL_PREFIX="${ED}"/usr \
+ INSTALL_DOCDIR="${ED}"/usr/share/doc/${PF} \
+ INSTALL_MANDIR="${ED}"/usr/share/man \
+ INSTALL_SOURCEDIR="${ED}"/usr/lib/fpc/${PV}/source
+
+ emake "$@" compiler_install rtl_install packages_install utils_install
+
+ dosym ../lib/fpc/${PV}/ppc${FPC_ARCH} /usr/bin/ppc${FPC_ARCH}
+
+ emake -C "${S}"/../install/doc "$@" installdoc
+ emake -C "${S}"/../install/man "$@" installman
+
+ use doc && dodoc -r "${S}"/../../doc/.
+
+ if use source ; then
+ shift
+ emake PP="${ED}"/usr/bin/ppc${FPC_ARCH} "$@" sourceinstall
+ find "${ED}"/usr/lib/fpc/${PV}/source -name '*.o' -delete || die
+ fi
+
+ "${ED}"/usr/lib/fpc/${PV}/samplecfg "${ED}"/usr/lib/fpc/${PV} "${ED}"/etc || die
+
+ # set correct (prefixed) path for e.g. unit files
+ sed -i "s:${ED}:${EPREFIX}:g" "${ED}"/etc/fpc.cfg || die
+
+ sed -e "s:${ED}::g" \
+ -i "${ED}"/etc/fppkg.cfg \
+ -i "${ED}"/etc/fppkg/default \
+ -i "${ED}"/usr/lib/fpc/${PV}/ide/text/fp.cfg \
+ || die
+
+ rm -r "${ED}"/usr/lib/fpc/lexyacc || die
+
+ case ${ARCH} in
+ amd64|arm64)
+ mkdir -p "${ED}"/usr/$(get_libdir) || die
+ mv "${ED}"/usr/lib/*.so "${ED}/usr/$(get_libdir)/" || die
+ ;;
+ esac
+}
+
+pkg_postinst() {
+ if [[ -z ${REPLACING_VERSIONS} ]] && ! use doc; then
+ elog "To read the documentation in the fpc IDE, enable the doc USE flag"
+ fi
+}
diff --git a/dev-lang/fpc/metadata.xml b/dev-lang/fpc/metadata.xml
index f42de96b8d5a..99d9bf754fda 100644
--- a/dev-lang/fpc/metadata.xml
+++ b/dev-lang/fpc/metadata.xml
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>amynka@gentoo.org</email>
</maintainer>
- <use>
- <flag name="ide">Build and install the Free Pascal Compiler IDE</flag>
- </use>
<upstream>
<remote-id type="sourceforge">freepascal</remote-id>
</upstream>
diff --git a/dev-lang/fuzion/Manifest b/dev-lang/fuzion/Manifest
new file mode 100644
index 000000000000..d51c967dd45e
--- /dev/null
+++ b/dev-lang/fuzion/Manifest
@@ -0,0 +1 @@
+DIST fuzion-0.086.tar.gz 994894 BLAKE2B e698ea7b8de215c55e84e0f55f405156d5c386c1001c7b29e0c7c49e7a7e7babf7cb64cf30726a24aa7b6ccdc0eaf01cc543867361e2554f258d76be1fc08b97 SHA512 6d2df12d1dced9c5a61bb183767fc205ddbc0d04db8cae3f5e3eabd9ab60f18b3c2b3fa8f57702dc792882b1a6f79da1cfcb7801d84ecc2cff1844a4bc226f67
diff --git a/dev-lang/fuzion/fuzion-0.086.ebuild b/dev-lang/fuzion/fuzion-0.086.ebuild
new file mode 100644
index 000000000000..745be3a508b1
--- /dev/null
+++ b/dev-lang/fuzion/fuzion-0.086.ebuild
@@ -0,0 +1,81 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit java-pkg-2
+
+DESCRIPTION="A language with a focus on simplicity, safety and correctness"
+HOMEPAGE="https://fuzion-lang.dev/
+ https://github.com/tokiwa-software/fuzion/"
+
+if [[ "${PV}" == *9999* ]] ; then
+ inherit git-r3
+
+ EGIT_REPO_URI="https://github.com/tokiwa-software/${PN}.git"
+else
+ SRC_URI="https://github.com/tokiwa-software/${PN}/archive/refs/tags/v${PV}.tar.gz
+ -> ${P}.tar.gz"
+
+ KEYWORDS="amd64 ~x86"
+fi
+
+LICENSE="GPL-3"
+SLOT="0"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=virtual/jre-17:*
+ dev-libs/boehm-gc
+"
+# jdk:17 for https://bugs.gentoo.org/916689
+DEPEND="
+ virtual/jdk:17
+"
+BDEPEND="
+ test? (
+ sys-devel/clang:*
+ )
+"
+
+DOCS=( README.md release_notes.md )
+
+src_prepare() {
+ java-pkg-2_src_prepare
+
+ rm -fr tests/sockets || die
+}
+
+src_compile() {
+ emake -j1
+}
+
+src_test() {
+ emake -j1 run_tests_parallel
+}
+
+src_install() {
+ # Remove unnecessary files from build directory. bug #893450
+ local toremove
+ local toremove_path
+ for toremove in tests run_tests.{failures,results} ; do
+ toremove_path="${S}/build/${toremove}"
+
+ if [[ -e "${toremove_path}" ]] ; then
+ rm -r "${toremove_path}" || die "failed to remove ${toremove_path}"
+ fi
+ done
+
+ insinto "/usr/share/${PN}"
+ doins -r build/.
+ insopts -m755
+ doins -r build/bin
+
+ local exe
+ for exe in fz fzjava ; do
+ dosym -r "/usr/share/${PN}/bin/${exe}" "/usr/bin/${exe}"
+ done
+
+ einstalldocs
+}
diff --git a/dev-lang/fuzion/metadata.xml b/dev-lang/fuzion/metadata.xml
new file mode 100644
index 000000000000..ff8570fb1aec
--- /dev/null
+++ b/dev-lang/fuzion/metadata.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+
+<pkgmetadata>
+ <maintainer type="person">
+ <email>xgqt@gentoo.org</email>
+ <name>Maciej Barć</name>
+ </maintainer>
+ <longdescription>
+ A language that unifies concepts to improve productivity and to use tools
+ for performance and correctness.
+ </longdescription>
+ <upstream>
+ <changelog>https://fuzion-lang.dev/release_notes.txt</changelog>
+ <doc>https://fuzion-lang.dev/docs/index</doc>
+ <bugs-to>https://github.com/tokiwa-software/fuzion/issues/</bugs-to>
+ <remote-id type="github">tokiwa-software/fuzion</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-lang/gdl/Manifest b/dev-lang/gdl/Manifest
index 868fcd3bef4c..831f6ebc2a32 100644
--- a/dev-lang/gdl/Manifest
+++ b/dev-lang/gdl/Manifest
@@ -1 +1,2 @@
-DIST gdl-1.0.0_rc3.tar.gz 32650313 BLAKE2B cdecfe0646e2271e2389e0a04f8da1e8de4534faf743f233169bccf326198025eff7fd7a7b62ed8bd05fa4a0222c6fd30f9469e3edf0f5b2991ef3ef545e616b SHA512 3fde22c7e709b9cdc72a23d2317c043037379c7903418211a699c7e5caa2ed17e78e32e6d2f9b4aa89200e729fc21555821140dfdd58a5a636a858e2841f6335
+DIST gdl-1.0.1.tar.gz 32775655 BLAKE2B 3428f33300403c98ae1f8f88cfa0e2346abe53d53b9f00c82ee5bf7f09f1f2f7d3021fa81173221ddd41ec29c94c2757cd1dc39b6e4d919c29d70af2e5045e6a SHA512 9d15f114d26d03c34dce6177a5d5115e81c128ec21752c01d171f8427e6cb21b9d0b69a44e29891b5e8fc2bd4d0b89d1a8dcd189f362a13c6e59182528b5842d
+DIST gdl-1.0.4.tar.gz 33219638 BLAKE2B db0e843cf2e3f07d6f53d3a8b46cb95303cd0ae199c98099f45bbdfe5d206f325a8f9814935e876a3dfee3a46da0144766b18fa54b38a653567a429a88f06250 SHA512 3206bdd88b0478493221c0552e62620f1c9acbfec6f1900d73d932caae12401bf825e8893c81f844965f79e332bedb6ea99e6ea6f2b21427022efa60d1326eb0
diff --git a/dev-lang/gdl/files/gdl-1.0.0_rc3-cmake.patch b/dev-lang/gdl/files/gdl-1.0.1-cmake.patch
index dd7abcc54d90..66c895250f97 100644
--- a/dev-lang/gdl/files/gdl-1.0.0_rc3-cmake.patch
+++ b/dev-lang/gdl/files/gdl-1.0.1-cmake.patch
@@ -1,17 +1,8 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 6c07596..31dcaf2 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -206,10 +206,6 @@
- # mpi
- check_include_file(mpi.h HAVE_MPI_H)
-
--# SA: whithout it compilation of antlr fails if there's a conflicting
--# version of antlr in system-wide directories
--include_directories(src)
--
- if (NOT WIN32)
- # Ncurses MANDATORY for readline on POSIX
- # -DNCURSESDIR=DIR
-@@ -399,8 +395,10 @@
+@@ -459,8 +459,10 @@ endif(CYGWIN OR NOT WIN32)
# PLplot MANDATORY
# -DPLPLOTDIR=DIR
@@ -24,7 +15,7 @@
set(HAVE_LIBPLPLOTCXXD ${PLPLOT_FOUND})
if(PLPLOT_FOUND)
set(LIBRARIES ${LIBRARIES} ${PLPLOT_LIBRARIES})
-@@ -490,33 +488,16 @@
+@@ -635,33 +637,16 @@ endif(GRAPHICSMAGICK_FOUND)
# -DMAGICK=ON|OFF
# -DMAGICKDIR=DIR
if(MAGICK)
@@ -67,24 +58,49 @@
+ include_directories(${MagickCore_INCLUDE_DIRS})
endif(MAGICK)
- # if GM or IM activated, we check whether Plplot is OK for that
+ ## not valid anymore I bet ## if GM or IM activated, we check whether Plplot is OK for that
+@@ -1037,20 +1022,8 @@ endif(GLPK)
+ # -DSHAPELIB=ON|OFF
+ # -DSHAPELIBDIR=DIR
+ if(SHAPELIB)
+- set(CMAKE_PREFIX_PATH ${SHAPELIBDIR})
+- find_package(SHAPELIB QUIET)
+- set(USE_SHAPELIB ${SHAPELIB_FOUND})
+- if(SHAPELIB_FOUND)
+- set(LIBRARIES ${LIBRARIES} ${SHAPELIB_LIBRARIES})
+- include_directories(${SHAPELIB_INCLUDE_DIR})
+- else(SHAPELIB_FOUND)
+- message(FATAL_ERROR "SHAPELIB (http://shapelib.maptools.org/) is required but was not found.\n"
+- "Use -DSHAPELIBDIR=DIR to specify the SHAPELIB-devel directory tree.\n"
+- "Use -DSHAPELIB=OFF to not use it.\n"
+- "shapelib is often in package libshp-devel.\n"
+- "(suitable Debian/Ubuntu package: libshp-dev)\n"
+- "(suitable Fedora/CentOS package: shapelib-devel)\n")
+- endif(SHAPELIB_FOUND)
++ find_package(PkgConfig REQUIRED)
++ pkg_check_modules(shapelib REQUIRED shapelib)
+ endif(SHAPELIB)
+ # EXPAT for IDLffXMLSAX and IDLffXMLDOM
+ # -DEXPAT=ON|OFF
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index f1923d2..6f1343e 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
-@@ -186,9 +186,9 @@
+@@ -193,9 +193,9 @@ ${WX_RC}
)
- endif(USE_EXPAT)
+ endif(HAVE_LIBWXWIDGETS AND WIN32)
-add_subdirectory(antlr)
+find_library(ANTLR_LIBRARY NAMES antlr)
-include_directories(${CMAKE_SOURCE_DIR} ${CMAKE_SOURCE_DIR}/src ${CMAKE_SOURCE_DIR}/src/antlr ${CMAKE_BINARY_DIR})
-+include_directories(${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR})
++include_directories(${CMAKE_SOURCE_DIR} ${CMAKE_SOURCE_DIR}/src ${CMAKE_BINARY_DIR})
link_directories(${LINK_DIRECTORIES})
if(PYTHON_MODULE) #GDL.so
-@@ -203,8 +203,7 @@
- add_executable(gdl ${SOURCES})
- endif(PYTHON_MODULE)
+@@ -213,8 +213,7 @@ if(USE_OPENMP)
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
+ endif(USE_OPENMP)
-add_dependencies(gdl antlr) # be sure that antlr is built before gdl
-target_link_libraries(gdl antlr) # link antlr against gdl
diff --git a/dev-lang/gdl/files/gdl-1.0.4-cmake.patch b/dev-lang/gdl/files/gdl-1.0.4-cmake.patch
new file mode 100644
index 000000000000..93d0e38f50a0
--- /dev/null
+++ b/dev-lang/gdl/files/gdl-1.0.4-cmake.patch
@@ -0,0 +1,100 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index f7b8801d..8281aee1 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -596,36 +598,16 @@ endif(GRAPHICSMAGICK_FOUND)
+ # -DMAGICK=ON|OFF
+ # -DMAGICKDIR=DIR
+ if(MAGICK)
+- set(CMAKE_PREFIX_PATH ${MAGICKDIR})
+- find_package(ImageMagick QUIET COMPONENTS Magick++ MagickWand MagickCore)
+- mark_as_advanced(ImageMagick_EXECUTABLE_DIR ImageMagick_Magick++_INCLUDE_DIR ImageMagick_Magick++_LIBRARY
+- ImageMagick_MagickCore_INCLUDE_DIR ImageMagick_MagickCore_LIBRARY ImageMagick_MagickWand_INCLUDE_DIR ImageMagick_MagickWand_LIBRARY)
+- set(USE_MAGICK ${ImageMagick_FOUND})
+- set(HAS_IMAGEMAGICK ${ImageMagick_FOUND})
+- if(ImageMagick_FOUND)
+- find_program(MAGICKXXCONFIG Magick++-config)
+- if(MAGICKXXCONFIG)
+- execute_process(COMMAND ${MAGICKXXCONFIG} "--libs" OUTPUT_VARIABLE MAGICKXXCONFIGLIBS OUTPUT_STRIP_TRAILING_WHITESPACE)
+- set(LIBRARIES ${LIBRARIES} ${MAGICKXXCONFIGLIBS})
+- execute_process(COMMAND ${MAGICKXXCONFIG} "--cxxflags" OUTPUT_VARIABLE MAGICKXXCONFIGCXXFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE)
+- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${MAGICKXXCONFIGCXXFLAGS}")
+- else(MAGICKXXCONFIG)
+- message(FATAL_ERROR "ImageMagick is required but was not found (Magick++-config).\n"
+- "Use -DMAGICKDIR=DIR to specify the ImageMagick directory.\n"
+- "Use -DMAGICK=OFF to not use it.\n"
+- "(suitable Debian/Ubuntu package: libmagick++-dev)\n"
+- "(suitable Fedora/CentOS package: ImageMagick-c++-devel)")
+- endif(MAGICKXXCONFIG)
+- set(LIBRARIES ${LIBRARIES} ${ImageMagick_LIBRARIES})
+- include_directories(${ImageMagick_INCLUDE_DIRS} ${ImageMagick_MagickCore_INCLUDE_DIRS})
+- set(MAGICK_LIBRARIES ${ImageMagick_LIBRARIES})
+- else(ImageMagick_FOUND)
+- message(FATAL_ERROR "ImageMagick is required but was not found.\n"
+- "Use -DMAGICKDIR=DIR to specify the ImageMagick directory.\n"
+- "Use -DMAGICK=OFF to not use it.\n"
+- "(suitable Debian/Ubuntu package: libmagick++-dev)\n"
+- "(suitable Fedora/CentOS package: ImageMagick-c++-devel)")
+- endif(ImageMagick_FOUND)
++ find_package(PkgConfig REQUIRED)
++ pkg_check_modules(Magick++ REQUIRED Magick++)
++ pkg_check_modules(MagickWand REQUIRED MagickWand)
++ pkg_check_modules(MagickCore REQUIRED MagickCore)
++
++ set(MAGICK_LIBRARIES ${Magick++_LIBRARIES} ${MagickWand_LIBRARIES} ${MagickCore_LIBRARIES})
++ set(LIBRARIES ${LIBRARIES} ${MAGICK_LIBRARIES})
++ include_directories(${Magick++_INCLUDE_DIRS})
++ include_directories(${MagickWand_INCLUDE_DIRS})
++ include_directories(${MagickCore_INCLUDE_DIRS})
+ endif(MAGICK)
+
+ # libtiff
+@@ -994,20 +976,8 @@ endif(GLPK)
+ # -DSHAPELIB=ON|OFF
+ # -DSHAPELIBDIR=DIR
+ if(SHAPELIB)
+- set(CMAKE_PREFIX_PATH ${SHAPELIBDIR})
+- find_package(SHAPELIB QUIET)
+- set(USE_SHAPELIB ${SHAPELIB_FOUND})
+- if(SHAPELIB_FOUND)
+- set(LIBRARIES ${LIBRARIES} ${SHAPELIB_LIBRARIES})
+- include_directories(${SHAPELIB_INCLUDE_DIR})
+- else(SHAPELIB_FOUND)
+- message(FATAL_ERROR "SHAPELIB (http://shapelib.maptools.org/) is required but was not found.\n"
+- "Use -DSHAPELIBDIR=DIR to specify the SHAPELIB-devel directory tree.\n"
+- "Use -DSHAPELIB=OFF to not use it.\n"
+- "shapelib is often in package libshp-devel.\n"
+- "(suitable Debian/Ubuntu package: libshp-dev)\n"
+- "(suitable Fedora/CentOS package: shapelib-devel)\n")
+- endif(SHAPELIB_FOUND)
++ find_package(PkgConfig REQUIRED)
++ pkg_check_modules(shapelib REQUIRED shapelib)
+ endif(SHAPELIB)
+ # EXPAT for IDLffXMLSAX and IDLffXMLDOM
+ # -DEXPAT=ON|OFF
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 968ead9d..b0623de4 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -200,9 +200,9 @@ add_subdirectory(plplotdriver)
+ #whereami
+ add_library(whereami STATIC ${CMAKE_SOURCE_DIR}/src/whereami/src/whereami.c)
+
+-add_subdirectory(antlr)
++find_library(ANTLR_LIBRARY NAMES antlr)
+
+-include_directories(${CMAKE_SOURCE_DIR} ${CMAKE_SOURCE_DIR}/src ${CMAKE_SOURCE_DIR}/src/antlr ${CMAKE_SOURCE_DIR}/src/plplotdriver ${CMAKE_SOURCE_DIR}/src/whereami/src ${CMAKE_BINARY_DIR})
++include_directories(${CMAKE_SOURCE_DIR} ${CMAKE_SOURCE_DIR}/src ${CMAKE_SOURCE_DIR}/src/plplotdriver ${CMAKE_SOURCE_DIR}/src/whereami/src ${CMAKE_BINARY_DIR})
+ link_directories(${LINK_DIRECTORIES})
+
+ if(PYTHON_MODULE) #GDL.so
+@@ -220,8 +220,7 @@ if(USE_OPENMP)
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
+ endif(USE_OPENMP)
+
+-add_dependencies(gdl antlr whereami) # be sure that antlr is built before gdl
+-target_link_libraries(gdl antlr whereami) # link antlr against gdl
++target_link_libraries(gdl ${ANTLR_LIBRARY} whereami) # link antlr against gdl
+ if (MINGW)
+ target_link_libraries(gdl ws2_32)
+ endif (MINGW)
diff --git a/dev-lang/gdl/gdl-1.0.0_rc3.ebuild b/dev-lang/gdl/gdl-1.0.1-r2.ebuild
index b5fb1c358bcb..fa0c8e92f4d9 100644
--- a/dev-lang/gdl/gdl-1.0.0_rc3.ebuild
+++ b/dev-lang/gdl/gdl-1.0.1-r2.ebuild
@@ -1,72 +1,74 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
WX_GTK_VER="3.0-gtk3"
-PYTHON_COMPAT=( python3_{6..9} )
+PYTHON_COMPAT=( python3_{9..11} )
-# gdl's build system is a travesty, and actually calls
-# itself in the testsuite, which is something that ninja
-# obviously doesn't support.
-CMAKE_MAKEFILE_GENERATOR=emake
-
-inherit cmake python-r1 toolchain-funcs virtualx wxwidgets
+inherit cmake python-single-r1 toolchain-funcs virtualx wxwidgets
DESCRIPTION="GNU Data Language"
HOMEPAGE="https://github.com/gnudatalanguage/gdl"
-SRC_URI="https://github.com/gnudatalanguage/gdl/archive/v$(ver_cut 1-3)-rc.$(ver_cut 5).tar.gz -> ${P}.tar.gz"
+SRC_URI="https://github.com/gnudatalanguage/gdl/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
-IUSE="+eigen fftw glpk graphicsmagick gshhs hdf hdf5 +imagemagick netcdf
- openmp png proj postscript python tiff udunits wxwidgets"
+IUSE="
+ +eigen fftw glpk graphicsmagick gshhs hdf hdf5 +imagemagick netcdf
+ openmp png proj postscript python shapelib tiff udunits wxwidgets
+"
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
RDEPEND="
dev-cpp/antlr-cpp:2=
dev-libs/expat
- sci-libs/gsl:0=
- sci-libs/plplot:0=[cxx,-dynamic]
- sys-libs/ncurses:0=
- sys-libs/readline:0=
+ net-libs/libtirpc:=
+ sci-libs/gsl:=
+ sci-libs/plplot:=[X,cxx,-dynamic,wxwidgets?]
+ sys-libs/ncurses:=
+ sys-libs/readline:=
sys-libs/zlib
x11-libs/libX11
fftw? ( sci-libs/fftw:3.0= )
glpk? ( sci-mathematics/glpk:= )
gshhs? (
sci-geosciences/gshhs-data
- sci-geosciences/gshhs:0=
+ sci-geosciences/gshhs:=
)
- hdf? ( sci-libs/hdf:0= )
- hdf5? ( sci-libs/hdf5:0= )
+ hdf? ( sci-libs/hdf:= )
+ hdf5? ( sci-libs/hdf5:= )
imagemagick? (
!graphicsmagick? ( media-gfx/imagemagick:=[cxx] )
graphicsmagick? ( media-gfx/graphicsmagick:=[cxx] )
)
- netcdf? ( sci-libs/netcdf )
- proj? ( sci-libs/proj )
+ netcdf? ( sci-libs/netcdf:= )
+ proj? ( sci-libs/proj:= )
postscript? ( dev-libs/pslib )
python? (
${PYTHON_DEPS}
- dev-python/numpy[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ dev-python/numpy[${PYTHON_USEDEP}]
+ ')
)
+ shapelib? ( sci-libs/shapelib:= )
tiff? (
- media-libs/tiff
- sci-libs/libgeotiff
+ media-libs/tiff:=
+ sci-libs/libgeotiff:=
)
udunits? ( sci-libs/udunits )
- wxwidgets? ( x11-libs/wxGTK:${WX_GTK_VER}[X] )"
+ wxwidgets? ( x11-libs/wxGTK:${WX_GTK_VER}[X] )
+"
DEPEND="${RDEPEND}
- eigen? ( dev-cpp/eigen:3 )"
+ eigen? ( dev-cpp/eigen:3 )
+"
BDEPEND="
virtual/pkgconfig
- python? ( app-admin/chrpath )"
-
-S="${WORKDIR}/${PN}-$(ver_cut 1-3)-rc.$(ver_cut 5)"
+"
-PATCHES=( "${FILESDIR}"/${PN}-1.0.0_rc3-cmake.patch )
+PATCHES=( "${FILESDIR}"/${PN}-1.0.1-cmake.patch )
+DOCS=( AUTHORS HACKING NEWS PYTHON.txt README README.md )
pkg_pretend() {
[[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
@@ -74,6 +76,7 @@ pkg_pretend() {
pkg_setup() {
[[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+ use python && python-single-r1_pkg_setup
}
src_prepare() {
@@ -86,6 +89,7 @@ src_prepare() {
# gentoo: avoid install files in datadir directory
# and manually install them in src_install
sed -e '/AUTHORS/d' -i CMakeLists.txt || die
+
cmake_src_prepare
}
@@ -103,7 +107,7 @@ src_configure() {
-DGLPK=$(usex glpk)
-DHDF=$(usex hdf)
-DHDF5=$(usex hdf5)
- -DLIBPROJ4=$(usex proj)
+ -DLIBPROJ=$(usex proj)
-DNETCDF=$(usex netcdf)
-DOPENMP=$(usex openmp)
-DPNGLIB=$(usex png)
@@ -113,38 +117,27 @@ src_configure() {
-DMAGICK=$(usex imagemagick $(usex !graphicsmagick))
-DTIFF=$(usex tiff)
-DGEOTIFF=$(usex tiff)
- -DSHAPELIB=OFF
- -DPLPLOTDIR="${EPREFIX}"/usr/$(get_libdir)
+ -DPYTHON_MODULE=$(usex python)
+ -DPYTHON=$(usex python)
+ -DSHAPELIB=$(usex shapelib)
)
- configuration() {
- mycmakeargs+=( "$@" )
- cmake_src_configure
- }
- configuration -DPYTHON_MODULE=OFF -DPYTHON=OFF
- use python && python_foreach_impl configuration -DPYTHON_MODULE=ON -DPYTHON=ON
-}
+ if use python; then
+ # automatically selection ignores EPYTHON
+ mycmakeargs+=(
+ -DPYTHONVERSION="${EPYTHON#python}"
+ )
+ fi
-src_compile() {
- cmake_src_compile
- use python && python_foreach_impl cmake_src_compile
+ cmake_src_configure
}
src_test() {
- # there is check target instead of the ctest to define some LDPATH
- virtx cmake_build check
+ virtx cmake_src_test
}
src_install() {
cmake_src_install
- if use python; then
- installation() {
- chrpath -d src/GDL.so || die
- python_domodule src/GDL.so
- }
- python_foreach_impl run_in_build_dir installation
- dodoc PYTHON.txt
- fi
newenvd - 50gdl <<-_EOF_
GDL_PATH="+${EPREFIX}/usr/share/gnudatalanguage"
diff --git a/dev-lang/gdl/gdl-1.0.4-r1.ebuild b/dev-lang/gdl/gdl-1.0.4-r1.ebuild
new file mode 100644
index 000000000000..37797d0e9d71
--- /dev/null
+++ b/dev-lang/gdl/gdl-1.0.4-r1.ebuild
@@ -0,0 +1,149 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+WX_GTK_VER="3.2-gtk3"
+PYTHON_COMPAT=( python3_{10..12} )
+
+inherit cmake python-single-r1 toolchain-funcs virtualx wxwidgets
+
+DESCRIPTION="GNU Data Language"
+HOMEPAGE="https://github.com/gnudatalanguage/gdl"
+SRC_URI="https://github.com/gnudatalanguage/${PN}/releases/download/v${PV}/${PN}-v${PV}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/${PN}-v${PV}"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="
+ +eigen fftw glpk graphicsmagick gshhs hdf hdf5 +imagemagick netcdf
+ openmp png proj postscript python shapelib tiff udunits wxwidgets
+"
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+RDEPEND="
+ dev-cpp/antlr-cpp:2=
+ dev-libs/expat
+ media-libs/libpng:=
+ net-libs/libtirpc:=
+ sci-libs/gsl:=
+ sci-libs/plplot:=[X,cxx,-dynamic,wxwidgets?]
+ sys-libs/ncurses:=
+ sys-libs/readline:=
+ sys-libs/zlib
+ x11-libs/libX11
+ fftw? ( sci-libs/fftw:3.0= )
+ glpk? ( sci-mathematics/glpk:= )
+ gshhs? (
+ sci-geosciences/gshhs-data
+ sci-geosciences/gshhs:=
+ )
+ hdf? ( sci-libs/hdf:= )
+ hdf5? ( sci-libs/hdf5:= )
+ imagemagick? (
+ !graphicsmagick? ( media-gfx/imagemagick:=[cxx] )
+ graphicsmagick? ( media-gfx/graphicsmagick:=[cxx] )
+ )
+ netcdf? ( sci-libs/netcdf:= )
+ proj? ( sci-libs/proj:= )
+ postscript? ( dev-libs/pslib )
+ python? (
+ ${PYTHON_DEPS}
+ $(python_gen_cond_dep '
+ dev-python/numpy[${PYTHON_USEDEP}]
+ ')
+ )
+ shapelib? ( sci-libs/shapelib:= )
+ tiff? (
+ media-libs/tiff:=
+ sci-libs/libgeotiff:=
+ )
+ udunits? ( sci-libs/udunits )
+ wxwidgets? ( x11-libs/wxGTK:${WX_GTK_VER}[X] )
+"
+DEPEND="${RDEPEND}
+ eigen? ( dev-cpp/eigen:3 )
+"
+BDEPEND="
+ virtual/pkgconfig
+"
+
+PATCHES=( "${FILESDIR}"/${PN}-1.0.4-cmake.patch )
+DOCS=( AUTHORS HACKING NEWS PYTHON.txt README README.md )
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+}
+
+pkg_setup() {
+ [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+ use python && python-single-r1_pkg_setup
+}
+
+src_prepare() {
+ use wxwidgets && setup-wxwidgets unicode
+ use hdf5 && has_version sci-libs/hdf5[mpi] && export CXX=mpicxx
+
+ # remove bundled antlr
+ rm -r src/antlr || die
+
+ # gentoo: avoid install files in datadir directory
+ # and manually install them in src_install
+ sed -e '/AUTHORS/d' -i CMakeLists.txt || die
+
+ cmake_src_prepare
+}
+
+src_configure() {
+ # MPI is still very buggy
+ # x11=off does not compile
+ local mycmakeargs=(
+ -DMPI=OFF
+ -DREADLINE=ON
+ -DX11=ON
+ -DEXPAT=ON
+ -DPNGLIB=ON
+ -DEIGEN3=$(usex eigen)
+ -DFFTW=$(usex fftw)
+ -DGRIB=OFF
+ -DGLPK=$(usex glpk)
+ -DHDF=$(usex hdf)
+ -DHDF5=$(usex hdf5)
+ -DLIBPROJ=$(usex proj)
+ -DNETCDF=$(usex netcdf)
+ -DOPENMP=$(usex openmp)
+ -DPNGLIB=$(usex png)
+ -DUDUNITS2=$(usex udunits)
+ -DWXWIDGETS=$(usex wxwidgets)
+ -DGRAPHICSMAGICK=$(usex imagemagick $(usex graphicsmagick))
+ -DMAGICK=$(usex imagemagick $(usex !graphicsmagick))
+ -DTIFF=$(usex tiff)
+ -DGEOTIFF=$(usex tiff)
+ -DPYTHON_MODULE=$(usex python)
+ -DPYTHON=$(usex python)
+ -DSHAPELIB=$(usex shapelib)
+ -DQHULL=OFF
+ )
+
+ if use python; then
+ # automatically selection ignores EPYTHON
+ mycmakeargs+=(
+ -DPYTHONVERSION="${EPYTHON#python}"
+ )
+ fi
+
+ cmake_src_configure
+}
+
+src_test() {
+ virtx cmake_src_test
+}
+
+src_install() {
+ cmake_src_install
+
+ newenvd - 50gdl <<-_EOF_
+ GDL_PATH="+${EPREFIX}/usr/share/gnudatalanguage"
+ _EOF_
+}
diff --git a/dev-lang/gdl/gdl-1.0.4.ebuild b/dev-lang/gdl/gdl-1.0.4.ebuild
new file mode 100644
index 000000000000..95e4cdaec158
--- /dev/null
+++ b/dev-lang/gdl/gdl-1.0.4.ebuild
@@ -0,0 +1,149 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+WX_GTK_VER="3.0-gtk3"
+PYTHON_COMPAT=( python3_{10..12} )
+
+inherit cmake python-single-r1 toolchain-funcs virtualx wxwidgets
+
+DESCRIPTION="GNU Data Language"
+HOMEPAGE="https://github.com/gnudatalanguage/gdl"
+SRC_URI="https://github.com/gnudatalanguage/${PN}/releases/download/v${PV}/${PN}-v${PV}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/${PN}-v${PV}"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="
+ +eigen fftw glpk graphicsmagick gshhs hdf hdf5 +imagemagick netcdf
+ openmp png proj postscript python shapelib tiff udunits wxwidgets
+"
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+RDEPEND="
+ dev-cpp/antlr-cpp:2=
+ dev-libs/expat
+ media-libs/libpng:=
+ net-libs/libtirpc:=
+ sci-libs/gsl:=
+ sci-libs/plplot:=[X,cxx,-dynamic,wxwidgets?]
+ sys-libs/ncurses:=
+ sys-libs/readline:=
+ sys-libs/zlib
+ x11-libs/libX11
+ fftw? ( sci-libs/fftw:3.0= )
+ glpk? ( sci-mathematics/glpk:= )
+ gshhs? (
+ sci-geosciences/gshhs-data
+ sci-geosciences/gshhs:=
+ )
+ hdf? ( sci-libs/hdf:= )
+ hdf5? ( sci-libs/hdf5:= )
+ imagemagick? (
+ !graphicsmagick? ( media-gfx/imagemagick:=[cxx] )
+ graphicsmagick? ( media-gfx/graphicsmagick:=[cxx] )
+ )
+ netcdf? ( sci-libs/netcdf:= )
+ proj? ( sci-libs/proj:= )
+ postscript? ( dev-libs/pslib )
+ python? (
+ ${PYTHON_DEPS}
+ $(python_gen_cond_dep '
+ dev-python/numpy[${PYTHON_USEDEP}]
+ ')
+ )
+ shapelib? ( sci-libs/shapelib:= )
+ tiff? (
+ media-libs/tiff:=
+ sci-libs/libgeotiff:=
+ )
+ udunits? ( sci-libs/udunits )
+ wxwidgets? ( x11-libs/wxGTK:${WX_GTK_VER}[X] )
+"
+DEPEND="${RDEPEND}
+ eigen? ( dev-cpp/eigen:3 )
+"
+BDEPEND="
+ virtual/pkgconfig
+"
+
+PATCHES=( "${FILESDIR}"/${PN}-1.0.4-cmake.patch )
+DOCS=( AUTHORS HACKING NEWS PYTHON.txt README README.md )
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+}
+
+pkg_setup() {
+ [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+ use python && python-single-r1_pkg_setup
+}
+
+src_prepare() {
+ use wxwidgets && setup-wxwidgets unicode
+ use hdf5 && has_version sci-libs/hdf5[mpi] && export CXX=mpicxx
+
+ # remove bundled antlr
+ rm -r src/antlr || die
+
+ # gentoo: avoid install files in datadir directory
+ # and manually install them in src_install
+ sed -e '/AUTHORS/d' -i CMakeLists.txt || die
+
+ cmake_src_prepare
+}
+
+src_configure() {
+ # MPI is still very buggy
+ # x11=off does not compile
+ local mycmakeargs=(
+ -DMPI=OFF
+ -DREADLINE=ON
+ -DX11=ON
+ -DEXPAT=ON
+ -DPNGLIB=ON
+ -DEIGEN3=$(usex eigen)
+ -DFFTW=$(usex fftw)
+ -DGRIB=OFF
+ -DGLPK=$(usex glpk)
+ -DHDF=$(usex hdf)
+ -DHDF5=$(usex hdf5)
+ -DLIBPROJ=$(usex proj)
+ -DNETCDF=$(usex netcdf)
+ -DOPENMP=$(usex openmp)
+ -DPNGLIB=$(usex png)
+ -DUDUNITS2=$(usex udunits)
+ -DWXWIDGETS=$(usex wxwidgets)
+ -DGRAPHICSMAGICK=$(usex imagemagick $(usex graphicsmagick))
+ -DMAGICK=$(usex imagemagick $(usex !graphicsmagick))
+ -DTIFF=$(usex tiff)
+ -DGEOTIFF=$(usex tiff)
+ -DPYTHON_MODULE=$(usex python)
+ -DPYTHON=$(usex python)
+ -DSHAPELIB=$(usex shapelib)
+ -DQHULL=OFF
+ )
+
+ if use python; then
+ # automatically selection ignores EPYTHON
+ mycmakeargs+=(
+ -DPYTHONVERSION="${EPYTHON#python}"
+ )
+ fi
+
+ cmake_src_configure
+}
+
+src_test() {
+ virtx cmake_src_test
+}
+
+src_install() {
+ cmake_src_install
+
+ newenvd - 50gdl <<-_EOF_
+ GDL_PATH="+${EPREFIX}/usr/share/gnudatalanguage"
+ _EOF_
+}
diff --git a/dev-lang/gdl/metadata.xml b/dev-lang/gdl/metadata.xml
index 16e4a758b28f..056456030706 100644
--- a/dev-lang/gdl/metadata.xml
+++ b/dev-lang/gdl/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>sci@gentoo.org</email>
@@ -16,9 +16,11 @@
<flag name="glpk">Use GNU Linear Programming Kit <pkg>sci-mathematics/glpk</pkg></flag>
<flag name="gshhs">Add support for projection adn continent maps with <pkg>sci-geosciences/gshhs-data</pkg></flag>
<flag name="proj">Add support for <pkg>sci-libs/proj</pkg> (geographic projections)</flag>
+ <flag name="shapelib">Add support for manipulating ESRI Shapefiles with <pkg>sci-libs/shapelib</pkg></flag>
<flag name="udunits">Add support for manipulating units of physical quantities</flag>
</use>
<upstream>
<remote-id type="sourceforge">gnudatalanguage</remote-id>
+ <remote-id type="github">gnudatalanguage/gdl</remote-id>
</upstream>
</pkgmetadata>
diff --git a/dev-lang/gforth/files/gforth-0.7.3-CFLAGS-LDFLAGS.patch b/dev-lang/gforth/files/gforth-0.7.3-CFLAGS-LDFLAGS.patch
new file mode 100644
index 000000000000..55041f435646
--- /dev/null
+++ b/dev-lang/gforth/files/gforth-0.7.3-CFLAGS-LDFLAGS.patch
@@ -0,0 +1,27 @@
+https://bugs.gentoo.org/723072
+--- a/libcc.fs
++++ b/libcc.fs
+@@ -562,7 +562,10 @@ DEFER compile-wrapper-function ( -- )
+ 0 c-source-file-id !
+ [ libtool-command s" --silent --tag=CC --mode=compile " s+
+ libtool-cc append s" -I " append
+- s" includedir" getenv append ] sliteral
++ s" includedir" getenv append
++ s" CFLAGS" getenv append
++ s" LDFLAGS" getenv append
++ ] sliteral
+ s" -O -c " s+ lib-filename 2@ append s" .c -o " append
+ lib-filename 2@ append s" .lo" append ( c-addr u )
+ \ 2dup type cr
+@@ -571,7 +571,10 @@ DEFER compile-wrapper-function ( -- )
+ \ 2dup type cr
+ 2dup system drop free throw $? abort" libtool compile failed"
+ [ libtool-command s" --silent --tag=CC --mode=link " s+
+- libtool-cc append libtool-flags append s" -module -rpath " s+ ] sliteral
++ libtool-cc append
++ s" CFLAGS" getenv append
++ s" LDFLAGS" getenv append
++ libtool-flags append s" -module -rpath " s+ ] sliteral
+ lib-filename 2@ dirname replace-rpath s+ s" " append
+ lib-filename 2@ append s" .lo -o " append
+ lib-filename 2@ append s" .la" append ( c-addr u )
diff --git a/dev-lang/gforth/gforth-0.7.3-r1.ebuild b/dev-lang/gforth/gforth-0.7.3-r2.ebuild
index ddf2c89a40a8..3915e64001f2 100644
--- a/dev-lang/gforth/gforth-0.7.3-r1.ebuild
+++ b/dev-lang/gforth/gforth-0.7.3-r2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -11,7 +11,7 @@ SRC_URI="mirror://gnu/gforth/${P}.tar.gz"
LICENSE="GPL-3"
SLOT="0"
-KEYWORDS="~amd64 ~ppc ~x86 ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~riscv ~x86 ~x86-linux ~ppc-macos ~x64-macos"
IUSE="+check emacs"
DEPEND="dev-libs/ffcall
@@ -24,11 +24,21 @@ PATCHES=(
"${FILESDIR}"/${PN}-0.7.0-make-elc.patch
"${FILESDIR}"/${PN}-0.7.3-rdynamic.patch
"${FILESDIR}"/${PN}-0.7.3-rdynamic-auto.patch
+ "${FILESDIR}"/${PN}-0.7.3-CFLAGS-LDFLAGS.patch
)
src_prepare() {
default
+ # gforth uses both $LIBTOOL and $GNU_LIBTOOL.
+ # Let's settle on the former: bug #799371
+ if [[ -n $LIBTOOL ]]; then
+ export GNU_LIBTOOL=$LIBTOOL
+ # ./configure does not generate it, but slibtool assumes
+ # it's around
+ ln -s "${EPREFIX}"/usr/bin/libtool libtool || die
+ fi
+
# We patches both configure and configure.ac.
# Avoid reruining aclocal.
touch aclocal.m4 configure || die
diff --git a/dev-lang/gforth/metadata.xml b/dev-lang/gforth/metadata.xml
index 03e8585377c7..0550e5bb8e08 100644
--- a/dev-lang/gforth/metadata.xml
+++ b/dev-lang/gforth/metadata.xml
@@ -1,11 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="person">
- <email>slyfox@gentoo.org</email>
- <name>Sergei Trofimovich</name>
- </maintainer>
- <use>
- <flag name='check'>Enable build-time sanity check.</flag>
- </use>
+ <!-- maintainer-needed -->
+ <use>
+ <flag name="check">Enable build-time sanity check.</flag>
+ </use>
+ <upstream>
+ <remote-id type="savannah">gforth</remote-id>
+ </upstream>
</pkgmetadata>
diff --git a/dev-lang/ghc/Manifest b/dev-lang/ghc/Manifest
index 9ec9e69c069d..a7a87d51806f 100644
--- a/dev-lang/ghc/Manifest
+++ b/dev-lang/ghc/Manifest
@@ -1,81 +1,18 @@
-DIST binary-0.7.6.1.tar.gz 47086 BLAKE2B 7d81b9c254902d5ff2bafbef4c31a6f6f0396202d8585690c1ae3b63ae6ed157db7221d65a62e393ee8f6725ffd5d80e51030c0351e954b06004fcb70e5867cd SHA512 655daa93a52b845a85d440810452933d7bc3398ad1b51e1e955b2d19a0a32679325a0d1751ad50d252531e493528262e14dab32af4b9a515855fe7f64e0730b2
-DIST ghc-7.10.3-src.tar.bz2 13281867 BLAKE2B 51b0a94cc63269926fd5d04c0fb0871266c45b3168187b891127db71980d180668fb8ef7adc51a7a3df947ecc93b4d4a06965ccf9ef53eb74ed063c54adfebde SHA512 97a8282d8a75399c78d85d6faab7ac253a993dc69f1840358572f1878b8fd1a527c28801e5823c8200b5690e268e4a0c00941945ada13790852c75a83b612c17
-DIST ghc-7.8.4-ia64-CLOSUREs-regenerated.patch.gz 13268 BLAKE2B 35af21163e3a46ee340e29eb88daf617eeb094f02da7fdcb80e947c1d26234232b12d9eb2c38c02c3207c047573521fef3ac5e7b87609e66f0c57072fef1038e SHA512 a655713e06324b56f0041edf70837487e296d28e6f3ee35fe116b9938765aaf3469d25e92645e0940655ed3607dff27d3826fe0f995c84e81b51bfc956816e7d
-DIST ghc-7.8.4-src.tar.bz2 10600755 BLAKE2B 6cf27f663178513b25032b648cf36b016e01361966725dbfc219079961e8eb9b1ab3531427c7012dc599e8e102dc87ed6dd43b31e7bd4e231e2d989936eb2c66 SHA512 079a53891d8ebd8d9b88da96170e60981608a619f8282e4b7948f35244e99bd87277649ac7fcebc227a61a4d21960db8d5e5b9e92f2c69c82d8d68d7fd0a41d3
-DIST ghc-8.0.2-src.tar.xz 10687760 BLAKE2B 3b2a487c115680342ce308ff1a42d2b6fa6fb1f31e2670b27a305b4d44160056611b77273c9d47f2e37a1ef01b1aba59c36e76b65c83142a5f09812bf3b1ea02 SHA512 58ea3853cd93b556ecdc4abd0be079b2621171b8491f59004ea4e036a4cba4470aaafe6591b942e0a50a64bdc47540e01fe6900212a1ef7087850112d9bfc5ef
-DIST ghc-8.10.1-src.tar.xz 19781652 BLAKE2B 61ff73d3a895cfa0c836e25a684d7a31cf099dcc33d1f308eaf56aa4b2a75b8f38cf963197c11dad9d027270845af20e00a7d81e5417b0fb8b4a98ddbadd53d8 SHA512 e6bb5c326f8354f0892324586c164c6e04168215d8bfeccb594173a838a535e37bac38db6fbdb01fb37150099c12842c53be5e912dfb6a6feeae3c75d4ae24d0
-DIST ghc-8.10.1-testsuite.tar.xz 2091988 BLAKE2B 88796f0fb6ea2bdd749161c84ec88768f3bf87063d2224a083db24f69282e615227626fe3c7b41d4abec10883e22042abed6a231582bab4ea530feffd683ed0b SHA512 35147f98301c5bfb6c939e108de48b2a1133adc1028aaa720ce49d60faa06a4b486a9eded658295e3f203731b4dd53475b57e8213491c45b05959430030be269
-DIST ghc-8.10.2-src.tar.xz 21880680 BLAKE2B 0c1b67c1576cfd1067d11838301f96041cabf66b94cfd546cfe6bef57babe940fc3814918ff9327e59fe73a8e230fa1d62d7816d7c6cae274dd8c53de6e81736 SHA512 6c3f1311feab3665419a301b17fcb09d303ec822f8eb8c4021edfacff00d9b52e71895bed0e58f11d8f7970415bd8c6f95ffde1294afe795e15607199b20cefc
-DIST ghc-8.10.2-testsuite.tar.xz 2101788 BLAKE2B 0d4528223471dfd68cadcda47931d53508c9eafa415716ca5990ea519eb89bfa2bdd444280057be33467382dd3d178887262d54ef633aa8ce88ea91eb9d58ece SHA512 043faaf2f0dc34a868c481b284b94afd78aa1ec1a4056d1f3c97ca3f7dadb3e9cff0517a4cfb378fe5187389db7c9027763bf066328e7dcfd264b737f6d09e41
-DIST ghc-8.10.3-src.tar.xz 19872356 BLAKE2B 043f41a21becc826b3cd13ee81b138cf2edfa18484f98361dc85b12f784df85571522347d5fafe40a19ea8ddf12390cd766db8fc21cf4971e797bc61404304cc SHA512 6f3248e728d3677dfddf2f02609167c67a194750418f2a5e34ed68f1135960761c5a5768255bfc8b2ef5640395609424878375184d2dde8e2d69021a3baf9ec8
-DIST ghc-8.10.3-testsuite.tar.xz 2261376 BLAKE2B cd03d569c30637d531d9a13fa926a28f854a37d48ef0d4e2fde684664ae000f3c941b5113ccafd42fec019428bafb5344b1ddf8f84a71b21bca8831ed4784907 SHA512 4c9d20a27ed71eb7c73bd86c1049ea5adcc8a0b12040386b7d0dddb46b3cf704c52a3392e19ae4ff1c76b8868665c599391d47e47dba516fcadf8abbc30e28df
-DIST ghc-8.2.1-src.tar.xz 10736016 BLAKE2B 60993cfc9569e83b0c383591ef30a7280e0138fbb7bd696ad62d87e68dcbccf31c0b8ba211b6647922b8595c7aec2c783648f12c67da53e0766b71c7d7c923fc SHA512 d9aa2aa7f9414db8f4e51d6c275694b46df515e68331a1a2b6018256333a2c63ebd877b75ee90407ecce5be672ec9afc6bebd62aadbf8ae06b94f1760d1736be
-DIST ghc-8.2.2-src.tar.xz 10753272 BLAKE2B 6fd792390d3df20f84836466705c3f3c931ba2d594dcbe2b808ea0ae284460000b443df8aae74903eabf05ff9064d68a303086cf888ea68222eb1c60959c8f21 SHA512 6549416f470b599973d409fa45f59c25b07e6a94798cef1a19ad432547dc225338cf4dbc4a4793114b4a417798a3b59b122b92b020251074405c5302b7ffe799
-DIST ghc-8.4.1-src.tar.xz 11301528 BLAKE2B 6dcf467d04cace856b68315c85b80f19b517dcbc8ae6e2a08c60afa141c9e0261e012738452c9ca208f9fc40c48bd1a0817e5e0fe9f4737383cd7b44ca65c8d9 SHA512 f8ae11f498bf2911fb92635534c6906c96f1fbe5072c7b7447bd3f69e408026b674564515af02a8aaddc57ee6905ce78d10005b12478a39c220580aaec13a9f7
-DIST ghc-8.4.2-src.tar.xz 11313140 BLAKE2B d6fe90f3c68b137c6029bf08918a51ff43c210ba0485aca8d77541cd455f6f9c94287cd011ecd710a8e5a14a27e8a27c04c517417c5748966afd63a5ba6ed19e SHA512 aeb17c986c597762381d9887679eb0eec194c2938a92b5a33e66b4c80002ead02d672b4aa968e1061ab5652b74e46a3c9f9e3d58d5be4a0ae47aa8aed288cf1f
-DIST ghc-8.4.3-src.tar.xz 11315068 BLAKE2B cfb858051aff0c4fb3cdbbe96627cacc82665a6bfc4f863b0353eb3d93d358f7ed4efd7b131280763786f397aabc5c4825f60c3890649303fc97187f2b996d21 SHA512 c6cea84264f32ae888f9931f834a1d721889242f656d14262e787ec54a1793d1862ce76daacaf1006c12b8af12919501afce1dc02571373e24830e4d51803414
-DIST ghc-8.6.4-src.tar.xz 19029904 BLAKE2B 80676923866417cbf674c3cfadc2ecf9a673e9dcefb4561be7125c83edad38990ea9427c302aeeb9ef04b2c3eeea4fa9fabc72d89c742c6714163ea280802122 SHA512 9237e45b26852cc8a6d64c80da2b28c910349bbbed60f6575035f39bcb064a5ce80ec73cd85e2298e4abefead378e19b7d7ec3ffeea09e362f20eb0b09b36798
-DIST ghc-8.6.4-testsuite.tar.xz 1906656 BLAKE2B b0e55b415c885479c3573fe86436338971e685edc95e106043f36e92e1ee6a7e86add9e86a35c8bd685916f18a7bcf08d4a7b845da41dd855132b131ccbc4a37 SHA512 b1bbe1759ec528914cbfa6b3789c596e46b6266568972b9f5d1cf13e31b7206400b65536e7acea698161e46b8ca11285b3282ebd9336d23b68d34feb4f0bf314
-DIST ghc-8.6.5-src.tar.xz 19092168 BLAKE2B 2ac0926b186c43fd179170a0690492129e9ffb6651608875db7167113becf324dcf99a82f56e578c67051f813007c0ffa32ca5b12588f0d370330c8274a2d74d SHA512 c08a7480200cb99e1ffbe4ce7669f552b1054054966f7e7efcbc5f98af8032e1249fa391c4fc4c7d62cc8e0be5d17fa05845177f3cea3dbcf86e6c92d40fc0f9
-DIST ghc-8.6.5-testsuite.tar.xz 1910060 BLAKE2B 71136207e3eccb4ec6756661ffa64c0a82475704c071cd8f060855a9f40d7d1fc4be2da7ff265df38fb918b8ee2ce21a54ee4b224aacaa3026ad1ddb1e1e4ab2 SHA512 980f3934bb18876cc80b80a0eb64a9ca1dfaa7f4d8b0761f5d733a6583053e38b231445388b992b26ec1ad5f569b6385dbe60f96381794f5577964979c253e16
-DIST ghc-8.8.1-src.tar.xz 28634672 BLAKE2B 3a012db5d9798efddf806542a88cd9fef1d0972f7f025d377c247961cf8d8071fcf390aa130ac11f1a5556fb572499b9288a8698c49bbd594f0bb5fec4130a2f SHA512 7268b012c3a6c34e7eac05c7d6959de6005651d33e870860bbfe589295502e8794a76580130b8f4da2f88032b68116dbbdbc4c1e900e0c862aaa9891fa788bef
-DIST ghc-8.8.1-testsuite.tar.xz 1959220 BLAKE2B 8606a6439f7d5b4c837b2325c4ef5705dbcea17c4b59daf7aafd0de68e55179bb2c03ce7a4f376398b185b6dbfb361d18592756558461ee43722d2142370d815 SHA512 e13b651c60deb86522efbfe8aa42679cc81a413475f70580d9ef28dbb711617c523951441a30fb46f3be9418c4c0bb4dbc522b04aaa51313afd2d39027696c30
-DIST ghc-8.8.2-src.tar.xz 19365816 BLAKE2B 85dbd2a4696755f43c28ec578d5ecfe706b27ba7f640f66b464b7aa7b959ca5f02b8b51d130299c30d024c46b9ce6a115606bde46be400fb8ee221ff18177d65 SHA512 11eec0bc03254ea848a5c86bc3e2da317801a1227dd91406a157e11cb675891d77d61177b740b6df88bd823063f6cb2af5a928a7540e25392d9d0769ea121069
-DIST ghc-8.8.2-testsuite.tar.xz 1976924 BLAKE2B cec6c5dab1782332aca6364f995cffc1e9f3506649c3410b6eaa220e665b66f033dfad8ab6cae7677e15a6a1bd51237ed491b7fd04a19fa1d4f9cd8904617c64 SHA512 0fc41a0b3cb5f172442863c8a3b1cf549f2f660a070965e6083baa2c90c27b6a7c17550625105799010f4329dc189f4e392c86991844a9704a3e3a72a6d4e2f5
-DIST ghc-8.8.3-src.tar.xz 19343672 BLAKE2B 4b33b4a386926f0ee625c7c18a3997f02bf664b8f553d7cdfb231553bf9510f44f72c0b46911539f6209f28ecab52ee520e61e2c9e750cc217b170b3596ffca0 SHA512 7db0d820a288e56bd32935cc03584295900605f6e7cac6fe6adcb3ec6c24d8d2cebf7a8efa421f2d2fa192602d7f24dfad1ddeeba252455e4cb8baa9889dcaa9
-DIST ghc-8.8.3-testsuite.tar.xz 1965236 BLAKE2B 9cd10769336513284d8e0fbca1c3fce9e298ec67eb63eb10d41087fccba0f6281f1509aee684778fd23710ffe65843c43b4042e6692940af67766056c4503273 SHA512 4ebf3eabcd7591762dfcf45716b06293fb14c00b51307f7788c90dcf4e01f67e6bbb7a887b74d8d30272919486441ac236b42a54c4874aac69d90391b76f81c9
-DIST ghc-8.8.4-src.tar.xz 19395252 BLAKE2B 6fa898b9552398a724f0452f5cc88ba073264a5645288c73507258959efec40ce5a56a0eaafdabe58f15c5a9210b2c9da5954411dff5c81c52e061569d6a350a SHA512 efd23bd819f7429486696a3a929a040471db7ea8a2d1f1d832e4cf0825b9e1e0c5e6ecad0ab8376f58b74e9c28c1d2f773bd126596d6d853c9e57d57e5ceb090
-DIST ghc-8.8.4-testsuite.tar.xz 1965820 BLAKE2B 3b715700561788b8abdc986961d533b91399461d57a1686ededb4ccc36881503cdc3fc126b9a7b204a728c24b9a9ca97320142348644367aca9b47c87a5b3b51 SHA512 79d8fb0ba8de0fb48c938bd54c8c3278f1895d8ce5c700ce8cf6b3fc550073bb757208e85d4f9818400ebecca96f51d9248b8bbdac9eb2995671756164d08c16
-DIST ghc-bin-7.10.3-alpha.tbz2 183558856 BLAKE2B 2bb02aafa49c6a91bec016e8bec2d07257d602e53c9df55792ec6fbbf8e2e46de1d5f3f72c0ccf74d6bd7f7987f53412063ccb02ae85455fce11fa928cbf5291 SHA512 08709fe9b4036ab41715c9a637a2a160104e3ab9e0ed9efaaf73428e3cfe19619e50c42b72c60bbbd27be2b9c2ea68f63d72c1a27d4519756e7c0d909f724230
-DIST ghc-bin-7.10.3-amd64.tbz2 112040431 BLAKE2B 3e59b70ca309a1cd704266c54a7983f9a58362bf700ced89c5649c780c664c650ec091e14026a7b84e339d2ebff39eba1772eebcd9fb4b99b9c99d179453d5cc SHA512 e1554b3944edbe8e16537de5a29132dc6a22d780d9a700cdc9b76387b94191164398d6f2242bf8199527802572e2bb02545569d4f0930a0ee0dbfdeb25978558
-DIST ghc-bin-7.10.3-ia64.tbz2 238680956 BLAKE2B 08593718d376051edfb0c86131e54dafc5c15056757fbeef90c653a7d217e49ff34ffaf7cd4083144c9277e73a290b822a0f889aaf806341375708e4b92654b2 SHA512 3694011aec8a6dc37889418b318993cb82f9b46a5175dd837713f396c8f59a19a920e0b0669fe3b4ec37d5bd8837c115264c0a8fc97c5a4ce06a3bdd52fcfce5
-DIST ghc-bin-7.10.3-ppc.tbz2 125832171 BLAKE2B cbf9c87200062606fddc6fa705666aeabceef954dad17166e24e181d210d7d86aad684e9af5ca05abcc89c947bea295dec3223735a6a915b680667ad32d850a5 SHA512 4eb111e3686656a83515f59d4ace8bc28806dcabfcee5201ce29aee38b8efcefaaf70c50bee55202c2d2abbfbf231a6b41df8b13199332c53055adb1754a3191
-DIST ghc-bin-7.10.3-ppc64.tbz2 142469712 BLAKE2B 05e6ca2498180399dd8a1a209843dd1229a1668d7504c424b9182fff00f78ec9aa2848d562f293dd388dc983851e0e28d481b12f0ae860b5c3a36eb616c3f1cf SHA512 eb59d3abc8b10010311d59df9473c5ea649eb0dd7f9ad41a1929a540a0ef8c20abaccd68254f8abab037fb1fc94d824f474e18e4316b8f2a7a954d0645a2a2a4
-DIST ghc-bin-7.10.3-sparc.tbz2 163105069 BLAKE2B 4a535472bf9ed83164f4da8280215a156b973a3a1f93a742a46050a112b7073d0a5f252686ee2ebde97140748cf3f164f33f1ba9df0b11fe2b35a86a7211b3a5 SHA512 d467a42487378d7dee311eb33aa1c151f5c16a6e7a4ab5bd8177df229f474adf19da3e1ca1064943a40abafcab6852b0589dd34413da82b33a03ede1ac17bf5d
-DIST ghc-bin-7.10.3-x86.tbz2 113877175 BLAKE2B 2f3064174f82f3ad6fda615d1f47f30b11f9dbd4a4b721673e5db49013a11ba80e850a0f392460651408fd3b31f8e677f1488fe2c94160881ab34740846b0390 SHA512 75096fe9106d975c15e646b0a559c544621fd02791f491bce54926efabf0e55b97150069ddfa7a9f02cc30bb6975d3d3121a82207a9f67b8dda5ebfe17ec4744
-DIST ghc-bin-7.8.4-alpha.tbz2 210691009 BLAKE2B 7a59cd1dbbe76fcf37ec7d1b2e81a76bd35f268c10614890cc8a39dcd846f6e5fb524ce1851036c315a9e5fe219d3abbb78d55f3e93f4ab5ad1dbf6c946146b7 SHA512 f08230de82f0c4112da9d0b48227ca74d5d0b4a84046d746b023557b7aeeb9678f5ac037fe89a863178df4b9036e5c5c63182d14dfbb42c772011de883e3966f
-DIST ghc-bin-7.8.4-amd64.tbz2 100573133 BLAKE2B da6bfb26eac8ef6c996ed10a56da9c535fb5fff4c69474de2cd979fe185876059f9e87940d24db8c52a0f04e81cf312982da75d04f3b96e7a11f2f134b512058 SHA512 e4416d6dae3c644f74bafb3aecf1a123f985427aba32d0e0c43143a137d64a9220fc5947cd9bde8a3bc44555ae71184fc06a3f7df7976aadd065ad5681b90954
-DIST ghc-bin-7.8.4-ia64.tbz2 222789275 BLAKE2B 2e0fc3ea11885b739156dcfbb4d52ded6492bf992ea18be2f91302d82e541a4de52e4bbe215f4d0cdbe54b32aa59e142ad10ae2fb20e8f0dfea22368a88620dd SHA512 2d8b89e399cbe9bfeae29cf3ceea736bfaa65ea21483fa2ee95d9814e122fcfbb67ce22ad8175493fab088e9a9d0139610c67e9d5c8b4f797b5e14846df32b6e
-DIST ghc-bin-7.8.4-ppc.tbz2 112803496 BLAKE2B fa60eda8b87dca0e23cbb971bc1f361f280735846cbe628e632981dc86baba0e877112e5c03d09fbb7f256cc078f8bf3248007c013208dab41c5205a82fab494 SHA512 9581f55a088e53edcc969960e45c9ad7227d71198ce2d241a4a066a138450a879287e55e7d2210e86143670539711387e36c7f60660c4422dc1b4122278fe4a0
-DIST ghc-bin-7.8.4-ppc64.tbz2 129284515 BLAKE2B 2e9a1e70830930dda7dcbd696ef3c27e7b64d571042cc0fc26bed42d13b9707ffeb337ffab38e2e04a7dabc56d8305fd77df508928d61fd0c653945afac8984d SHA512 53974e15c26cf6b62d8f838607abd209ec57cf0f45fcc48b90ad62736f5e4e7ff263dcd326ae03d8d5557a22eb9730e5eb8ae4eda55e52dd3d973bc73c84935e
-DIST ghc-bin-7.8.4-sparc.tbz2 147340595 BLAKE2B 8e39d6b144f4fce5196ad758f89887476e0482e8b98a012874d293d5e57756659cb9acb897476593a28f98f5c859548efa2e130f3806bfa2bb9e74795078a506 SHA512 ee5f0b2f1cf2693a0f2be9df71ef61b52bc2327225d40b8be955c1584b9901ffc6aaab63c1e46bf9bb352633b605c98378f8fd3e6cd71aef1c089007e4110217
-DIST ghc-bin-7.8.4-x86.tbz2 102312459 BLAKE2B 256cca9b2353af30dd7c239db0e21781d9d8aa352e38b3dd678b1429be6251e81f8955ac6ee0f766cc55f4de71c68acd98bc7b9434c3ea4b056d446ca59adc97 SHA512 cabc5bd6d8760ce4120e7053f6c1dffca7d161ba454b6201087760096c037c932e3ff8c82e53346c8278855bf0cff1c2f5fb8046242ca4d8307355b060a9556e
-DIST ghc-bin-8.0.2-alpha.tbz2 234361847 BLAKE2B 8e3439f3bbae1d3f6ab71f69669ea065f5f36c9cb4b334f06161cc1b9507aae56297d5eeb8a9cf72916aa012fab0b444a179a0336f00d5f17a8d402d5807c6f8 SHA512 c8b588feeab85f7b8fd60e2e8bf755d46790d4882d2ecf6b2c8b8e02c62a11b7e6453bf0cfbc646bfbf24310fdc775337f3957ba5783675a271b68f0af2e9070
-DIST ghc-bin-8.0.2-arm64.tbz2 191332951 BLAKE2B 305c4d618a6221e1322a5665544883624de4646e0186c6eab56d0b32877645f0b2bad8381848914751fbd2e11598727c46ab136de74c57207b75ecc6cce9572a SHA512 b9cabfda8fc6e851ba99f53274c1a63c5a6a365311a9203f1247ecf90ab843dd94960ad44c4e67032f4690f07d67bfd8bdfbe59f857d6c63344430539e2082fc
-DIST ghc-bin-8.0.2-i686-pc-linux-gnu.tbz2 133679542 BLAKE2B c50597857b53a2bf9d8047c048f86aa1782f74d5d9816d44b7bad7302181b407257ad0b52a03b4ad4936de3a15010b0ff5ca877b9578af6d3e7684dda2284718 SHA512 7f33e0b20a21fe076db142a58a81f68ab8f230ac9ce0167aba31aa0843bce20a9cf4065acc1c0ee2aaa01ea2ad4a8234388b0cf3ef886dccf25d7072602b430b
-DIST ghc-bin-8.0.2-ia64-unknown-linux-gnu.tbz2 256581880 BLAKE2B 7a9b41fccf3a097a19e169dcd8f553d38ffb96ebce3a3f0df15af79de77f6e33835a955fb7cc2c373f7bb6bfd3508a45ecf19f8b3e74bb058d2d6cdb6576bc6b SHA512 5d14521cc4f2a8fae1e5f43fce70cb976e4412df468c3bc611c99f57806816c349f4186c8a064c579858a82cc070e5942dd7b0c2d57b88d507215acddcbfcfc1
-DIST ghc-bin-8.0.2-ppc.tbz2 144760090 BLAKE2B 32410f3563f7f2555350806db460d2083c7248c57223c9c681d0b4913df942f023c7c1f5fda145179a524ee7ef105a9b8309ba87c20dc393a9f49151579b6767 SHA512 bc6bf8998064ffc1692c3bb83c44d1787760a3f4a1e6b79dedaefda5fe32b9052049a60f0ddd3c0b0bd24a722fb35e310e0189b3511721ff89d4d02b3d7c14bb
-DIST ghc-bin-8.0.2-ppc64.tbz2 117432068 BLAKE2B cae202f0d6e825127d543996b2fe7ae02578c47325674cbf22fddc53b1c4c9413f45c60d76ec3d07860cb8d0aae1ec792e4141822cc5c08ef9013308c5d29bf5 SHA512 0eaff0557b68649a15bbeb2019f46fa9e9e7b8a916aa210ab56888090a5b887d20d818e7987177bc6a8e7fde503de560026e6bb55fe39679b8b1ee13c6b7c4f9
-DIST ghc-bin-8.0.2-x86_64-pc-linux-gnu.tbz2 130852973 BLAKE2B 24d2032bbfc664d924800c1a317334e2342c8ec1e529178f9d1bb99bb4772a9cc100603bf70111b8cfafa715c1cccc643f115c77cf6adcdfb17d1f1735ee6682 SHA512 c36e0e2600fc7c284562a323d396a03062cb6e8fa63c353e672be61e76d2ec5c7698485e3a370a57cf512db9e5ba6a68338fff2ab404d9fe67b1a468ed72638f
-DIST ghc-bin-8.10.1-i686-pc-linux-gnu.tbz2 123398571 BLAKE2B 3650f9dbaaa5af684abad589953bcef5b1684a91a4cc2695d0ef735536057bb031231fe3d73dd74bc38a199f0890ef91764b551e5e158c120affc0d7bc3175b7 SHA512 52cc172de08ef30d6e89384e86eda1b8bbdef2bbff526041eb47d85d77b70ab49314ac7f33f18b40864c16fa546256f1b4c7964e65aa5d3cfbb7f9cbec505dc9
-DIST ghc-bin-8.10.1-x86_64-pc-linux-gnu.tbz2 122227601 BLAKE2B 84340866c70044eb1444a70b0cbed6814808037b697db28f567d2b14bb791cbe7d9bf2a327cc47ae85ce3c4970ba039854b4a6df44eb85cdc18040c5a4d15f4f SHA512 81df9de95aec47d60ad8d699756ad323eb525c3a16536fac8c6717e1754272061bd8d7d70cd38f5c509a2fc323305333e4f898c9b6dc27645521bb29ee218bdb
-DIST ghc-bin-8.10.2-i686-pc-linux-gnu.tbz2 123683156 BLAKE2B a486076ea6e67f124c850e037be0e63a873181c3fd746f437861f7367a968e0df6723afc934c966432274a55936c0fe48a9a43a48199840b37636843da4caccc SHA512 29cc1703bbdbfcbef8aa2a5a563b83b0663970f5902a1fc70230515a128ef47e27a3a6df2b47a01009c3976b4936cf8e64e5da4dfdda0c1bcf73ab7ea5ac0b6d
-DIST ghc-bin-8.10.2-x86_64-pc-linux-gnu.tbz2 122818630 BLAKE2B 030a68e2aca0eb0a273e0d48a3e180d92b219b2d1826d1d58fa133d0a6cae1316b3ccceadb55a4fa5870f87c3df85df2998e7611b93dbc1fea592437748b2daf SHA512 23bf47ee45fae54a843de9e6991b67fccb79c14ad8d08eff9f38a68a3530496c8ce4bc8cae8a731bb690ddd6cd0bf36d6d5bf37eb68ddae8ce646a0bf3916d8f
-DIST ghc-bin-8.10.3-i686-pc-linux-gnu.tbz2 123802832 BLAKE2B a770dd43bee7a1d60fec2eb9aaa7de715eed01c19d9514e04678801827879977a5c91f5e191d026ca83aa5e5fc5f518593053b2e78b27b08df64b39058dbaec3 SHA512 f810432a56ddcd773e6118f038cdacd2f5e3a508d87bfa468ee861aef0cfc434ec5766a8a74360d8cec6cb9c664928290901c025496100e7c8465408635227f5
-DIST ghc-bin-8.10.3-x86_64-pc-linux-gnu.tbz2 122993247 BLAKE2B e3395ebc7e87b4ae8f66dbbd9441c214c4d9535e55bfb14f78ebb92d30b1e100efc4893b3cdc65564d47bd53a21cb30106572b3fce13be022946171112c3218e SHA512 2ea4295bcaf6e3fd0db54ba67465e979cd85d3370c6c49f2381478ae9824ad89df53d7d93ccf06bdff5f4849f14306c9f50c13e6f6ba45f79e5b8c13ad63ae4f
-DIST ghc-bin-8.2.1-i686-pc-linux-gnu.tbz2 96157437 BLAKE2B 2b9608845db8cea78db07209fa054b3b05085d5c3ac07cbe3de02a93c87fb0cff12b1820f08757221c59c8a0a9e7a5563c44266b181525d916825e5cf5bac34c SHA512 e891e76557fa61853e28829b8bedc4a6abb92954f90cc1ebcf22a13cc137556bbe9262e7398b7e1aedbabeb997916b008bf1561a52f16a569f3d58ea9404f41e
-DIST ghc-bin-8.2.1-x86_64-pc-linux-gnu.tbz2 97490496 BLAKE2B 3666ea70cb8b3645db071040d2069fe244042c11954b34e5d92aaa90132d2316c0ee8c176cd4e674772bea3b99df150404f62bd8745c046cdaf102ecf0a0fa54 SHA512 52630a185d0eab56bce0469a612a54109895bfee041ec362ced59a9b35ba3b9c185e86bc7dbf0a5939081d3626baa19fbb3306e36d1857530248a7b9bfc100bb
-DIST ghc-bin-8.2.2-i686-pc-linux-gnu.tbz2 96638908 BLAKE2B b470f838e77330969f162196b0f1035fa764f5d123687fbf67c14323280bfe55216af0e16f8b79c62f290905d96abc8bfafee650f8d27c81608853e78329b2c9 SHA512 15b1525890477539878385efc15ce5f1cf2f126cc785c42923be958cabe3298cebe73526a2370cf4c630124160a7ca0f0f9062aebbf035dce807a0374eaddd14
-DIST ghc-bin-8.2.2-x86_64-pc-linux-gnu.tbz2 97696152 BLAKE2B b481cfea186220ee402f9f215dd48b002288766b643f3d8352579735347136c6349d242a9a56728d88ce80f72367dc9fdb6e40c47a0331910dadbb9a4998e17b SHA512 531df6505e8987fb5c5cc0aac59adc6aa153a4757b96936d3f09f27f3614589ff41c227568b780114b2e87c6c8656f2c88683cce86925628d12723f14b893eff
-DIST ghc-bin-8.4.1-i686-pc-linux-gnu.tbz2 116995839 BLAKE2B f94f2206d603d57f7fa64bdf63bcd2528019284fbf6641273ea1d8c62324e2f0b26b2cfa50c6ef96e12beba550bcedd17aa824e7cf9a27c794e962526326e105 SHA512 8167ea80fa627a1b55d28363513ac79985229326019288e7334cc87c3017d39781f4d129081d62da112420152a41d23d2dffb0c13721b80cca72d2a21fbd2c0a
-DIST ghc-bin-8.4.1-x86_64-pc-linux-gnu.tbz2 117369638 BLAKE2B 583db924a50a3d7d261d2f392a74e0ff487ee662af055ac292ff1943534fb305d6c9f6f0045ba4bdd5afa268d75beb50f64b4760e49cddabe1f56776a5f4769f SHA512 801f4ecd538c7a035a0f573f301769984814fa3ce4cf5b09a914ba012bebe0583b6695a6a93f92c7e6e2b7d58caf812a1214b5b778d7b7835d7eab988ad69ba0
-DIST ghc-bin-8.4.2-i686-pc-linux-gnu.tbz2 117083472 BLAKE2B 7dac18523ed693efb0ec42b31bf7b910e6bb8289cdc13eb309bdb30230fc87fbb060baf41eb4f18af2bb265b42e6aca535ceb70cf0fe09046b0e4650f11bb37c SHA512 f9799bdf7a2a66d1db34b828860203872d7398bab2d667e8982c9ee89301654c3f7f54705b639df2d7adebcfb7a05e071b83d994f5e52a72f604b62098be51cd
-DIST ghc-bin-8.4.2-x86_64-pc-linux-gnu.tbz2 117604406 BLAKE2B 644ef535497eb73a2d1ceaab7ff96228e8d4021c09bc061a3f397dc27b3b86bd6d5300736e478671cee0a160bfaa5aa4611f06012285079b40973f468b59664a SHA512 7bf4bcdce954319422b8b8f09e56294012fac145662ba3de1c7765ed86ae9f8b61dcf6dd8febcf85d60db8d1a26edcaf4e89c3644ffa24c7b5b5c41a14105936
-DIST ghc-bin-8.4.3-i686-pc-linux-gnu.tbz2 117028296 BLAKE2B 0c99a2f6fe4af4a1342d948cbda53b178fe9709673e0d09bc3b6a4e0f3ec4e4b8f77830829f149993f51e490692de39024900fb188116816e41441153eac3622 SHA512 13147ae0d6b941b3bc2f0239071a2f6f854a39cb6a381f0e2fda7069ac29bb2c64fb3ccc6191e7527b5f27fe616bd62f2e487b5d50679789927b401f02c62ad7
-DIST ghc-bin-8.4.3-x86_64-pc-linux-gnu.tbz2 117537996 BLAKE2B 2be0102fcc0f1fef5aae194620a43c1c90538215d4eec2550419634ed9c5bbfb17391d57519c20ab53987a36b42488ac43ff968690a4f65b96c52c3485589d10 SHA512 5f26810ec1f0a483f03ef01f56130eba0287b49b912efba03158336ce521000b611192cf021b72c1a0d902532cc4c9470ca1b3233ccba7c7e7c2ac490c6099fa
-DIST ghc-bin-8.6.4-i686-pc-linux-gnu.tbz2 121639881 BLAKE2B 51d223b654ff23bbdd594801f4ec92b016a58b952ba98007abb56c1c4b184a672e51eb9847b42160febcc4ada0f28f18325cc27f8a025dd9fcf656e3bab73918 SHA512 6b58b080c5fb18ea7b76632b4b48726af61b52d8829f57a2ddd55e6bc109c1fe1a133d2a0ca974a168ffee0013a6dfdc4922577bad01c50a42dad8b9db70e061
-DIST ghc-bin-8.6.4-x86_64-pc-linux-gnu.tbz2 121695747 BLAKE2B 39c745f5f9946bbae622e09bbdabdde4d62eec472fe14e693f37cba6b93ff66e4e56f66df8f0f073686339d252dce71f79f4c2aaef620c3dffbc26a67b1119c3 SHA512 c60bac50e7879bda1d6dcc7c1f12fdac915b18c3ebbfcfad575b2b01fcb57a487496ce7935f7ee4ae934162209ab66370fbcc8a4f021628e5f9a2aa7ef95e119
-DIST ghc-bin-8.6.5-i686-pc-linux-gnu.tbz2 121938050 BLAKE2B 17b6d15af21390e28a025505da76d39a2f8656f74c88a81fc75e7c8e799e54171c0d964d8a977c01576603a781c139b5363ea79eeaa2252622913d2a08a79f0e SHA512 9eb33b4670ee15f53c988885a119f3ef7be896ddcb318019628cdd04e21ec0c61876e08466d9d10d6cb1e16d89cd318e0ba42f0f0ae512f48590fe87483739cd
-DIST ghc-bin-8.6.5-powerpc64le-unknown-linux-gnu.tbz2 173549697 BLAKE2B 296bf4e0745f56dfefc3ffc96b4e492ddbfd8bcbbc28a8bc9b3172c616d0e7da1081834384ab69e387808331b607104f015632d59963a87f4e257f290ff286c3 SHA512 81261614a7939adb0ffad3657cd33588ff729bb1e3a7dd228cf869afc1f21b74cb4dce6369a4c4cdc9f45f8d8ae64f25d71cd0f2dc34f36d3022afc149538a78
-DIST ghc-bin-8.6.5-x86_64-pc-linux-gnu.tbz2 121728723 BLAKE2B 6620b2a116b5696dd2d776350a43251c093e117338a4407ae8c41ae27763a4614d7e761b2684b90aa9317dafe7cb67481a6bc141c812d335d5231724ae3db2a7 SHA512 69681eab137f6713339f8912d0d92f6af865630053bcd7a32cb8a31e01628e969951db976533196794fe39e0e57f0fcd8778d9fc9fed4f4231e965b9a603dd8e
-DIST ghc-bin-8.8.1-i686-pc-linux-gnu.tbz2 120789855 BLAKE2B 386f37696d956078fad5cad50cbf5b9d9d7765615a1d9cc91a376fb5394648afe8ca956e24ef210f2ff0e51f339b63b16a50f6dc35f30babf019aa57de50b27b SHA512 193c29889693befba863d3c5a26d38d8182bb7e1932b61115dc0a21b6582f818b05db144a9fae5aee06af2044ea59f884825cf1081b62a1c67feb3041d184d3a
-DIST ghc-bin-8.8.1-powerpc64le-unknown-linux-gnu.tbz2 173653088 BLAKE2B 6c29777b596b35fee8e3a17f965e6a21dc40dc2387988f55d4ca5fef0ea9677b558ed210054216a6578b93fbf844df9e407770df184f707f8203f846f4929d2d SHA512 d338b8912c1632410c43a0df75ce69f961924a7c51049a3ac27c22f7c6cfc07388815813713d594fc38b721127df80b65f72b1b0cc6fbf0e10fa15970b8b6f46
-DIST ghc-bin-8.8.1-x86_64-pc-linux-gnu.tbz2 119317594 BLAKE2B 98f0fb262ac485dcfd6a8a67304912ffad2bf2634111fcc3b60346697a836867006bbacaab1e1be0cd5be34b4595d12bec13af644c451c10f7e3843ebaf5922f SHA512 e6acb11755db18fd86a346de642b8579a6b48b303c19795949757f5e351ad3b8892906e989dc57a7fd4471d0efe30fc8175df5bac741d7faecfe42a855a67980
-DIST ghc-bin-8.8.2-i686-pc-linux-gnu.tbz2 120289601 BLAKE2B df65bc6aa4ee22c979b9d8eda29f51188c96700d61fb4cf141ebad8a55e26b6cd959fce3ec0b8d780b68e7baf15a1ce7654dc4ef084aa4671fe05f00f9c4e9aa SHA512 da059f3fea00e14df346143e714da6484ae51d362d9e237607817791e02ec81e29e1ff7f9929fac44044f63196b395287c42f5829884c34391289179b4f6e204
-DIST ghc-bin-8.8.2-x86_64-pc-linux-gnu.tbz2 118957404 BLAKE2B cddedbb0fe8d38e9821bd8f51f5177d35922b25bf4fc8a537e921443560f141cdef44e54a0b4ef2dde07dbe33d9c1cba2e67ba80db4313f67e9bac089d967f56 SHA512 b0b801dd6abe9f5e6217e18568e2911dbfea11b1b45ff526950e87c73a34bcd597afc5105fcff2dc46bb13cf95e63db90c0d24ca9babf174b397a53001e8e0ac
-DIST ghc-bin-8.8.3-i686-pc-linux-gnu.tbz2 120243899 BLAKE2B 7f932523a71dcfd4cdd468bf67f470a942c314888c0093c21c211d54b3e158f45f051f027c78644a651047d81e809e1422bbaa5043e8559c6a4622ac0472f7e4 SHA512 12bf08b85652fd061849b9adb528d7a5c6fe9c2260cf02b92fab470fff16c3121bcb4e0f7044d05f252012083d622a1a490fa7f7c949142a3b5d03ccf0dd3ebc
-DIST ghc-bin-8.8.3-x86_64-pc-linux-gnu.tbz2 118988294 BLAKE2B 4e5aa3844934ae2726bf9c8690acd5a887f10cd49386ffadbc536f9309d33b3894b49507964eaf0d8a052747eb33aeabbe4d2cd22493297c295cf9414fcb766c SHA512 dd656157fe744c1df1c8ed34d1129ec358b26f3042c6da68e704e0f6a45d8114789000479e28a06dc16961afb283b3c666b427025590498a3d2da9b741b435c7
-DIST ghc-bin-8.8.4-i686-pc-linux-gnu.tbz2 120336081 BLAKE2B 55dfbb90d5e55c2af5e93c69249828a85cd9171c164b80dfdaf86512972b2c6854c8e4f07426af4ab52a5fb1a85d96a58c2cf003fb02372c55428001cfaea491 SHA512 ad3b83344349976d3253934195b2dc6299648391572b13735943c5ea2239c031c19b0cafd86c16cfb0c061e73bc72e9248f9c1731494a9a15fbe188f02913c12
-DIST ghc-bin-8.8.4-x86_64-pc-linux-gnu.tbz2 118897883 BLAKE2B a180b2dd1a3bc222044ece809ad700aee29d0c3e75b57ee9af3ca33c9c0f59dbf36f68202f746d99f80915cb717a9c41fc12db507f1cb469981732703a06b9cc SHA512 9d4be02dbd9704c93ef18feb92ea30bd5d590df31f288bf1b364818424c5019ca9ada26eec88418199f90ae8f4459d0a9352104e3f3186bbdc241891eb1b66c4
-DIST hoopl-3.10.2.0.tar.gz 241940 BLAKE2B 0ed7bf80486767c81415f99da8780a525401c388dea0b3f380bbecceae9cc7f66d8b5d0d7b31f8cb41796309b7a93adb113485efd14882f8af321989ce900a9b SHA512 083baa8a5eb53247aff8d5b9b2144e0f63adb9400934297bbd80bfcec607dd90a34def4301045a60472ef10b0fb90ab84692fc08f786e7f806c28afdab1ef66a
-DIST transformers-0.4.3.0.tar.gz 28632 BLAKE2B 92cabcb654bb11854a3bffbb1262f5cd62eda1aff447157086a61ebc451ebf2fddec53b6a2cc058174f24f0f0e32df671d3717e30a542c8dc90cb87e327d990c SHA512 c3ec0893ebba4fbd6087c3202e919552c4a9bff3350b5c0589e7ebb18751a515d98b8cac15b0a3252906ea72b5a0eb09b7fe88c8da88b09d6ce4fbf0f50b2780
+DIST ghc-9.0.2-riscv64-llvm.patch.xz 7148 BLAKE2B 01a0d4036b649f663aebebab06990ac041533e7462d3ee9e143444f1119b736f2f8f2dfc293d61da1fac9f0d3ef12e98bab5b0c9fe8440ed1eab22a1d45fb9d7 SHA512 8afb62d5363d8a1a8f63e85335f3c8fa35b7d22899ebe334218a60ce9519852325c8ce93bb0be794c36cbc3c1cc031b7b1e2f4d7665d71f49e95f737bd91ba1a
+DIST ghc-9.0.2-src.tar.xz 27270396 BLAKE2B 0a73d910d3ef11161f895849025fe37ce231932f7cde441fdf620cf8c51678060a804467879eb0ee5c0a30413604c56e28e2aa1cde01e45c620b76987d9c0c0e SHA512 32994c7d2b8f47bae604cd825bfcf9c788d79ce26d1d5f58bd73a7093e11ae6c3c17b31dc0c9e454dbf67ca169b942f92213c388d615768cae86055bf6094dee
+DIST ghc-9.0.2-testsuite.tar.xz 2403564 BLAKE2B 0e7f6fefb9c972f94073aca8b15147913ffa8d3cd3ff7fc63ef7e20b4efd8b443cf21f12e1ab0f5044790f6d8af6cf7788bda85a21b2f356ddface86eb896670 SHA512 b2375500ae837d74af8085d099899b5a7a589c59bdcc033ca0bd6e00f33c4f8d90b481e0c7c3de113e607fcfafdfe8edde4713e6d242b2d4ee87df2eb960c9c7
+DIST ghc-9.2.8-src.tar.xz 24661260 BLAKE2B 5011eed2a86fea607d2f47d92c5884fcd0850037158659273af07ca1b65ad78d500f0cfbfff8f412d4e1f8f5de8e89e0b6146797a7ca0696cc42d71ddc75ef56 SHA512 c1159741725deaa00be7c230b38d43aed0fd456621fb4bc434434f13b03b74da1f91c09ce5dad553cf535f14038d8568fce7f21ea068680211b8bd35eafacf49
+DIST ghc-9.2.8-testsuite.tar.xz 3213812 BLAKE2B 2607ffa0f7b0bc3d0cbcba6726f016c43b79ac9c7479c71a94ae9f7adb3f1b913df30a35ff093777a52ba9213390bf4f9f40fc366f3be9acc48c4ef2b47ca172 SHA512 7ae455b009191167d73ca0990edd0b45d162de3c43d0e43cbb7008c673ddbfc1aa252ff8589af45026508941ea144138d3b2a0436e8bf64417e64b34fb272997
+DIST ghc-bin-9.0.2-r4-aarch64-unknown-linux-gnu.tar.gz 221699967 BLAKE2B c6e34b23a9664b6dc7d13f939063c34665c558b2596e3446abd9a8f90e9ad586f515e1703c36d269f7fb4a36a85f497e9f4d356f01ede7a7a614b3cd4fbf0dbe SHA512 d9f381b417ee740c9bba9508d5ccca2a6bffdd32c6262d76f254a21cf7505d2aaa5695c0354ee9e8fb672b90ae67af6205cdd2fe6ad6aa5d610c760d59392b62
+DIST ghc-bin-9.0.2-r4-i686-pc-linux-gnu.gpkg.tar 81059840 BLAKE2B 655405cd402cc7af424baf5b715f64af3ce97d474c883c618cd8e6fae40274dc6f584872c607cbe3553141a199729df98ddbdb5947a50520b67f53946f20d25a SHA512 401ab9ae646e18519ba1b06705944862d3f802068c4eae19fc019899eb14ceef95fa57e51b5527e5c5314c2433aff7e418e1d35c2de425c142c34e8fa21a5f46
+DIST ghc-bin-9.0.2-r4-powerpc64-unknown-linux-gnu.tar.gz 233834058 BLAKE2B 32ee779c4567472799f985102cdf0a6a5dfb3984795b6efafe6a6326933e1d0128260012cbe5e0e20c71becd4d2e589e32f43882e66b479ef4c34358d7bd8e93 SHA512 be56a92c2f5f00f1f0b22f02745d836ac3706fc207932c71277c1076515ed4fd1875372844b4cbb0996afec5fc122255103ac03c65c99d087615005f1aa63732
+DIST ghc-bin-9.0.2-r4-powerpc64le-unknown-linux-gnu.tar.gz 210668658 BLAKE2B fe33a43ea38e5fe17a003e60f29458f0dc5115f92db311dff11b2ce3fa1a9fc0304ad93c76535fb8e4ce44bb703f8a18638149f36b076c84f5c44385486722bd SHA512 12e04c29873ddd80ff259998121b3ce4b9dcdd1157cbb38ce8ac0234c6aaa0c156b0cc78f95af86288e6f595f9e010a1db88ba737e27773b404ed6129e58044f
+DIST ghc-bin-9.0.2-r4-riscv64-unknown-linux-gnu.tar.gz 315182159 BLAKE2B 95ee2f82eb706b42a0a3303038cf28166ac1e766a5f38402f833830c311f02773881b5341d6d7a1772fdc616522b1448a740caf34e4e534b5d00fedeb23604de SHA512 dd143f8b379e8ca04ab6254aa19978a3a8caf61322e2e3b2bae7488025949845aa5d5fc0e3124ff360172c2b47e4a33df4d1d55c8a976c96b552cd3c930b2fad
+DIST ghc-bin-9.0.2-r4-x86_64-pc-linux-gnu.gpkg.tar 123955200 BLAKE2B b1f45eea658f496997e63c21e3ef190749c122ee3a058d5f25fd90a2e2c33841817c540b9bf87e27e6981d9fb28d9201454217fa8ba9c1d9fc4ccf3d20652158 SHA512 06a240f7117f30179073e075634510d9ffe880010de16c93a001dce7b3020666b0b26d51c2c08cdaee7fc6513d9ffc7082f20b233d62b9149419abba2b4bd4ee
+DIST ghc-bin-9.2.8-aarch64-unknown-linux-gnu.gpkg.tar 147927040 BLAKE2B 83aeea2797b6c3a2d12ee191266a6241ed55a87130db1062dfe0e9ad81d7546fdf1ed91efbca3fa3fef67befbc7e4dc3541701e5e5ae53339115567d4ca9a436 SHA512 57112c28f2154e8255437c9a0a0f098b5fd61687fc6d0bb7c9f98895cca0cc744c1543cefcfd0525a46a73c869d377d95e768d41e4652f1e4f65b6db64aa1858
+DIST ghc-bin-9.2.8-i686-pc-linux-gnu.gpkg.tar 105441280 BLAKE2B 76d5fdb846d91d37b0b5706f1efbdd2833aac2d926fb4036845e36470fcfc6ad0143c492908c6cc5190dc3951c647e0584956395fca51b8f357b365ad23b496a SHA512 c19819bc4d8f1208fa28acc054cbb2d490b2b1c55bf55f8d4069474b4d58c931ff1999b593000b7f0b5b7169e6b71ad26d5d0d3480d8ecdbcc5e2c58116ec3d5
+DIST ghc-bin-9.2.8-powerpc64-unknown-linux-gnu.gpkg.tar 213811200 BLAKE2B f8bda2cb88500b9122d838579b94dd3f77f3ae0df8617e1fc394a73c31d2586bd887c3a879aa166c19f38bfce50868f8381c3624f839b1da963d4f6f7ddc1bce SHA512 ca736cd3532a02acc2f19a177fe2572abc99dd405a60380ed4968905823174373bd5c79966b2d3e03ff9b67859868e74bfba625e69bb3951d11a23affd84ae2b
+DIST ghc-bin-9.2.8-powerpc64le-unknown-linux-gnu.gpkg.tar 188190720 BLAKE2B bf6517284b7aeac483f9bd9afc366536ef42ad6dace5d146b2700e88dcb18ef805e4b8bbeaca91c7c779449c2317f13e894f0f80811396334148a0884a8b5ccf SHA512 758838295f88e78b14087185ad28e5b17804e651440e8a926ebff7c661a4592e8821961711b9fca7f13249830e255097dd4e6958418e99ebd008f5e6cff588cd
+DIST ghc-bin-9.2.8-riscv64-unknown-linux-gnu.gpkg.tar 269434880 BLAKE2B 2a1f42a9a4cd757513e59d86d4ccc68922ee9e9ef30abafc648cc4b5dbe3c850f865f6cea92edbdb1e44b8b21f7372740d44de7a6ebc3a48a3259b9eb9b73ab1 SHA512 809868ecd794764530e80d5c1e74b216580d0730b305949db5bd1e89a64f4bf3ce3330c618e641ce3cc252b0de36ed908c9e8690f262f4044e9d579c2225e8df
+DIST ghc-bin-9.2.8-x86_64-pc-linux-gnu.gpkg.tar 85432320 BLAKE2B ab649a6da5120720fc388dc98685a796415f7e2d664de17887f5bdadf5c9fe6192c4a6ac1bdbbe6e635ebf77b56e1f195367444e6febe01db32e38897dad5cb9 SHA512 fb868c87714aae791b4c19eaf3780707000ff61b240daebbfe2331d5e992dd20376060239df9aaf3daa54266eb10ad7a365804a09a5f6e9b1f5ee80717a16a17
+DIST process-1.6.16.0.tar.gz 87354 BLAKE2B 8c2977d6801faef8825ed35f058a6207a518f72eb87ac3144f630bc028f4753cefb9ed4d3fc29185438bcb4f38d33f5a45aebec6a8101e4cdc1b3570ada2e5dc SHA512 1663f2746a05a5a4c29d249db54eaa49edbbadfe8d189eab02276c3f6f3d6b84c81cc4333318c42c7a7265638402cb13276f08aeea134a7f5dd98da050a34341
diff --git a/dev-lang/ghc/files/ghc-7.10.1-rc3-ghc-7.10-bootstrap.patch b/dev-lang/ghc/files/ghc-7.10.1-rc3-ghc-7.10-bootstrap.patch
deleted file mode 100644
index 60db34b8b362..000000000000
--- a/dev-lang/ghc/files/ghc-7.10.1-rc3-ghc-7.10-bootstrap.patch
+++ /dev/null
@@ -1,78 +0,0 @@
---- ghc-7.10.0.20150316-orig/compiler/utils/Pair.hs 2015-03-10 05:43:13.000000000 +1100
-+++ ghc-7.10.0.20150316/compiler/utils/Pair.hs 2015-03-17 09:50:48.491115080 +1100
-@@ -15,6 +15,8 @@
- import Data.Foldable
- import Data.Monoid
- import Data.Traversable
-+#else
-+import Control.Applicative ((<$>))
- #endif
-
- data Pair a = Pair { pFst :: a, pSnd :: a }
---- ghc-7.10.0.20150316-orig/compiler/types/Coercion.hs 2015-03-10 05:43:13.000000000 +1100
-+++ ghc-7.10.0.20150316/compiler/types/Coercion.hs 2015-03-17 10:11:21.636047380 +1100
-@@ -104,6 +104,8 @@
- #if __GLASGOW_HASKELL__ < 709
- import Control.Applicative hiding ( empty )
- import Data.Traversable (traverse, sequenceA)
-+#else
-+import Control.Applicative ((<$>))
- #endif
- import FastString
- import ListSetOps
---- ghc-7.10.0.20150316-orig/compiler/typecheck/TcEvidence.hs 2015-03-14 08:48:57.000000000 +1100
-+++ ghc-7.10.0.20150316/compiler/typecheck/TcEvidence.hs 2015-03-17 10:26:03.251433371 +1100
-@@ -50,6 +50,8 @@
- #if __GLASGOW_HASKELL__ < 709
- import Control.Applicative
- import Data.Traversable (traverse, sequenceA)
-+#else
-+import Control.Applicative ((<$>))
- #endif
- import qualified Data.Data as Data
- import Outputable
---- ghc-7.10.0.20150316-orig/compiler/hsSyn/HsBinds.hs 2015-03-10 05:43:13.000000000 +1100
-+++ ghc-7.10.0.20150316/compiler/hsSyn/HsBinds.hs 2015-03-17 10:42:21.459519033 +1100
-@@ -47,6 +47,8 @@
- import Data.Traversable ( Traversable(..) )
- import Data.Monoid ( mappend )
- import Control.Applicative hiding (empty)
-+#else
-+import Control.Applicative ((<$>))
- #endif
-
- {-
---- ghc-7.10.0.20150316-orig/compiler/parser/RdrHsSyn.hs 2015-03-10 05:43:13.000000000 +1100
-+++ ghc-7.10.0.20150316/compiler/parser/RdrHsSyn.hs 2015-03-17 11:17:48.950929542 +1100
-@@ -91,9 +91,7 @@
- import Util
- import ApiAnnotation
-
--#if __GLASGOW_HASKELL__ < 709
- import Control.Applicative ((<$>))
--#endif
- import Control.Monad
-
- import Text.ParserCombinators.ReadP as ReadP
---- ghc-7.10.0.20150316-orig/compiler/typecheck/TcGenDeriv.hs 2015-03-14 08:48:57.000000000 +1100
-+++ ghc-7.10.0.20150316/compiler/typecheck/TcGenDeriv.hs 2015-03-17 11:30:39.106508173 +1100
-@@ -59,6 +59,8 @@
- import Var
- #if __GLASGOW_HASKELL__ < 709
- import MonadUtils
-+#else
-+import Control.Applicative ((<$>))
- #endif
- import Outputable
- import Lexeme
---- ghc-7.10.0.20150316-orig/compiler/vectorise/Vectorise/Exp.hs 2015-03-10 05:43:13.000000000 +1100
-+++ ghc-7.10.0.20150316/compiler/vectorise/Vectorise/Exp.hs 2015-03-17 11:46:41.829481669 +1100
-@@ -46,6 +46,8 @@
- import Util
- #if __GLASGOW_HASKELL__ < 709
- import MonadUtils
-+#else
-+import Control.Applicative ((<$>))
- #endif
-
- import Control.Monad
diff --git a/dev-lang/ghc/files/ghc-7.10.3-hardfloat.patch b/dev-lang/ghc/files/ghc-7.10.3-hardfloat.patch
deleted file mode 100644
index 106d07aa31c8..000000000000
--- a/dev-lang/ghc/files/ghc-7.10.3-hardfloat.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-commit 5cc08ebf2f346992a0abd4440252165c90b5ec05
-Author: Sergei Trofimovich <siarheit@google.com>
-Date: Sat Jun 20 12:23:00 2015 +0100
-
- Recognise 'hardhloat' as a valid vendor in a host tuple
-
- Observed on a tuple armv7a-hardfloat-linux-gnueabi:
- > Unknown vendor hardfloat
-
- Reported-by: Sergey Alirzaev
- Signed-off-by: Sergei Trofimovich <siarheit@google.com>
-
-diff --git a/aclocal.m4 b/aclocal.m4
-index 590edb0..958622c 100644
---- a/aclocal.m4
-+++ b/aclocal.m4
-@@ -1966,6 +1966,9 @@ AC_DEFUN([GHC_CONVERT_VENDOR],[
- softfloat) # like armv5tel-softfloat-linux-gnueabi
- $2="unknown"
- ;;
-+ hardfloat) # like armv7a-hardfloat-linux-gnueabi
-+ $2="unknown"
-+ ;;
- *)
- #pass thru by default
- $2="$1"
diff --git a/dev-lang/ghc/files/ghc-7.10.3-relnotes.patch b/dev-lang/ghc/files/ghc-7.10.3-relnotes.patch
deleted file mode 100644
index 675037946e75..000000000000
--- a/dev-lang/ghc/files/ghc-7.10.3-relnotes.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-diff --git a/ANNOUNCE b/ANNOUNCE
-index 7812eba..0018b37 100644
---- a/ANNOUNCE
-+++ b/ANNOUNCE
-@@ -1,6 +1,6 @@
-
- ==============================================================
-- The (Interactive) Glasgow Haskell Compiler -- version 7.10.2
-+ The (Interactive) Glasgow Haskell Compiler -- version 7.10.3
- ==============================================================
-
- The GHC Team is pleased to announce a new minor release of GHC. This is a
-@@ -29,7 +29,7 @@ bug-fix release and contains a number of important fixes,
- A more thorough list of the changes in the release can be found in the release
- notes,
-
-- http://haskell.org/ghc/docs/7.10.2/html/users_guide/release-7-10-2.html
-+ http://haskell.org/ghc/docs/7.10.3/html/users_guide/release-7-10-3.html
-
-
- How to get it
-diff --git a/docs/users_guide/intro.xml b/docs/users_guide/intro.xml
-index 3292334..fb7116e 100644
---- a/docs/users_guide/intro.xml
-+++ b/docs/users_guide/intro.xml
-@@ -309,6 +309,7 @@
-
- &relnotes1;
- &relnotes2;
-+&relnotes3;
-
- </chapter>
-
-diff --git a/docs/users_guide/ug-ent.xml.in b/docs/users_guide/ug-ent.xml.in
-index b696aad..3629e93 100644
---- a/docs/users_guide/ug-ent.xml.in
-+++ b/docs/users_guide/ug-ent.xml.in
-@@ -5,6 +5,7 @@
- <!ENTITY intro SYSTEM "intro.xml" >
- <!ENTITY relnotes1 SYSTEM "7.10.1-notes.xml" >
- <!ENTITY relnotes2 SYSTEM "7.10.2-notes.xml" >
-+<!ENTITY relnotes3 SYSTEM "7.10.3-notes.xml" >
- <!ENTITY using SYSTEM "using.xml" >
- <!ENTITY code-gens SYSTEM "codegens.xml" >
- <!ENTITY runtime SYSTEM "runtime_control.xml" >
diff --git a/dev-lang/ghc/files/ghc-7.6.3-preserve-inplace-xattr.patch b/dev-lang/ghc/files/ghc-7.6.3-preserve-inplace-xattr.patch
deleted file mode 100644
index 08410fa0cd9b..000000000000
--- a/dev-lang/ghc/files/ghc-7.6.3-preserve-inplace-xattr.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-On hardened 'cp' drops out XT-pax parking.
-perfinion suggested using 'install', where portage
-might have a chance to save our marking.
-
-Reported-by: Jay Yang
-Gentoo-bug: https://bugs.gentoo.org/518734
-diff --git a/rules/build-prog.mk b/rules/build-prog.mk
-index 399369e..2ee9cd5 100644
---- a/rules/build-prog.mk
-+++ b/rules/build-prog.mk
-@@ -288,3 +288,3 @@ endif
- $$($1_$2_INPLACE) : $1/$2/build/tmp/$$($1_$2_PROG_INPLACE) | $$$$(dir $$$$@)/.
-- "$$(CP)" -p $$< $$@
-+ $$(INSTALL) -m 755 $$< $$@
diff --git a/dev-lang/ghc/files/ghc-7.8.1_rc1-libbfd.patch b/dev-lang/ghc/files/ghc-7.8.1_rc1-libbfd.patch
deleted file mode 100644
index d01cb49affbd..000000000000
--- a/dev-lang/ghc/files/ghc-7.8.1_rc1-libbfd.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-commit bb5953484579968c984d074ca1af5d21e1c9e7a0
-Author: Sergei Trofimovich <slyfox@gentoo.org>
-Date: Mon Feb 10 12:45:58 2014 +0300
-
- rts: unrust 'libbfd' debug symbols parser
-
- Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
-
-diff --git a/configure.ac b/configure.ac
-index e7fbc7f..e47979c 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -801,7 +801,8 @@ fi
- dnl ** check whether this machine has BFD and libiberty installed (used for debugging)
- dnl the order of these tests matters: bfd needs libiberty
- AC_CHECK_LIB(iberty, xmalloc)
--AC_CHECK_LIB(bfd, bfd_uncompress_section_contents)
-+dnl 'bfd_init' is a rare non-macro in libbfd
-+AC_CHECK_LIB(bfd, bfd_init)
-
- dnl ################################################################
- dnl Check for libraries
-diff --git a/rts/Printer.c b/rts/Printer.c
-index ca9ca49..ce02b02 100644
---- a/rts/Printer.c
-+++ b/rts/Printer.c
-@@ -48,6 +48,9 @@ void printPtr( StgPtr p )
- raw = lookupGHCName(p);
- if (raw != NULL) {
- printZcoded(raw);
-+ /* it can be just a C symbol, like 'stg_returnToStackTop' */
-+ debugBelch("<%s>", raw);
-+ debugBelch("[%p]", p);
- } else {
- debugBelch("%p", p);
- }
-@@ -794,7 +797,7 @@ static void printZcoded( const char *raw )
- disabling this for now.
- */
- #ifdef USING_LIBBFD
--
-+#include "../mk/config.h" /* silly BFD's requirement */
- #include <bfd.h>
-
- /* Fairly ad-hoc piece of code that seems to filter out a lot of
-@@ -863,7 +866,10 @@ extern void DEBUG_LoadSymbols( char *name )
- for( i = 0; i != number_of_symbols; ++i ) {
- symbol_info info;
- bfd_get_symbol_info(abfd,symbol_table[i],&info);
-- /*debugBelch("\t%c\t0x%x \t%s\n",info.type,(nat)info.value,info.name); */
-+ if (0)
-+ {
-+ debugBelch("\t%c\t0x%x \t%s\n",info.type,(nat)info.value,info.name);
-+ }
- if (isReal(info.type, info.name)) {
- num_real_syms += 1;
- }
-diff --git a/rts/RtsStartup.c b/rts/RtsStartup.c
-index aa7306f..5bdef94 100644
---- a/rts/RtsStartup.c
-+++ b/rts/RtsStartup.c
-@@ -19,6 +19,7 @@
- #include "RtsFlags.h"
- #include "RtsUtils.h"
- #include "Prelude.h"
-+#include "Printer.h" /* DEBUG_LoadSymbols */
- #include "Schedule.h" /* initScheduler */
- #include "Stats.h" /* initStats */
- #include "STM.h" /* initSTM */
-@@ -162,6 +163,11 @@ hs_init_ghc(int *argc, char **argv[], RtsConfig rts_config)
- rts_config.rts_opts_enabled, rts_config.rts_opts, rts_config.rts_hs_main);
- }
-
-+#ifdef DEBUG
-+ /* load debugging symbols */
-+ DEBUG_LoadSymbols((*argv)[0]);
-+#endif /* DEBUG */
-+
- /* Initialise the stats department, phase 1 */
- initStats1();
-
diff --git a/dev-lang/ghc/files/ghc-7.8.2-cgen-constify.patch b/dev-lang/ghc/files/ghc-7.8.2-cgen-constify.patch
deleted file mode 100644
index efdd54fbf3fb..000000000000
--- a/dev-lang/ghc/files/ghc-7.8.2-cgen-constify.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-commit b0cf3ab7a69b878a4335d21a347b56e4b0ca0b7b
-Author: Sergei Trofimovich <slyfox@gentoo.org>
-Date: Mon Apr 14 19:06:24 2014 +0300
-
- compiler/cmm/PprC.hs: constify local string literals
-
- Consider one-line module
- module B (v) where v = "hello"
- in -fvia-C mode it generates code like
- static char gibberish_str[] = "hello";
-
- It uselessly eats data section (precious resource on ia64!).
- The patch switches genrator to emit:
- static const char gibberish_str[] = "hello";
-
- Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
-
-diff --git a/compiler/cmm/PprC.hs b/compiler/cmm/PprC.hs
-index 2398981..fdb578d 100644
---- a/compiler/cmm/PprC.hs
-+++ b/compiler/cmm/PprC.hs
-@@ -112,6 +112,12 @@ pprTop (CmmProc infos clbl _ graph) =
-
- -- We only handle (a) arrays of word-sized things and (b) strings.
-
-+pprTop (CmmData ReadOnlyData (Statics lbl [CmmString str])) =
-+ hcat [
-+ pprLocalness lbl, ptext (sLit "const char "), ppr lbl,
-+ ptext (sLit "[] = "), pprStringInCStyle str, semi
-+ ]
-+
- pprTop (CmmData _section (Statics lbl [CmmString str])) =
- hcat [
- pprLocalness lbl, ptext (sLit "char "), ppr lbl,
diff --git a/dev-lang/ghc/files/ghc-7.8.3-linker-warn.patch b/dev-lang/ghc/files/ghc-7.8.3-linker-warn.patch
deleted file mode 100644
index c8570c06940b..000000000000
--- a/dev-lang/ghc/files/ghc-7.8.3-linker-warn.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-commit 326046739801a380c5457ef4c87bce8fb95497ba
-Author: Sergei Trofimovich <slyfox@gentoo.org>
-Date: Sun Aug 10 22:12:28 2014 +0300
-
- systools info: fix warning about C compiler (message said about linker)
-
- Summary: Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
-
- Test Plan: build-tested
-
- Reviewers: austin
-
- Reviewed By: austin
-
- Subscribers: phaskell, simonmar, relrod, ezyang, carter
-
- Differential Revision: https://phabricator.haskell.org/D132
-
-diff --git a/compiler/main/SysTools.lhs b/compiler/main/SysTools.lhs
-index 1c1c52c..72fa19b 100644
---- a/compiler/main/SysTools.lhs
-+++ b/compiler/main/SysTools.lhs
-@@ -809,10 +809,10 @@ getCompilerInfo' dflags = do
- )
- (\err -> do
- debugTraceMsg dflags 2
-- (text "Error (figuring out compiler information):" <+>
-+ (text "Error (figuring out C compiler information):" <+>
- text (show err))
- errorMsg dflags $ hang (text "Warning:") 9 $
-- text "Couldn't figure out linker information!" $$
-+ text "Couldn't figure out C compiler information!" $$
- text "Make sure you're using GNU gcc, or clang"
- return UnknownCC)
- return info
diff --git a/dev-lang/ghc/files/ghc-7.8.3-pic-sparc.patch b/dev-lang/ghc/files/ghc-7.8.3-pic-sparc.patch
deleted file mode 100644
index 16a552fdd4be..000000000000
--- a/dev-lang/ghc/files/ghc-7.8.3-pic-sparc.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-commit 78863edbb0751f5c9694ea10c6132a87cfd0ee10
-Author: Sergei Trofimovich <slyfox@gentoo.org>
-Date: Wed Aug 27 22:20:33 2014 +0300
-
- Revert "disable shared libs on sparc (linux/solaris) (fixes #8857)"
-
- This reverts commit 623883f1ed0ee11cc925c4590fb09565403fd231.
-
- The commit a93ab43ab5f40cadbedea2f6342b93c245e91434
- driver: pass '-fPIC' option to assembler as well
- fixes shared libraries on sparc at least on linux.
-
- Properly fixes Issue #8857
-
- Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
-
-diff --git a/mk/config.mk.in b/mk/config.mk.in
-index c210cd3..392237f 100644
---- a/mk/config.mk.in
-+++ b/mk/config.mk.in
-@@ -97,9 +97,7 @@ endif
- # Some platforms don't support shared libraries
- NoSharedLibsPlatformList = powerpc-unknown-linux \
- x86_64-unknown-mingw32 \
-- i386-unknown-mingw32 \
-- sparc-sun-solaris2 \
-- sparc-unknown-linux
-+ i386-unknown-mingw32
-
- ifeq "$(SOLARIS_BROKEN_SHLD)" "YES"
- NoSharedLibsPlatformList += i386-unknown-solaris2
diff --git a/dev-lang/ghc/files/ghc-7.8.3-ppc32-fPIC.patch b/dev-lang/ghc/files/ghc-7.8.3-ppc32-fPIC.patch
deleted file mode 100644
index 434be8b1bdad..000000000000
--- a/dev-lang/ghc/files/ghc-7.8.3-ppc32-fPIC.patch
+++ /dev/null
@@ -1,351 +0,0 @@
-commit fa31e8f4a0f853848d96549a429083941877bf8d
-Author: Sergei Trofimovich <siarheit@google.com>
-Date: Sun Dec 14 14:30:12 2014 +0000
-
- powerpc: fix and enable shared libraries by default on linux
-
- Summary:
- And fix things all the way down to it. Namely:
- - remove 'r30' from free registers, it's an .LCTOC1 register
- for gcc. generated .plt stubs expect it to be initialised.
- - fix PicBase computation, which originally forgot to use 'tmp'
- reg in 'initializePicBase_ppc.fetchPC'
- - mark 'ForeighTarget's as implicitly using 'PicBase' register
- (see comment for details)
- - add 64-bit MO_Sub and test on alloclimit3/4 regtests
- - fix dynamic label offsets to match with .LCTOC1 offset
-
- Signed-off-by: Sergei Trofimovich <siarheit@google.com>
-
- Test Plan: validate passes equal amount of vanilla/dyn tests
-
- Reviewers: simonmar, erikd, austin
-
- Reviewed By: erikd, austin
-
- Subscribers: carter, thomie
-
- Differential Revision: https://phabricator.haskell.org/D560
-
- GHC Trac Issues: #8024, #9831
-
-diff --git a/compiler/cmm/CLabel.hs b/compiler/cmm/CLabel.hs
-index 0f2c0ae..37b8ada 100644
---- a/compiler/cmm/CLabel.hs
-+++ b/compiler/cmm/CLabel.hs
-@@ -1170,7 +1170,8 @@ pprDynamicLinkerAsmLabel platform dllInfo lbl
- else if osElfTarget (platformOS platform)
- then if platformArch platform == ArchPPC
- then case dllInfo of
-- CodeStub -> ppr lbl <> text "@plt"
-+ CodeStub -> -- See Note [.LCTOC1 in PPC PIC code]
-+ ppr lbl <> text "+32768@plt"
- SymbolPtr -> text ".LC_" <> ppr lbl
- _ -> panic "pprDynamicLinkerAsmLabel"
- else if platformArch platform == ArchX86_64
-diff --git a/compiler/nativeGen/PIC.hs b/compiler/nativeGen/PIC.hs
-index 9b5c080..6326a8b 100644
---- a/compiler/nativeGen/PIC.hs
-+++ b/compiler/nativeGen/PIC.hs
-@@ -54,7 +54,6 @@ import qualified X86.Instr as X86
-
- import Platform
- import Instruction
--import Size
- import Reg
- import NCGMonad
-
-@@ -468,11 +467,8 @@ pprGotDeclaration dflags ArchX86 OSDarwin
- pprGotDeclaration _ _ OSDarwin
- = empty
-
---- pprGotDeclaration
-+-- Emit GOT declaration
- -- Output whatever needs to be output once per .s file.
---- The .LCTOC1 label is defined to point 32768 bytes into the table,
---- to make the most of the PPC's 16-bit displacements.
---- Only needed for PIC.
- pprGotDeclaration dflags arch os
- | osElfTarget os
- , arch /= ArchPPC_64
-@@ -482,6 +478,7 @@ pprGotDeclaration dflags arch os
- | osElfTarget os
- , arch /= ArchPPC_64
- = vcat [
-+ -- See Note [.LCTOC1 in PPC PIC code]
- ptext (sLit ".section \".got2\",\"aw\""),
- ptext (sLit ".LCTOC1 = .+32768") ]
-
-@@ -688,12 +685,7 @@ pprImportedSymbol _ _ _
-
-
- -- Get a pointer to our own fake GOT, which is defined on a per-module basis.
---- This is exactly how GCC does it, and it's quite horrible:
---- We first fetch the address of a local label (mkPicBaseLabel).
---- Then we add a 16-bit offset to that to get the address of a .long that we
---- define in .text space right next to the proc. This .long literal contains
---- the (32-bit) offset from our local label to our global offset table
---- (.LCTOC1 aka gotOffLabel).
-+-- This is exactly how GCC does it in linux.
-
- initializePicBase_ppc
- :: Arch -> OS -> Reg
-@@ -704,18 +696,9 @@ initializePicBase_ppc ArchPPC os picReg
- (CmmProc info lab live (ListGraph blocks) : statics)
- | osElfTarget os
- = do
-- dflags <- getDynFlags
-- gotOffLabel <- getNewLabelNat
-- tmp <- getNewRegNat $ intSize (wordWidth dflags)
- let
-- gotOffset = CmmData Text $ Statics gotOffLabel [
-- CmmStaticLit (CmmLabelDiffOff gotLabel
-- mkPicBaseLabel
-- 0)
-- ]
-- offsetToOffset
-- = PPC.ImmConstantDiff
-- (PPC.ImmCLbl gotOffLabel)
-+ gotOffset = PPC.ImmConstantDiff
-+ (PPC.ImmCLbl gotLabel)
- (PPC.ImmCLbl mkPicBaseLabel)
-
- blocks' = case blocks of
-@@ -726,15 +709,23 @@ initializePicBase_ppc ArchPPC os picReg
- | bID `mapMember` info = fetchPC b
- | otherwise = b
-
-+ -- GCC does PIC prologs thusly:
-+ -- bcl 20,31,.L1
-+ -- .L1:
-+ -- mflr 30
-+ -- addis 30,30,.LCTOC1-.L1@ha
-+ -- addi 30,30,.LCTOC1-.L1@l
-+ -- TODO: below we use it over temporary register,
-+ -- it can and should be optimised by picking
-+ -- correct PIC reg.
- fetchPC (BasicBlock bID insns) =
- BasicBlock bID (PPC.FETCHPC picReg
-- : PPC.ADDIS tmp picReg (PPC.HI offsetToOffset)
-- : PPC.LD PPC.archWordSize tmp
-- (PPC.AddrRegImm tmp (PPC.LO offsetToOffset))
-- : PPC.ADD picReg picReg (PPC.RIReg picReg)
-+ : PPC.ADDIS picReg picReg (PPC.HA gotOffset)
-+ : PPC.ADDI picReg picReg (PPC.LO gotOffset)
-+ : PPC.MR PPC.r30 picReg
- : insns)
-
-- return (CmmProc info lab live (ListGraph blocks') : gotOffset : statics)
-+ return (CmmProc info lab live (ListGraph blocks') : statics)
-
-
- initializePicBase_ppc ArchPPC OSDarwin picReg
-diff --git a/compiler/nativeGen/PPC/CodeGen.hs b/compiler/nativeGen/PPC/CodeGen.hs
-index ddf483a..c1c4a74 100644
---- a/compiler/nativeGen/PPC/CodeGen.hs
-+++ b/compiler/nativeGen/PPC/CodeGen.hs
-@@ -54,7 +54,7 @@ import Outputable
- import Unique
- import DynFlags
-
--import Control.Monad ( mapAndUnzipM )
-+import Control.Monad ( mapAndUnzipM, when )
- import Data.Bits
- import Data.Word
-
-@@ -355,6 +355,19 @@ iselExpr64 (CmmMachOp (MO_Add _) [e1,e2]) = do
- ADDE rhi r1hi r2hi ]
- return (ChildCode64 code rlo)
-
-+iselExpr64 (CmmMachOp (MO_Sub _) [e1,e2]) = do
-+ ChildCode64 code1 r1lo <- iselExpr64 e1
-+ ChildCode64 code2 r2lo <- iselExpr64 e2
-+ (rlo,rhi) <- getNewRegPairNat II32
-+ let
-+ r1hi = getHiVRegFromLo r1lo
-+ r2hi = getHiVRegFromLo r2lo
-+ code = code1 `appOL`
-+ code2 `appOL`
-+ toOL [ SUBFC rlo r2lo r1lo,
-+ SUBFE rhi r2hi r1hi ]
-+ return (ChildCode64 code rlo)
-+
- iselExpr64 (CmmMachOp (MO_UU_Conv W32 W64) [expr]) = do
- (expr_reg,expr_code) <- getSomeReg expr
- (rlo, rhi) <- getNewRegPairNat II32
-@@ -918,8 +931,12 @@ genCCall' dflags gcp target dest_regs args0
- (toOL []) []
-
- (labelOrExpr, reduceToFF32) <- case target of
-- ForeignTarget (CmmLit (CmmLabel lbl)) _ -> return (Left lbl, False)
-- ForeignTarget expr _ -> return (Right expr, False)
-+ ForeignTarget (CmmLit (CmmLabel lbl)) _ -> do
-+ uses_pic_base_implicitly
-+ return (Left lbl, False)
-+ ForeignTarget expr _ -> do
-+ uses_pic_base_implicitly
-+ return (Right expr, False)
- PrimTarget mop -> outOfLineMachOp mop
-
- let codeBefore = move_sp_down finalStack `appOL` passArgumentsCode
-@@ -940,6 +957,13 @@ genCCall' dflags gcp target dest_regs args0
- where
- platform = targetPlatform dflags
-
-+ uses_pic_base_implicitly = do
-+ -- See Note [implicit register in PPC PIC code]
-+ -- on why we claim to use PIC register here
-+ when (gopt Opt_PIC dflags) $ do
-+ _ <- getPicBaseNat archWordSize
-+ return ()
-+
- initialStackOffset = case gcp of
- GCPDarwin -> 24
- GCPLinux -> 8
-@@ -1431,3 +1455,21 @@ coerceFP2Int _ toRep x = do
- -- read low word of value (high word is undefined)
- LD II32 dst (spRel dflags 3)]
- return (Any (intSize toRep) code')
-+
-+-- Note [.LCTOC1 in PPC PIC code]
-+-- The .LCTOC1 label is defined to point 32768 bytes into the GOT table
-+-- to make the most of the PPC's 16-bit displacements.
-+-- As 16-bit signed offset is used (usually via addi/lwz instructions)
-+-- first element will have '-32768' offset against .LCTOC1.
-+
-+-- Note [implicit register in PPC PIC code]
-+-- PPC generates calls by labels in assembly
-+-- in form of:
-+-- bl puts+32768@plt
-+-- in this form it's not seen directly (by GHC NCG)
-+-- that r30 (PicBaseReg) is used,
-+-- but r30 is a required part of PLT code setup:
-+-- puts+32768@plt:
-+-- lwz r11,-30484(r30) ; offset in .LCTOC1
-+-- mtctr r11
-+-- bctr
-diff --git a/compiler/nativeGen/PPC/Instr.hs b/compiler/nativeGen/PPC/Instr.hs
-index f5b9506..b7081f9 100644
---- a/compiler/nativeGen/PPC/Instr.hs
-+++ b/compiler/nativeGen/PPC/Instr.hs
-@@ -205,8 +205,11 @@ data Instr
- | ADD Reg Reg RI -- dst, src1, src2
- | ADDC Reg Reg Reg -- (carrying) dst, src1, src2
- | ADDE Reg Reg Reg -- (extend) dst, src1, src2
-+ | ADDI Reg Reg Imm -- Add Immediate dst, src1, src2
- | ADDIS Reg Reg Imm -- Add Immediate Shifted dst, src1, src2
- | SUBF Reg Reg Reg -- dst, src1, src2 ; dst = src2 - src1
-+ | SUBFC Reg Reg Reg -- (carrying) dst, src1, src2 ; dst = src2 - src1
-+ | SUBFE Reg Reg Reg -- (extend) dst, src1, src2 ; dst = src2 - src1
- | MULLW Reg Reg RI
- | DIVW Reg Reg Reg
- | DIVWU Reg Reg Reg
-@@ -284,8 +287,11 @@ ppc_regUsageOfInstr platform instr
- ADD reg1 reg2 ri -> usage (reg2 : regRI ri, [reg1])
- ADDC reg1 reg2 reg3 -> usage ([reg2,reg3], [reg1])
- ADDE reg1 reg2 reg3 -> usage ([reg2,reg3], [reg1])
-+ ADDI reg1 reg2 _ -> usage ([reg2], [reg1])
- ADDIS reg1 reg2 _ -> usage ([reg2], [reg1])
- SUBF reg1 reg2 reg3 -> usage ([reg2,reg3], [reg1])
-+ SUBFC reg1 reg2 reg3 -> usage ([reg2,reg3], [reg1])
-+ SUBFE reg1 reg2 reg3 -> usage ([reg2,reg3], [reg1])
- MULLW reg1 reg2 ri -> usage (reg2 : regRI ri, [reg1])
- DIVW reg1 reg2 reg3 -> usage ([reg2,reg3], [reg1])
- DIVWU reg1 reg2 reg3 -> usage ([reg2,reg3], [reg1])
-@@ -358,8 +364,11 @@ ppc_patchRegsOfInstr instr env
- ADD reg1 reg2 ri -> ADD (env reg1) (env reg2) (fixRI ri)
- ADDC reg1 reg2 reg3 -> ADDC (env reg1) (env reg2) (env reg3)
- ADDE reg1 reg2 reg3 -> ADDE (env reg1) (env reg2) (env reg3)
-+ ADDI reg1 reg2 imm -> ADDI (env reg1) (env reg2) imm
- ADDIS reg1 reg2 imm -> ADDIS (env reg1) (env reg2) imm
- SUBF reg1 reg2 reg3 -> SUBF (env reg1) (env reg2) (env reg3)
-+ SUBFC reg1 reg2 reg3 -> SUBFC (env reg1) (env reg2) (env reg3)
-+ SUBFE reg1 reg2 reg3 -> SUBFE (env reg1) (env reg2) (env reg3)
- MULLW reg1 reg2 ri -> MULLW (env reg1) (env reg2) (fixRI ri)
- DIVW reg1 reg2 reg3 -> DIVW (env reg1) (env reg2) (env reg3)
- DIVWU reg1 reg2 reg3 -> DIVWU (env reg1) (env reg2) (env reg3)
-diff --git a/compiler/nativeGen/PPC/Ppr.hs b/compiler/nativeGen/PPC/Ppr.hs
-index 6851769..f59d51f 100644
---- a/compiler/nativeGen/PPC/Ppr.hs
-+++ b/compiler/nativeGen/PPC/Ppr.hs
-@@ -525,6 +525,16 @@ pprInstr (BCTRL _) = hcat [
- ptext (sLit "bctrl")
- ]
- pprInstr (ADD reg1 reg2 ri) = pprLogic (sLit "add") reg1 reg2 ri
-+pprInstr (ADDI reg1 reg2 imm) = hcat [
-+ char '\t',
-+ ptext (sLit "addi"),
-+ char '\t',
-+ pprReg reg1,
-+ ptext (sLit ", "),
-+ pprReg reg2,
-+ ptext (sLit ", "),
-+ pprImm imm
-+ ]
- pprInstr (ADDIS reg1 reg2 imm) = hcat [
- char '\t',
- ptext (sLit "addis"),
-@@ -539,6 +549,8 @@ pprInstr (ADDIS reg1 reg2 imm) = hcat [
- pprInstr (ADDC reg1 reg2 reg3) = pprLogic (sLit "addc") reg1 reg2 (RIReg reg3)
- pprInstr (ADDE reg1 reg2 reg3) = pprLogic (sLit "adde") reg1 reg2 (RIReg reg3)
- pprInstr (SUBF reg1 reg2 reg3) = pprLogic (sLit "subf") reg1 reg2 (RIReg reg3)
-+pprInstr (SUBFC reg1 reg2 reg3) = pprLogic (sLit "subfc") reg1 reg2 (RIReg reg3)
-+pprInstr (SUBFE reg1 reg2 reg3) = pprLogic (sLit "subfe") reg1 reg2 (RIReg reg3)
- pprInstr (MULLW reg1 reg2 ri@(RIReg _)) = pprLogic (sLit "mullw") reg1 reg2 ri
- pprInstr (MULLW reg1 reg2 ri@(RIImm _)) = pprLogic (sLit "mull") reg1 reg2 ri
- pprInstr (DIVW reg1 reg2 reg3) = pprLogic (sLit "divw") reg1 reg2 (RIReg reg3)
-diff --git a/compiler/nativeGen/PPC/Regs.hs b/compiler/nativeGen/PPC/Regs.hs
-index 0f636bf..69e69c0 100644
---- a/compiler/nativeGen/PPC/Regs.hs
-+++ b/compiler/nativeGen/PPC/Regs.hs
-@@ -37,7 +37,8 @@ module PPC.Regs (
- fits16Bits,
- makeImmediate,
- fReg,
-- sp, r3, r4, r27, r28, f1, f20, f21,
-+ sp, r3, r4, r27, r28, r30,
-+ f1, f20, f21,
-
- allocatableRegs
-
-@@ -295,12 +296,13 @@ point registers.
- fReg :: Int -> RegNo
- fReg x = (32 + x)
-
--sp, r3, r4, r27, r28, f1, f20, f21 :: Reg
-+sp, r3, r4, r27, r28, r30, f1, f20, f21 :: Reg
- sp = regSingle 1
- r3 = regSingle 3
- r4 = regSingle 4
- r27 = regSingle 27
- r28 = regSingle 28
-+r30 = regSingle 30
- f1 = regSingle $ fReg 1
- f20 = regSingle $ fReg 20
- f21 = regSingle $ fReg 21
-diff --git a/includes/CodeGen.Platform.hs b/includes/CodeGen.Platform.hs
-index 9916e0e..1d46a01 100644
---- a/includes/CodeGen.Platform.hs
-+++ b/includes/CodeGen.Platform.hs
-@@ -881,6 +881,8 @@ freeReg 1 = fastBool False -- The Stack Pointer
- # if !MACHREGS_darwin
- -- most non-darwin powerpc OSes use r2 as a TOC pointer or something like that
- freeReg 2 = fastBool False
-+-- at least linux in -fPIC relies on r30 in PLT stubs
-+freeReg 30 = fastBool False
- # endif
- # ifdef REG_Base
- freeReg REG_Base = fastBool False
-diff --git a/mk/config.mk.in b/mk/config.mk.in
-index 0f5820f..8f134bc 100644
---- a/mk/config.mk.in
-+++ b/mk/config.mk.in
-@@ -95,7 +95,7 @@ TargetElf = YES
- endif
-
- # Some platforms don't support shared libraries
--NoSharedLibsPlatformList = powerpc-unknown-linux \
-+NoSharedLibsPlatformList = \
- x86_64-unknown-mingw32 \
- i386-unknown-mingw32
-
diff --git a/dev-lang/ghc/files/ghc-7.8.3-prim-lm.patch b/dev-lang/ghc/files/ghc-7.8.3-prim-lm.patch
deleted file mode 100644
index 3ef2313fcec1..000000000000
--- a/dev-lang/ghc/files/ghc-7.8.3-prim-lm.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-Fix underlinking on ghc-prim.
-Fixes ghc-stage2 crahs on hardened toolchain.
-Reported-by: aranea
-diff --git a/libraries/ghc-prim/ghc-prim.cabal b/libraries/ghc-prim/ghc-prim.cabal
-index ffb32af..0431380 100644
---- a/libraries/ghc-prim/ghc-prim.cabal
-+++ b/libraries/ghc-prim/ghc-prim.cabal
-@@ -68,0 +68,4 @@ Library
-+
-+ -- ghc 'sin' (and other) primops generate 'libm' calls,
-+ -- but ghc itself does not add '-lm'
-+ extra-libraries: m
diff --git a/dev-lang/ghc/files/ghc-7.8.4-gold.patch b/dev-lang/ghc/files/ghc-7.8.4-gold.patch
deleted file mode 100644
index a8e9b1e6c857..000000000000
--- a/dev-lang/ghc/files/ghc-7.8.4-gold.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-Gentoo-bug: https://bugs.gentoo.org/536426
-Reported-by: Eric Siegel
-commit 021b7978d14799bae779907faf7490cfd21b3f46
-Author: Austin Seipp <austin@well-typed.com>
-Date: Sun Jul 20 10:13:15 2014 -0500
-
- driver: use absolute paths in ld scripts (#7452)
-
- Patch contributed by slowmo.
-
- Signed-off-by: Austin Seipp <austin@well-typed.com>
-
-diff --git a/compiler/main/DriverPipeline.hs b/compiler/main/DriverPipeline.hs
-index 11427e2..49126fe 100644
---- a/compiler/main/DriverPipeline.hs
-+++ b/compiler/main/DriverPipeline.hs
-@@ -2166,7 +2166,9 @@ joinObjectFiles dflags o_files output_fn = do
- if ldIsGnuLd
- then do
- script <- newTempName dflags "ldscript"
-- writeFile script $ "INPUT(" ++ unwords o_files ++ ")"
-+ cwd <- getCurrentDirectory
-+ let o_files_abs = map (cwd </>) o_files
-+ writeFile script $ "INPUT(" ++ unwords o_files_abs ++ ")"
- ld_r [SysTools.FileOption "" script] ccInfo
- else if sLdSupportsFilelist mySettings
- then do
diff --git a/dev-lang/ghc/files/ghc-7.8.4-ia64-CLOSUREs.patch b/dev-lang/ghc/files/ghc-7.8.4-ia64-CLOSUREs.patch
deleted file mode 100644
index 9d50792bcf45..000000000000
--- a/dev-lang/ghc/files/ghc-7.8.4-ia64-CLOSUREs.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-From b677ba51cf8131a6f6ddcdfee8dd2a8c4c2b4ac7 Mon Sep 17 00:00:00 2001
-From: Sergei Trofimovich <siarheit@google.com>
-Date: Sat, 17 Jan 2015 14:27:13 +0000
-Subject: [PATCH 1/3] CMM: add a mechanism to import C data labels
-
-Fixes threaded runtime on ia64.
-sm_mutex there was not referenced correctly.
-
-Signed-off-by: Sergei Trofimovich <siarheit@google.com>
----
- compiler/cmm/CmmParse.y | 4 ++++
- rts/Exception.cmm | 2 +-
- rts/PrimOps.cmm | 6 +++---
- 3 files changed, 8 insertions(+), 4 deletions(-)
-
-diff --git a/compiler/cmm/CmmParse.y.source b/compiler/cmm/CmmParse.y.source
-index 6b51e51..fd9489b 100644
---- a/compiler/cmm/CmmParse.y.source
-+++ b/compiler/cmm/CmmParse.y.source
-@@ -575,6 +575,10 @@ importName
- : NAME
- { ($1, mkForeignLabel $1 Nothing ForeignLabelInExternalPackage IsFunction) }
-
-+ -- as previous 'NAME', but 'IsData'
-+ | 'CLOSURE' NAME
-+ { ($2, mkForeignLabel $2 Nothing ForeignLabelInExternalPackage IsData) }
-+
- -- A label imported with an explicit packageId.
- | STRING NAME
- { ($2, mkCmmCodeLabel (fsToPackageKey (mkFastString $1)) $2) }
-diff --git a/rts/Exception.cmm b/rts/Exception.cmm
-index 5007ef3..8d19c14 100644
---- a/rts/Exception.cmm
-+++ b/rts/Exception.cmm
-@@ -13,7 +13,7 @@
- #include "Cmm.h"
- #include "RaiseAsync.h"
-
--import ghczmprim_GHCziTypes_True_closure;
-+import CLOSURE ghczmprim_GHCziTypes_True_closure;
-
- /* -----------------------------------------------------------------------------
- Exception Primitives
-diff --git a/rts/PrimOps.cmm b/rts/PrimOps.cmm
-index 3e8612c..2e6ca46 100644
---- a/rts/PrimOps.cmm
-+++ b/rts/PrimOps.cmm
-@@ -28,12 +28,12 @@
- import pthread_mutex_lock;
- import pthread_mutex_unlock;
- #endif
--import base_ControlziExceptionziBase_nestedAtomically_closure;
-+import CLOSURE base_ControlziExceptionziBase_nestedAtomically_closure;
- import EnterCriticalSection;
- import LeaveCriticalSection;
--import ghczmprim_GHCziTypes_False_closure;
-+import CLOSURE ghczmprim_GHCziTypes_False_closure;
- #if defined(USE_MINIINTERPRETER) || !defined(mingw32_HOST_OS)
--import sm_mutex;
-+import CLOSURE sm_mutex;
- #endif
-
- /*-----------------------------------------------------------------------------
---
-2.2.1
-
diff --git a/dev-lang/ghc/files/ghc-8.0.1-limit-jN.patch b/dev-lang/ghc/files/ghc-8.0.1-limit-jN.patch
deleted file mode 100644
index dc5410da3020..000000000000
--- a/dev-lang/ghc/files/ghc-8.0.1-limit-jN.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-commit 501e05bb1b8974fc8b6c9eee86c87c367e87a211
-Author: Sergei Trofimovich <slyfox@gentoo.org>
-Date: Tue Aug 30 12:10:47 2016 +0100
-
- GhcMake: limit Capability count to CPU count in parallel mode
-
- In Trac #9221 one of problems using high --jobs=<N>
- is amount of mutator (or GC) threads we crate.
-
- We use userspace spinning-and-yielding (see ACQUIRE_SPIN_LOCK)
- to acess work stealing queues. In case of
- N-worker-threads > N-CPUs fraction of time when
- thread holding spin lock gets descheduled by kernel
- increases. That causes other threads to waste CPU time
- before giving up CPU.
-
- Signed-off-by: Sergei Trofimovich <siarheit@google.com>
-
- Test Plan:
- ghc --make -j8 and -j80 have comparable sys time
- on a 8-core system.
-
- Reviewers: austin, gintas, bgamari, simonmar
-
- Reviewed By: bgamari, simonmar
-
- Subscribers: thomie
-
- Differential Revision: https://phabricator.haskell.org/D2482
-
- GHC Trac Issues: #9221
-
-diff --git a/compiler/main/GhcMake.hs b/compiler/main/GhcMake.hs
-index 9dc43cd..905df63 100644
---- a/compiler/main/GhcMake.hs
-+++ b/compiler/main/GhcMake.hs
-@@ -761,7 +761,12 @@ parUpsweep n_jobs old_hpt stable_mods cleanup sccs = do
-
- let updNumCapabilities = liftIO $ do
- n_capabilities <- getNumCapabilities
-- unless (n_capabilities /= 1) $ setNumCapabilities n_jobs
-+ n_cpus <- getNumProcessors
-+ -- Setting number of capabilities more than
-+ -- CPU count usually leads to high userspace
-+ -- lock contention. Trac #9221
-+ let n_caps = min n_jobs n_cpus
-+ unless (n_capabilities /= 1) $ setNumCapabilities n_caps
- return n_capabilities
- -- Reset the number of capabilities once the upsweep ends.
- let resetNumCapabilities orig_n = liftIO $ setNumCapabilities orig_n
diff --git a/dev-lang/ghc/files/ghc-8.0.1-par-g0-on-A32.patch b/dev-lang/ghc/files/ghc-8.0.1-par-g0-on-A32.patch
deleted file mode 100644
index b46e57301782..000000000000
--- a/dev-lang/ghc/files/ghc-8.0.1-par-g0-on-A32.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-commit bdfc5375f219d6def81effda4e57cb56d01fc917
-Author: Sergei Trofimovich <slyfox@gentoo.org>
-Date: Tue Aug 30 12:10:54 2016 +0100
-
- rts: enable parallel GC scan of large (32M+) allocation area
-
- Parallel GC does not scan large allocation area (-A)
- effectively as it does not do work stealing from nursery
- by default.
-
- That leads to large imbalance when only one of threads
- overflows allocation area: most of GC threads finish
- quickly (as there is not much to collect) and sit idle
- waiting while single GC thread finishes scan of single
- allocation area for that thread.
-
- The patch enables work stealing for (equivalent of -qb0)
- allocation area of -A32M or higher.
-
- Tested on a highlighting-kate package from Trac #9221
-
- On 8-core machine the difference is around 5% faster
- of wall-clock time. On 24-core VM the speedup is 20%.
-
- Signed-off-by: Sergei Trofimovich <siarheit@google.com>
-
- Test Plan: measured wall time and GC parallelism on highlighting-kate build
-
- Reviewers: austin, bgamari, erikd, simonmar
-
- Reviewed By: bgamari, simonmar
-
- Subscribers: thomie
-
- Differential Revision: https://phabricator.haskell.org/D2483
-
- GHC Trac Issues: #9221
-
-diff --git a/rts/RtsFlags.c b/rts/RtsFlags.c
-index fda33f0..7a719b9 100644
---- a/rts/RtsFlags.c
-+++ b/rts/RtsFlags.c
-@@ -237,1 +237,1 @@ void initRtsFlagsDefaults(void)
-- RtsFlags.ParFlags.parGcLoadBalancingGen = 1;
-+ RtsFlags.ParFlags.parGcLoadBalancingGen = ~0u; /* auto, based on -A */
-@@ -1398,2 +1390,19 @@ static void normaliseRtsOpts (void)
- }
-
-+#ifdef THREADED_RTS
-+ if (RtsFlags.ParFlags.parGcLoadBalancingGen == ~0u) {
-+ StgWord alloc_area_bytes
-+ = RtsFlags.GcFlags.minAllocAreaSize * BLOCK_SIZE;
-+
-+ // If allocation area is larger that CPU cache
-+ // we can finish scanning quicker doing work-stealing
-+ // scan. Trac #9221
-+ // 32M looks big enough not to fit into L2 cache
-+ // of popular modern CPUs.
-+ if (alloc_area_bytes >= 32 * 1024 * 1024) {
-+ RtsFlags.ParFlags.parGcLoadBalancingGen = 0;
-+ } else {
-+ RtsFlags.ParFlags.parGcLoadBalancingGen = 1;
-+ }
-+ }
-+#endif
diff --git a/dev-lang/ghc/files/ghc-8.0.1-ww-args-limit.patch b/dev-lang/ghc/files/ghc-8.0.1-ww-args-limit.patch
deleted file mode 100644
index 4752f4482678..000000000000
--- a/dev-lang/ghc/files/ghc-8.0.1-ww-args-limit.patch
+++ /dev/null
@@ -1,127 +0,0 @@
-commit 5efbf0d243984444cf352ad6f0d147e226c64498
-Author: Sergei Trofimovich <slyfox@gentoo.org>
-Date: Thu Sep 1 17:34:58 2016 +0100
-
- restore -fmax-worker-args handling (Trac #11565)
-
- maxWorkerArgs handling was accidentally lost 3 years ago
- in a major update of demand analysis
- commit 0831a12ea2fc73c33652eeec1adc79fa19700578
-
- Old regression is noticeable as:
- - code bloat (requires stack reshuffling)
- - compilation slowdown (more code to optimise/generate)
- - and increased heap usage (DynFlags unboxing/reboxing?)
-
- On a simple compile benchmark this change causes heap
- allocation drop from 70G don to 67G (ghc perf build).
-
- Signed-off-by: Sergei Trofimovich <siarheit@google.com>
-
- Reviewers: simonpj, ezyang, goldfire, austin, bgamari
-
- Reviewed By: simonpj, ezyang
-
- Subscribers: thomie
-
- Differential Revision: https://phabricator.haskell.org/D2503
-
- GHC Trac Issues: #11565
-
-diff --git a/compiler/specialise/SpecConstr.hs b/compiler/specialise/SpecConstr.hs
-index 10d5614..7166f57 100644
---- a/compiler/specialise/SpecConstr.hs
-+++ b/compiler/specialise/SpecConstr.hs
-@@ -29,7 +29,7 @@ import CoreFVs ( exprsFreeVarsList )
- import CoreMonad
- import Literal ( litIsLifted )
- import HscTypes ( ModGuts(..) )
--import WwLib ( mkWorkerArgs )
-+import WwLib ( isWorkerSmallEnough, mkWorkerArgs )
- import DataCon
- import Coercion hiding( substCo )
- import Rules
-@@ -1533,10 +1533,14 @@ specialise env bind_calls (RI { ri_fn = fn, ri_lam_bndrs = arg_bndrs
-
- | Just all_calls <- lookupVarEnv bind_calls fn
- = -- pprTrace "specialise entry {" (ppr fn <+> ppr (length all_calls)) $
-- do { (boring_call, pats) <- callsToPats env specs arg_occs all_calls
--
-+ do { (boring_call, all_pats) <- callsToPats env specs arg_occs all_calls
- -- Bale out if too many specialisations
-- ; let n_pats = length pats
-+ ; let pats = filter (is_small_enough . fst) all_pats
-+ is_small_enough vars = isWorkerSmallEnough (sc_dflags env) vars
-+ -- We are about to construct w/w pair in 'spec_one'.
-+ -- Omit specialisation leading to high arity workers.
-+ -- See Note [Limit w/w arity]
-+ n_pats = length pats
- spec_count' = n_pats + spec_count
- ; case sc_count env of
- Just max | not (sc_force env) && spec_count' > max
-diff --git a/compiler/stranal/WwLib.hs b/compiler/stranal/WwLib.hs
-index 09bc204..d9460d9 100644
---- a/compiler/stranal/WwLib.hs
-+++ b/compiler/stranal/WwLib.hs
-@@ -8,6 +8,7 @@
-
- module WwLib ( mkWwBodies, mkWWstr, mkWorkerArgs
- , deepSplitProductType_maybe, findTypeShape
-+ , isWorkerSmallEnough
- ) where
-
- #include "HsVersions.h"
-@@ -144,7 +145,8 @@ mkWwBodies dflags fam_envs fun_ty demands res_info one_shots
- wrapper_body = wrap_fn_args . wrap_fn_cpr . wrap_fn_str . applyToVars work_call_args . Var
- worker_body = mkLams work_lam_args. work_fn_str . work_fn_cpr . work_fn_args
-
-- ; if useful1 && not (only_one_void_argument) || useful2
-+ ; if isWorkerSmallEnough dflags work_args
-+ && (useful1 && not only_one_void_argument || useful2)
- then return (Just (worker_args_dmds, wrapper_body, worker_body))
- else return Nothing
- }
-@@ -165,6 +167,12 @@ mkWwBodies dflags fam_envs fun_ty demands res_info one_shots
- | otherwise
- = False
-
-+-- See Note [Limit w/w arity]
-+isWorkerSmallEnough :: DynFlags -> [Var] -> Bool
-+isWorkerSmallEnough dflags vars = count isId vars <= maxWorkerArgs dflags
-+ -- We count only Free variables (isId) to skip Type, Kind
-+ -- variables which have no runtime representation.
-+
- {-
- Note [Always do CPR w/w]
- ~~~~~~~~~~~~~~~~~~~~~~~~
-@@ -178,6 +186,30 @@ a disaster, because then the enclosing function might say it has the CPR
- property, but now doesn't and there a cascade of disaster. A good example
- is Trac #5920.
-
-+Note [Limit w/w arity]
-+~~~~~~~~~~~~~~~~~~~~~~~~
-+Guard against high worker arity as it generates a lot of stack traffic.
-+A simplified example is Trac #11565#comment:6
-+
-+Current strategy is very simple: don't perform w/w transformation at all
-+if the result produces a wrapper with arity higher than -fmax-worker-args=.
-+
-+It is a bit all or nothing, consider
-+
-+ f (x,y) (a,b,c,d,e ... , z) = rhs
-+
-+Currently we will remove all w/w ness entirely. But actually we could
-+w/w on the (x,y) pair... it's the huge product that is the problem.
-+
-+Could we instead refrain from w/w on an arg-by-arg basis? Yes, that'd
-+solve f. But we can get a lot of args from deeply-nested products:
-+
-+ g (a, (b, (c, (d, ...)))) = rhs
-+
-+This is harder to spot on an arg-by-arg basis. Previously mkWwStr was
-+given some "fuel" saying how many arguments it could add; when we ran
-+out of fuel it would stop w/wing.
-+Still not very clever because it had a left-right bias.
-
- ************************************************************************
- * *
diff --git a/dev-lang/ghc/files/ghc-8.0.1_rc1-cgen-constify.patch b/dev-lang/ghc/files/ghc-8.0.1_rc1-cgen-constify.patch
deleted file mode 100644
index 877a5827e4ea..000000000000
--- a/dev-lang/ghc/files/ghc-8.0.1_rc1-cgen-constify.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-commit b0cf3ab7a69b878a4335d21a347b56e4b0ca0b7b
-Author: Sergei Trofimovich <slyfox@gentoo.org>
-Date: Mon Apr 14 19:06:24 2014 +0300
-
- compiler/cmm/PprC.hs: constify local string literals
-
- Consider one-line module
- module B (v) where v = "hello"
- in -fvia-C mode it generates code like
- static char gibberish_str[] = "hello";
-
- It uselessly eats data section (precious resource on ia64!).
- The patch switches genrator to emit:
- static const char gibberish_str[] = "hello";
-
- Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
-
-diff --git a/compiler/cmm/PprC.hs b/compiler/cmm/PprC.hs
-index 2398981..fdb578d 100644
---- a/compiler/cmm/PprC.hs
-+++ b/compiler/cmm/PprC.hs
-@@ -112,6 +112,12 @@ pprTop (CmmProc infos clbl _ graph) =
-
- -- We only handle (a) arrays of word-sized things and (b) strings.
-
-+pprTop (CmmData (Section ReadOnlyData _) (Statics lbl [CmmString str])) =
-+ hcat [
-+ pprLocalness lbl, ptext (sLit "const char "), ppr lbl,
-+ ptext (sLit "[] = "), pprStringInCStyle str, semi
-+ ]
-+
- pprTop (CmmData _section (Statics lbl [CmmString str])) =
- hcat [
- pprLocalness lbl, ptext (sLit "char "), ppr lbl,
diff --git a/dev-lang/ghc/files/ghc-8.0.2-O2-unreg.patch b/dev-lang/ghc/files/ghc-8.0.2-O2-unreg.patch
deleted file mode 100644
index b64d65b80a05..000000000000
--- a/dev-lang/ghc/files/ghc-8.0.2-O2-unreg.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-ghc -O2 generates too large C files for unregisterised compiler.
-On ia64 it causes DynFlags to compile for 60 minutes (then assembler
-crashes).
-
-To decrease C code inflation we don't use -O2 in UNREG mode.
-diff --git a/mk/config.mk.in b/mk/config.mk.in
-index bfaaa66..d8f93b3 100644
---- a/mk/config.mk.in
-+++ b/mk/config.mk.in
-@@ -72,11 +72,2 @@ GhcStage3HcOpts=-O2
-
--# Disable -O2 optimization. Otherwise amount of generated C code
--# makes things very slow to compile (~5 minutes on core-i7 for 'compiler/hsSyn/HsExpr.lhs')
--# and sometimes not compile at all (powerpc64 overflows something
--# on 'compiler/hsSyn/HsExpr.lhs').
--ifeq "$(GhcUnregisterised)" "YES"
--GhcStage1HcOpts=
--GhcStage2HcOpts=
--GhcStage3HcOpts=
--endif
-
-@@ -894 +885,13 @@ CURSES_INCLUDE_DIRS = @CURSES_INCLUDE_DIRS@
- CURSES_LIB_DIRS = @CURSES_LIB_DIRS@
-+
-+# Disable -O2 optimization. Otherwise amount of generated C code
-+# makes things very slow to compile (~5 minutes on core-i7 for 'compiler/hsSyn/HsExpr.lhs')
-+# and sometimes not compile at all (powerpc64 overflows something
-+# on 'compiler/hsSyn/HsExpr.lhs').
-+ifeq "$(GhcUnregisterised)" "YES"
-+GhcStage1HcOpts=
-+GhcStage2HcOpts=
-+GhcStage3HcOpts=
-+
-+GhcLibHcOpts=
-+endif
diff --git a/dev-lang/ghc/files/ghc-8.0.2-binutils-2.30.patch b/dev-lang/ghc/files/ghc-8.0.2-binutils-2.30.patch
deleted file mode 100644
index f02cb238c6b9..000000000000
--- a/dev-lang/ghc/files/ghc-8.0.2-binutils-2.30.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-From 358b508051333882d4099acca8f269e6fb2b7d65 Mon Sep 17 00:00:00 2001
-From: Bertram Felgenhauer <int-e@gmx.de>
-Date: Thu, 3 May 2018 18:03:53 +0300
-Subject: [PATCH] Compute DW_FORM_block length correctly; also fixes #15068
-
-Before this patch, the pprUnwindwExpr function computed the length of
-by the following assembly fragment:
-
- .uleb128 1f-.-1
- <expression data>
-1:
-
-That is, to compute the length, it takes the difference of the label 1
-and the address of the .uleb128 directive, and subtracts 1.
-
-In #15068 it was reported that `as` from binutils 4.30 has trouble with
-evaluating the `.` part of the expression. However, there is actually a
-problem with the expression, if the length of the data ever becomes
-larger than 128: In that case, the .uleb128 directive will emit more
-than 1 byte, and the computed length will be wrong.
-
-The present patch changes the assembly fragment to use two labels,
-which fixes both these problems.
-
- .uleb128 2f-1f
-1:
- <expression data>
-2:
-
-Test Plan: validate
-
-Reviewers: bgamari, osa1
-
-Reviewed By: bgamari
-
-Subscribers: thomie, carter
-
-GHC Trac Issues: #15068
-
-Differential Revision: https://phabricator.haskell.org/D4654
----
- compiler/nativeGen/Dwarf/Types.hs | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/compiler/nativeGen/Dwarf/Types.hs b/compiler/nativeGen/Dwarf/Types.hs
-index 23a2c920e7..579ed0d256 100644
---- a/compiler/nativeGen/Dwarf/Types.hs
-+++ b/compiler/nativeGen/Dwarf/Types.hs
-@@ -492,9 +492,11 @@ pprUnwindExpr spIsCFA expr
- pprE (UwPlus u1 u2) = pprE u1 $$ pprE u2 $$ pprByte dW_OP_plus
- pprE (UwMinus u1 u2) = pprE u1 $$ pprE u2 $$ pprByte dW_OP_minus
- pprE (UwTimes u1 u2) = pprE u1 $$ pprE u2 $$ pprByte dW_OP_mul
-- in text "\t.uleb128 1f-.-1" $$ -- DW_FORM_block length
-+ in text "\t.uleb128 2f-1f" $$ -- DW_FORM_block length
-+ -- computed as the difference of the following local labels 2: and 1:
-+ text "1:" $$
- pprE expr $$
-- text "1:"
-+ text "2:"
-
- -- | Generate code for re-setting the unwind information for a
- -- register to @undefined@
---
-2.17.0
-
diff --git a/dev-lang/ghc/files/ghc-8.0.2-libffi-alpha.patch b/dev-lang/ghc/files/ghc-8.0.2-libffi-alpha.patch
deleted file mode 100644
index 166f7fe42991..000000000000
--- a/dev-lang/ghc/files/ghc-8.0.2-libffi-alpha.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-commit 2c220c4b053c8efb2098ee20910084a42a0b2dcd
-Author: Sergei Trofimovich <siarheit@google.com>
-Date: Sun Jan 29 11:59:36 2017 +0000
-
- libffi: fix build COMPLEX build failure on alpha
-
- libtool: compile: alpha-unknown-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I.. -I. -I../include -Iinclude \
- -I../src -I. -I../include -Iinclude -I../src -Wall -w -mieee -D_REENTRANT -fno-stack-protector \
- -w -MT src/alpha/osf.lo -MMD -MP -MF src/alpha/.deps/osf.Tpo \
- -c ../src/alpha/osf.S -fPIC -DPIC -o src/alpha/.libs/osf.o
-
- ../src/alpha/osf.S:298:2: error: #error "osf.S out of sync with ffi.h"
- #error "osf.S out of sync with ffi.h"
- ^
-
- Signed-off-by: Sergei Trofimovich <siarheit@google.com>
-
-diff --git a/libffi/ghc.mk b/libffi/ghc.mk
-index 7c5bc9e1b3..4297ed449e 100644
---- a/libffi/ghc.mk
-+++ b/libffi/ghc.mk
-@@ -63,6 +63,9 @@ $(libffi_STAMP_CONFIGURE): $(TOUCH_DEP)
- # will use cygwin symbolic links which cannot be read by mingw gcc.
- chmod +x libffi/ln
-
-+ # fix libffi build failure on alpha
-+ ( cd libffi/build && "$(PATCH_CMD)" -p0 < ../libffi.3.2.1-complex_alpha.diff; )
-+
- # We need to use -MMD rather than -MD, as otherwise we get paths
- # like c:/... in the dependency files on Windows, and the extra
- # colons break make
-diff --git a/libffi/libffi.3.2.1-complex_alpha.diff b/libffi/libffi.3.2.1-complex_alpha.diff
-new file mode 100644
-index 0000000000..0d6e0bc290
---- /dev/null
-+++ b/libffi/libffi.3.2.1-complex_alpha.diff
-@@ -0,0 +1,20 @@
-+--- src/alpha/osf.S.orig 2015-01-16 10:46:15.000000000 +0100
-++++ src/alpha/osf.S 2015-01-16 10:46:24.000000000 +0100
-+@@ -279,6 +279,7 @@
-+ .gprel32 $load_64 # FFI_TYPE_SINT64
-+ .gprel32 $load_none # FFI_TYPE_STRUCT
-+ .gprel32 $load_64 # FFI_TYPE_POINTER
-++ .gprel32 $load_none # FFI_TYPE_COMPLEX
-+
-+ /* Assert that the table above is in sync with ffi.h. */
-+
-+@@ -294,7 +295,8 @@
-+ || FFI_TYPE_SINT64 != 12 \
-+ || FFI_TYPE_STRUCT != 13 \
-+ || FFI_TYPE_POINTER != 14 \
-+- || FFI_TYPE_LAST != 14
-++ || FFI_TYPE_COMPLEX != 15 \
-++ || FFI_TYPE_LAST != 15
-+ #error "osf.S out of sync with ffi.h"
-+ #endif
-+
diff --git a/dev-lang/ghc/files/ghc-8.0.2-no-relax-everywhere.patch b/dev-lang/ghc/files/ghc-8.0.2-no-relax-everywhere.patch
deleted file mode 100644
index d6cff3373801..000000000000
--- a/dev-lang/ghc/files/ghc-8.0.2-no-relax-everywhere.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-https://github.com/gentoo-haskell/gentoo-haskell/issues/704
-
-Allow users to specify -W,--relax externally and pass
--Wl,-no-relax unconditonally on all arches.
-
-Reported-by: wmyrda
-diff --git a/compiler/main/DriverPipeline.hs b/compiler/main/DriverPipeline.hs
-index acd0d61..5830517 100644
---- a/compiler/main/DriverPipeline.hs
-+++ b/compiler/main/DriverPipeline.hs
-@@ -2172,5 +2172,3 @@ joinObjectFiles dflags o_files output_fn = do
- -- disable --relax explicitly.
-- ++ (if platformArch (targetPlatform dflags)
-- `elem` [ArchSPARC, ArchSPARC64]
-- && ldIsGnuLd
-+ ++ (if ldIsGnuLd
- then [SysTools.Option "-Wl,-no-relax"]
diff --git a/dev-lang/ghc/files/ghc-8.0.2_rc2-old-sphinx.patch b/dev-lang/ghc/files/ghc-8.0.2_rc2-old-sphinx.patch
deleted file mode 100644
index a4d49d3ef808..000000000000
--- a/dev-lang/ghc/files/ghc-8.0.2_rc2-old-sphinx.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/docs/users_guide/profiling.rst b/docs/users_guide/profiling.rst
-index 4d0bb3a..f980f72 100644
---- a/docs/users_guide/profiling.rst
-+++ b/docs/users_guide/profiling.rst
-@@ -435,7 +435,2 @@ To generate a heap profile from your program:
-
--For example, here is a heap profile produced for the ``sphere`` program
--from GHC's ``nofib`` benchmark suite,
--
--.. image:: images/prof_scc.*
--
- You might also want to take a look at
diff --git a/dev-lang/ghc/files/ghc-8.10.1-no-relax-everywhere.patch b/dev-lang/ghc/files/ghc-8.10.1-no-relax-everywhere.patch
deleted file mode 100644
index 19c8b4bccc48..000000000000
--- a/dev-lang/ghc/files/ghc-8.10.1-no-relax-everywhere.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-https://github.com/gentoo-haskell/gentoo-haskell/issues/704
-
-Allow users to specify -W,--relax externally and pass
--Wl,-no-relax unconditonally on all arches.
-
-Reported-by: wmyrda
---- a/compiler/main/DriverPipeline.hs
-+++ b/compiler/main/DriverPipeline.hs
-@@ -2144,9 +2144,7 @@ joinObjectFiles dflags o_files output_fn = do
- -- gcc on sparc sets -Wl,--relax implicitly, but
- -- -r and --relax are incompatible for ld, so
- -- disable --relax explicitly.
-- ++ (if platformArch (targetPlatform dflags)
-- `elem` [ArchSPARC, ArchSPARC64]
-- && ldIsGnuLd
-+ ++ (if ldIsGnuLd
- then [SysTools.Option "-Wl,-no-relax"]
- else [])
- -- See Note [Produce big objects on Windows]
diff --git a/dev-lang/ghc/files/ghc-8.10.2-revert-linker-rtsSymbols_more_linker_symbols.patch b/dev-lang/ghc/files/ghc-8.10.2-revert-linker-rtsSymbols_more_linker_symbols.patch
deleted file mode 100644
index eb30d9d9dd4c..000000000000
--- a/dev-lang/ghc/files/ghc-8.10.2-revert-linker-rtsSymbols_more_linker_symbols.patch
+++ /dev/null
@@ -1,296 +0,0 @@
-From fac083e7ac8a37b61a4082bbbca2848e52fd1bb2 Mon Sep 17 00:00:00 2001
-From: Ben Gamari <ben@smart-cactus.org>
-Date: Sun, 9 Aug 2020 09:15:16 -0400
-Subject: [PATCH] Revert "[linker/rtsSymbols] More linker symbols"
-
-This reverts commit aa2e5863699306920513b216f337de09e29b5bb8.
----
- rts/RtsSymbols.c | 224 ++++-------------------------------------------
- 1 file changed, 17 insertions(+), 207 deletions(-)
-
-diff --git a/rts/RtsSymbols.c b/rts/RtsSymbols.c
-index d10a6900db..b2f90a892d 100644
---- a/rts/RtsSymbols.c
-+++ b/rts/RtsSymbols.c
-@@ -58,6 +58,7 @@
- SymI_HasProto(signal_handlers) \
- SymI_HasProto(stg_sig_install) \
- SymI_HasProto(rtsTimerSignal) \
-+ SymI_HasProto(atexit) \
- SymI_NeedsDataProto(nocldstop)
- #endif
-
-@@ -976,213 +977,29 @@
- RTS_USER_SIGNALS_SYMBOLS \
- RTS_INTCHAR_SYMBOLS
-
-+
- // 64-bit support functions in libgcc.a
--// See https://gcc.gnu.org/onlinedocs/gccint/Libgcc.html#Libgcc
--#define RTS_LIBGCC_SYMBOLS_32 \
-- SymI_NeedsProto(__fixunsdfdi) \
-- /* 4 The GCC low-level runtime library */\
-- /* 4.1.1 Arithmetic functions */\
-- /* SymI_NeedsProto(__ashlsi3) */\
-- SymI_NeedsProto(__ashldi3) \
-- /* SymI_NeedsProto(__ashlti3) */\
-- /* These functions return the result of shifting a left by b bits. */\
-- /* SymI_NeedsProto(__ashrsi3) */\
-- SymI_NeedsProto(__ashrdi3) \
-- /* SymI_NeedsProto(__ashrti3) */\
-- /* These functions return the result of arithmetically shifting a right by b bits. */\
-- /* SymI_NeedsProto(__divsi3) */\
-- SymI_NeedsProto(__divdi3) \
-- /* SymI_NeedsProto(__divti3) */\
-- /* These functions return the quotient of the signed division of a and b. */\
-- /* SymI_NeedsProto(__lshrsi3) */ \
-- SymI_NeedsProto(__lshrdi3) \
-- /* SymI_NeedsProto(__lshrti3) */ \
-- /* These functions return the result of logically shifting a right by b bits. */\
-- /* SymI_NeedsProto(__modsi3) */ \
-- SymI_NeedsProto(__moddi3) \
-- /* SymI_NeedsProto(__modti3) */ \
-- /* These functions return the remainder of the signed division of a and b. */\
-- /* SymI_NeedsProto(__mulsi3) */ \
-- SymI_NeedsProto(__muldi3) \
-- /* SymI_NeedsProto(__multi3) */ \
-- /* These functions return the product of a and b. */\
-- SymI_NeedsProto(__negdi2) \
-- /* SymI_NeedsProto(__negti2) */ \
-- /* These functions return the negation of a. */\
-- /* SymI_NeedsProto(__udivsi3) */ \
-- SymI_NeedsProto(__udivdi3) \
-- /* SymI_NeedsProto(__udivti3) */ \
-- /* These functions return the quotient of the unsigned division of a and b. */\
-- SymI_NeedsProto(__udivmoddi4) \
-- /* SymI_NeedsProto(__udivmodti4) */ \
-- /* These functions calculate both the quotient and remainder of the unsigned division of a and b. The return value is the quotient, and the remainder is placed in variable pointed to by c. */\
-- /* SymI_NeedsProto(__umodsi3) */ \
-- SymI_NeedsProto(__umoddi3) \
-- /* SymI_NeedsProto(__umodti3) */ \
-- /* These functions return the remainder of the unsigned division of a and b. */\
-- /* 4.1.2 Comparison functions */\
-- /* The following functions implement integral comparisons. These functions implement a low-level compare, upon which the higher level comparison operators (such as less than and greater than or equal to) can be constructed. The returned values lie in the range zero to two, to allow the high-level operators to be implemented by testing the returned result using either signed or unsigned comparison. */\
-- SymI_NeedsProto(__cmpdi2) \
-- /* SymI_NeedsProto(__cmpti2) */ \
-- /* These functions perform a signed comparison of a and b. If a is less than b, they return 0; if a is greater than b, they return 2; and if a and b are equal they return 1. */\
-- SymI_NeedsProto(__ucmpdi2) \
-- /* SymI_NeedsProto(__ucmpti2) */ \
-- /* These functions perform an unsigned comparison of a and b. If a is less than b, they return 0; if a is greater than b, they return 2; and if a and b are equal they return 1. */\
-- /* 4.1.3 Trapping arithmetic functions */\
-- /* The following functions implement trapping arithmetic. These functions call the libc function abort upon signed arithmetic overflow. */\
-- SymI_NeedsProto(__absvsi2) \
-- SymI_NeedsProto(__absvdi2) \
-- /* These functions return the absolute value of a. */\
-- /* SymI_NeedsProto(__addvsi3) */ \
-- SymI_NeedsProto(__addvdi3) \
-- /* These functions return the sum of a and b; that is a + b. */\
-- /* SymI_NeedsProto(__mulvsi3) */ \
-- SymI_NeedsProto(__mulvdi3) \
-- /* The functions return the product of a and b; that is a * b. */\
-- SymI_NeedsProto(__negvsi2) \
-- SymI_NeedsProto(__negvdi2) \
-- /* These functions return the negation of a; that is -a. */\
-- /* SymI_NeedsProto(__subvsi3) */ \
-- SymI_NeedsProto(__subvdi3) \
-- /* These functions return the difference between b and a; that is a - b. */\
-- /* 4.1.4 Bit operations */\
-- SymI_NeedsProto(__clzsi2) \
-- SymI_NeedsProto(__clzdi2) \
-- /* SymI_NeedsProto(__clzti2) */ \
-- /* These functions return the number of leading 0-bits in a, starting at the most significant bit position. If a is zero, the result is undefined. */\
-- SymI_NeedsProto(__ctzsi2) \
-- SymI_NeedsProto(__ctzdi2) \
-- /* SymI_NeedsProto(__ctzti2) */ \
-- /* These functions return the number of trailing 0-bits in a, starting at the least significant bit position. If a is zero, the result is undefined. */\
-- SymI_NeedsProto(__ffsdi2) \
-- /* SymI_NeedsProto(__ffsti2) */ \
-- /* These functions return the index of the least significant 1-bit in a, or the value zero if a is zero. The least significant bit is index one. */\
-- SymI_NeedsProto(__paritysi2) \
-- SymI_NeedsProto(__paritydi2) \
-- /* SymI_NeedsProto(__parityti2) */\
-- /* These functions return the value zero if the number of bits set in a is even, and the value one otherwise. */\
-- SymI_NeedsProto(__popcountsi2) \
-- SymI_NeedsProto(__popcountdi2) \
-- /* SymI_NeedsProto(__popcountti2) */ \
-- /* These functions return the number of bits set in a. */\
-- SymI_NeedsProto(__bswapsi2) \
-- SymI_NeedsProto(__bswapdi2)
--#define RTS_LIBGCC_SYMBOLS_aarch32 \
-- /* armv6l */\
-- /* TODO: should check for __ARM_EABI__ */\
-- SymI_NeedsProto(__aeabi_d2f) \
-- SymI_NeedsProto(__aeabi_d2iz) \
-- SymI_NeedsProto(__aeabi_d2lz) \
-- SymI_NeedsProto(__aeabi_d2uiz) \
-- SymI_NeedsProto(__aeabi_d2ulz) \
-- SymI_NeedsProto(__aeabi_dadd) \
-- SymI_NeedsProto(__aeabi_dcmpeq) \
-- SymI_NeedsProto(__aeabi_dcmpge) \
-- SymI_NeedsProto(__aeabi_dcmpgt) \
-- SymI_NeedsProto(__aeabi_dcmple) \
-- SymI_NeedsProto(__aeabi_dcmplt) \
-- SymI_NeedsProto(__aeabi_dcmpun) \
-- SymI_NeedsProto(__aeabi_ddiv) \
-- SymI_NeedsProto(__aeabi_dmul) \
-- SymI_NeedsProto(__aeabi_dneg) \
-- SymI_NeedsProto(__aeabi_dsub) \
-- SymI_NeedsProto(__aeabi_f2d) \
-- SymI_NeedsProto(__aeabi_f2iz) \
-- SymI_NeedsProto(__aeabi_f2lz) \
-- SymI_NeedsProto(__aeabi_f2uiz) \
-- SymI_NeedsProto(__aeabi_f2ulz) \
-- SymI_NeedsProto(__aeabi_fadd) \
-- SymI_NeedsProto(__aeabi_fcmpeq) \
-- SymI_NeedsProto(__aeabi_fcmpge) \
-- SymI_NeedsProto(__aeabi_fcmpgt) \
-- SymI_NeedsProto(__aeabi_fcmple) \
-- SymI_NeedsProto(__aeabi_fcmplt) \
-- SymI_NeedsProto(__aeabi_fcmpun) \
-- SymI_NeedsProto(__aeabi_fdiv) \
-- SymI_NeedsProto(__aeabi_fmul) \
-- SymI_NeedsProto(__aeabi_fneg) \
-- SymI_NeedsProto(__aeabi_fsub) \
-- SymI_NeedsProto(__aeabi_i2d) \
-- SymI_NeedsProto(__aeabi_i2f) \
-- SymI_NeedsProto(__aeabi_idiv) \
-- SymI_NeedsProto(__aeabi_idivmod) \
-- SymI_NeedsProto(__aeabi_l2d) \
-- SymI_NeedsProto(__aeabi_l2f) \
-- SymI_NeedsProto(__aeabi_lasr) \
-- SymI_NeedsProto(__aeabi_lcmp) \
-- SymI_NeedsProto(__aeabi_ldivmod) \
-- SymI_NeedsProto(__aeabi_llsl) \
-- SymI_NeedsProto(__aeabi_llsr) \
-- SymI_NeedsProto(__aeabi_lmul) \
-- SymI_NeedsProto(__aeabi_ui2d) \
-- SymI_NeedsProto(__aeabi_ui2f) \
-- SymI_NeedsProto(__aeabi_uidiv) \
-- SymI_NeedsProto(__aeabi_uidivmod) \
-- SymI_NeedsProto(__aeabi_ul2d) \
-- SymI_NeedsProto(__aeabi_ul2f) \
-- SymI_NeedsProto(__aeabi_ulcmp) \
-- SymI_NeedsProto(__aeabi_uldivmod)
--#define RTS_LIBGCC_SYMBOLS_64 \
-+#if defined(__GNUC__) && SIZEOF_VOID_P <= 4 && !defined(_ABIN32)
-+#define RTS_LIBGCC_SYMBOLS \
-+ SymI_NeedsProto(__divdi3) \
-+ SymI_NeedsProto(__udivdi3) \
-+ SymI_NeedsProto(__moddi3) \
-+ SymI_NeedsProto(__umoddi3) \
-+ SymI_NeedsProto(__muldi3) \
-+ SymI_NeedsProto(__ashldi3) \
-+ SymI_NeedsProto(__ashrdi3) \
-+ SymI_NeedsProto(__lshrdi3) \
-+ SymI_NeedsProto(__fixunsdfdi)
-+#elif defined(__GNUC__) && SIZEOF_VOID_P == 8
-+#define RTS_LIBGCC_SYMBOLS \
- SymI_NeedsProto(__udivti3) \
- SymI_NeedsProto(__umodti3)
--
--/* for aarch64 */
--#define RTS_LIBGCC_SYMBOLS_aarch64 \
-- SymI_NeedsProto(__netf2) \
-- SymI_NeedsProto(__addtf3) \
-- SymI_NeedsProto(__subtf3) \
-- SymI_NeedsProto(__multf3) \
-- SymI_NeedsProto(__extenddftf2) \
-- SymI_NeedsProto(__fixtfsi) \
-- SymI_NeedsProto(__fixunstfsi) \
-- SymI_NeedsProto(__floatsitf) \
-- SymI_NeedsProto(__floatunsitf)
--
--#if defined(__GNUC__) && SIZEOF_VOID_P <= 4 && defined(arm_HOST_OS)
--#define RTS_LIBGCC_SYMBOLS RTS_LIBGCC_SYMBOLS_32 RTS_LIBGCC_SYMBOLS_aarch32
--#elif defined(__GNUC__) && SIZEOF_VOID_P <= 4 && !defined(_ABIN32)
--#define RTS_LIBGCC_SYMBOLS RTS_LIBGCC_SYMBOLS_32
--#elif defined(__GNUC__) && SIZEOF_VOID_P == 8 && defined(aarch64_HOST_OS)
--#define RTS_LIBGCC_SYMBOLS RTS_LIBGCC_SYMBOLS_64 RTS_LIBGCC_SYMBOLS_aarch64
--#elif defined(__GNUC__) && SIZEOF_VOID_P == 8
--#define RTS_LIBGCC_SYMBOLS RTS_LIBGCC_SYMBOLS_64
- #else
- #define RTS_LIBGCC_SYMBOLS
- #endif
-
--#if !defined(mingw32_HOST_OS) && !defined(DYNAMIC) && (defined(_FORTIFY_SOURCE) || defined(__SSP__))
--#define RTS_SSP_SYMBOLS \
-- SymI_NeedsProto(__stack_chk_guard) \
-- SymI_NeedsProto(__stack_chk_fail)
--#else
--#define RTS_SSP_SYMBOLS
--#endif
--#if !defined(DYNAMIC) && defined(linux_HOST_OS)
--// we need these for static musl builds. However when
--// linking shared objects (DLLs) this will fail, hence
--// we do not include them when building with -DDYNAMIC
--#define RTS_LINKER_SYMBOLS \
-- SymI_NeedsProto(__fini_array_start) \
-- SymI_NeedsProto(__fini_array_end)
--#else
--#define RTS_LINKER_SYMBOLS
--#endif
--
--#if defined(darwin_HOST_OS) && defined(powerpc_HOST_ARCH)
-- // Symbols that don't have a leading underscore
-- // on Mac OS X. They have to receive special treatment,
-- // see machoInitSymbolsWithoutUnderscore()
--#define RTS_MACHO_NOUNDERLINE_SYMBOLS \
-- SymI_NeedsProto(saveFP) \
-- SymI_NeedsProto(restFP)
--#endif
--
- /* entirely bogus claims about types of these symbols */
--/* to prevent a bit of define expansion, SymI_NeedsProto is a variadic
-- * macro. And we'll concat vvv with the __VA_ARGS__. This prevents
-- * vvv from getting macro expanded.
-- */
--#define SymI_NeedsProto(vvv,...) extern void vvv ## __VA_ARGS__ (void);
-+#define SymI_NeedsProto(vvv) extern void vvv(void);
- #define SymI_NeedsDataProto(vvv) extern StgWord vvv[];
- #if defined(COMPILING_WINDOWS_DLL)
- #define SymE_HasProto(vvv) SymE_HasProto(vvv);
-@@ -1209,8 +1026,6 @@ RTS_DARWIN_ONLY_SYMBOLS
- RTS_OPENBSD_ONLY_SYMBOLS
- RTS_LIBGCC_SYMBOLS
- RTS_LIBFFI_SYMBOLS
--RTS_SSP_SYMBOLS
--RTS_LINKER_SYMBOLS
- #undef SymI_NeedsProto
- #undef SymI_NeedsDataProto
- #undef SymI_HasProto
-@@ -1230,7 +1045,7 @@ RTS_LINKER_SYMBOLS
- #define SymE_HasDataProto(vvv) \
- SymE_HasProto(vvv)
-
--#define SymI_NeedsProto(vvv,...) SymI_HasProto(vvv ## __VA_ARGS__)
-+#define SymI_NeedsProto(vvv) SymI_HasProto(vvv)
- #define SymI_NeedsDataProto(vvv) SymI_HasDataProto(vvv)
- #define SymE_NeedsProto(vvv) SymE_HasProto(vvv)
- #define SymE_NeedsDataProto(vvv) SymE_HasDataProto(vvv)
-@@ -1251,8 +1066,6 @@ RTS_LINKER_SYMBOLS
- #define SymI_HasProto_deprecated(vvv) \
- { #vvv, (void*)0xBAADF00D, true },
-
--void *RTS_DYNAMIC = NULL;
--
- RtsSymbolVal rtsSyms[] = {
- RTS_SYMBOLS
- RTS_RET_SYMBOLS
-@@ -1264,14 +1077,11 @@ RtsSymbolVal rtsSyms[] = {
- RTS_LIBGCC_SYMBOLS
- RTS_LIBFFI_SYMBOLS
- SymI_HasDataProto(nonmoving_write_barrier_enabled)
-- RTS_SSP_SYMBOLS
-- RTS_LINKER_SYMBOLS
- #if defined(darwin_HOST_OS) && defined(i386_HOST_ARCH)
- // dyld stub code contains references to this,
- // but it should never be called because we treat
- // lazy pointers as nonlazy.
- { "dyld_stub_binding_helper", (void*)0xDEADBEEF, false },
- #endif
-- { "_DYNAMIC", (void*)(&RTS_DYNAMIC), false },
- { 0, 0, false } /* sentinel */
- };
---
-2.25.4
-
diff --git a/dev-lang/ghc/files/ghc-8.2.1_rc1-cgen-constify.patch b/dev-lang/ghc/files/ghc-8.2.1_rc1-cgen-constify.patch
deleted file mode 100644
index 2e1ef932b454..000000000000
--- a/dev-lang/ghc/files/ghc-8.2.1_rc1-cgen-constify.patch
+++ /dev/null
@@ -1,378 +0,0 @@
-From 7e00046772e053c63ac93630a60b0f396e32a2d7 Mon Sep 17 00:00:00 2001
-From: Sergei Trofimovich <slyfox@gentoo.org>
-Date: Sun, 16 Apr 2017 10:43:38 +0100
-Subject: [PATCH] compiler/cmm/PprC.hs: constify labels in .rodata
-
-Summary:
-Consider one-line module
- module B (v) where v = "hello"
-in -fvia-C mode it generates code like
- static char gibberish_str[] = "hello";
-
-It resides in data section (precious resource on ia64!).
-The patch switches genrator to emit:
- static const char gibberish_str[] = "hello";
-
-Other types if symbols that gained 'const' qualifier are:
-
-- info tables (from haskell and CMM)
-- static reference tables (from haskell and CMM)
-
-Cleanups along the way:
-
-- fixed info tables defined in .cmm to reside in .rodata
-- split out closure declaration into 'IC_' / 'EC_'
-- added label declaration (based on label type) right before
- each label definition (based on section type) so that C
- compiler could check if declaration and definition matches
- at definition site.
-
-Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
-
-Test Plan: ran testsuite on unregisterised x86_64 compiler
-
-Reviewers: simonmar, ezyang, austin, bgamari, erikd
-
-Subscribers: rwbarton, thomie
-
-GHC Trac Issues: #8996
-
-Differential Revision: https://phabricator.haskell.org/D3481
----
- compiler/cmm/CLabel.hs | 24 ++++++++++++++
- compiler/cmm/Cmm.hs | 13 ++++++++
- compiler/cmm/CmmInfo.hs | 2 +-
- compiler/cmm/PprC.hs | 62 +++++++++++++++++++++++-------------
- compiler/llvmGen/LlvmCodeGen/Data.hs | 12 -------
- includes/Stg.h | 22 +++++++++----
- includes/rts/storage/InfoTables.h | 2 +-
- includes/stg/MiscClosures.h | 14 ++++----
- 8 files changed, 102 insertions(+), 49 deletions(-)
-
-diff --git a/compiler/cmm/CLabel.hs b/compiler/cmm/CLabel.hs
-index 3ba4f7647a..62c8037e9c 100644
---- a/compiler/cmm/CLabel.hs
-+++ b/compiler/cmm/CLabel.hs
-@@ -89,6 +89,8 @@ module CLabel (
- foreignLabelStdcallInfo,
- isBytesLabel,
- isForeignLabel,
-+ isSomeRODataLabel,
-+ isStaticClosureLabel,
- mkCCLabel, mkCCSLabel,
-
- DynamicLinkerLabelInfo(..),
-@@ -575,6 +577,28 @@ isForeignLabel :: CLabel -> Bool
- isForeignLabel (ForeignLabel _ _ _ _) = True
- isForeignLabel _lbl = False
-
-+-- | Whether label is a static closure label (can come from haskell or cmm)
-+isStaticClosureLabel :: CLabel -> Bool
-+-- Closure defined in haskell (.hs)
-+isStaticClosureLabel (IdLabel _ _ Closure) = True
-+-- Closure defined in cmm
-+isStaticClosureLabel (CmmLabel _ _ CmmClosure) = True
-+isStaticClosureLabel _lbl = False
-+
-+-- | Whether label is a .rodata label
-+isSomeRODataLabel :: CLabel -> Bool
-+-- info table defined in haskell (.hs)
-+isSomeRODataLabel (IdLabel _ _ ClosureTable) = True
-+isSomeRODataLabel (IdLabel _ _ ConInfoTable) = True
-+isSomeRODataLabel (IdLabel _ _ InfoTable) = True
-+isSomeRODataLabel (IdLabel _ _ LocalInfoTable) = True
-+-- static reference tables defined in haskell (.hs)
-+isSomeRODataLabel (IdLabel _ _ SRT) = True
-+isSomeRODataLabel (SRTLabel _) = True
-+-- info table defined in cmm (.cmm)
-+isSomeRODataLabel (CmmLabel _ _ CmmInfo) = True
-+isSomeRODataLabel _lbl = False
-+
- -- | Get the label size field from a ForeignLabel
- foreignLabelStdcallInfo :: CLabel -> Maybe Int
- foreignLabelStdcallInfo (ForeignLabel _ info _ _) = info
-diff --git a/compiler/cmm/Cmm.hs b/compiler/cmm/Cmm.hs
-index d2ee531686..bab20f3fdd 100644
---- a/compiler/cmm/Cmm.hs
-+++ b/compiler/cmm/Cmm.hs
-@@ -9,6 +9,7 @@ module Cmm (
- CmmBlock,
- RawCmmDecl, RawCmmGroup,
- Section(..), SectionType(..), CmmStatics(..), CmmStatic(..),
-+ isSecConstant,
-
- -- ** Blocks containing lists
- GenBasicBlock(..), blockId,
-@@ -167,6 +168,18 @@ data SectionType
- | OtherSection String
- deriving (Show)
-
-+-- | Should a data in this section be considered constant
-+isSecConstant :: Section -> Bool
-+isSecConstant (Section t _) = case t of
-+ Text -> True
-+ ReadOnlyData -> True
-+ RelocatableReadOnlyData -> True
-+ ReadOnlyData16 -> True
-+ CString -> True
-+ Data -> False
-+ UninitialisedData -> False
-+ (OtherSection _) -> False
-+
- data Section = Section SectionType CLabel
-
- data CmmStatic
-diff --git a/compiler/cmm/CmmInfo.hs b/compiler/cmm/CmmInfo.hs
-index b5e800a977..35e3a1888d 100644
---- a/compiler/cmm/CmmInfo.hs
-+++ b/compiler/cmm/CmmInfo.hs
-@@ -133,7 +133,7 @@ mkInfoTable dflags proc@(CmmProc infos entry_lbl live blocks)
- --
- return (top_decls ++
- [CmmProc mapEmpty entry_lbl live blocks,
-- mkDataLits (Section Data info_lbl) info_lbl
-+ mkRODataLits info_lbl
- (CmmLabel entry_lbl : rel_std_info ++ rel_extra_bits)])
-
- --
-diff --git a/compiler/cmm/PprC.hs b/compiler/cmm/PprC.hs
-index 56de94079f..21ed6f6516 100644
---- a/compiler/cmm/PprC.hs
-+++ b/compiler/cmm/PprC.hs
-@@ -83,12 +83,13 @@ pprC tops = vcat $ intersperse blankLine $ map pprTop tops
- -- top level procs
- --
- pprTop :: RawCmmDecl -> SDoc
--pprTop (CmmProc infos clbl _ graph) =
-+pprTop (CmmProc infos clbl _in_live_regs graph) =
-
- (case mapLookup (g_entry graph) infos of
- Nothing -> empty
-- Just (Statics info_clbl info_dat) -> pprDataExterns info_dat $$
-- pprWordArray info_clbl info_dat) $$
-+ Just (Statics info_clbl info_dat) ->
-+ pprDataExterns info_dat $$
-+ pprWordArray info_is_in_rodata info_clbl info_dat) $$
- (vcat [
- blankLine,
- extern_decls,
-@@ -99,6 +100,8 @@ pprTop (CmmProc infos clbl _ graph) =
- rbrace ]
- )
- where
-+ -- info tables are always in .rodata
-+ info_is_in_rodata = True
- blocks = toBlockListEntryFirst graph
- (temp_decls, extern_decls) = pprTempAndExternDecls blocks
-
-@@ -107,21 +110,23 @@ pprTop (CmmProc infos clbl _ graph) =
-
- -- We only handle (a) arrays of word-sized things and (b) strings.
-
--pprTop (CmmData _section (Statics lbl [CmmString str])) =
-+pprTop (CmmData section (Statics lbl [CmmString str])) =
-+ pprExternDecl lbl $$
- hcat [
-- pprLocalness lbl, text "char ", ppr lbl,
-+ pprLocalness lbl, pprConstness (isSecConstant section), text "char ", ppr lbl,
- text "[] = ", pprStringInCStyle str, semi
- ]
-
--pprTop (CmmData _section (Statics lbl [CmmUninitialised size])) =
-+pprTop (CmmData section (Statics lbl [CmmUninitialised size])) =
-+ pprExternDecl lbl $$
- hcat [
-- pprLocalness lbl, text "char ", ppr lbl,
-+ pprLocalness lbl, pprConstness (isSecConstant section), text "char ", ppr lbl,
- brackets (int size), semi
- ]
-
--pprTop (CmmData _section (Statics lbl lits)) =
-+pprTop (CmmData section (Statics lbl lits)) =
- pprDataExterns lits $$
-- pprWordArray lbl lits
-+ pprWordArray (isSecConstant section) lbl lits
-
- -- --------------------------------------------------------------------------
- -- BasicBlocks are self-contained entities: they always end in a jump.
-@@ -141,10 +146,12 @@ pprBBlock block =
- -- Info tables. Just arrays of words.
- -- See codeGen/ClosureInfo, and nativeGen/PprMach
-
--pprWordArray :: CLabel -> [CmmStatic] -> SDoc
--pprWordArray lbl ds
-+pprWordArray :: Bool -> CLabel -> [CmmStatic] -> SDoc
-+pprWordArray is_ro lbl ds
- = sdocWithDynFlags $ \dflags ->
-- hcat [ pprLocalness lbl, text "StgWord"
-+ -- TODO: align closures only
-+ pprExternDecl lbl $$
-+ hcat [ pprLocalness lbl, pprConstness is_ro, text "StgWord"
- , space, ppr lbl, text "[]"
- -- See Note [StgWord alignment]
- , pprAlignment (wordWidth dflags)
-@@ -180,6 +187,10 @@ pprLocalness :: CLabel -> SDoc
- pprLocalness lbl | not $ externallyVisibleCLabel lbl = text "static "
- | otherwise = empty
-
-+pprConstness :: Bool -> SDoc
-+pprConstness is_ro | is_ro = text "const "
-+ | otherwise = empty
-+
- -- --------------------------------------------------------------------------
- -- Statements.
- --
-@@ -984,31 +995,38 @@ is_cishCC JavaScriptCallConv = False
- pprTempAndExternDecls :: [CmmBlock] -> (SDoc{-temps-}, SDoc{-externs-})
- pprTempAndExternDecls stmts
- = (pprUFM (getUniqSet temps) (vcat . map pprTempDecl),
-- vcat (map (pprExternDecl False{-ToDo-}) (Map.keys lbls)))
-+ vcat (map pprExternDecl (Map.keys lbls)))
- where (temps, lbls) = runTE (mapM_ te_BB stmts)
-
- pprDataExterns :: [CmmStatic] -> SDoc
- pprDataExterns statics
-- = vcat (map (pprExternDecl False{-ToDo-}) (Map.keys lbls))
-+ = vcat (map pprExternDecl (Map.keys lbls))
- where (_, lbls) = runTE (mapM_ te_Static statics)
-
- pprTempDecl :: LocalReg -> SDoc
- pprTempDecl l@(LocalReg _ rep)
- = hcat [ machRepCType rep, space, pprLocalReg l, semi ]
-
--pprExternDecl :: Bool -> CLabel -> SDoc
--pprExternDecl _in_srt lbl
-+pprExternDecl :: CLabel -> SDoc
-+pprExternDecl lbl
- -- do not print anything for "known external" things
- | not (needsCDecl lbl) = empty
- | Just sz <- foreignLabelStdcallInfo lbl = stdcall_decl sz
- | otherwise =
-- hcat [ visibility, label_type lbl,
-- lparen, ppr lbl, text ");" ]
-+ hcat [ visibility, label_type lbl , lparen, ppr lbl, text ");"
-+ -- occasionally useful to see label type
-+ -- , text "/* ", pprDebugCLabel lbl, text " */"
-+ ]
- where
-- label_type lbl | isBytesLabel lbl = text "B_"
-- | isForeignLabel lbl && isCFunctionLabel lbl = text "FF_"
-- | isCFunctionLabel lbl = text "F_"
-- | otherwise = text "I_"
-+ label_type lbl | isBytesLabel lbl = text "B_"
-+ | isForeignLabel lbl && isCFunctionLabel lbl
-+ = text "FF_"
-+ | isCFunctionLabel lbl = text "F_"
-+ | isStaticClosureLabel lbl = text "C_"
-+ -- generic .rodata labels
-+ | isSomeRODataLabel lbl = text "RO_"
-+ -- generic .data labels (common case)
-+ | otherwise = text "RW_"
-
- visibility
- | externallyVisibleCLabel lbl = char 'E'
-diff --git a/compiler/llvmGen/LlvmCodeGen/Data.hs b/compiler/llvmGen/LlvmCodeGen/Data.hs
-index 9bb5a75bda..adb86d312d 100644
---- a/compiler/llvmGen/LlvmCodeGen/Data.hs
-+++ b/compiler/llvmGen/LlvmCodeGen/Data.hs
-@@ -56,18 +56,6 @@ genLlvmData (sec, Statics lbl xs) = do
-
- return ([globDef], [tyAlias])
-
---- | Should a data in this section be considered constant
--isSecConstant :: Section -> Bool
--isSecConstant (Section t _) = case t of
-- Text -> True
-- ReadOnlyData -> True
-- RelocatableReadOnlyData -> True
-- ReadOnlyData16 -> True
-- CString -> True
-- Data -> False
-- UninitialisedData -> False
-- (OtherSection _) -> False
--
- -- | Format the section type part of a Cmm Section
- llvmSectionType :: Platform -> SectionType -> FastString
- llvmSectionType p t = case t of
-diff --git a/includes/Stg.h b/includes/Stg.h
-index 619984d8e5..b1b3190307 100644
---- a/includes/Stg.h
-+++ b/includes/Stg.h
-@@ -223,13 +223,23 @@ typedef StgInt I_;
- typedef StgWord StgWordArray[];
- typedef StgFunPtr F_;
-
--#define EB_(X) extern char X[]
--#define IB_(X) static char X[]
--#define EI_(X) extern StgWordArray (X) GNU_ATTRIBUTE(aligned (8))
--#define II_(X) static StgWordArray (X) GNU_ATTRIBUTE(aligned (8))
-+/* byte arrays (and strings): */
-+#define EB_(X) extern const char X[]
-+#define IB_(X) static const char X[]
-+/* static (non-heap) closures (requires alignment for pointer tagging): */
-+#define EC_(X) extern StgWordArray (X) GNU_ATTRIBUTE(aligned (8))
-+#define IC_(X) static StgWordArray (X) GNU_ATTRIBUTE(aligned (8))
-+/* writable data (does not require alignment): */
-+#define ERW_(X) extern StgWordArray (X)
-+#define IRW_(X) static StgWordArray (X)
-+/* read-only data (does not require alignment): */
-+#define ERO_(X) extern const StgWordArray (X)
-+#define IRO_(X) static const StgWordArray (X)
-+/* stg-native functions: */
- #define IF_(f) static StgFunPtr GNUC3_ATTRIBUTE(used) f(void)
--#define FN_(f) StgFunPtr f(void)
--#define EF_(f) StgFunPtr f(void) /* External Cmm functions */
-+#define FN_(f) StgFunPtr f(void)
-+#define EF_(f) StgFunPtr f(void) /* External Cmm functions */
-+/* foreign functions: */
- #define EFF_(f) void f() /* See Note [External function prototypes] */
-
- /* Note [External function prototypes] See Trac #8965, #11395
-diff --git a/includes/rts/storage/InfoTables.h b/includes/rts/storage/InfoTables.h
-index 307aac371c..163f1d1c87 100644
---- a/includes/rts/storage/InfoTables.h
-+++ b/includes/rts/storage/InfoTables.h
-@@ -266,7 +266,7 @@ typedef struct {
- } StgFunInfoTable;
-
- // canned bitmap for each arg type, indexed by constants in FunTypes.h
--extern StgWord stg_arg_bitmaps[];
-+extern const StgWord stg_arg_bitmaps[];
-
- /* -----------------------------------------------------------------------------
- Return info tables
-diff --git a/includes/stg/MiscClosures.h b/includes/stg/MiscClosures.h
-index 9d907ab3ba..b604f1c42b 100644
---- a/includes/stg/MiscClosures.h
-+++ b/includes/stg/MiscClosures.h
-@@ -21,10 +21,10 @@
- #define STGMISCCLOSURES_H
-
- #if IN_STG_CODE
--# define RTS_RET_INFO(i) extern W_(i)[]
--# define RTS_FUN_INFO(i) extern W_(i)[]
--# define RTS_THUNK_INFO(i) extern W_(i)[]
--# define RTS_INFO(i) extern W_(i)[]
-+# define RTS_RET_INFO(i) extern const W_(i)[]
-+# define RTS_FUN_INFO(i) extern const W_(i)[]
-+# define RTS_THUNK_INFO(i) extern const W_(i)[]
-+# define RTS_INFO(i) extern const W_(i)[]
- # define RTS_CLOSURE(i) extern W_(i)[]
- # define RTS_FUN_DECL(f) extern DLL_IMPORT_RTS StgFunPtr f(void)
- #else
-@@ -489,9 +489,9 @@ extern StgWord RTS_VAR(sched_mutex);
-
- // Apply.cmm
- // canned bitmap for each arg type
--extern StgWord stg_arg_bitmaps[];
--extern StgWord stg_ap_stack_entries[];
--extern StgWord stg_stack_save_entries[];
-+extern const StgWord stg_arg_bitmaps[];
-+extern const StgWord stg_ap_stack_entries[];
-+extern const StgWord stg_stack_save_entries[];
-
- // Storage.c
- extern unsigned int RTS_VAR(g0);
---
-2.12.2
-
diff --git a/dev-lang/ghc/files/ghc-8.2.1_rc1-ghci-cross.patch b/dev-lang/ghc/files/ghc-8.2.1_rc1-ghci-cross.patch
deleted file mode 100644
index dbba18e85c7f..000000000000
--- a/dev-lang/ghc/files/ghc-8.2.1_rc1-ghci-cross.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-commit 732b3dbbff194eb8650c75afd79d892801afa0dc
-Author: Sergei Trofimovich <slyfox@gentoo.org>
-Date: Thu Apr 6 22:48:13 2017 +0100
-
- add $(CrossCompilePrefix) to 'runghc' and 'ghci'
-
- When Stage1Only=YES install mode is used one of rare tools
- that lack $(CrossCompilePrefix) prefix are 'runghc' and 'ghci'.
-
- This causes file collisions when multiple GHC crosscompilers
- are installed in system.
-
- Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
-
-diff --git a/driver/ghci/ghc.mk b/driver/ghci/ghc.mk
-index 41d1f15c17..0f31884080 100644
---- a/driver/ghci/ghc.mk
-+++ b/driver/ghci/ghc.mk
-@@ -16,16 +16,16 @@ ifneq "$(Windows_Host)" "YES"
- install: install_driver_ghci
-
- .PHONY: install_driver_ghci
--install_driver_ghci: WRAPPER=$(DESTDIR)$(bindir)/ghci-$(ProjectVersion)
-+install_driver_ghci: WRAPPER=$(DESTDIR)$(bindir)/$(CrossCompilePrefix)ghci-$(ProjectVersion)
- install_driver_ghci:
- $(INSTALL_DIR) "$(DESTDIR)$(bindir)"
- $(call removeFiles, "$(WRAPPER)")
- $(CREATE_SCRIPT) "$(WRAPPER)"
- echo '#!$(SHELL)' >> "$(WRAPPER)"
-- echo 'exec "$(bindir)/ghc-$(ProjectVersion)" --interactive "$$@"' >> "$(WRAPPER)"
-+ echo 'exec "$(bindir)/$(CrossCompilePrefix)ghc-$(ProjectVersion)" --interactive "$$@"' >> "$(WRAPPER)"
- $(EXECUTABLE_FILE) "$(WRAPPER)"
-- $(call removeFiles,"$(DESTDIR)$(bindir)/ghci")
-- $(LN_S) ghci-$(ProjectVersion) "$(DESTDIR)$(bindir)/ghci"
-+ $(call removeFiles,"$(DESTDIR)$(bindir)/$(CrossCompilePrefix)ghci")
-+ $(LN_S) $(CrossCompilePrefix)ghci-$(ProjectVersion) "$(DESTDIR)$(bindir)/$(CrossCompilePrefix)ghci"
-
- else # Windows_Host...
-
-diff --git a/utils/runghc/ghc.mk b/utils/runghc/ghc.mk
-index 9169ca21bd..50b11a612e 100644
---- a/utils/runghc/ghc.mk
-+++ b/utils/runghc/ghc.mk
-@@ -34,11 +34,11 @@ install: install_runhaskell
- .PHONY: install_runhaskell
- ifeq "$(Windows_Host)" "YES"
- install_runhaskell: install_bins
-- "$(CP)" $(DESTDIR)$(bindir)/runghc$(exeext1) $(DESTDIR)$(bindir)/runhaskell$(exeext1)
-+ "$(CP)" $(DESTDIR)$(bindir)/$(CrossCompilePrefix)runghc$(exeext1) $(DESTDIR)$(bindir)/$(CrossCompilePrefix)runhaskell$(exeext1)
- else
- install_runhaskell:
-- $(call removeFiles,"$(DESTDIR)$(bindir)/runhaskell")
-- $(LN_S) runghc "$(DESTDIR)$(bindir)/runhaskell"
-- $(call removeFiles,"$(DESTDIR)$(bindir)/runghc")
-- $(LN_S) runghc-$(ProjectVersion) "$(DESTDIR)$(bindir)/runghc"
-+ $(call removeFiles,"$(DESTDIR)$(bindir)/$(CrossCompilePrefix)runhaskell")
-+ $(LN_S) $(CrossCompilePrefix)runghc "$(DESTDIR)$(bindir)/$(CrossCompilePrefix)runhaskell"
-+ $(call removeFiles,"$(DESTDIR)$(bindir)/$(CrossCompilePrefix)runghc")
-+ $(LN_S) $(CrossCompilePrefix)runghc-$(ProjectVersion) "$(DESTDIR)$(bindir)/$(CrossCompilePrefix)runghc"
- endif
diff --git a/dev-lang/ghc/files/ghc-8.2.1_rc1-hp2ps-cross.patch b/dev-lang/ghc/files/ghc-8.2.1_rc1-hp2ps-cross.patch
deleted file mode 100644
index 26382b3cf44c..000000000000
--- a/dev-lang/ghc/files/ghc-8.2.1_rc1-hp2ps-cross.patch
+++ /dev/null
@@ -1,104 +0,0 @@
-commit ff84d052850b637b03bbb98cf05202e44886257d
-Author: Sergei Trofimovich <slyfox@gentoo.org>
-Date: Sat Apr 8 10:02:34 2017 +0100
-
- cross-build 'unlit' and 'hp2ps' for stage2 install
-
- In navive build case it does not matter much if we build
- 'unlit' and 'hp2ps' tools with ghc-stage0 or ghc-stage1:
- both GHCs are native compilers and both tools are written
- in C (have no haskell code).
-
- But in cross-case the difference is substantial:
- In Stag1Only=YES case we need to install native tools built
- by ghc-stage0/${host}-cc.
- In Stag1Only=NO case we need to install cross-built tools
- built by ghc-stage1/${target}-cc.
-
- Before this change GHC did not have a rule to build cross-built
- 'unlit' and 'hp2ps'.
-
- The change adds cross-built 'unlit' and 'hp2ps' as 'dist-install'
- targets.
-
- 'inplace/lib/bin/unlit.bin' target is unchanged and still contains
- native binary.
-
- As a result this change allows cross-building and packaging whole
- GHC for target platform!
-
- Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
-
-diff --git a/utils/hp2ps/ghc.mk b/utils/hp2ps/ghc.mk
-index f6e01ec6c1..21ce87dcfa 100644
---- a/utils/hp2ps/ghc.mk
-+++ b/utils/hp2ps/ghc.mk
-@@ -10,6 +10,7 @@
- #
- # -----------------------------------------------------------------------------
-
-+# stage0
- utils/hp2ps_dist_C_SRCS = AreaBelow.c Curves.c Error.c Main.c \
- Reorder.c TopTwenty.c AuxFile.c Deviation.c \
- HpFile.c Marks.c Scale.c TraceElement.c \
-@@ -17,11 +18,27 @@ utils/hp2ps_dist_C_SRCS = AreaBelow.c Curves.c Error.c Main.c \
- Utilities.c
- utils/hp2ps_dist_EXTRA_LIBRARIES = m
- utils/hp2ps_dist_PROGNAME = hp2ps
--utils/hp2ps_dist_INSTALL = YES
- utils/hp2ps_dist_INSTALL_INPLACE = YES
- utils/hp2ps_dist_SHELL_WRAPPER = YES
- utils/hp2ps_dist_INSTALL_SHELL_WRAPPER_NAME = hp2ps
-
- utils/hp2ps_CC_OPTS += $(addprefix -I,$(GHC_INCLUDE_DIRS))
-
-+# stage 1
-+utils/hp2ps_dist-install_C_SRCS = $(utils/hp2ps_dist_C_SRCS)
-+utils/hp2ps_dist-install_EXTRA_LIBRARIES = $(utils/hp2ps_dist_EXTRA_LIBRARIES)
-+utils/hp2ps_dist-install_PROGNAME = $(utils/hp2ps_dist_PROGNAME)
-+utils/hp2ps_dist-install_INSTALL_INPLACE = NO
-+utils/hp2ps_dist-install_SHELL_WRAPPER = YES
-+utils/hp2ps_dist-install_INSTALL_SHELL_WRAPPER_NAME = $(utils/hp2ps_dist_INSTALL_SHELL_WRAPPER_NAME)
-+
-+ifeq "$(Stage1Only)" "YES"
-+utils/hp2ps_dist_INSTALL = YES
-+utils/hp2ps_dist-install_INSTALL = NO
-+else
-+utils/hp2ps_dist_INSTALL = NO
-+utils/hp2ps_dist-install_INSTALL = YES
-+endif
-+
- $(eval $(call build-prog,utils/hp2ps,dist,0))
-+$(eval $(call build-prog,utils/hp2ps,dist-install,1))
-diff --git a/utils/unlit/ghc.mk b/utils/unlit/ghc.mk
-index e947989b5e..8911f4e856 100644
---- a/utils/unlit/ghc.mk
-+++ b/utils/unlit/ghc.mk
-@@ -10,11 +10,25 @@
- #
- # -----------------------------------------------------------------------------
-
-+# built by ghc-stage0
- utils/unlit_dist_C_SRCS = unlit.c
- utils/unlit_dist_PROGNAME = unlit
- utils/unlit_dist_TOPDIR = YES
--utils/unlit_dist_INSTALL = YES
- utils/unlit_dist_INSTALL_INPLACE = YES
-
--$(eval $(call build-prog,utils/unlit,dist,0))
-+# built by ghc-stage1
-+utils/unlit_dist-install_C_SRCS = $(utils/unlit_dist_C_SRCS)
-+utils/unlit_dist-install_PROGNAME = $(utils/unlit_dist_PROGNAME)
-+utils/unlit_dist-install_TOPDIR = $(utils/unlit_dist_TOPDIR)
-+utils/unlit_dist-install_INSTALL_INPLACE = NO
-+
-+ifeq "$(Stage1Only)" "YES"
-+utils/unlit_dist_INSTALL = YES
-+utils/unlit_dist-install_INSTALL = NO
-+else
-+utils/unlit_dist_INSTALL = NO
-+utils/unlit_dist-install_INSTALL = YES
-+endif
-
-+$(eval $(call build-prog,utils/unlit,dist,0))
-+$(eval $(call build-prog,utils/unlit,dist-install,1))
diff --git a/dev-lang/ghc/files/ghc-8.2.1_rc1-stage2-cross.patch b/dev-lang/ghc/files/ghc-8.2.1_rc1-stage2-cross.patch
deleted file mode 100644
index 1439d722fef4..000000000000
--- a/dev-lang/ghc/files/ghc-8.2.1_rc1-stage2-cross.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-commit 54895c90440cb81f18657537b91f2aa35bd54173
-Author: Sergei Trofimovich <slyfox@gentoo.org>
-Date: Fri Apr 7 10:08:58 2017 +0100
-
- fix 'make install' for cross-stage2
-
- When cross-built GHC is being installed one of
- latest steps is to register installed libraries
- with 'ghc-pkg'.
-
- GHC uses freshly installed 'ghc-pkg' and 'ghc-stage2'
- for that.
-
- Tested as:
- ./configure --target=aarch64-unknown-linux-gnu
- make install DESTDIR=$(pwd)/__s2 STRIP_CMD=:
-
- Before the change install failed on ghc-pkg execution phase:
-
- ".../ghc-cross/__s2/usr/local/lib/ghc-8.3.20170406/bin/ghc-pkg" \
- --force \
- --global-package-db \
- ".../ghc-cross/__s2/usr/local/lib/ghc-8.3.20170406/package.conf.d" \
- update rts/dist/package.conf.install
- /bin/sh: .../ghc-cross/__s2/usr/local/lib/ghc-8.3.20170406/bin/ghc-pkg: \
- No such file or directory
-
- To avoid breakage we use 'ghc' and 'ghc-pkg' built by stage0.
-
- Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
-
- Test Plan: run 'make install' on stage2 crosscompiler
-
- Reviewers: rwbarton, austin, bgamari
-
- Subscribers: thomie, snowleopard
-
- Differential Revision: https://phabricator.haskell.org/D3432
-
-diff --git a/ghc.mk b/ghc.mk
-index caa6c38fbb..8971f25981 100644
---- a/ghc.mk
-+++ b/ghc.mk
-@@ -962,6 +962,12 @@ endif
-
- INSTALLED_PACKAGE_CONF=$(DESTDIR)$(topdir)/package.conf.d
-
-+ifeq "$(CrossCompiling)" "YES"
-+# when installing ghc-stage2 we can't run target's
-+# 'ghc-pkg' and 'ghc-stage2' but those are needed for registration.
-+INSTALLED_GHC_REAL=$(TOP)/inplace/bin/ghc-stage1
-+INSTALLED_GHC_PKG_REAL=$(TOP)/$(ghc-pkg_DIST_BINARY)
-+else # CrossCompiling
- # Install packages in the right order, so that ghc-pkg doesn't complain.
- # Also, install ghc-pkg first.
- ifeq "$(Windows_Host)" "NO"
-@@ -971,6 +977,7 @@ else
- INSTALLED_GHC_REAL=$(DESTDIR)$(bindir)/ghc.exe
- INSTALLED_GHC_PKG_REAL=$(DESTDIR)$(bindir)/ghc-pkg.exe
- endif
-+endif # CrossCompiling
-
- # Set the INSTALL_DISTDIR_p for each package; compiler is special
- $(foreach p,$(filter-out compiler,$(INSTALL_PACKAGES)),\
-diff --git a/utils/ghc-pkg/ghc.mk b/utils/ghc-pkg/ghc.mk
-index 002c8122f2..4d5ef4e108 100644
---- a/utils/ghc-pkg/ghc.mk
-+++ b/utils/ghc-pkg/ghc.mk
-@@ -49,6 +49,12 @@ utils/ghc-pkg_dist_PROGNAME = ghc-pkg
- utils/ghc-pkg_dist_SHELL_WRAPPER = YES
- utils/ghc-pkg_dist_INSTALL_INPLACE = YES
-
-+# When cross-built ghc-stage2 is installed 'make install' needs to call
-+# native ghc-pkg (not the cross-built one) to register installed packages
-+# 'ghc-pkg_DIST_BINARY' variable only refer to native binary.
-+ghc-pkg_DIST_BINARY_NAME = ghc-pkg$(exeext0)
-+ghc-pkg_DIST_BINARY = utils/ghc-pkg/dist/build/tmp/$(ghc-pkg_DIST_BINARY_NAME)
-+
- # See Note [Stage1Only vs stage=1] in mk/config.mk.in.
- ifeq "$(Stage1Only)" "YES"
- # Install the copy of ghc-pkg from the dist directory when running 'make
diff --git a/dev-lang/ghc/files/ghc-8.2.1_rc1-staged-cross.patch b/dev-lang/ghc/files/ghc-8.2.1_rc1-staged-cross.patch
deleted file mode 100644
index 7e4ea7a9f610..000000000000
--- a/dev-lang/ghc/files/ghc-8.2.1_rc1-staged-cross.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-commit f2685df3b10e13f142736f28835e9064334bc143
-Author: Sergei Trofimovich <slyfox@gentoo.org>
-Date: Wed Apr 5 22:31:37 2017 +0100
-
- avoid $(CrossCompilerPrefix) for stage2 install
-
- Suppose we are crossbuilding ghc (when ghc-stage2
- is a normal compiler for $target):
-
- For this case 'make install' should install unprefixed
- stage2 'ghc' and not '$(CorssCompilePrefix)-ghc'.
-
- That way cross-built ghc is installable and
- usable on target as if it would be built natively
- on a target.
-
- Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
-
-diff --git a/mk/config.mk.in b/mk/config.mk.in
-index 4d5d82aa80..5e274bb71f 100644
---- a/mk/config.mk.in
-+++ b/mk/config.mk.in
-@@ -530,7 +530,7 @@ SUPPORTS_THIS_UNIT_ID = @SUPPORTS_THIS_UNIT_ID@
- # needs to know which gcc you're using in order to perform its tests.
-
- GccVersion = @GccVersion@
--CrossCompilePrefix = @CrossCompilePrefix@
-+
- # TargetPlatformFull retains the string passed to configure so we have it in
- # the necessary format to pass to libffi's configure.
- TargetPlatformFull = @TargetPlatformFull@
-@@ -567,6 +567,11 @@ CrossCompiling = @CrossCompiling@
- # See Note [Stage1Only vs stage=1]
- Stage1Only = NO
-
-+# Installed tools prefix:
-+# we add prefix to crosscompiler GHC only (ghc-stage1),
-+# not cross-built GHC (not ghc-stage2).
-+CrossCompilePrefix = $(if $(filter YES,$(Stage1Only)),@CrossCompilePrefix@,)
-+
- # Install stage 2 by default, or stage 1 in the cross compiler
- # case. Can be changed to 3
- INSTALL_GHC_STAGE= $(if $(filter YES,$(Stage1Only)),1,2)
diff --git a/dev-lang/ghc/files/ghc-8.2.1_rc1-unphased-cross.patch b/dev-lang/ghc/files/ghc-8.2.1_rc1-unphased-cross.patch
deleted file mode 100644
index a5528956de14..000000000000
--- a/dev-lang/ghc/files/ghc-8.2.1_rc1-unphased-cross.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-commit 6ff98b962db15d18eb1d082fe344cef692ecef8e
-Author: Sergei Trofimovich <slyfox@gentoo.org>
-Date: Thu Apr 6 08:55:56 2017 +0100
-
- config.mk.in: remove phase=0 hack for CrossCompilePrefix
-
- $(CrossCompilePrefix) is used only in 'make install'
- target filenames in $(DESTDIR). None of inplace (or boot)
- files contain $(CrossCompilePrefix).
-
- Thus we don't need to worry about phases.
-
- Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
-
-diff --git a/mk/config.mk.in b/mk/config.mk.in
-index 4e61eea821..4d5d82aa80 100644
---- a/mk/config.mk.in
-+++ b/mk/config.mk.in
-@@ -530,11 +530,7 @@ SUPPORTS_THIS_UNIT_ID = @SUPPORTS_THIS_UNIT_ID@
- # needs to know which gcc you're using in order to perform its tests.
-
- GccVersion = @GccVersion@
--ifeq "$(phase)" "0"
--CrossCompilePrefix =
--else
- CrossCompilePrefix = @CrossCompilePrefix@
--endif
- # TargetPlatformFull retains the string passed to configure so we have it in
- # the necessary format to pass to libffi's configure.
- TargetPlatformFull = @TargetPlatformFull@
diff --git a/dev-lang/ghc/files/ghc-8.2.1_rc1-win32-cross-1.patch b/dev-lang/ghc/files/ghc-8.2.1_rc1-win32-cross-1.patch
deleted file mode 100644
index 79751e1ecbda..000000000000
--- a/dev-lang/ghc/files/ghc-8.2.1_rc1-win32-cross-1.patch
+++ /dev/null
@@ -1,124 +0,0 @@
-commit a691f6a7a191a268380805481d8e63134764a4a1
-Author: Sergei Trofimovich <slyfox@inbox.ru>
-Date: Sat Apr 29 22:02:24 2017 +0100
-
- add basic cross-compilation support (#87)
-
- * fix include case: s/#include <Lmcons.h>/#include <lmcons.h>
-
- Noticed when cross-compiling win32 on linux to i686-w64-mingw32-gcc.
- i686-w64-mingw32 provides all headers in lowercase.
-
- Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
-
- * Pen.hsc: don't use c99-style comments in enum declarations
-
- Ths change workarounds hsc2hs bug in cross-compile mode:
- https://ghc.haskell.org/trac/ghc/ticket/13619
-
- To reproduce the build failure it's enough to run
- $ cabal configure --hsc2hs-options='--cross-safe --cross-compile'
- $ cabal build --hsc2hs-options='--cross-safe --cross-compile'
-
- Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
-
- * SimpleMAPI.hsc: don't use #ifdef in enum declarations
-
- This change workarounds hsc2hs bug in cross-compile mode:
- https://ghc.haskell.org/trac/ghc/ticket/13620
-
- To reproduce the build failure it's enough to run
- $ cabal configure --hsc2hs-options='--cross-safe --cross-compile'
- $ cabal build --hsc2hs-options='--cross-safe --cross-compile'
-
- Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
-
-diff --git a/Graphics/Win32/GDI/Pen.hsc b/Graphics/Win32/GDI/Pen.hsc
-index c880170..8d8df5d 100644
---- a/Graphics/Win32/GDI/Pen.hsc
-+++ b/Graphics/Win32/GDI/Pen.hsc
-@@ -56,7 +56,7 @@ foreign import WINDOWS_CCONV unsafe "windows.h DeleteObject"
-
- type PenStyle = INT
-
--#{enum PenStyle, // Pick one of these
-+#{enum PenStyle,
- , pS_SOLID = PS_SOLID // default
- , pS_DASH = PS_DASH // -------
- , pS_DOT = PS_DOT // .......
-@@ -69,14 +69,14 @@ type PenStyle = INT
- , pS_STYLE_MASK = PS_STYLE_MASK // all the above
- }
-
--#{enum PenStyle , // "or" with one of these
-+#{enum PenStyle,
- , pS_ENDCAP_ROUND = PS_ENDCAP_ROUND // default
- , pS_ENDCAP_SQUARE = PS_ENDCAP_SQUARE
- , pS_ENDCAP_FLAT = PS_ENDCAP_FLAT
- , pS_ENDCAP_MASK = PS_ENDCAP_MASK // all the above
- }
-
--#{enum PenStyle, // "or" with one of these
-+#{enum PenStyle,
- , pS_JOIN_ROUND = PS_JOIN_ROUND // default
- , pS_JOIN_BEVEL = PS_JOIN_BEVEL
- , pS_JOIN_MITER = PS_JOIN_MITER
-@@ -87,7 +87,7 @@ If PS_JOIN_MASK is not defined with your GNU Windows32 header files,
- you'll have to define it.
- -}
-
--#{enum PenStyle, // "or" with one of these
-+#{enum PenStyle,
- , pS_COSMETIC = PS_COSMETIC // default
- , pS_GEOMETRIC = PS_GEOMETRIC
- , pS_TYPE_MASK = PS_TYPE_MASK // all the above
-diff --git a/System/Win32/Info/Computer.hsc b/System/Win32/Info/Computer.hsc
-index bb2eb72..65ae8dc 100644
---- a/System/Win32/Info/Computer.hsc
-+++ b/System/Win32/Info/Computer.hsc
-@@ -65,7 +65,7 @@ import System.Win32.Utils ( tryWithoutNull )
- import System.Win32.Word ( DWORD, LPDWORD )
-
- #include <windows.h>
--#include <Lmcons.h>
-+#include <lmcons.h>
- #include "alignment.h"
- ##include "windows_cconv.h"
-
-diff --git a/System/Win32/SimpleMAPI.hsc b/System/Win32/SimpleMAPI.hsc
-index 9727cfc..5ebf06b 100644
---- a/System/Win32/SimpleMAPI.hsc
-+++ b/System/Win32/SimpleMAPI.hsc
-@@ -53,12 +53,6 @@ type MapiFlag = ULONG
- , mAPI_LOGON_UI = MAPI_LOGON_UI
- , mAPI_NEW_SESSION = MAPI_NEW_SESSION
- , mAPI_FORCE_DOWNLOAD = MAPI_FORCE_DOWNLOAD
--#ifdef MAPI_LOGOFF_SHARED
-- , mAPI_LOGOFF_SHARED = MAPI_LOGOFF_SHARED
--#endif
--#ifdef MAPI_LOGOFF_UI
-- , mAPI_LOGOFF_UI = MAPI_LOGOFF_UI
--#endif
- , mAPI_DIALOG = MAPI_DIALOG
- , mAPI_UNREAD_ONLY = MAPI_UNREAD_ONLY
- , mAPI_LONG_MSGID = MAPI_LONG_MSGID
-@@ -74,6 +68,19 @@ type MapiFlag = ULONG
- , mAPI_RECEIPT_REQUESTED = MAPI_RECEIPT_REQUESTED
- , mAPI_SENT = MAPI_SENT
- }
-+-- Have to define enum values outside previous declaration due to
-+-- hsc2hs bug in --cross-compile mode:
-+-- https://ghc.haskell.org/trac/ghc/ticket/13620
-+#ifdef MAPI_LOGOFF_SHARED
-+#{enum MapiFlag,
-+ , mAPI_LOGOFF_SHARED = MAPI_LOGOFF_SHARED
-+}
-+#endif
-+#ifdef MAPI_LOGOFF_UI
-+#{enum MapiFlag,
-+ , mAPI_LOGOFF_UI = MAPI_LOGOFF_UI
-+}
-+#endif
-
- mapiErrors :: [(ULONG,String)]
- mapiErrors =
diff --git a/dev-lang/ghc/files/ghc-8.2.1_rc2-O2-unreg.patch b/dev-lang/ghc/files/ghc-8.2.1_rc2-O2-unreg.patch
deleted file mode 100644
index 00f9ca4fdff9..000000000000
--- a/dev-lang/ghc/files/ghc-8.2.1_rc2-O2-unreg.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-ghc -O2 generates too large C files for unregisterised compiler.
-On ia64 it causes DynFlags to compile for 60 minutes (then assembler
-crashes).
-
-To decrease C code inflation we don't use -O2 in UNREG mode.
-diff --git a/mk/config.mk.in b/mk/config.mk.in
-index 4e61eea..15a56e9 100644
---- a/mk/config.mk.in
-+++ b/mk/config.mk.in
-@@ -72,11 +72,2 @@ GhcStage3HcOpts=-O2
-
--# Disable -O2 optimization. Otherwise amount of generated C code
--# makes things very slow to compile (~5 minutes on core-i7 for 'compiler/hsSyn/HsExpr.hs')
--# and sometimes not compile at all (powerpc64 overflows something
--# on 'compiler/hsSyn/HsExpr.hs').
--ifeq "$(GhcUnregisterised)" "YES"
--GhcStage1HcOpts=
--GhcStage2HcOpts=
--GhcStage3HcOpts=
--endif
-
-@@ -904 +895,13 @@ CURSES_INCLUDE_DIRS = @CURSES_INCLUDE_DIRS@
- CURSES_LIB_DIRS = @CURSES_LIB_DIRS@
-+
-+# Disable -O2 optimization. Otherwise amount of generated C code
-+# makes things very slow to compile (~5 minutes on core-i7 for 'compiler/hsSyn/HsExpr.hs')
-+# and sometimes not compile at all (powerpc64 overflows something
-+# on 'compiler/hsSyn/HsExpr.hs').
-+ifeq "$(GhcUnregisterised)" "YES"
-+GhcStage1HcOpts=
-+GhcStage2HcOpts=
-+GhcStage3HcOpts=
-+
-+GhcLibHcOpts=
-+endif
diff --git a/dev-lang/ghc/files/ghc-8.2.1_rc3-any-vendor.patch b/dev-lang/ghc/files/ghc-8.2.1_rc3-any-vendor.patch
deleted file mode 100644
index b55e37a8bf94..000000000000
--- a/dev-lang/ghc/files/ghc-8.2.1_rc3-any-vendor.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From c2303dff95aa174021a1950656fdf9a1cf983959 Mon Sep 17 00:00:00 2001
-From: Sergei Trofimovich <slyfox@gentoo.org>
-Date: Sat, 8 Jul 2017 09:47:12 +0100
-Subject: [PATCH] aclocal.m4: allow arbitrary <vendor> string in toolchain
- triplets
-
-Canonical triplets have a form of
- <arch>-<vendor>-<os>[-<abi>]
-
-Checking for vendor is almost never correct as it's an
-arbitrary string.
-
-It's useful to have multiple "vendors" to denote
-otherwise the same (WRT <arch>, <os>, <abi>) target:
- --target=x86_64-pc-linux-gnu
- --target=x86_64-unknown-linux-gnu
- --target=x86_64-ghc80-linux-gnu
- --target=x86_64-ghchead-linux-gnu
-
-Do not fail unknown vendors. Only emit a warning.
-Ideally configure checks should never use "vendor".
-
-Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
----
- aclocal.m4 | 3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
-
-diff --git a/aclocal.m4 b/aclocal.m4
-index 001f813dfc..1d9c09b0cd 100644
---- a/aclocal.m4
-+++ b/aclocal.m4
-@@ -230,8 +230,7 @@ AC_DEFUN([FPTOOLS_SET_HASKELL_PLATFORM_VARS],
- dec|none|unknown|hp|apple|next|sun|sgi|ibm|montavista|portbld)
- ;;
- *)
-- echo "Unknown vendor [$]1"
-- exit 1
-+ AC_MSG_WARN([Unknown vendor [$]1])
- ;;
- esac
- }
---
-2.13.3
-
diff --git a/dev-lang/ghc/files/ghc-8.2.1_rc3-stginit-data.patch b/dev-lang/ghc/files/ghc-8.2.1_rc3-stginit-data.patch
deleted file mode 100644
index 81e751d778c8..000000000000
--- a/dev-lang/ghc/files/ghc-8.2.1_rc3-stginit-data.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-Fix label type for __stginit_* labels: those are .data labels, not .text
-
-Noticed when was building --enable-unregisterised build for x86_64:
-
-/tmp/ghc22931_0/ghc_3.hc:5:9: error:
- error: '__stginit_ghczmprim_GHCziTypes' redeclared as different kind of symbol
- StgWord __stginit_ghczmprim_GHCziTypes[]__attribute__((aligned(8)))= {
- ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- |
-5 | StgWord __stginit_ghczmprim_GHCziTypes[]__attribute__((aligned(8)))= {
- | ^
-
-In file included from /tmp/ghc22931_0/ghc_3.hc:3:0: error:
-
-/tmp/ghc22931_0/ghc_3.hc:4:5: error:
- note: previous declaration of '__stginit_ghczmprim_GHCziTypes' was here
- EF_(__stginit_ghczmprim_GHCziTypes);
- ^
-diff --git a/compiler/cmm/CLabel.hs b/compiler/cmm/CLabel.hs
-index 77a889a..05d71ab 100644
---- a/compiler/cmm/CLabel.hs
-+++ b/compiler/cmm/CLabel.hs
-@@ -956,3 +956,3 @@ labelType (CaseLabel _ CaseReturnInfo) = DataLabel
- labelType (CaseLabel _ _) = CodeLabel
--labelType (PlainModuleInitLabel _) = CodeLabel
-+labelType (PlainModuleInitLabel _) = DataLabel
- labelType (SRTLabel _) = DataLabel
diff --git a/dev-lang/ghc/files/ghc-8.4.2-allow-cross-bootstrap.patch b/dev-lang/ghc/files/ghc-8.4.2-allow-cross-bootstrap.patch
deleted file mode 100644
index 071d4970a25b..000000000000
--- a/dev-lang/ghc/files/ghc-8.4.2-allow-cross-bootstrap.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-Allow using cross-compilers to bootstrap GHC.
-
-In my case I'm using "cross"-compiler from
-x86_64-unknown-linux to x86_64-HEAD-linux.
-
-Those targets have the same ABI and can boot one another.
-diff --git a/configure.ac b/configure.ac
-index a8b8681a36..791367e8bf 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -228,11 +228,11 @@ FPTOOLS_SET_PLATFORM_VARS
- if test "$BuildPlatform" != "$bootstrap_target"
- then
- echo "This GHC (${WithGhc}) does not generate code for the build platform"
- echo " GHC target platform : $bootstrap_target"
- echo " Desired build platform : $BuildPlatform"
-- exit 1
-+ #exit 1
- fi
-
- # Testing if we shall enable shared libs support on Solaris.
- # Anything older than SunOS 5.11 aka Solaris 11 (Express) is broken.
-
diff --git a/dev-lang/ghc/files/ghc-8.6.5-numa.patch b/dev-lang/ghc/files/ghc-8.6.5-numa.patch
deleted file mode 100644
index 61c6cfdbfb13..000000000000
--- a/dev-lang/ghc/files/ghc-8.6.5-numa.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-Disable automagic NUMA linking.
-
-Reported-by: Sergey Alirzaev
-Bug: https://github.com/gentoo-haskell/gentoo-haskell/issues/955
---- a/configure.ac
-+++ b/configure.ac
-@@ -1264,10 +1264,14 @@ dnl ** Have libnuma?
- dnl --------------------------------------------------------------
- HaveLibNuma=0
- AC_CHECK_HEADERS([numa.h numaif.h])
--
- if test "$ac_cv_header_numa_h$ac_cv_header_numaif_h" = "yesyes" ; then
- AC_CHECK_LIB(numa, numa_available,HaveLibNuma=1)
- fi
-+AC_ARG_ENABLE(numa,
-+ [AC_HELP_STRING([--enable-numa],
-+ [Enable NUMA thread balancing support in the runtime system via numactl's libnuma [default=auto]])])
-+AS_IF([test "x$enable_numa" = "xno"], [HaveLibNuma=0])
-+
- AC_DEFINE_UNQUOTED([HAVE_LIBNUMA], [$HaveLibNuma], [Define to 1 if you have libnuma])
- if test $HaveLibNuma = "1" ; then
- AC_SUBST([CabalHaveLibNuma],[True])
diff --git a/dev-lang/ghc/files/ghc-8.8.1-no-alex.patch b/dev-lang/ghc/files/ghc-8.8.1-no-alex.patch
deleted file mode 100644
index 39b6eeedd566..000000000000
--- a/dev-lang/ghc/files/ghc-8.8.1-no-alex.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-https://github.com/gentoo-haskell/gentoo-haskell/issues/959
-
-From 144abba394c6a23eb877fbde727111a5e75b9d47 Mon Sep 17 00:00:00 2001
-From: Ben Gamari <ben@smart-cactus.org>
-Date: Wed, 18 Sep 2019 23:50:20 -0400
-Subject: [PATCH] configure: Don't depend upon alex in source dist build
-
-This fixes #16860 by verifying that the generated sources don't already
-exist before asserting that the `alex` executable was found. This
-replicates the logic already used for `happy` in the case of `alex`.
----
- aclocal.m4 | 7 +++++--
- 1 file changed, 5 insertions(+), 2 deletions(-)
-
---- a/aclocal.m4
-+++ b/aclocal.m4
-@@ -984,8 +984,11 @@ else
- fi;
- changequote([, ])dnl
- ])
--FP_COMPARE_VERSIONS([$fptools_cv_alex_version],[-lt],[3.1.7],
-- [AC_MSG_ERROR([Alex version 3.1.7 or later is required to compile GHC.])])[]
-+if test ! -f compiler/parser/Lexer.hs
-+then
-+ FP_COMPARE_VERSIONS([$fptools_cv_alex_version],[-lt],[3.1.7],
-+ [AC_MSG_ERROR([Alex version 3.1.7 or later is required to compile GHC.])])[]
-+fi
- AlexVersion=$fptools_cv_alex_version;
- AC_SUBST(AlexVersion)
- ])
---
-2.23.0
-
diff --git a/dev-lang/ghc/files/ghc-8.8.1-revert-CPP.patch b/dev-lang/ghc/files/ghc-8.8.1-revert-CPP.patch
deleted file mode 100644
index 8535cf09ef34..000000000000
--- a/dev-lang/ghc/files/ghc-8.8.1-revert-CPP.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-Don't pass CPP options. Otherwise ghc-8.8.1 can't build itself.
-Eventually ghc will fix it's headers at propagate defines.
-
-https://gitlab.haskell.org/ghc/ghc/commit/cfd3e0f1cfd16c8f35cae139d2a871a32eb4d2e1
-https://gitlab.haskell.org/ghc/ghc/issues/17146
-
---- a/compiler/main/DriverPipeline.hs
-+++ b/compiler/main/DriverPipeline.hs
-@@ -1190,6 +1190,9 @@ runPhase (RealPhase Cmm) input_fn dflags
- -----------------------------------------------------------------------------
- -- Cc phase
-
-+-- we don't support preprocessing .c files (with -E) now. Doing so introduces
-+-- way too many hacks, and I can't say I've ever used it anyway.
-+
- runPhase (RealPhase cc_phase) input_fn dflags
- | any (cc_phase `eqPhase`) [Cc, Ccxx, HCc, Cobjc, Cobjcxx]
- = do
-@@ -1211,16 +1214,6 @@ runPhase (RealPhase cc_phase) input_fn dflags
- (includePathsQuote cmdline_include_paths)
- let include_paths = include_paths_quote ++ include_paths_global
-
-- -- pass -D or -optP to preprocessor when compiling foreign C files
-- -- (#16737). Doing it in this way is simpler and also enable the C
-- -- compiler to performs preprocessing and parsing in a single pass,
-- -- but it may introduce inconsistency if a different pgm_P is specified.
-- let more_preprocessor_opts = concat
-- [ ["-Xpreprocessor", i]
-- | not hcc
-- , i <- getOpts dflags opt_P
-- ]
--
- let gcc_extra_viac_flags = extraGccViaCFlags dflags
- let pic_c_flags = picCCOpts dflags
-
-@@ -1230,7 +1223,7 @@ runPhase (RealPhase cc_phase) input_fn dflags
- -- hc code doesn't not #include any header files anyway, so these
- -- options aren't necessary.
- pkg_extra_cc_opts <- liftIO $
-- if hcc
-+ if cc_phase `eqPhase` HCc
- then return []
- else getPackageExtraCcOpts dflags pkgs
-
-@@ -1312,7 +1305,6 @@ runPhase (RealPhase cc_phase) input_fn dflags
- ++ [ "-include", ghcVersionH ]
- ++ framework_paths
- ++ include_paths
-- ++ more_preprocessor_opts
- ++ pkg_extra_cc_opts
- ))
-
diff --git a/dev-lang/ghc/files/ghc-7.0.4-CHOST-prefix.patch b/dev-lang/ghc/files/ghc-9.0.2-CHOST-prefix.patch
index e38d9165e065..204eb3ef7dcd 100644
--- a/dev-lang/ghc/files/ghc-7.0.4-CHOST-prefix.patch
+++ b/dev-lang/ghc/files/ghc-9.0.2-CHOST-prefix.patch
@@ -1,7 +1,7 @@
Strip versioning components from *HOST for Darwin and Solaris
---- a/aclocal.m4
-+++ b/aclocal.m4
+--- a/m4/fptools.m4
++++ b/m4/fptools.m4
@@ -1358,6 +1358,12 @@
freebsd*)
$2="freebsd"
diff --git a/dev-lang/ghc/files/ghc-8.2.1-darwin.patch b/dev-lang/ghc/files/ghc-9.0.2-darwin.patch
index 53fedc4e4402..c3d8109e6ccc 100644
--- a/dev-lang/ghc/files/ghc-8.2.1-darwin.patch
+++ b/dev-lang/ghc/files/ghc-9.0.2-darwin.patch
@@ -14,8 +14,8 @@ Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
diff --git a/aclocal.m4 b/aclocal.m4
index 7ad9c36453..437974a0c7 100644
---- a/aclocal.m4
-+++ b/aclocal.m4
+--- a/m4/fptools.m4
++++ b/m4/fptools.m4
@@ -1906,6 +1906,9 @@ AC_DEFUN([GHC_CONVERT_OS],[
aix*) # e.g. powerpc-ibm-aix7.1.3.0
$3="aix"
diff --git a/dev-lang/ghc/files/ghc-9.0.2-disable-unboxed-arrays.patch b/dev-lang/ghc/files/ghc-9.0.2-disable-unboxed-arrays.patch
new file mode 100644
index 000000000000..599762b95454
--- /dev/null
+++ b/dev-lang/ghc/files/ghc-9.0.2-disable-unboxed-arrays.patch
@@ -0,0 +1,39 @@
+https://gitlab.haskell.org/ghc/packages/containers/-/commit/f5a511f1ff2cf16e710342948792cb8d7576e27c
+https://bugs.gentoo.org/865311
+
+From f5a511f1ff2cf16e710342948792cb8d7576e27c Mon Sep 17 00:00:00 2001
+From: Peter Trommler <ptrommler@acm.org>
+Date: Fri, 31 Dec 2021 18:20:45 +0100
+Subject: [PATCH] Disable unboxed arrays on big-endian
+
+Unboxed arrays are broken on big-endian architectures, see
+https://gitlab.haskell.org/ghc/ghc/-/issues/16998 for details.
+This patch makes the use of unboxed arrays conditional on
+little-endian architecture.
+
+Fixes #673
+---
+ libraries/containers/containers/include/containers.h | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/libraries/containers/containers/include/containers.h b/libraries/containers/containers/include/containers.h
+index cd201ca3..fc2a0e84 100644
+--- a/libraries/containers/containers/include/containers.h 2022-08-16 07:50:42.844217960 +0200
++++ b/libraries/containers/containers/include/containers.h 2022-08-16 07:50:49.327446486 +0200
+@@ -35,7 +35,13 @@
+
+ #ifdef __GLASGOW_HASKELL__
+ # define USE_ST_MONAD 1
++#ifndef WORDS_BIGENDIAN
++/*
++ * Unboxed arrays are broken on big-endian architectures.
++ * See https://gitlab.haskell.org/ghc/ghc/-/issues/16998
++ */
+ # define USE_UNBOXED_ARRAYS 1
+ #endif
++#endif
+
+ #endif
+--
+GitLab
+
diff --git a/dev-lang/ghc/files/ghc-9.0.2-fix-tests-python310.patch b/dev-lang/ghc/files/ghc-9.0.2-fix-tests-python310.patch
new file mode 100644
index 000000000000..c59cfcbfc4a2
--- /dev/null
+++ b/dev-lang/ghc/files/ghc-9.0.2-fix-tests-python310.patch
@@ -0,0 +1,33 @@
+From 81a8f7a7daeb87db53d598ced4b303f8f320442f Mon Sep 17 00:00:00 2001
+From: Zubin Duggal <zubin.duggal@gmail.com>
+Date: Wed, 12 Jan 2022 23:01:40 +0530
+Subject: [PATCH] testsuite: Fix import on python 3.10
+
+---
+ testsuite/driver/testlib.py | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/testsuite/driver/testlib.py b/testsuite/driver/testlib.py
+index fb2a7010f59..6b6462f527b 100644
+--- a/testsuite/driver/testlib.py
++++ b/testsuite/driver/testlib.py
+@@ -16,6 +16,7 @@ import sys
+ from math import ceil, trunc, floor, log
+ from pathlib import Path, PurePath
+ import collections
++import collections.abc
+ import subprocess
+
+ from testglobals import config, ghc_env, default_testopts, brokens, t, \
+@@ -907,7 +908,7 @@ def join_normalisers(*a):
+ Taken from http://stackoverflow.com/a/2158532/946226
+ """
+ for el in l:
+- if (isinstance(el, collections.Iterable)
++ if (isinstance(el, collections.abc.Iterable)
+ and not isinstance(el, (bytes, str))):
+ for sub in flatten(el):
+ yield sub
+--
+GitLab
+
diff --git a/dev-lang/ghc/files/ghc-9.0.2-fptools.patch b/dev-lang/ghc/files/ghc-9.0.2-fptools.patch
new file mode 100644
index 000000000000..8b00517386dd
--- /dev/null
+++ b/dev-lang/ghc/files/ghc-9.0.2-fptools.patch
@@ -0,0 +1,26 @@
+diff --git a/m4/fptools.m4 b/m4/fptools.m4
+index 8c6c9b7..a5db447 100644
+--- a/m4/fptools.m4
++++ b/m4/fptools.m4
+@@ -976,17 +976,15 @@ struct nlist xYzzY1[] = {{"xYzzY1", 0},{0}};
+ struct nlist xYzzY2[] = {{"_xYzzY2", 0},{0}};
+ #endif
+
+-int main(argc, argv)
+-int argc;
+-char **argv;
++int main(int argc, char **argv)
+ {
+ #if defined(HAVE_NLIST_H)
+ if(nlist(argv[0], xYzzY1) == 0 && xYzzY1[0].n_value != 0)
+- exit(1);
++ return 1;
+ if(nlist(argv[0], xYzzY2) == 0 && xYzzY2[0].n_value != 0)
+- exit(0);
++ return 0;
+ #endif
+- exit(1);
++ return 1;
+ }]])],[fptools_cv_leading_underscore=yes],[fptools_cv_leading_underscore=no],[fptools_cv_leading_underscore=no])
+ ;;
+ esac]);
diff --git a/dev-lang/ghc/files/ghc-9.0.2-llvm-13.patch b/dev-lang/ghc/files/ghc-9.0.2-llvm-13.patch
new file mode 100644
index 000000000000..835eb0374847
--- /dev/null
+++ b/dev-lang/ghc/files/ghc-9.0.2-llvm-13.patch
@@ -0,0 +1,26 @@
+https://salsa.debian.org/haskell-team/DHG_packages/-/commit/b16997ae9270c8f88b7f8548e5cb6fdf93a07c43
+
+From 78db231ffdf8385662812781c1d09c630cfad313 Mon Sep 17 00:00:00 2001
+From: Cheng Shao <astrohavoc@gmail.com>
+Date: Thu, 27 Jan 2022 12:12:14 +0000
+Subject: [PATCH] configure: bump LlvmMaxVersion to 14
+
+LLVM 13.0.0 is released in Oct 2021, and latest head validates against
+LLVM 13 just fine if LlvmMaxVersion is bumped.
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index e8a95726a35..71879adeb04 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -681,7 +681,7 @@ AC_SUBST(InstallNameToolCmd)
+ # versions of LLVM simultaneously, but that stopped working around
+ # 3.5/3.6 release of LLVM.
+ LlvmMinVersion=9 # inclusive
+-LlvmMaxVersion=13 # not inclusive
++LlvmMaxVersion=14 # not inclusive
+ AC_SUBST([LlvmMinVersion])
+ AC_SUBST([LlvmMaxVersion])
+ sUPPORTED_LLVM_VERSION_MIN=$(echo \($LlvmMinVersion\) | sed 's/\./,/')
diff --git a/dev-lang/ghc/files/ghc-9.0.2-llvm-14.patch b/dev-lang/ghc/files/ghc-9.0.2-llvm-14.patch
new file mode 100644
index 000000000000..ee4132bb2ee8
--- /dev/null
+++ b/dev-lang/ghc/files/ghc-9.0.2-llvm-14.patch
@@ -0,0 +1,15 @@
+https://bugs.gentoo.org/876187
+
+Bump max LLVM to 14. Validated on arm64.
+
+--- a/configure.ac
++++ b/configure.ac
+@@ -681,7 +681,7 @@ AC_SUBST(InstallNameToolCmd)
+ # versions of LLVM simultaneously, but that stopped working around
+ # 3.5/3.6 release of LLVM.
+ LlvmMinVersion=9 # inclusive
+-LlvmMaxVersion=14 # not inclusive
++LlvmMaxVersion=15 # not inclusive
+ AC_SUBST([LlvmMinVersion])
+ AC_SUBST([LlvmMaxVersion])
+ sUPPORTED_LLVM_VERSION_MIN=$(echo \($LlvmMinVersion\) | sed 's/\./,/')
diff --git a/dev-lang/ghc/files/ghc-9.0.2-modorigin-semigroup.patch b/dev-lang/ghc/files/ghc-9.0.2-modorigin-semigroup.patch
new file mode 100644
index 000000000000..75e84df4ab66
--- /dev/null
+++ b/dev-lang/ghc/files/ghc-9.0.2-modorigin-semigroup.patch
@@ -0,0 +1,27 @@
+From bad99a0bb7981c0287dbc383176338acea98a2d5 Mon Sep 17 00:00:00 2001
+From: Sylvain Henry <sylvain@haskus.fr>
+Date: Fri, 18 Feb 2022 11:01:04 +0100
+Subject: [PATCH] Quick and dirty fix for ModuleOrigin SemiGroup instance
+Bug: https://github.com/gentoo-haskell/gentoo-haskell/issues/1250#issuecomment-1044257595
+Bug: https://gitlab.haskell.org/ghc/ghc/-/issues/21097
+Signed-off-by: hololeap <hololeap@protonmail.com>
+
+---
+diff -urN ghc-9.0.2/compiler/GHC/Unit/State.hs ghc-9.0.2-r1/compiler/GHC/Unit/State.hs
+--- ghc-9.0.2/compiler/GHC/Unit/State.hs 2021-10-19 05:20:00.000000000 -0600
++++ ghc-9.0.2-r1/compiler/GHC/Unit/State.hs 2022-02-19 20:26:16.756489309 -0700
+@@ -235,6 +235,14 @@
+ | otherwise = panic "ModOrigin: package both exposed/hidden"
+ g Nothing x = x
+ g x Nothing = x
++ ModHidden <> ModHidden = ModHidden
++ ModUnusable x <> ModUnusable _y = ModUnusable x
++
++ ModUnusable _ <> ModHidden = ModHidden
++ ModHidden <> ModUnusable _ = ModHidden
++ ModUnusable _x <> y@ModOrigin{} = y
++ x@ModOrigin{} <> ModUnusable _y = x
++
+ _x <> _y = panic "ModOrigin: hidden module redefined"
+
+ instance Monoid ModuleOrigin where
diff --git a/dev-lang/ghc/files/ghc-9.0.2-sphinx-6.patch b/dev-lang/ghc/files/ghc-9.0.2-sphinx-6.patch
new file mode 100644
index 000000000000..02364dd8eea5
--- /dev/null
+++ b/dev-lang/ghc/files/ghc-9.0.2-sphinx-6.patch
@@ -0,0 +1,41 @@
+https://bugs.gentoo.org/890563
+https://gitlab.haskell.org/ghc/ghc/-/commit/00dc51060881df81258ba3b3bdf447294618a4de
+https://gitlab.haskell.org/ghc/ghc/-/issues/22690
+
+From 00dc51060881df81258ba3b3bdf447294618a4de Mon Sep 17 00:00:00 2001
+From: Matthew Pickering <matthewtpickering@gmail.com>
+Date: Tue, 3 Jan 2023 15:56:37 +0000
+Subject: [PATCH] sphinx: Use modern syntax for extlinks
+
+This fixes the following build error:
+
+```
+ Command line: /opt/homebrew/opt/sphinx-doc/bin/sphinx-build -b man -d /private/tmp/extra-dir-55768274273/.doctrees-man -n -w /private/tmp/extra-dir-55768274273/.log docs/users_guide /private/tmp/extra-dir-55768274273
+ ===> Command failed with error code: 2
+
+ Exception occurred:
+ File "/opt/homebrew/Cellar/sphinx-doc/6.0.0/libexec/lib/python3.11/site-packages/sphinx/ext/extlinks.py", line 101, in role
+ title = caption % part
+ ~~~~~~~~^~~~~~
+ TypeError: not all arguments converted during string formatting
+```
+
+I tested on Sphinx-5.1.1 and Sphinx-6.0.0
+
+Thanks for sterni for providing instructions about how to test using
+sphinx-6.0.0.
+
+Fixes #22690
+--- a/docs/users_guide/ghc_config.py.in
++++ b/docs/users_guide/ghc_config.py.in
+@@ -1,6 +1,6 @@
+ extlinks = {
+- 'ghc-ticket': ('https://gitlab.haskell.org/ghc/ghc/issues/%s', '#'),
+- 'ghc-wiki': ('https://gitlab.haskell.org/ghc/ghc/wikis/%s', '#'),
++ 'ghc-ticket': ('https://gitlab.haskell.org/ghc/ghc/issues/%s', '%s'),
++ 'ghc-wiki': ('https://gitlab.haskell.org/ghc/ghc/wikis/%s', '#%s'),
+ }
+
+ libs_base_uri = '../libraries'
+--
+GitLab
diff --git a/dev-lang/ghc/files/ghc-9.0.2-verbose-modunusable.patch b/dev-lang/ghc/files/ghc-9.0.2-verbose-modunusable.patch
new file mode 100644
index 000000000000..13d12efdc0ec
--- /dev/null
+++ b/dev-lang/ghc/files/ghc-9.0.2-verbose-modunusable.patch
@@ -0,0 +1,12 @@
+diff -urN ghc-9.0.2/compiler/GHC/Unit/State.hs ghc-9.0.2-r1/compiler/GHC/Unit/State.hs
+--- ghc-9.0.2/compiler/GHC/Unit/State.hs 2021-10-19 05:20:00.000000000 -0600
++++ ghc-9.0.2-r1/compiler/GHC/Unit/State.hs 2022-02-17 01:04:05.117930250 -0700
+@@ -194,7 +194,7 @@
+
+ instance Outputable ModuleOrigin where
+ ppr ModHidden = text "hidden module"
+- ppr (ModUnusable _) = text "unusable module"
++ ppr (ModUnusable reason) = text "unusable module" $$ ppr reason
+ ppr (ModOrigin e res rhs f) = sep (punctuate comma (
+ (case e of
+ Nothing -> []
diff --git a/dev-lang/ghc/files/ghc-9.2.6-fix-alignment-of-capability.patch b/dev-lang/ghc/files/ghc-9.2.6-fix-alignment-of-capability.patch
new file mode 100644
index 000000000000..88fdac8d7eb8
--- /dev/null
+++ b/dev-lang/ghc/files/ghc-9.2.6-fix-alignment-of-capability.patch
@@ -0,0 +1,249 @@
+From 406d485eb5b055ec428fc189a2724c010ff90a8c Mon Sep 17 00:00:00 2001
+From: Ben Gamari <ben@well-typed.com>
+Date: Tue, 17 Jan 2023 19:45:34 +0000
+Subject: [PATCH 1/5] rts: Use C11-compliant static assertion syntax
+
+Previously we used `static_assert` which is only available in C23. By
+contrast, C11 only provides `_Static_assert`.
+
+Fixes #22777
+---
+ includes/Rts.h | 13 ++++++++++++-
+ 1 file changed, 12 insertions(+), 1 deletion(-)
+
+diff --git a/includes/Rts.h b/includes/Rts.h
+index b2c74fcfc17..096da7e5139 100644
+--- a/includes/Rts.h
++++ b/includes/Rts.h
+@@ -29,6 +29,9 @@ extern "C" {
+ #include <windows.h>
+ #endif
+
++/* For _Static_assert */
++#include <assert.h>
++
+ #if !defined(IN_STG_CODE)
+ #define IN_STG_CODE 0
+ #endif
+@@ -147,9 +150,17 @@ void _warnFail(const char *filename, unsigned int linenum);
+ #define ASSERTM(predicate,msg,...) CHECKM(predicate,msg,##__VA_ARGS__)
+ #define WARN(predicate) CHECKWARN(predicate)
+ #undef ASSERTS_ENABLED
+-
+ #endif /* DEBUG */
+
++#if __STDC_VERSION__ >= 201112L
++// `_Static_assert` is provided by C11 but is deprecated and replaced by
++// `static_assert` in C23. Perhaps some day we should instead use the latter.
++// See #22777.
++#define GHC_STATIC_ASSERT(x, msg) _Static_assert((x), msg)
++#else
++#define GHC_STATIC_ASSERT(x, msg)
++#endif
++
+ /*
+ * Use this on the RHS of macros which expand to nothing
+ * to make sure that the macro can be used in a context which
+--
+GitLab
+
+
+From 489215f094ac077619bd13fb6e2a756c26648a34 Mon Sep 17 00:00:00 2001
+From: Ben Gamari <ben@smart-cactus.org>
+Date: Mon, 13 Feb 2023 13:13:05 -0500
+Subject: [PATCH 2/5] rts: Statically assert alignment of Capability
+
+In #22965 we noticed that changes in the size of `Capability` can result
+in unsound behavior due to the `align` pragma claiming an alignment
+which we don't in practice observe. Avoid this by statically asserting
+that the size is a multiple of the alignment.
+
+(cherry picked from commit b585225be9670de1a83e0bb17034d2fb821cb8a3)
+---
+ rts/Capability.h | 24 ++++++++++++++++--------
+ 1 file changed, 16 insertions(+), 8 deletions(-)
+
+diff --git a/rts/Capability.h b/rts/Capability.h
+index d7c1916ad7d..34695b0b13e 100644
+--- a/rts/Capability.h
++++ b/rts/Capability.h
+@@ -27,6 +27,16 @@
+
+ #include "BeginPrivate.h"
+
++// We never want a Capability to overlap a cache line with
++// anything else, so round it up to a cache line size:
++#if defined(s390x_HOST_ARCH)
++#define CAPABILITY_ALIGNMENT 256
++#elif !defined(mingw32_HOST_OS)
++#define CAPABILITY_ALIGNMENT 64
++#else
++#define CAPABILITY_ALIGNMENT 1
++#endif
++
+ /* N.B. This must be consistent with CapabilityPublic in RtsAPI.h */
+ struct Capability_ {
+ // State required by the STG virtual machine when running Haskell
+@@ -172,14 +182,12 @@ struct Capability_ {
+ StgTRecHeader *free_trec_headers;
+ uint32_t transaction_tokens;
+ } // typedef Capability is defined in RtsAPI.h
+- // We never want a Capability to overlap a cache line with anything
+- // else, so round it up to a cache line size:
+-#if defined(s390x_HOST_ARCH)
+- ATTRIBUTE_ALIGNED(256)
+-#elif !defined(mingw32_HOST_OS)
+- ATTRIBUTE_ALIGNED(64)
+-#endif
+- ;
++ ATTRIBUTE_ALIGNED(CAPABILITY_ALIGNMENT)
++;
++
++// We allocate arrays of Capabilities therefore we must ensure that the size is
++// a multiple of the claimed alignment
++GHC_STATIC_ASSERT(sizeof(struct Capability_) % CAPABILITY_ALIGNMENT == 0, "Capability size does not match cache size");
+
+ #if defined(THREADED_RTS)
+ #define ASSERT_TASK_ID(task) ASSERT(task->id == osThreadId())
+--
+GitLab
+
+
+From 66f7ee57ce17d2fd96d74c6c4498d4f558815a0d Mon Sep 17 00:00:00 2001
+From: Ben Gamari <ben@smart-cactus.org>
+Date: Mon, 13 Feb 2023 13:21:11 -0500
+Subject: [PATCH 3/5] rts: Fix alignment of Capability
+
+---
+ rts/Capability.h | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/rts/Capability.h b/rts/Capability.h
+index 34695b0b13e..c0a058a3e71 100644
+--- a/rts/Capability.h
++++ b/rts/Capability.h
+@@ -181,6 +181,9 @@ struct Capability_ {
+ StgTRecChunk *free_trec_chunks;
+ StgTRecHeader *free_trec_headers;
+ uint32_t transaction_tokens;
++
++ // To ensure that size is multiple of CAPABILITY_ALIGNMENT.
++ StgWord _padding[0];
+ } // typedef Capability is defined in RtsAPI.h
+ ATTRIBUTE_ALIGNED(CAPABILITY_ALIGNMENT)
+ ;
+--
+GitLab
+
+
+From 1332f1f428e71cec02feb39b714b37c3ad0aa857 Mon Sep 17 00:00:00 2001
+From: Ben Gamari <ben@smart-cactus.org>
+Date: Mon, 13 Feb 2023 14:46:24 -0500
+Subject: [PATCH 4/5] rts: Introduce stgMallocAlignedBytes
+
+(cherry picked from commit 04336d2f11e49f7d00392f05d4fd48abdd231fc0)
+---
+ rts/RtsUtils.c | 37 ++++++++++++++++++++++++++++++++++++-
+ rts/RtsUtils.h | 2 ++
+ 2 files changed, 38 insertions(+), 1 deletion(-)
+
+diff --git a/rts/RtsUtils.c b/rts/RtsUtils.c
+index ca01bdb6e0c..439e54e2d7a 100644
+--- a/rts/RtsUtils.c
++++ b/rts/RtsUtils.c
+@@ -58,10 +58,45 @@ extern char *ctime_r(const time_t *, char *);
+
+ void *
+ stgMallocBytes (size_t n, char *msg)
++{
++ void *space = malloc(n);
++
++ if (space == NULL) {
++ /* Quoting POSIX.1-2008 (which says more or less the same as ISO C99):
++ *
++ * "Upon successful completion with size not equal to 0, malloc() shall
++ * return a pointer to the allocated space. If size is 0, either a null
++ * pointer or a unique pointer that can be successfully passed to free()
++ * shall be returned. Otherwise, it shall return a null pointer and set
++ * errno to indicate the error."
++ *
++ * Consequently, a NULL pointer being returned by `malloc()` for a 0-size
++ * allocation is *not* to be considered an error.
++ */
++ if (n == 0) return NULL;
++
++ /* don't fflush(stdout); WORKAROUND bug in Linux glibc */
++ rtsConfig.mallocFailHook((W_) n, msg);
++ stg_exit(EXIT_INTERNAL_ERROR);
++ }
++ IF_DEBUG(zero_on_gc, memset(space, 0xbb, n));
++ return space;
++}
++
++void *
++stgMallocAlignedBytes (size_t n, size_t align, char *msg)
+ {
+ void *space;
+
+- if ((space = malloc(n)) == NULL) {
++#if defined(mingw32_HOST_OS)
++ space = _aligned_malloc(n, align);
++#else
++ if (posix_memalign(&space, align, n)) {
++ space = NULL; // Allocation failed
++ }
++#endif
++
++ if (space == NULL) {
+ /* Quoting POSIX.1-2008 (which says more or less the same as ISO C99):
+ *
+ * "Upon successful completion with size not equal to 0, malloc() shall
+diff --git a/rts/RtsUtils.h b/rts/RtsUtils.h
+index c87aedb3a74..3f4b558651c 100644
+--- a/rts/RtsUtils.h
++++ b/rts/RtsUtils.h
+@@ -20,6 +20,8 @@ void shutdownAllocator(void);
+ void *stgMallocBytes(size_t n, char *msg)
+ GNUC3_ATTRIBUTE(__malloc__);
+
++void *stgMallocAlignedBytes(size_t n, size_t align, char *msg);
++
+ void *stgReallocBytes(void *p, size_t n, char *msg);
+
+ void *stgCallocBytes(size_t count, size_t size, char *msg)
+--
+GitLab
+
+
+From 1741fd255842706a9f15c95cd8c1c6b7784c50ce Mon Sep 17 00:00:00 2001
+From: Ben Gamari <ben@smart-cactus.org>
+Date: Mon, 13 Feb 2023 14:49:52 -0500
+Subject: [PATCH 5/5] rts: Correctly align Capability allocations
+
+Previously we failed to tell the C allocator that `Capability`s needed
+to be aligned, resulting in #22965.
+
+(cherry picked from commit 4af27feabf482cf6b611951443e05ee7e53acb39)
+---
+ rts/Capability.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/rts/Capability.c b/rts/Capability.c
+index edf6a926902..971c1cef834 100644
+--- a/rts/Capability.c
++++ b/rts/Capability.c
+@@ -439,8 +439,9 @@ moreCapabilities (uint32_t from USED_IF_THREADS, uint32_t to USED_IF_THREADS)
+ if (i < from) {
+ new_capabilities[i] = capabilities[i];
+ } else {
+- new_capabilities[i] = stgMallocBytes(sizeof(Capability),
+- "moreCapabilities");
++ new_capabilities[i] = stgMallocAlignedBytes(sizeof(Capability),
++ CAPABILITY_ALIGNMENT,
++ "moreCapabilities");
+ initCapability(new_capabilities[i], i);
+ }
+ }
+--
+GitLab
+
diff --git a/dev-lang/ghc/files/ghc-9.2.7-modorigin-semigroup.patch b/dev-lang/ghc/files/ghc-9.2.7-modorigin-semigroup.patch
new file mode 100644
index 000000000000..8028ab39cc9c
--- /dev/null
+++ b/dev-lang/ghc/files/ghc-9.2.7-modorigin-semigroup.patch
@@ -0,0 +1,33 @@
+From 46b7ac7b8aca68d143eec5837ef1ff24d3d1f422 Mon Sep 17 00:00:00 2001
+From: Sylvain Henry <sylvain@haskus.fr>
+Date: Fri, 18 Feb 2022 11:01:04 +0100
+Subject: [PATCH] Quick and dirty fix for ModuleOrigin SemiGroup instance
+
+Bug: https://github.com/gentoo-haskell/gentoo-haskell/issues/1250#issuecomment-1044257595
+Bug: https://gitlab.haskell.org/ghc/ghc/-/issues/21097
+Signed-off-by: hololeap <hololeap@users.noreply.github.com>
+---
+ compiler/GHC/Unit/State.hs | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/compiler/GHC/Unit/State.hs b/compiler/GHC/Unit/State.hs
+index 9a95447e73..08ea0f3eb3 100644
+--- a/compiler/GHC/Unit/State.hs
++++ b/compiler/GHC/Unit/State.hs
+@@ -235,6 +235,13 @@ instance Semigroup ModuleOrigin where
+ text "x: " <> ppr x $$ text "y: " <> ppr y
+ g Nothing x = x
+ g x Nothing = x
++ ModHidden <> ModHidden = ModHidden
++ ModUnusable x <> ModUnusable _y = ModUnusable x
++
++ ModUnusable _ <> ModHidden = ModHidden
++ ModHidden <> ModUnusable _ = ModHidden
++ ModUnusable _x <> y@ModOrigin{} = y
++ x@ModOrigin{} <> ModUnusable _y = x
+ x <> y = pprPanic "ModOrigin: hidden module redefined" $
+ text "x: " <> ppr x $$ text "y: " <> ppr y
+
+--
+2.39.2
+
diff --git a/dev-lang/ghc/files/latomic-subword b/dev-lang/ghc/files/latomic-subword
new file mode 100644
index 000000000000..2dbb382ab47e
--- /dev/null
+++ b/dev-lang/ghc/files/latomic-subword
@@ -0,0 +1,87 @@
+https://salsa.debian.org/haskell-team/DHG_packages/-/blob/master/p/ghc/debian/patches/latomic-subword
+
+commit 90f06a0e015e18c066fe1569fb2add318bec72ca
+Author: Haochen Tong <i@hexchain.org>
+Date: Mon Oct 11 11:40:56 2021 +0800
+
+ Check for libatomic dependency for atomic operations
+
+ Some platforms (e.g. RISC-V) require linking against libatomic for some
+ (e.g. sub-word-sized) atomic operations.
+
+ Fixes #19119.
+
+Index: b/configure.ac
+===================================================================
+--- a/configure.ac
++++ b/configure.ac
+@@ -1286,6 +1286,32 @@ AC_LINK_IFELSE([
+ AC_MSG_RESULT(no)
+ )
+
++AC_MSG_CHECKING(whether -latomic is needed for sub-word-sized atomic operations)
++AC_LINK_IFELSE([AC_LANG_PROGRAM([[unsigned char a;]], [[__atomic_fetch_or(&a, 1, __ATOMIC_RELAXED);]])],
++ [
++ AC_MSG_RESULT(no)
++ AC_SUBST([CabalNeedLibatomic],[False])
++ need_latomic=0
++ ],
++ [
++ _save_LIBS=$LIBS
++ LIBS="-latomic"
++ AC_LINK_IFELSE([AC_LANG_PROGRAM([[unsigned char a;]], [[__atomic_fetch_or(&a, 1, __ATOMIC_RELAXED);]])],
++ [
++ AC_MSG_RESULT(yes)
++ AC_SUBST([CabalNeedLibatomic],[True])
++ need_latomic=1
++ ],
++ [
++ AC_SUBST([CabalNeedLibatomic],[False])
++ AC_MSG_ERROR([sub-word-sized atomic operations not available.])
++ need_latomic=0
++ ])
++ LIBS=$_save_LIBS
++ ])
++AC_DEFINE_UNQUOTED([NEED_ATOMIC_LIB], [$need_latomic],
++ [Define to 1 if we need -latomic for sub-word atomic operations.])
++
+ dnl ** check for eventfd which is needed by the I/O manager
+ AC_CHECK_HEADERS([sys/eventfd.h])
+ AC_CHECK_FUNCS([eventfd])
+Index: b/rts/package.conf.in
+===================================================================
+--- a/rts/package.conf.in
++++ b/rts/package.conf.in
+@@ -63,6 +63,9 @@ extra-libraries:
+ , "elf"
+ , "dw" /* for backtraces */
+ #endif
++#if NEED_ATOMIC_LIB
++ , "atomic"
++#endif
+
+ #if defined(INSTALLING)
+ include-dirs: INCLUDE_DIR FFI_INCLUDE_DIR
+Index: b/rts/rts.cabal.in
+===================================================================
+--- a/rts/rts.cabal.in
++++ b/rts/rts.cabal.in
+@@ -20,6 +20,8 @@ flag libbfd
+ default: @CabalHaveLibbfd@
+ flag mingwex
+ default: @CabalMingwex@
++flag need-atomic
++ default: @CabalNeedLibatomic@
+ flag libdw
+ default: @CabalHaveLibdw@
+ flag libnuma
+@@ -126,6 +128,9 @@ library
+ if flag(need-pthread)
+ -- for pthread_getthreadid_np, pthread_create, ...
+ extra-libraries: pthread
++ if flag(need-atomic)
++ -- for sub-word-sized atomic operations (#19119)
++ extra-libraries: atomic
+ if flag(libbfd)
+ -- for debugging
+ extra-libraries: bfd iberty
diff --git a/dev-lang/ghc/ghc-7.10.3.ebuild b/dev-lang/ghc/ghc-7.10.3.ebuild
deleted file mode 100644
index 590b6e0a913d..000000000000
--- a/dev-lang/ghc/ghc-7.10.3.ebuild
+++ /dev/null
@@ -1,674 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-
-# to make make a crosscompiler use crossdev and symlink ghc tree into
-# cross overlay. result would look like 'cross-sparc-unknown-linux-gnu/ghc'
-#
-# 'CTARGET' definition and 'is_crosscompile' are taken from 'toolchain.eclass'
-export CTARGET=${CTARGET:-${CHOST}}
-if [[ ${CTARGET} = ${CHOST} ]] ; then
- if [[ ${CATEGORY/cross-} != ${CATEGORY} ]] ; then
- export CTARGET=${CATEGORY/cross-}
- fi
-fi
-
-inherit autotools bash-completion-r1 eutils flag-o-matic ghc-package
-inherit multilib pax-utils toolchain-funcs versionator prefix
-
-DESCRIPTION="The Glasgow Haskell Compiler"
-HOMEPAGE="https://www.haskell.org/ghc/"
-
-# we don't have any binaries yet
-arch_binaries=""
-
-# sorted!
-arch_binaries="$arch_binaries alpha? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-alpha.tbz2 )"
-#arch_binaries="$arch_binaries arm? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-arm.tbz2 )"
-arch_binaries="$arch_binaries amd64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PVR}-amd64.tbz2 )"
-arch_binaries="$arch_binaries ia64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ia64.tbz2 )"
-arch_binaries="$arch_binaries ppc? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ppc.tbz2 )"
-arch_binaries="$arch_binaries ppc64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ppc64.tbz2 )"
-arch_binaries="$arch_binaries sparc? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-sparc.tbz2 )"
-arch_binaries="$arch_binaries x86? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PVR}-x86.tbz2 )"
-
-# various ports:
-#arch_binaries="$arch_binaries x86-fbsd? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-x86-fbsd.tbz2 )"
-
-# 0 - yet
-yet_binary() {
- case "${ARCH}" in
- alpha) return 0 ;;
- #arm)
- # ewarn "ARM binary is built on armv5tel-eabi toolchain. Use with caution."
- # return 0
- #;;
- amd64) return 0 ;;
- ia64) return 0 ;;
- ppc) return 0 ;;
- ppc64) return 0 ;;
- sparc) return 0 ;;
- x86) return 0 ;;
- *) return 1 ;;
- esac
-}
-
-GHC_PV=${PV}
-#GHC_PV=7.10.2.20151030 # uncomment only for -rc ebuilds
-GHC_P=${PN}-${GHC_PV} # using ${P} is almost never correct
-
-SRC_URI="!binary? ( https://downloads.haskell.org/~ghc/${PV/_rc/-rc}/${GHC_P}-src.tar.bz2 )"
-S="${WORKDIR}"/${GHC_P}
-
-[[ -n $arch_binaries ]] && SRC_URI+=" !ghcbootstrap? ( $arch_binaries )"
-
-BUMP_LIBRARIES=(
- # "hackage-name hackage-version"
- "binary 0.7.6.1"
- "hoopl 3.10.2.0"
- "transformers 0.4.3.0"
-)
-
-LICENSE="BSD"
-SLOT="0/${PV}"
-KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
-IUSE="doc ghcbootstrap ghcmakebinary +gmp"
-IUSE+=" binary"
-IUSE+=" elibc_glibc" # system stuff
-
-RDEPEND="
- >=dev-lang/perl-5.6.1
- >=dev-libs/gmp-5:=
- sys-libs/ncurses:0=[unicode]
- !ghcmakebinary? ( dev-libs/libffi:= )
-"
-
-# This set of dependencies is needed to run
-# prebuilt ghc. We specifically avoid ncurses
-# dependency with:
-# utils/ghc-pkg_HC_OPTS += -DBOOTSTRAPPING
-PREBUILT_BINARY_DEPENDS="
- !prefix? ( elibc_glibc? ( >=sys-libs/glibc-2.17 ) )
-"
-# This set of dependencies is needed to install
-# ghc[binary] in system. terminfo package is linked
-# against ncurses.
-PREBUILT_BINARY_RDEPENDS="${PREBUILT_BINARY_DEPENDS}
- sys-libs/ncurses-compat:5
-"
-
-RDEPEND+="binary? ( ${PREBUILT_BINARY_RDEPENDS} )"
-
-DEPEND="${RDEPEND}
- doc? ( app-text/docbook-xml-dtd:4.2
- app-text/docbook-xml-dtd:4.5
- app-text/docbook-xsl-stylesheets
- >=dev-libs/libxslt-1.1.2 )
- !ghcbootstrap? ( ${PREBUILT_BINARY_DEPENDS} )"
-
-PDEPEND="!ghcbootstrap? ( =app-admin/haskell-updater-1.2* )"
-
-REQUIRED_USE="?? ( ghcbootstrap binary )"
-
-# haskell libraries built with cabal in configure mode, #515354
-QA_CONFIGURE_OPTIONS+=" --with-compiler --with-gcc"
-
-is_crosscompile() {
- [[ ${CHOST} != ${CTARGET} ]]
-}
-
-# returns tool prefix for crosscompiler.
-# Example:
-# CTARGET=armv7a-unknown-linux-gnueabi
-# CHOST=x86_64-pc-linux-gnu
-# "armv7a-unknown-linux-gnueabi-"
-# CTARGET=${CHOST}
-# ""
-# Used in tools and library prefix:
-# "${ED}"/usr/bin/$(cross)haddock
-# "${ED}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d"
-
-cross() {
- if is_crosscompile; then
- echo "${CTARGET}-"
- else
- echo ""
- fi
-}
-
-append-ghc-cflags() {
- local persistent compile assemble link
- local flag ghcflag
-
- for flag in $*; do
- case ${flag} in
- persistent) persistent="yes";;
- compile) compile="yes";;
- assemble) assemble="yes";;
- link) link="yes";;
- *)
- [[ ${compile} ]] && ghcflag="-optc${flag}" CFLAGS+=" ${flag}" && GHC_FLAGS+=" ${ghcflag}" &&
- [[ ${persistent} ]] && GHC_PERSISTENT_FLAGS+=" ${ghcflag}"
- [[ ${assemble} ]] && ghcflag="-opta${flag}" CFLAGS+=" ${flag}" && GHC_FLAGS+=" ${ghcflag}" &&
- [[ ${persistent} ]] && GHC_PERSISTENT_FLAGS+=" ${ghcflag}"
- [[ ${link} ]] && ghcflag="-optl${flag}" LDFLAGS+=" ${flag}" && GHC_FLAGS+=" ${ghcflag}" &&
- [[ ${persistent} ]] && GHC_PERSISTENT_FLAGS+=" ${ghcflag}"
- ;;
- esac
- done
-}
-
-# $1 - lib name (under libraries/)
-# $2 - lib version
-# example: bump_lib "transformers" "0.4.2.0"
-bump_lib() {
- local pn=$1 pv=$2
- local p=${pn}-${pv}
- local f
-
- einfo "Bumping ${pn} up to ${pv}"
-
- for f in ghc.mk GNUmakefile; do
- mv libraries/"${pn}"/$f "${WORKDIR}"/"${p}"/$f || die
- done
- mv libraries/"${pn}" "${WORKDIR}"/"${pn}".old || die
- mv "${WORKDIR}"/"${p}" libraries/"${pn}" || die
-}
-
-update_SRC_URI() {
- local p pn pv
- for p in "${BUMP_LIBRARIES[@]}"; do
- set -- $p
- pn=$1 pv=$2
-
- SRC_URI+=" https://hackage.haskell.org/package/${pn}-${pv}/${pn}-${pv}.tar.gz"
- done
-}
-
-update_SRC_URI
-
-bump_libs() {
- local p pn pv
- for p in "${BUMP_LIBRARIES[@]}"; do
- set -- $p
- pn=$1 pv=$2
-
- bump_lib "${pn}" "${pv}"
- done
-}
-
-ghc_setup_cflags() {
- if is_crosscompile; then
- export CFLAGS=${GHC_CFLAGS-"-O2 -pipe"}
- export LDFLAGS=${GHC_LDFLAGS-"-Wl,-O1"}
- einfo "Crosscompiling mode:"
- einfo " CHOST: ${CHOST}"
- einfo " CTARGET: ${CTARGET}"
- einfo " CFLAGS: ${CFLAGS}"
- einfo " LDFLAGS: ${LDFLAGS}"
- einfo " prefix: $(cross)"
- return
- fi
- # We need to be very careful with the CFLAGS we ask ghc to pass through to
- # gcc. There are plenty of flags which will make gcc produce output that
- # breaks ghc in various ways. The main ones we want to pass through are
- # -mcpu / -march flags. These are important for arches like alpha & sparc.
- # We also use these CFLAGS for building the C parts of ghc, ie the rts.
- strip-flags
- strip-unsupported-flags
-
- # Cmm can't parse line numbers #482086
- replace-flags -ggdb[3-9] -ggdb2
-
- GHC_FLAGS=""
- GHC_PERSISTENT_FLAGS=""
- for flag in ${CFLAGS}; do
- case ${flag} in
-
- # Ignore extra optimisation (ghc passes -O to gcc anyway)
- # -O2 and above break on too many systems
- -O*) ;;
-
- # Arch and ABI flags are what we're really after
- -m*) append-ghc-cflags compile assemble ${flag};;
-
- # Sometimes it's handy to see backtrace of RTS
- # to get an idea what happens there
- -g*) append-ghc-cflags compile ${flag};;
-
- # Ignore all other flags, including all -f* flags
- esac
- done
-
- for flag in ${LDFLAGS}; do
- append-ghc-cflags link ${flag}
- done
-
- # hardened-gcc needs to be disabled, because our prebuilt binaries/libraries
- # are not built with fPIC, bug #606666
- gcc-specs-pie && append-ghc-cflags persistent compile link -nopie
- tc-is-gcc && version_is_at_least 6.3 $(gcc-version) && if ! use ghcbootstrap; then
- # gcc-6.3 has support for -no-pie upstream, but spelling differs from
- # gentoo-specific '-nopie'. We enable it in non-bootstrap to allow
- # hardened users try '-pie' in USE=ghcbootstrap mode.
- append-ghc-cflags compile link -no-pie
- fi
- gcc-specs-ssp && append-ghc-cflags persistent compile -fno-stack-protector
-
- # prevent from failind building unregisterised ghc:
- # https://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg171602.html
- use ppc64 && append-ghc-cflags persistent compile -mminimal-toc
- # fix the similar issue as ppc64 TOC on ia64. ia64 has limited size of small data
- # currently ghc fails to build haddock
- # https://osdir.com/ml/gnu.binutils.bugs/2004-10/msg00050.html
- use ia64 && append-ghc-cflags persistent compile -G0
-}
-
-# substitutes string $1 to $2 in files $3 $4 ...
-relocate_path() {
- local from=$1
- local to=$2
- shift 2
- local file=
- for file in "$@"
- do
- sed -i -e "s|$from|$to|g" \
- "$file" || die "path relocation failed for '$file'"
- done
-}
-
-# changes hardcoded ghc paths and updates package index
-# $1 - new absolute root path
-relocate_ghc() {
- local to=$1
-
- # libdir for prebuilt binary and for current system may mismatch
- # It does for prefix installation for example: bug #476998
- local bin_ghc_prefix=${WORKDIR}/usr
- local bin_libpath=$(echo "${bin_ghc_prefix}"/lib*)
- local bin_libdir=${bin_libpath#${bin_ghc_prefix}/}
-
- # backup original script to use it later after relocation
- local gp_back="${T}/ghc-pkg-${GHC_PV}-orig"
- cp "${WORKDIR}/usr/bin/$(cross)ghc-pkg-${GHC_PV}" "$gp_back" || die "unable to backup ghc-pkg wrapper"
-
- if [[ ${bin_libdir} != $(get_libdir) ]]; then
- einfo "Relocating '${bin_libdir}' to '$(get_libdir)' (bug #476998)"
- # moving the dir itself is not strictly needed
- # but then USE=binary would result in installing
- # in '${bin_libdir}'
- mv "${bin_ghc_prefix}/${bin_libdir}" "${bin_ghc_prefix}/$(get_libdir)" || die
-
- relocate_path "/usr/${bin_libdir}" "/usr/$(get_libdir)" \
- "${WORKDIR}/usr/bin/$(cross)ghc-${GHC_PV}" \
- "${WORKDIR}/usr/bin/$(cross)ghci-${GHC_PV}" \
- "${WORKDIR}/usr/bin/$(cross)ghc-pkg-${GHC_PV}" \
- "${WORKDIR}/usr/bin/$(cross)hsc2hs" \
- "${WORKDIR}/usr/bin/$(cross)runghc-${GHC_PV}" \
- "$gp_back" \
- "${WORKDIR}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d/"*
- fi
-
- # Relocate from /usr to ${EPREFIX}/usr
- relocate_path "/usr" "${to}/usr" \
- "${WORKDIR}/usr/bin/$(cross)ghc-${GHC_PV}" \
- "${WORKDIR}/usr/bin/$(cross)ghci-${GHC_PV}" \
- "${WORKDIR}/usr/bin/$(cross)ghc-pkg-${GHC_PV}" \
- "${WORKDIR}/usr/bin/$(cross)hsc2hs" \
- "${WORKDIR}/usr/bin/$(cross)runghc-${GHC_PV}" \
- "${WORKDIR}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d/"*
-
- # this one we will use to regenerate cache
- # so it should point to current tree location
- relocate_path "/usr" "${WORKDIR}/usr" "$gp_back"
-
- if use prefix; then
- hprefixify "${bin_libpath}"/${PN}*/settings
- fi
-
- # regenerate the binary package cache
- "$gp_back" recache || die "failed to update cache after relocation"
- rm "$gp_back"
-}
-
-pkg_setup() {
- # quiet portage about prebuilt binaries
- use binary && QA_PREBUILT="*"
-
- [[ ${MERGE_TYPE} == binary ]] && return
-
- if use ghcbootstrap; then
- ewarn "You requested ghc bootstrapping, this is usually only used"
- ewarn "by Gentoo developers to make binary .tbz2 packages."
-
- [[ -z $(type -P ghc) ]] && \
- die "Could not find a ghc to bootstrap with."
- else
- if ! yet_binary; then
- eerror "Please try emerging with USE=ghcbootstrap and report build"
- eerror "sucess or failure to the haskell team (haskell@gentoo.org)"
- die "No binary available for '${ARCH}' arch yet, USE=ghcbootstrap"
- fi
- fi
-}
-
-src_unpack() {
- # Create the ${S} dir if we're using the binary version
- use binary && mkdir "${S}"
-
- # the Solaris and Darwin binaries from ghc (maeder) need to be
- # unpacked separately, so prevent them from being unpacked
- local ONLYA=${A}
- case ${CHOST} in
- *-darwin* | *-solaris*) ONLYA=${GHC_P}-src.tar.bz2 ;;
- esac
- unpack ${ONLYA}
-
- if [[ -d "${S}"/libraries/dph ]]; then
- # Sometimes dph libs get accidentally shipped with ghc
- # but they are not installed unless user requests it.
- # We never install them.
- elog "Removing 'libraries/dph'"
- rm -rf "${S}"/libraries/dph
- fi
-}
-
-src_prepare() {
- ghc_setup_cflags
-
- if ! use ghcbootstrap && [[ ${CHOST} != *-darwin* && ${CHOST} != *-solaris* ]]; then
- # Modify the wrapper script from the binary tarball to use GHC_PERSISTENT_FLAGS.
- # See bug #313635.
- sed -i -e "s|\"\$topdir\"|\"\$topdir\" ${GHC_PERSISTENT_FLAGS}|" \
- "${WORKDIR}/usr/bin/$(cross)ghc-${GHC_PV}"
-
- # allow hardened users use vanilla binary to bootstrap ghc
- # ghci uses mmap with rwx protection at it implements dynamic
- # linking on it's own (bug #299709)
- pax-mark -m "${WORKDIR}/usr/$(get_libdir)/$(cross)${GHC_P}/bin/ghc"
- fi
-
- if use binary; then
- if use prefix; then
- relocate_ghc "${EPREFIX}"
- fi
-
- # Move unpacked files to the expected place
- mv "${WORKDIR}/usr" "${S}"
- else
- if ! use ghcbootstrap; then
- case ${CHOST} in
- *-darwin* | *-solaris*)
- # UPDATE ME for ghc-7
- mkdir "${WORKDIR}"/ghc-bin-installer || die
- pushd "${WORKDIR}"/ghc-bin-installer > /dev/null || die
- use sparc-solaris && unpack ghc-6.10.4-sparc-sun-solaris2.tar.bz2
- use x86-solaris && unpack ghc-7.0.3-i386-unknown-solaris2.tar.bz2
- use x64-macos && unpack ghc-7.4.1-x86_64-apple-darwin.tar.bz2
- popd > /dev/null
-
- pushd "${WORKDIR}"/ghc-bin-installer/ghc-[67].?*.? > /dev/null || die
- # fix the binaries so they run, on Solaris we need an
- # LD_LIBRARY_PATH which has our prefix libdirs, on
- # Darwin we need to replace the frameworks with our libs
- # from the prefix fix before installation, because some
- # of the tools are actually used during configure/make
- if [[ ${CHOST} == *-solaris* ]] ; then
- export LD_LIBRARY_PATH="${EPREFIX}/$(get_libdir):${EPREFIX}/usr/$(get_libdir):${LD_LIBRARY_PATH}"
- elif [[ ${CHOST} == *-darwin* ]] ; then
- local readline_framework=GNUreadline.framework/GNUreadline
- local gmp_framework=/opt/local/lib/libgmp.10.dylib
- local ncurses_file=/opt/local/lib/libncurses.5.dylib
- for binary in $(scanmacho -BRE MH_EXECUTE -F '%F' .) ; do
- install_name_tool -change \
- ${readline_framework} \
- "${EPREFIX}"/lib/libreadline.dylib \
- ${binary} || die
- install_name_tool -change \
- ${gmp_framework} \
- "${EPREFIX}"/usr/lib/libgmp.dylib \
- ${binary} || die
- install_name_tool -change \
- ${ncurses_file} \
- "${EPREFIX}"/usr/lib/libncurses.dylib \
- ${binary} || die
- done
- # we don't do frameworks!
- sed -i \
- -e 's/\(frameworks = \)\["GMP"\]/\1[]/g' \
- -e 's/\(extraLibraries = \)\["m"\]/\1["m","gmp"]/g' \
- rts/package.conf.in || die
- fi
-
- # it is autoconf, but we really don't want to give it too
- # much arguments, in fact we do the make in-place anyway
- ./configure --prefix="${WORKDIR}"/usr || die
- make install || die
- popd > /dev/null
- ;;
- *)
- relocate_ghc "${WORKDIR}"
- ;;
- esac
- fi
-
- sed -i -e "s|\"\$topdir\"|\"\$topdir\" ${GHC_PERSISTENT_FLAGS}|" \
- "${S}/ghc/ghc.wrapper"
-
- cd "${S}" # otherwise epatch will break
-
- epatch "${FILESDIR}"/${PN}-7.0.4-CHOST-prefix.patch
-
- epatch "${FILESDIR}"/${PN}-7.8.2-cgen-constify.patch
- epatch "${FILESDIR}"/${PN}-7.8.3-prim-lm.patch
- epatch "${FILESDIR}"/${PN}-7.10.1-rc3-ghc-7.10-bootstrap.patch
- epatch "${FILESDIR}"/${PN}-7.10.3-relnotes.patch
- epatch "${FILESDIR}"/${PN}-7.10.3-hardfloat.patch
-
- # Since ${S}/packages does not include base, etc. add them to gen_contents_index
- sed -e 's@\(for REPO in .*\)@\1 base integer-gmp integer-gmp2 integer-simple template-haskell@' \
- -i libraries/gen_contents_index || die
-
- if use prefix; then
- # Make configure find docbook-xsl-stylesheets from Prefix
- sed -e '/^FP_DIR_DOCBOOK_XSL/s:\[.*\]:['"${EPREFIX}"'/usr/share/sgml/docbook/xsl-stylesheets/]:' \
- -i utils/haddock/doc/configure.ac || die
- fi
-
- bump_libs
-
- # as we have changed the build system
- eautoreconf
- fi
-}
-
-src_configure() {
- if ! use binary; then
- # initialize build.mk
- echo '# Gentoo changes' > mk/build.mk
-
- # Put docs into the right place, ie /usr/share/doc/ghc-${GHC_PV}
- echo "docdir = ${EPREFIX}/usr/share/doc/${P}" >> mk/build.mk
- echo "htmldir = ${EPREFIX}/usr/share/doc/${P}" >> mk/build.mk
-
- # We also need to use the GHC_FLAGS flags when building ghc itself
- echo "SRC_HC_OPTS+=${HCFLAGS} ${GHC_FLAGS}" >> mk/build.mk
- echo "SRC_CC_OPTS+=${CFLAGS}" >> mk/build.mk
- echo "SRC_LD_OPTS+=${LDFLAGS}" >> mk/build.mk
-
- # We can't depend on haddock except when bootstrapping when we
- # must build docs and include them into the binary .tbz2 package
- # app-text/dblatex is not in portage, can not build PDF or PS
- echo "BUILD_DOCBOOK_PDF = NO" >> mk/build.mk
- echo "BUILD_DOCBOOK_PS = NO" >> mk/build.mk
- if use doc; then
- echo "BUILD_DOCBOOK_HTML = YES" >> mk/build.mk
- else
- echo "BUILD_DOCBOOK_HTML = NO" >> mk/build.mk
- fi
-
- # this controls presence on 'xhtml' and 'haddock' in final install
- echo "HADDOCK_DOCS = YES" >> mk/build.mk
-
- # allows overriding build flavours for libraries:
- # v - vanilla (static libs)
- # p - profiled
- # dyn - shared libraries
- # example: GHC_LIBRARY_WAYS="v dyn"
- if [[ -n ${GHC_LIBRARY_WAYS} ]]; then
- echo "GhcLibWays=${GHC_LIBRARY_WAYS}" >> mk/build.mk
- fi
-
- # Get ghc from the unpacked binary .tbz2
- # except when bootstrapping we just pick ghc up off the path
- if ! use ghcbootstrap; then
- export PATH="${WORKDIR}/usr/bin:${PATH}"
- fi
-
- if use gmp; then
- echo "INTEGER_LIBRARY=integer-gmp2" >> mk/build.mk
- else
- echo "INTEGER_LIBRARY=integer-simple" >> mk/build.mk
- fi
-
- # don't strip anything. Very useful when stage2 SIGSEGVs on you
- echo "STRIP_CMD = :" >> mk/build.mk
-
- local econf_args=()
-
- # GHC embeds 'gcc' it was built by and uses it later.
- # Don't allow things like ccache or versioned binary slip.
- # We use stable thing across gcc upgrades.
- is_crosscompile || econf_args+=(--with-gcc=${CHOST}-gcc)
-
- if use ghcmakebinary; then
- # When building booting libary we are trying to
- # bundle or restrict most of external depends
- # with unstable ABI:
- # - embed libffi (default GHC behaviour)
- # - disable ncurses support for ghci (via haskeline)
- # https://bugs.gentoo.org/557478
- # - disable ncurses support for ghc-pkg
- echo "libraries/haskeline_CONFIGURE_OPTS += --flag=-terminfo" >> mk/build.mk
- echo "utils/ghc-pkg_HC_OPTS += -DBOOTSTRAPPING" >> mk/build.mk
- else
- econf_args+=(--with-system-libffi)
- econf_args+=(--with-ffi-includes=$($(tc-getPKG_CONFIG) libffi --cflags-only-I | sed -e 's@^-I@@'))
- fi
-
- elog "Final mk/build.mk:"
- cat mk/build.mk || die
-
- econf ${econf_args[@]} --enable-bootstrap-with-devel-snapshot
-
- if [[ ${PV} == *9999* ]]; then
- GHC_PV="$(grep 'S\[\"PACKAGE_VERSION\"\]' config.status | sed -e 's@^.*=\"\(.*\)\"@\1@')"
- GHC_P=${PN}-${GHC_PV}
- fi
- fi # ! use binary
-}
-
-src_compile() {
- if ! use binary; then
- # 1. build compiler binary first
- emake ghc/stage2/build/tmp/ghc-stage2
- # 2. pax-mark (bug #516430)
- pax-mark -m ghc/stage2/build/tmp/ghc-stage2
- # 3. and then all the rest
- emake all
- fi # ! use binary
-}
-
-src_install() {
- if use binary; then
- use prefix && mkdir -p "${ED}"
- mv "${S}/usr" "${ED}"
- else
-
- emake -j1 install DESTDIR="${D}"
- dodoc "distrib/README" "ANNOUNCE" "LICENSE" "VERSION"
-
- # rename ghc-shipped files to avoid collision
- # of external packages. Motivating example:
- # user had installed:
- # dev-lang/ghc-7.8.4-r0 (with transformers-0.3.0.0)
- # dev-haskell/transformers-0.4.2.0
- # then user tried to update to
- # dev-lang/ghc-7.8.4-r1 (with transformers-0.4.2.0)
- # this will lead to single .conf file collision.
- local shipped_conf renamed_conf
- local package_confdir="${ED}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d"
- for shipped_conf in "${package_confdir}"/*.conf; do
- # rename 'pkg-ver-id.conf' to 'pkg-ver-id-gentoo-${PF}.conf'
- renamed_conf=${shipped_conf%.conf}-gentoo-${PF}.conf
- mv "${shipped_conf}" "${renamed_conf}" || die
- done
-
- # remove link, but leave 'haddock-${GHC_P}'
- rm -f "${ED}"/usr/bin/$(cross)haddock
-
- if [[ ! -f "${S}/VERSION" ]]; then
- echo "${GHC_PV}" > "${S}/VERSION" \
- || die "Could not create file ${S}/VERSION"
- fi
- if ! is_crosscompile; then
- newbashcomp "${FILESDIR}"/ghc-bash-completion ghc-pkg
- newbashcomp utils/completion/ghc.bash ghc
- fi
- fi
-
- # path to the package.cache
- local package_confdir="${ED}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d"
- PKGCACHE="${package_confdir}"/package.cache
- # copy the package.conf.d, including timestamp, save it so we can help
- # users that have a broken package.conf.d
- cp -pR "${package_confdir}"{,.initial} || die "failed to backup intial package.conf.d"
-
- # copy the package.conf, including timestamp, save it so we later can put it
- # back before uninstalling, or when upgrading.
- cp -p "${PKGCACHE}"{,.shipped} \
- || die "failed to copy package.conf.d/package.cache"
-}
-
-pkg_preinst() {
- # have we got an earlier version of ghc installed?
- if has_version "<${CATEGORY}/${PF}"; then
- haskell_updater_warn="1"
- fi
-}
-
-pkg_postinst() {
- ghc-reregister
-
- # path to the package.cache
- PKGCACHE="${EROOT}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d/package.cache"
-
- # give the cache a new timestamp, it must be as recent as
- # the package.conf.d directory.
- touch "${PKGCACHE}"
-
- if [[ "${haskell_updater_warn}" == "1" ]]; then
- ewarn
- ewarn "\e[1;31m************************************************************************\e[0m"
- ewarn
- ewarn "You have just upgraded from an older version of GHC."
- ewarn "You may have to run"
- ewarn " 'haskell-updater'"
- ewarn "to rebuild all ghc-based Haskell libraries."
- ewarn
- ewarn "\e[1;31m************************************************************************\e[0m"
- ewarn
- fi
-}
-
-pkg_prerm() {
- PKGCACHE="${EROOT}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d/package.cache"
- rm -rf "${PKGCACHE}"
-
- cp -p "${PKGCACHE}"{.shipped,}
-}
-
-pkg_postrm() {
- ghc-package_pkg_postrm
-}
diff --git a/dev-lang/ghc/ghc-7.8.4.ebuild b/dev-lang/ghc/ghc-7.8.4.ebuild
deleted file mode 100644
index 89b41d258710..000000000000
--- a/dev-lang/ghc/ghc-7.8.4.ebuild
+++ /dev/null
@@ -1,600 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-
-# to make make a crosscompiler use crossdev and symlink ghc tree into
-# cross overlay. result would look like 'cross-sparc-unknown-linux-gnu/ghc'
-#
-# 'CTARGET' definition and 'is_crosscompile' are taken from 'toolchain.eclass'
-export CTARGET=${CTARGET:-${CHOST}}
-if [[ ${CTARGET} = ${CHOST} ]] ; then
- if [[ ${CATEGORY/cross-} != ${CATEGORY} ]] ; then
- export CTARGET=${CATEGORY/cross-}
- fi
-fi
-
-inherit autotools bash-completion-r1 eutils flag-o-matic ghc-package
-inherit multilib pax-utils toolchain-funcs versionator
-
-DESCRIPTION="The Glasgow Haskell Compiler"
-HOMEPAGE="https://www.haskell.org/ghc/"
-
-# we don't have any binaries yet
-arch_binaries=""
-
-# sorted!
-arch_binaries="$arch_binaries alpha? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-alpha.tbz2 )"
-#arch_binaries="$arch_binaries arm? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-arm.tbz2 )"
-arch_binaries="$arch_binaries amd64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-amd64.tbz2 )"
-arch_binaries="$arch_binaries ia64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ia64.tbz2 )"
-arch_binaries="$arch_binaries ppc? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ppc.tbz2 )"
-arch_binaries="$arch_binaries ppc64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ppc64.tbz2 )"
-arch_binaries="$arch_binaries sparc? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-sparc.tbz2 )"
-arch_binaries="$arch_binaries x86? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-x86.tbz2 )"
-
-# various ports:
-#arch_binaries="$arch_binaries x86-fbsd? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-x86-fbsd.tbz2 )"
-
-# 0 - yet
-yet_binary() {
- case "${ARCH}" in
- alpha) return 0 ;;
- #arm)
- # ewarn "ARM binary is built on armv5tel-eabi toolchain. Use with caution."
- # return 0
- #;;
- amd64) return 0 ;;
- ia64) return 0 ;;
- ppc) return 0 ;;
- ppc64) return 0 ;;
- sparc) return 0 ;;
- x86) return 0 ;;
- *) return 1 ;;
- esac
-}
-
-GHC_PV=${PV}
-#GHC_PV=7.8.3.20141119 # uncomment only for -rc ebuilds
-GHC_P=${PN}-${GHC_PV} # using ${P} is almost never correct
-
-SRC_URI="!binary? ( https://downloads.haskell.org/~ghc/${PV/_rc/-rc}/${GHC_P}-src.tar.bz2 )"
-S="${WORKDIR}"/${GHC_P}
-
-[[ -n $arch_binaries ]] && SRC_URI+=" !ghcbootstrap? ( $arch_binaries )"
-SRC_URI+=" https://dev.gentoo.org/~slyfox/distfiles/${P}-ia64-CLOSUREs-regenerated.patch.gz"
-LICENSE="BSD"
-SLOT="0/${PV}"
-KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
-IUSE="doc ghcbootstrap ghcmakebinary +gmp"
-IUSE+=" binary"
-IUSE+=" elibc_glibc" # system stuff
-
-RDEPEND="
- >=dev-lang/perl-5.6.1
- >=dev-libs/gmp-5:=
- sys-libs/ncurses:0=[unicode]
- !ghcmakebinary? ( dev-libs/libffi:= )
-"
-
-PREBUILT_BINARY_DEPENDS="
- !prefix? ( elibc_glibc? ( >=sys-libs/glibc-2.17 ) )
- sys-libs/ncurses-compat:5
-"
-
-RDEPEND+="binary? ( ${PREBUILT_BINARY_DEPENDS} )"
-
-DEPEND="${RDEPEND}
- ghcbootstrap? (
- doc? ( app-text/docbook-xml-dtd:4.2
- app-text/docbook-xml-dtd:4.5
- app-text/docbook-xsl-stylesheets
- >=dev-libs/libxslt-1.1.2 ) )
- !ghcbootstrap? ( ${PREBUILT_BINARY_DEPENDS} )"
-
-PDEPEND="!ghcbootstrap? ( =app-admin/haskell-updater-1.2* )"
-
-REQUIRED_USE="?? ( ghcbootstrap binary )"
-
-# haskell libraries built with cabal in configure mode, #515354
-QA_CONFIGURE_OPTIONS+=" --with-compiler --with-gcc"
-
-is_crosscompile() {
- [[ ${CHOST} != ${CTARGET} ]]
-}
-
-append-ghc-cflags() {
- local persistent compile assemble link
- local flag ghcflag
-
- for flag in $*; do
- case ${flag} in
- persistent) persistent="yes";;
- compile) compile="yes";;
- assemble) assemble="yes";;
- link) link="yes";;
- *)
- [[ ${compile} ]] && ghcflag="-optc${flag}" CFLAGS+=" ${flag}" && GHC_FLAGS+=" ${ghcflag}" &&
- [[ ${persistent} ]] && GHC_PERSISTENT_FLAGS+=" ${ghcflag}"
- [[ ${assemble} ]] && ghcflag="-opta${flag}" CFLAGS+=" ${flag}" && GHC_FLAGS+=" ${ghcflag}" &&
- [[ ${persistent} ]] && GHC_PERSISTENT_FLAGS+=" ${ghcflag}"
- [[ ${link} ]] && ghcflag="-optl${flag}" LDFLAGS+=" ${flag}" && GHC_FLAGS+=" ${ghcflag}" &&
- [[ ${persistent} ]] && GHC_PERSISTENT_FLAGS+=" ${ghcflag}"
- ;;
- esac
- done
-}
-
-ghc_setup_cflags() {
- if is_crosscompile; then
- export CFLAGS=${GHC_CFLAGS-"-O2 -pipe"}
- export LDFLAGS=${GHC_LDFLAGS-"-Wl,-O1"}
- einfo "Crosscompiling mode:"
- einfo " CHOST: ${CHOST}"
- einfo " CTARGET: ${CTARGET}"
- einfo " CFLAGS: ${CFLAGS}"
- einfo " LDFLAGS: ${LDFLAGS}"
- return
- fi
- # We need to be very careful with the CFLAGS we ask ghc to pass through to
- # gcc. There are plenty of flags which will make gcc produce output that
- # breaks ghc in various ways. The main ones we want to pass through are
- # -mcpu / -march flags. These are important for arches like alpha & sparc.
- # We also use these CFLAGS for building the C parts of ghc, ie the rts.
- strip-flags
- strip-unsupported-flags
-
- # Cmm can't parse line numbers #482086
- replace-flags -ggdb[3-9] -ggdb2
-
- GHC_FLAGS=""
- GHC_PERSISTENT_FLAGS=""
- for flag in ${CFLAGS}; do
- case ${flag} in
-
- # Ignore extra optimisation (ghc passes -O to gcc anyway)
- # -O2 and above break on too many systems
- -O*) ;;
-
- # Arch and ABI flags are what we're really after
- -m*) append-ghc-cflags compile assemble ${flag};;
-
- # Sometimes it's handy to see backtrace of RTS
- # to get an idea what happens there
- -g*) append-ghc-cflags compile ${flag};;
-
- # Ignore all other flags, including all -f* flags
- esac
- done
-
- for flag in ${LDFLAGS}; do
- append-ghc-cflags link ${flag}
- done
-
- # hardened-gcc needs to be disabled, because the mangler doesn't accept
- # its output.
- gcc-specs-pie && append-ghc-cflags persistent compile link -nopie
- gcc-specs-ssp && append-ghc-cflags persistent compile -fno-stack-protector
-
- # prevent from failind building unregisterised ghc:
- # https://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg171602.html
- use ppc64 && append-ghc-cflags persistent compile -mminimal-toc
- # fix the similar issue as ppc64 TOC on ia64. ia64 has limited size of small data
- # currently ghc fails to build haddock
- # https://osdir.com/ml/gnu.binutils.bugs/2004-10/msg00050.html
- use ia64 && append-ghc-cflags persistent compile -G0
-}
-
-# substitutes string $1 to $2 in files $3 $4 ...
-relocate_path() {
- local from=$1
- local to=$2
- shift 2
- local file=
- for file in "$@"
- do
- sed -i -e "s|$from|$to|g" \
- "$file" || die "path relocation failed for '$file'"
- done
-}
-
-# changes hardcoded ghc paths and updates package index
-# $1 - new absolute root path
-relocate_ghc() {
- local to=$1
-
- # libdir for prebuilt binary and for current system may mismatch
- # It does for prefix installation for example: bug #476998
- local bin_ghc_prefix=${WORKDIR}/usr
- local bin_libpath=$(echo "${bin_ghc_prefix}"/lib*)
- local bin_libdir=${bin_libpath#${bin_ghc_prefix}/}
-
- # backup original script to use it later after relocation
- local gp_back="${T}/ghc-pkg-${GHC_PV}-orig"
- cp "${WORKDIR}/usr/bin/ghc-pkg-${GHC_PV}" "$gp_back" || die "unable to backup ghc-pkg wrapper"
-
- if [[ ${bin_libdir} != $(get_libdir) ]]; then
- einfo "Relocating '${bin_libdir}' to '$(get_libdir)' (bug #476998)"
- # moving the dir itself is not strictly needed
- # but then USE=binary would result in installing
- # in '${bin_libdir}'
- mv "${bin_ghc_prefix}/${bin_libdir}" "${bin_ghc_prefix}/$(get_libdir)" || die
-
- relocate_path "/usr/${bin_libdir}" "/usr/$(get_libdir)" \
- "${WORKDIR}/usr/bin/ghc-${GHC_PV}" \
- "${WORKDIR}/usr/bin/ghci-${GHC_PV}" \
- "${WORKDIR}/usr/bin/ghc-pkg-${GHC_PV}" \
- "${WORKDIR}/usr/bin/hsc2hs" \
- "${WORKDIR}/usr/bin/runghc-${GHC_PV}" \
- "$gp_back" \
- "${WORKDIR}/usr/$(get_libdir)/${GHC_P}/package.conf.d/"*
- fi
-
- # Relocate from /usr to ${EPREFIX}/usr
- relocate_path "/usr" "${to}/usr" \
- "${WORKDIR}/usr/bin/ghc-${GHC_PV}" \
- "${WORKDIR}/usr/bin/ghci-${GHC_PV}" \
- "${WORKDIR}/usr/bin/ghc-pkg-${GHC_PV}" \
- "${WORKDIR}/usr/bin/hsc2hs" \
- "${WORKDIR}/usr/bin/runghc-${GHC_PV}" \
- "${WORKDIR}/usr/$(get_libdir)/${GHC_P}/package.conf.d/"*
-
- # this one we will use to regenerate cache
- # so it should point to current tree location
- relocate_path "/usr" "${WORKDIR}/usr" "$gp_back"
-
- # regenerate the binary package cache
- "$gp_back" recache || die "failed to update cache after relocation"
- rm "$gp_back"
-}
-
-pkg_setup() {
- # quiet portage about prebuilt binaries
- use binary && QA_PREBUILT="*"
-
- [[ ${MERGE_TYPE} == binary ]] && return
-
- if use ghcbootstrap; then
- ewarn "You requested ghc bootstrapping, this is usually only used"
- ewarn "by Gentoo developers to make binary .tbz2 packages."
-
- [[ -z $(type -P ghc) ]] && \
- die "Could not find a ghc to bootstrap with."
- else
- if ! yet_binary; then
- eerror "Please try emerging with USE=ghcbootstrap and report build"
- eerror "sucess or failure to the haskell team (haskell@gentoo.org)"
- die "No binary available for '${ARCH}' arch yet, USE=ghcbootstrap"
- fi
- fi
-}
-
-src_unpack() {
- # Create the ${S} dir if we're using the binary version
- use binary && mkdir "${S}"
-
- # the Solaris and Darwin binaries from ghc (maeder) need to be
- # unpacked separately, so prevent them from being unpacked
- local ONLYA=${A}
- case ${CHOST} in
- *-darwin* | *-solaris*) ONLYA=${GHC_P}-src.tar.bz2 ;;
- esac
- unpack ${ONLYA}
-
- if [[ -d "${S}"/libraries/dph ]]; then
- # Sometimes dph libs get accidentally shipped with ghc
- # but they are not installed unless user requests it.
- # We never install them.
- elog "Removing 'libraries/dph'"
- rm -rf "${S}"/libraries/dph
- fi
-}
-
-src_prepare() {
- ghc_setup_cflags
-
- if ! use ghcbootstrap && [[ ${CHOST} != *-darwin* && ${CHOST} != *-solaris* ]]; then
- # Modify the wrapper script from the binary tarball to use GHC_PERSISTENT_FLAGS.
- # See bug #313635.
- sed -i -e "s|\"\$topdir\"|\"\$topdir\" ${GHC_PERSISTENT_FLAGS}|" \
- "${WORKDIR}/usr/bin/ghc-${GHC_PV}"
-
- # allow hardened users use vanilla binary to bootstrap ghc
- # ghci uses mmap with rwx protection at it implements dynamic
- # linking on it's own (bug #299709)
- pax-mark -m "${WORKDIR}/usr/$(get_libdir)/${GHC_P}/bin/ghc"
- fi
-
- if use binary; then
- if use prefix; then
- relocate_ghc "${EPREFIX}"
- fi
-
- # Move unpacked files to the expected place
- mv "${WORKDIR}/usr" "${S}"
- else
- if ! use ghcbootstrap; then
- case ${CHOST} in
- *-darwin* | *-solaris*)
- # UPDATE ME for ghc-7
- mkdir "${WORKDIR}"/ghc-bin-installer || die
- pushd "${WORKDIR}"/ghc-bin-installer > /dev/null || die
- use sparc-solaris && unpack ghc-6.10.4-sparc-sun-solaris2.tar.bz2
- use x86-solaris && unpack ghc-7.0.3-i386-unknown-solaris2.tar.bz2
- use x64-macos && unpack ghc-7.4.1-x86_64-apple-darwin.tar.bz2
- popd > /dev/null
-
- pushd "${WORKDIR}"/ghc-bin-installer/ghc-[67].?*.? > /dev/null || die
- # fix the binaries so they run, on Solaris we need an
- # LD_LIBRARY_PATH which has our prefix libdirs, on
- # Darwin we need to replace the frameworks with our libs
- # from the prefix fix before installation, because some
- # of the tools are actually used during configure/make
- if [[ ${CHOST} == *-solaris* ]] ; then
- export LD_LIBRARY_PATH="${EPREFIX}/$(get_libdir):${EPREFIX}/usr/$(get_libdir):${LD_LIBRARY_PATH}"
- elif [[ ${CHOST} == *-darwin* ]] ; then
- local readline_framework=GNUreadline.framework/GNUreadline
- local gmp_framework=/opt/local/lib/libgmp.10.dylib
- local ncurses_file=/opt/local/lib/libncurses.5.dylib
- for binary in $(scanmacho -BRE MH_EXECUTE -F '%F' .) ; do
- install_name_tool -change \
- ${readline_framework} \
- "${EPREFIX}"/lib/libreadline.dylib \
- ${binary} || die
- install_name_tool -change \
- ${gmp_framework} \
- "${EPREFIX}"/usr/lib/libgmp.dylib \
- ${binary} || die
- install_name_tool -change \
- ${ncurses_file} \
- "${EPREFIX}"/usr/lib/libncurses.dylib \
- ${binary} || die
- done
- # we don't do frameworks!
- sed -i \
- -e 's/\(frameworks = \)\["GMP"\]/\1[]/g' \
- -e 's/\(extraLibraries = \)\["m"\]/\1["m","gmp"]/g' \
- rts/package.conf.in || die
- fi
-
- # it is autoconf, but we really don't want to give it too
- # much arguments, in fact we do the make in-place anyway
- ./configure --prefix="${WORKDIR}"/usr || die
- make install || die
- popd > /dev/null
- ;;
- *)
- relocate_ghc "${WORKDIR}"
- ;;
- esac
- fi
-
- sed -i -e "s|\"\$topdir\"|\"\$topdir\" ${GHC_PERSISTENT_FLAGS}|" \
- "${S}/ghc/ghc.wrapper"
-
- cd "${S}" # otherwise epatch will break
-
- epatch "${FILESDIR}"/${PN}-7.0.4-CHOST-prefix.patch
-
- epatch "${FILESDIR}"/${PN}-7.8.1_rc1-libbfd.patch
-
- epatch "${FILESDIR}"/${PN}-7.8.2-cgen-constify.patch
- epatch "${FILESDIR}"/${PN}-7.8.3-prim-lm.patch
- # bug 518734
- epatch "${FILESDIR}"/${PN}-7.6.3-preserve-inplace-xattr.patch
- # fix threaded runtime on ia64
- epatch "${FILESDIR}"/${PN}-7.8.4-ia64-CLOSUREs.patch
- epatch "${WORKDIR}"/${PN}-7.8.4-ia64-CLOSUREs-regenerated.patch
-
- # upstream backports
- epatch "${FILESDIR}"/${PN}-7.8.3-linker-warn.patch
- epatch "${FILESDIR}"/${PN}-7.8.3-pic-sparc.patch
- epatch "${FILESDIR}"/${PN}-7.8.3-ppc32-fPIC.patch
- epatch "${FILESDIR}"/${PN}-7.8.4-gold.patch
-
- if use prefix; then
- # Make configure find docbook-xsl-stylesheets from Prefix
- sed -e '/^FP_DIR_DOCBOOK_XSL/s:\[.*\]:['"${EPREFIX}"'/usr/share/sgml/docbook/xsl-stylesheets/]:' \
- -i utils/haddock/doc/configure.ac || die
- fi
-
- # as we have changed the build system
- eautoreconf
- fi
-}
-
-src_configure() {
- if ! use binary; then
- # initialize build.mk
- echo '# Gentoo changes' > mk/build.mk
-
- # Put docs into the right place, ie /usr/share/doc/ghc-${GHC_PV}
- echo "docdir = ${EPREFIX}/usr/share/doc/${P}" >> mk/build.mk
- echo "htmldir = ${EPREFIX}/usr/share/doc/${P}" >> mk/build.mk
-
- # We also need to use the GHC_FLAGS flags when building ghc itself
- echo "SRC_HC_OPTS+=${GHC_FLAGS}" >> mk/build.mk
- echo "SRC_CC_OPTS+=${CFLAGS}" >> mk/build.mk
- echo "SRC_LD_OPTS+=${LDFLAGS}" >> mk/build.mk
-
- # We can't depend on haddock except when bootstrapping when we
- # must build docs and include them into the binary .tbz2 package
- # app-text/dblatex is not in portage, can not build PDF or PS
- if use ghcbootstrap && use doc; then
- echo "BUILD_DOCBOOK_PDF = NO" >> mk/build.mk
- echo "BUILD_DOCBOOK_PS = NO" >> mk/build.mk
- echo "BUILD_DOCBOOK_HTML = YES" >> mk/build.mk
- echo "HADDOCK_DOCS = YES" >> mk/build.mk
- else
- echo "BUILD_DOCBOOK_PDF = NO" >> mk/build.mk
- echo "BUILD_DOCBOOK_PS = NO" >> mk/build.mk
- echo "BUILD_DOCBOOK_HTML = NO" >> mk/build.mk
- echo "HADDOCK_DOCS = NO" >> mk/build.mk
- fi
-
- # allows overriding build flavours for libraries:
- # v - vanilla (static libs)
- # p - profiled
- # dyn - shared libraries
- # example: GHC_LIBRARY_WAYS="v dyn"
- if [[ -n ${GHC_LIBRARY_WAYS} ]]; then
- echo "GhcLibWays=${GHC_LIBRARY_WAYS}" >> mk/build.mk
- fi
-
- # Get ghc from the unpacked binary .tbz2
- # except when bootstrapping we just pick ghc up off the path
- if ! use ghcbootstrap; then
- export PATH="${WORKDIR}/usr/bin:${PATH}"
- fi
-
- if use gmp; then
- echo "INTEGER_LIBRARY=integer-gmp" >> mk/build.mk
- else
- echo "INTEGER_LIBRARY=integer-simple" >> mk/build.mk
- fi
-
- # don't strip anything. Very useful when stage2 SIGSEGVs on you
- echo "STRIP_CMD = :" >> mk/build.mk
-
- local econf_args=()
-
- # GHC embeds 'gcc' it was built by and uses it later.
- # Don't allow things like ccache or versioned binary slip.
- # We use stable thing across gcc upgrades.
- is_crosscompile || econf_args+=(--with-gcc=${CHOST}-gcc)
-
- if ! use ghcmakebinary; then
- econf_args+=(--with-system-libffi)
- econf_args+=(--with-ffi-includes=$($(tc-getPKG_CONFIG) libffi --cflags-only-I | sed -e 's@^-I@@'))
- fi
-
- econf ${econf_args[@]} --enable-bootstrap-with-devel-snapshot
-
- if [[ ${PV} == *9999* ]]; then
- GHC_PV="$(grep 'S\[\"PACKAGE_VERSION\"\]' config.status | sed -e 's@^.*=\"\(.*\)\"@\1@')"
- GHC_P=${PN}-${GHC_PV}
- fi
- GHC_TPF="$(grep 'S\[\"TargetPlatformFull\"\]' config.status | sed -e 's@^.*=\"\(.*\)\"@\1@')"
- fi # ! use binary
-}
-
-src_compile() {
- if ! use binary; then
- # 1. build compiler binary first
- emake ghc/stage2/build/tmp/ghc-stage2
- # 2. pax-mark (bug #516430)
- pax-mark -m ghc/stage2/build/tmp/ghc-stage2
- # 3. and then all the rest
- emake all
- fi # ! use binary
-}
-
-src_install() {
- if use binary; then
- use prefix && mkdir -p "${ED}"
- mv "${S}/usr" "${ED}"
-
- # Remove the docs if not requested
- if ! use doc; then
- rm -rf "${ED}/usr/share/doc/${P}/*/" \
- "${ED}/usr/share/doc/${P}/*.html" \
- || die "could not remove docs (P vs PF revision mismatch?)"
- fi
- else
- # We only build docs if we were bootstrapping, otherwise
- # we copy them out of the unpacked binary .tbz2
- if use doc && ! use ghcbootstrap; then
- mkdir -p "${ED}/usr/share/doc"
- mv "${WORKDIR}/usr/share/doc/${P}" "${ED}/usr/share/doc" \
- || die "failed to copy docs"
- else
- dodoc "${S}/distrib/README" "${S}/ANNOUNCE" "${S}/LICENSE" "${S}/VERSION"
- fi
-
- emake -j1 install DESTDIR="${D}"
-
- # remove link, but leave 'haddock-${GHC_P}'
- rm -f "${ED}"/usr/bin/haddock
-
- if [[ ! -f "${S}/VERSION" ]]; then
- echo "${GHC_PV}" > "${S}/VERSION" \
- || die "Could not create file ${S}/VERSION"
- fi
- newbashcomp "${FILESDIR}/ghc-bash-completion" ghc-pkg
-
- fi
-
- # path to the package.cache
- local package_confdir="${ED}/usr/$(get_libdir)/${GHC_P}/package.conf.d"
- PKGCACHE="${package_confdir}"/package.cache
- # copy the package.conf.d, including timestamp, save it so we can help
- # users that have a broken package.conf.d
- cp -pR "${package_confdir}"{,.initial} || die "failed to backup intial package.conf.d"
-
- # copy the package.conf, including timestamp, save it so we later can put it
- # back before uninstalling, or when upgrading.
- cp -p "${PKGCACHE}"{,.shipped} \
- || die "failed to copy package.conf.d/package.cache"
-}
-
-pkg_preinst() {
- # have we got an earlier version of ghc installed?
- if has_version "<${CATEGORY}/${PF}"; then
- haskell_updater_warn="1"
- fi
-}
-
-pkg_postinst() {
- ghc-reregister
-
- # path to the package.cache
- PKGCACHE="${EROOT}/usr/$(get_libdir)/${GHC_P}/package.conf.d/package.cache"
-
- # give the cache a new timestamp, it must be as recent as
- # the package.conf.d directory.
- touch "${PKGCACHE}"
-
- if [[ "${haskell_updater_warn}" == "1" ]]; then
- ewarn
- ewarn "\e[1;31m************************************************************************\e[0m"
- ewarn
- ewarn "You have just upgraded from an older version of GHC."
- ewarn "You may have to run"
- ewarn " 'haskell-updater --upgrade'"
- ewarn "to rebuild all ghc-based Haskell libraries."
- ewarn
- ewarn "\e[1;31m************************************************************************\e[0m"
- ewarn
- fi
-}
-
-pkg_prerm() {
- # Be very careful here... Call order when upgrading is (according to PMS):
- # * src_install for new package
- # * pkg_preinst for new package
- # * pkg_postinst for new package
- # * pkg_prerm for the package being replaced
- # * pkg_postrm for the package being replaced
- # so you'll actually be touching the new packages files, not the one you
- # uninstall, due to that or installation directory ${GHC_P} will be the same for
- # both packages.
-
- # Call order for reinstalling is (according to PMS):
- # * src_install
- # * pkg_preinst
- # * pkg_prerm for the package being replaced
- # * pkg_postrm for the package being replaced
- # * pkg_postinst
-
- # Overwrite the modified package.cache with a copy of the
- # original one, so that it will be removed during uninstall.
-
- PKGCACHE="${EROOT}/usr/$(get_libdir)/${GHC_P}/package.conf.d/package.cache"
- rm -rf "${PKGCACHE}"
-
- cp -p "${PKGCACHE}"{.shipped,}
-}
-
-pkg_postrm() {
- ghc-package_pkg_postrm
-}
diff --git a/dev-lang/ghc/ghc-8.0.2.ebuild b/dev-lang/ghc/ghc-8.0.2.ebuild
deleted file mode 100644
index ede481d98eaf..000000000000
--- a/dev-lang/ghc/ghc-8.0.2.ebuild
+++ /dev/null
@@ -1,672 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-
-# to make make a crosscompiler use crossdev and symlink ghc tree into
-# cross overlay. result would look like 'cross-sparc-unknown-linux-gnu/ghc'
-#
-# 'CTARGET' definition and 'is_crosscompile' are taken from 'toolchain.eclass'
-export CTARGET=${CTARGET:-${CHOST}}
-if [[ ${CTARGET} = ${CHOST} ]] ; then
- if [[ ${CATEGORY/cross-} != ${CATEGORY} ]] ; then
- export CTARGET=${CATEGORY/cross-}
- fi
-fi
-
-inherit autotools bash-completion-r1 eutils flag-o-matic ghc-package
-inherit multilib pax-utils toolchain-funcs versionator prefix
-inherit check-reqs
-DESCRIPTION="The Glasgow Haskell Compiler"
-HOMEPAGE="https://www.haskell.org/ghc/"
-
-# we don't have any binaries yet
-arch_binaries=""
-
-# sorted!
-arch_binaries="$arch_binaries alpha? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-alpha.tbz2 )"
-#arch_binaries="$arch_binaries arm? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-arm.tbz2 )"
-arch_binaries="$arch_binaries arm64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-arm64.tbz2 )"
-arch_binaries="$arch_binaries amd64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-x86_64-pc-linux-gnu.tbz2 )"
-arch_binaries="$arch_binaries ia64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ia64-unknown-linux-gnu.tbz2 )"
-arch_binaries="$arch_binaries ppc? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ppc.tbz2 )"
-arch_binaries="$arch_binaries ppc64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ppc64.tbz2 )"
-#arch_binaries="$arch_binaries sparc? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-sparc.tbz2 )"
-arch_binaries="$arch_binaries x86? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-i686-pc-linux-gnu.tbz2 )"
-
-# various ports:
-#arch_binaries="$arch_binaries x86-fbsd? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-x86-fbsd.tbz2 )"
-
-# 0 - yet
-yet_binary() {
- case "${ARCH}" in
- alpha) return 0 ;;
- arm64) return 0 ;;
- #arm)
- # ewarn "ARM binary is built on armv5tel-eabi toolchain. Use with caution."
- # return 0
- #;;
- amd64) return 0 ;;
- ia64) return 0 ;;
- ppc) return 0 ;;
- ppc64) return 0 ;;
- #sparc) return 0 ;;
- x86) return 0 ;;
- *) return 1 ;;
- esac
-}
-
-GHC_PV=${PV}
-#GHC_PV=8.0.1.20161213 # uncomment only for -rc ebuilds
-GHC_P=${PN}-${GHC_PV} # using ${P} is almost never correct
-
-SRC_URI="!binary? ( https://downloads.haskell.org/~ghc/${PV/_rc/-rc}/${GHC_P}-src.tar.xz )"
-S="${WORKDIR}"/${GHC_P}
-
-[[ -n $arch_binaries ]] && SRC_URI+=" !ghcbootstrap? ( $arch_binaries )"
-
-BUMP_LIBRARIES=(
- # "hackage-name hackage-version"
-)
-
-LICENSE="BSD"
-SLOT="0/${PV}"
-KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
-IUSE="doc ghcbootstrap ghcmakebinary +gmp +profile"
-IUSE+=" binary"
-
-RDEPEND="
- >=dev-lang/perl-5.6.1
- dev-libs/gmp:0=
- sys-libs/ncurses:0=[unicode]
- !ghcmakebinary? ( dev-libs/libffi:= )
-"
-
-# This set of dependencies is needed to run
-# prebuilt ghc. We specifically avoid ncurses
-# dependency with:
-# utils/ghc-pkg_HC_OPTS += -DBOOTSTRAPPING
-PREBUILT_BINARY_DEPENDS="
- !prefix? ( elibc_glibc? ( >=sys-libs/glibc-2.17 ) )
-"
-# This set of dependencies is needed to install
-# ghc[binary] in system. terminfo package is linked
-# against ncurses.
-PREBUILT_BINARY_RDEPENDS="${PREBUILT_BINARY_DEPENDS}
- sys-libs/ncurses:0/6
-"
-
-RDEPEND+="binary? ( ${PREBUILT_BINARY_RDEPENDS} )"
-
-DEPEND="${RDEPEND}
- doc? ( app-text/docbook-xml-dtd:4.2
- app-text/docbook-xml-dtd:4.5
- app-text/docbook-xsl-stylesheets
- dev-python/sphinx
- >=dev-libs/libxslt-1.1.2 )
- !ghcbootstrap? ( ${PREBUILT_BINARY_DEPENDS} )"
-
-PDEPEND="!ghcbootstrap? ( >=app-admin/haskell-updater-1.2 )"
-
-REQUIRED_USE="?? ( ghcbootstrap binary )"
-
-# haskell libraries built with cabal in configure mode, #515354
-QA_CONFIGURE_OPTIONS+=" --with-compiler --with-gcc"
-
-is_crosscompile() {
- [[ ${CHOST} != ${CTARGET} ]]
-}
-
-# returns tool prefix for crosscompiler.
-# Example:
-# CTARGET=armv7a-unknown-linux-gnueabi
-# CHOST=x86_64-pc-linux-gnu
-# "armv7a-unknown-linux-gnueabi-"
-# CTARGET=${CHOST}
-# ""
-# Used in tools and library prefix:
-# "${ED}"/usr/bin/$(cross)haddock
-# "${ED}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d"
-
-cross() {
- if is_crosscompile; then
- echo "${CTARGET}-"
- else
- echo ""
- fi
-}
-
-append-ghc-cflags() {
- local persistent compile assemble link
- local flag ghcflag
-
- for flag in $*; do
- case ${flag} in
- persistent) persistent="yes";;
- compile) compile="yes";;
- assemble) assemble="yes";;
- link) link="yes";;
- *)
- [[ ${compile} ]] && ghcflag="-optc${flag}" CFLAGS+=" ${flag}" && GHC_FLAGS+=" ${ghcflag}" &&
- [[ ${persistent} ]] && GHC_PERSISTENT_FLAGS+=" ${ghcflag}"
- [[ ${assemble} ]] && ghcflag="-opta${flag}" CFLAGS+=" ${flag}" && GHC_FLAGS+=" ${ghcflag}" &&
- [[ ${persistent} ]] && GHC_PERSISTENT_FLAGS+=" ${ghcflag}"
- [[ ${link} ]] && ghcflag="-optl${flag}" LDFLAGS+=" ${flag}" && GHC_FLAGS+=" ${ghcflag}" &&
- [[ ${persistent} ]] && GHC_PERSISTENT_FLAGS+=" ${ghcflag}"
- ;;
- esac
- done
-}
-
-# $1 - lib name (under libraries/)
-# $2 - lib version
-# example: bump_lib "transformers" "0.4.2.0"
-bump_lib() {
- local pn=$1 pv=$2
- local p=${pn}-${pv}
- local f
-
- einfo "Bumping ${pn} up to ${pv}"
-
- for f in ghc.mk GNUmakefile; do
- mv libraries/"${pn}"/$f "${WORKDIR}"/"${p}"/$f || die
- done
- mv libraries/"${pn}" "${WORKDIR}"/"${pn}".old || die
- mv "${WORKDIR}"/"${p}" libraries/"${pn}" || die
-}
-
-update_SRC_URI() {
- local p pn pv
- for p in "${BUMP_LIBRARIES[@]}"; do
- set -- $p
- pn=$1 pv=$2
-
- SRC_URI+=" https://hackage.haskell.org/package/${pn}-${pv}/${pn}-${pv}.tar.gz"
- done
-}
-
-update_SRC_URI
-
-bump_libs() {
- local p pn pv
- for p in "${BUMP_LIBRARIES[@]}"; do
- set -- $p
- pn=$1 pv=$2
-
- bump_lib "${pn}" "${pv}"
- done
-}
-
-ghc_setup_cflags() {
- if is_crosscompile; then
- export CFLAGS=${GHC_CFLAGS-"-O2 -pipe"}
- export LDFLAGS=${GHC_LDFLAGS-"-Wl,-O1"}
- einfo "Crosscompiling mode:"
- einfo " CHOST: ${CHOST}"
- einfo " CTARGET: ${CTARGET}"
- einfo " CFLAGS: ${CFLAGS}"
- einfo " LDFLAGS: ${LDFLAGS}"
- einfo " prefix: $(cross)"
- return
- fi
- # We need to be very careful with the CFLAGS we ask ghc to pass through to
- # gcc. There are plenty of flags which will make gcc produce output that
- # breaks ghc in various ways. The main ones we want to pass through are
- # -mcpu / -march flags. These are important for arches like alpha & sparc.
- # We also use these CFLAGS for building the C parts of ghc, ie the rts.
- strip-flags
- strip-unsupported-flags
-
- # Cmm can't parse line numbers #482086
- replace-flags -ggdb[3-9] -ggdb2
-
- GHC_FLAGS=""
- GHC_PERSISTENT_FLAGS=""
- for flag in ${CFLAGS}; do
- case ${flag} in
-
- # Ignore extra optimisation (ghc passes -O to gcc anyway)
- # -O2 and above break on too many systems
- -O*) ;;
-
- # Arch and ABI flags are what we're really after
- -m*) append-ghc-cflags compile assemble ${flag};;
-
- # Sometimes it's handy to see backtrace of RTS
- # to get an idea what happens there
- -g*) append-ghc-cflags compile ${flag};;
-
- # Ignore all other flags, including all -f* flags
- esac
- done
-
- for flag in ${LDFLAGS}; do
- append-ghc-cflags link ${flag}
- done
-
- # hardened-gcc needs to be disabled, because our prebuilt binaries/libraries
- # are not built with fPIC, bug #606666
- gcc-specs-pie && append-ghc-cflags persistent compile link -nopie
- tc-is-gcc && version_is_at_least 6.3 $(gcc-version) && if ! use ghcbootstrap; then
- # gcc-6.3 has support for -no-pie upstream, but spelling differs from
- # gentoo-specific '-nopie'. We enable it in non-bootstrap to allow
- # hardened users try '-pie' in USE=ghcbootstrap mode.
- append-ghc-cflags compile link -no-pie
- fi
-
- # prevent from failind building unregisterised ghc:
- # https://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg171602.html
- use ppc64 && append-ghc-cflags persistent compile -mminimal-toc
-}
-
-# substitutes string $1 to $2 in files $3 $4 ...
-relocate_path() {
- local from=$1
- local to=$2
- shift 2
- local file=
- for file in "$@"
- do
- sed -i -e "s|$from|$to|g" \
- "$file" || die "path relocation failed for '$file'"
- done
-}
-
-# changes hardcoded ghc paths and updates package index
-# $1 - new absolute root path
-relocate_ghc() {
- local to=$1
-
- # libdir for prebuilt binary and for current system may mismatch
- # It does for prefix installation for example: bug #476998
- local bin_ghc_prefix=${WORKDIR}/usr
- local bin_libpath=$(echo "${bin_ghc_prefix}"/lib*)
- local bin_libdir=${bin_libpath#${bin_ghc_prefix}/}
-
- # backup original script to use it later after relocation
- local gp_back="${T}/ghc-pkg-${GHC_PV}-orig"
- cp "${WORKDIR}/usr/bin/$(cross)ghc-pkg-${GHC_PV}" "$gp_back" || die "unable to backup ghc-pkg wrapper"
-
- if [[ ${bin_libdir} != $(get_libdir) ]]; then
- einfo "Relocating '${bin_libdir}' to '$(get_libdir)' (bug #476998)"
- # moving the dir itself is not strictly needed
- # but then USE=binary would result in installing
- # in '${bin_libdir}'
- mv "${bin_ghc_prefix}/${bin_libdir}" "${bin_ghc_prefix}/$(get_libdir)" || die
- bin_libpath=${bin_ghc_prefix}/$(get_libdir)
-
- relocate_path "/usr/${bin_libdir}" "/usr/$(get_libdir)" \
- "${WORKDIR}/usr/bin/$(cross)ghc-${GHC_PV}" \
- "${WORKDIR}/usr/bin/$(cross)ghci-${GHC_PV}" \
- "${WORKDIR}/usr/bin/$(cross)ghc-pkg-${GHC_PV}" \
- "${WORKDIR}/usr/bin/$(cross)hsc2hs" \
- "${WORKDIR}/usr/bin/$(cross)runghc-${GHC_PV}" \
- "$gp_back" \
- "${WORKDIR}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d/"*
- fi
-
- # Relocate from /usr to ${EPREFIX}/usr
- relocate_path "/usr" "${to}/usr" \
- "${WORKDIR}/usr/bin/$(cross)ghc-${GHC_PV}" \
- "${WORKDIR}/usr/bin/$(cross)ghci-${GHC_PV}" \
- "${WORKDIR}/usr/bin/$(cross)ghc-pkg-${GHC_PV}" \
- "${WORKDIR}/usr/bin/$(cross)hsc2hs" \
- "${WORKDIR}/usr/bin/$(cross)runghc-${GHC_PV}" \
- "${WORKDIR}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d/"*
-
- # this one we will use to regenerate cache
- # so it should point to current tree location
- relocate_path "/usr" "${WORKDIR}/usr" "$gp_back"
-
- if use prefix; then
- hprefixify "${bin_libpath}"/${PN}*/settings
- fi
-
- # regenerate the binary package cache
- "$gp_back" recache || die "failed to update cache after relocation"
- rm "$gp_back"
-}
-
-ghc-check-reqs() {
- # These are pessimistic values (slightly bigger than worst-case)
- # Worst case is UNREG USE=profile ia64. See bug #611866 for some
- # numbers on various arches.
- CHECKREQS_DISK_BUILD=8G
- CHECKREQS_DISK_USR=2G
- # USE=binary roughly takes
- use binary && CHECKREQS_DISK_BUILD=4G
-
- "$@"
-}
-
-pkg_pretend() {
- ghc-check-reqs check-reqs_pkg_pretend
-}
-
-pkg_setup() {
- ghc-check-reqs check-reqs_pkg_setup
-
- # quiet portage about prebuilt binaries
- use binary && QA_PREBUILT="*"
-
- [[ ${MERGE_TYPE} == binary ]] && return
-
- if use ghcbootstrap; then
- ewarn "You requested ghc bootstrapping, this is usually only used"
- ewarn "by Gentoo developers to make binary .tbz2 packages."
-
- [[ -z $(type -P ghc) ]] && \
- die "Could not find a ghc to bootstrap with."
- else
- if ! yet_binary; then
- eerror "Please try emerging with USE=ghcbootstrap and report build"
- eerror "sucess or failure to the haskell team (haskell@gentoo.org)"
- die "No binary available for '${ARCH}' arch yet, USE=ghcbootstrap"
- fi
- fi
-}
-
-src_unpack() {
- # Create the ${S} dir if we're using the binary version
- use binary && mkdir "${S}"
-
- # the Solaris and Darwin binaries from ghc (maeder) need to be
- # unpacked separately, so prevent them from being unpacked
- local ONLYA=${A}
- case ${CHOST} in
- *-darwin* | *-solaris*) ONLYA=${GHC_P}-src.tar.xz ;;
- esac
- unpack ${ONLYA}
-}
-
-src_prepare() {
- ghc_setup_cflags
-
- if ! use ghcbootstrap && [[ ${CHOST} != *-darwin* && ${CHOST} != *-solaris* ]]; then
- # Modify the wrapper script from the binary tarball to use GHC_PERSISTENT_FLAGS.
- # See bug #313635.
- sed -i -e "s|\"\$topdir\"|\"\$topdir\" ${GHC_PERSISTENT_FLAGS}|" \
- "${WORKDIR}/usr/bin/$(cross)ghc-${GHC_PV}"
-
- # allow hardened users use vanilla binary to bootstrap ghc
- # ghci uses mmap with rwx protection at it implements dynamic
- # linking on it's own (bug #299709)
- pax-mark -m "${WORKDIR}/usr/$(get_libdir)/$(cross)${GHC_P}/bin/ghc"
- fi
-
- if use binary; then
- if use prefix; then
- relocate_ghc "${EPREFIX}"
- fi
-
- # Move unpacked files to the expected place
- mv "${WORKDIR}/usr" "${S}"
- else
- if ! use ghcbootstrap; then
- case ${CHOST} in
- *-darwin* | *-solaris*)
- # UPDATE ME for ghc-7
- mkdir "${WORKDIR}"/ghc-bin-installer || die
- pushd "${WORKDIR}"/ghc-bin-installer > /dev/null || die
- use sparc-solaris && unpack ghc-6.10.4-sparc-sun-solaris2.tar.bz2
- use x86-solaris && unpack ghc-7.0.3-i386-unknown-solaris2.tar.bz2
- use x64-macos && unpack ghc-7.4.1-x86_64-apple-darwin.tar.bz2
- popd > /dev/null
-
- pushd "${WORKDIR}"/ghc-bin-installer/ghc-[67].?*.? > /dev/null || die
- # fix the binaries so they run, on Solaris we need an
- # LD_LIBRARY_PATH which has our prefix libdirs, on
- # Darwin we need to replace the frameworks with our libs
- # from the prefix fix before installation, because some
- # of the tools are actually used during configure/make
- if [[ ${CHOST} == *-solaris* ]] ; then
- export LD_LIBRARY_PATH="${EPREFIX}/$(get_libdir):${EPREFIX}/usr/$(get_libdir):${LD_LIBRARY_PATH}"
- elif [[ ${CHOST} == *-darwin* ]] ; then
- local readline_framework=GNUreadline.framework/GNUreadline
- local gmp_framework=/opt/local/lib/libgmp.10.dylib
- local ncurses_file=/opt/local/lib/libncurses.5.dylib
- for binary in $(scanmacho -BRE MH_EXECUTE -F '%F' .) ; do
- install_name_tool -change \
- ${readline_framework} \
- "${EPREFIX}"/lib/libreadline.dylib \
- ${binary} || die
- install_name_tool -change \
- ${gmp_framework} \
- "${EPREFIX}"/usr/lib/libgmp.dylib \
- ${binary} || die
- install_name_tool -change \
- ${ncurses_file} \
- "${EPREFIX}"/usr/lib/libncurses.dylib \
- ${binary} || die
- done
- # we don't do frameworks!
- sed -i \
- -e 's/\(frameworks = \)\["GMP"\]/\1[]/g' \
- -e 's/\(extraLibraries = \)\["m"\]/\1["m","gmp"]/g' \
- rts/package.conf.in || die
- fi
-
- # it is autoconf, but we really don't want to give it too
- # much arguments, in fact we do the make in-place anyway
- ./configure --prefix="${WORKDIR}"/usr || die
- make install || die
- popd > /dev/null
- ;;
- *)
- relocate_ghc "${WORKDIR}"
- ;;
- esac
- fi
-
- sed -i -e "s|\"\$topdir\"|\"\$topdir\" ${GHC_PERSISTENT_FLAGS}|" \
- "${S}/ghc/ghc.wrapper"
-
- cd "${S}" # otherwise epatch will break
-
- epatch "${FILESDIR}"/${PN}-7.0.4-CHOST-prefix.patch
-
- epatch "${FILESDIR}"/${PN}-8.0.1_rc1-cgen-constify.patch
- epatch "${FILESDIR}"/${PN}-7.8.3-prim-lm.patch
- epatch "${FILESDIR}"/${PN}-8.0.2-no-relax-everywhere.patch
-
- epatch "${FILESDIR}"/${PN}-8.0.1-limit-jN.patch
- epatch "${FILESDIR}"/${PN}-8.0.1-ww-args-limit.patch
- epatch "${FILESDIR}"/${PN}-8.0.1-par-g0-on-A32.patch
- epatch "${FILESDIR}"/${PN}-8.0.2_rc2-old-sphinx.patch
- epatch "${FILESDIR}"/${PN}-8.0.2-libffi-alpha.patch
- epatch "${FILESDIR}"/${PN}-8.0.2-O2-unreg.patch
- epatch "${FILESDIR}"/${PN}-8.0.2-binutils-2.30.patch
-
- bump_libs
-
- # as we have changed the build system
- eautoreconf
- fi
-}
-
-src_configure() {
- if ! use binary; then
- # initialize build.mk
- echo '# Gentoo changes' > mk/build.mk
-
- # Put docs into the right place, ie /usr/share/doc/ghc-${GHC_PV}
- echo "docdir = ${EPREFIX}/usr/share/doc/${P}" >> mk/build.mk
- echo "htmldir = ${EPREFIX}/usr/share/doc/${P}" >> mk/build.mk
-
- # We also need to use the GHC_FLAGS flags when building ghc itself
- echo "SRC_HC_OPTS+=${HCFLAGS} ${GHC_FLAGS}" >> mk/build.mk
- echo "SRC_CC_OPTS+=${CFLAGS}" >> mk/build.mk
- echo "SRC_LD_OPTS+=${LDFLAGS}" >> mk/build.mk
- # Speed up initial Cabal bootstrap
- echo "utils/ghc-cabal_dist_EXTRA_HC_OPTS+=$(ghc-make-args)" >> mk/build.mk
-
- # We can't depend on haddock except when bootstrapping when we
- # must build docs and include them into the binary .tbz2 package
- # app-text/dblatex is not in portage, can not build PDF or PS
- echo "BUILD_SPHINX_PDF = NO" >> mk/build.mk
- echo "BUILD_SPHINX_HTML = $(usex doc YES NO)" >> mk/build.mk
- echo "BUILD_MAN = $(usex doc YES NO)" >> mk/build.mk
-
- # this controls presence on 'xhtml' and 'haddock' in final install
- echo "HADDOCK_DOCS = YES" >> mk/build.mk
-
- # allows overriding build flavours for libraries:
- # v - vanilla (static libs)
- # p - profiled
- # dyn - shared libraries
- # example: GHC_LIBRARY_WAYS="v dyn"
- if [[ -n ${GHC_LIBRARY_WAYS} ]]; then
- echo "GhcLibWays=${GHC_LIBRARY_WAYS}" >> mk/build.mk
- fi
- echo "BUILD_PROF_LIBS = $(usex profile YES NO)" >> mk/build.mk
-
- # Get ghc from the unpacked binary .tbz2
- # except when bootstrapping we just pick ghc up off the path
- if ! use ghcbootstrap; then
- export PATH="${WORKDIR}/usr/bin:${PATH}"
- fi
-
- echo "INTEGER_LIBRARY = $(usex gmp integer-gmp integer-simple)" >> mk/build.mk
-
- # don't strip anything. Very useful when stage2 SIGSEGVs on you
- echo "STRIP_CMD = :" >> mk/build.mk
-
- local econf_args=()
-
- # GHC embeds 'gcc' it was built by and uses it later.
- # Don't allow things like ccache or versioned binary slip.
- # We use stable thing across gcc upgrades.
- is_crosscompile || econf_args+=(--with-gcc=${CHOST}-gcc)
-
- if use ghcmakebinary; then
- # When building booting libary we are trying to
- # bundle or restrict most of external depends
- # with unstable ABI:
- # - embed libffi (default GHC behaviour)
- # - disable ncurses support for ghci (via haskeline)
- # https://bugs.gentoo.org/557478
- # - disable ncurses support for ghc-pkg
- echo "libraries/haskeline_CONFIGURE_OPTS += --flag=-terminfo" >> mk/build.mk
- echo "utils/ghc-pkg_HC_OPTS += -DBOOTSTRAPPING" >> mk/build.mk
- else
- econf_args+=(--with-system-libffi)
- econf_args+=(--with-ffi-includes=$($(tc-getPKG_CONFIG) libffi --cflags-only-I | sed -e 's@^-I@@'))
- fi
-
- elog "Final mk/build.mk:"
- cat mk/build.mk || die
-
- econf ${econf_args[@]} --enable-bootstrap-with-devel-snapshot
-
- if [[ ${PV} == *9999* ]]; then
- GHC_PV="$(grep 'S\[\"PACKAGE_VERSION\"\]' config.status | sed -e 's@^.*=\"\(.*\)\"@\1@')"
- GHC_P=${PN}-${GHC_PV}
- fi
- fi # ! use binary
-}
-
-src_compile() {
- if ! use binary; then
- # 1. build/pax-mark compiler binary first
- emake ghc/stage2/build/tmp/ghc-stage2
- pax-mark -m ghc/stage2/build/tmp/ghc-stage2
- # 2. build/pax-mark haddock using ghc-stage2
- emake utils/haddock/dist/build/tmp/haddock
- pax-mark -m utils/haddock/dist/build/tmp/haddock
- # 3. and then all the rest
- emake all
- fi # ! use binary
-}
-
-src_install() {
- if use binary; then
- use prefix && mkdir -p "${ED}"
- mv "${S}/usr" "${ED}"
- else
-
- emake -j1 install DESTDIR="${D}"
- dodoc "distrib/README" "ANNOUNCE" "LICENSE" "VERSION"
-
- # rename ghc-shipped files to avoid collision
- # of external packages. Motivating example:
- # user had installed:
- # dev-lang/ghc-7.8.4-r0 (with transformers-0.3.0.0)
- # dev-haskell/transformers-0.4.2.0
- # then user tried to update to
- # dev-lang/ghc-7.8.4-r1 (with transformers-0.4.2.0)
- # this will lead to single .conf file collision.
- local shipped_conf renamed_conf
- local package_confdir="${ED}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d"
- for shipped_conf in "${package_confdir}"/*.conf; do
- # rename 'pkg-ver-id.conf' to 'pkg-ver-id-gentoo-${PF}.conf'
- renamed_conf=${shipped_conf%.conf}-gentoo-${PF}.conf
- mv "${shipped_conf}" "${renamed_conf}" || die
- done
-
- # remove link, but leave 'haddock-${GHC_P}'
- rm -f "${ED}"/usr/bin/$(cross)haddock
-
- if [[ ! -f "${S}/VERSION" ]]; then
- echo "${GHC_PV}" > "${S}/VERSION" \
- || die "Could not create file ${S}/VERSION"
- fi
- if ! is_crosscompile; then
- newbashcomp "${FILESDIR}"/ghc-bash-completion ghc-pkg
- newbashcomp utils/completion/ghc.bash ghc
- fi
- fi
-
- # path to the package.cache
- local package_confdir="${ED}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d"
- PKGCACHE="${package_confdir}"/package.cache
- # copy the package.conf.d, including timestamp, save it so we can help
- # users that have a broken package.conf.d
- cp -pR "${package_confdir}"{,.initial} || die "failed to backup intial package.conf.d"
-
- # copy the package.conf, including timestamp, save it so we later can put it
- # back before uninstalling, or when upgrading.
- cp -p "${PKGCACHE}"{,.shipped} \
- || die "failed to copy package.conf.d/package.cache"
-}
-
-pkg_preinst() {
- # have we got an earlier version of ghc installed?
- if has_version "<${CATEGORY}/${PF}"; then
- haskell_updater_warn="1"
- fi
-}
-
-pkg_postinst() {
- ghc-reregister
-
- # path to the package.cache
- PKGCACHE="${EROOT}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d/package.cache"
-
- # give the cache a new timestamp, it must be as recent as
- # the package.conf.d directory.
- touch "${PKGCACHE}"
-
- if [[ "${haskell_updater_warn}" == "1" ]]; then
- ewarn
- ewarn "\e[1;31m************************************************************************\e[0m"
- ewarn
- ewarn "You have just upgraded from an older version of GHC."
- ewarn "You may have to run"
- ewarn " 'haskell-updater'"
- ewarn "to rebuild all ghc-based Haskell libraries."
- ewarn
- ewarn "\e[1;31m************************************************************************\e[0m"
- ewarn
- fi
-}
-
-pkg_prerm() {
- PKGCACHE="${EROOT}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d/package.cache"
- rm -rf "${PKGCACHE}"
-
- cp -p "${PKGCACHE}"{.shipped,}
-}
-
-pkg_postrm() {
- ghc-package_pkg_postrm
-}
diff --git a/dev-lang/ghc/ghc-8.10.1.ebuild b/dev-lang/ghc/ghc-8.10.1.ebuild
deleted file mode 100644
index 1db40de34286..000000000000
--- a/dev-lang/ghc/ghc-8.10.1.ebuild
+++ /dev/null
@@ -1,797 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-# to make make a crosscompiler use crossdev and symlink ghc tree into
-# cross overlay. result would look like 'cross-sparc-unknown-linux-gnu/ghc'
-export CBUILD=${CBUILD:-${CHOST}}
-export CTARGET=${CTARGET:-${CHOST}}
-if [[ ${CTARGET} = ${CHOST} ]] ; then
- if [[ ${CATEGORY/cross-} != ${CATEGORY} ]] ; then
- export CTARGET=${CATEGORY/cross-}
- fi
-fi
-
-inherit autotools bash-completion-r1 eutils flag-o-matic ghc-package
-inherit multilib multiprocessing pax-utils toolchain-funcs prefix
-inherit check-reqs
-DESCRIPTION="The Glasgow Haskell Compiler"
-HOMEPAGE="https://www.haskell.org/ghc/"
-
-# we don't have any binaries yet
-arch_binaries=""
-
-BIN_PV=${PV}
-# sorted!
-#arch_binaries="$arch_binaries alpha? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-alpha.tbz2 )"
-#arch_binaries="$arch_binaries arm? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-armv7a-hardfloat-linux-gnueabi.tbz2 )"
-#arch_binaries="$arch_binaries arm64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-aarch64-unknown-linux-gnu.tbz2 )"
-arch_binaries="$arch_binaries amd64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-x86_64-pc-linux-gnu.tbz2 )"
-#arch_binaries="$arch_binaries ia64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ia64-fixed-fiw.tbz2 )"
-#arch_binaries="$arch_binaries ppc? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ppc.tbz2 )"
-#arch_binaries="$arch_binaries ppc64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ppc64.tbz2 )"
-#arch_binaries="$arch_binaries ppc64? ( !big-endian? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-powerpc64le-unknown-linux-gnu.tbz2 ) )"
-#arch_binaries="$arch_binaries sparc? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-sparc.tbz2 )"
-arch_binaries="$arch_binaries x86? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-i686-pc-linux-gnu.tbz2 )"
-
-# various ports:
-#arch_binaries="$arch_binaries x86-fbsd? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-x86-fbsd.tbz2 )"
-
-# 0 - yet
-yet_binary() {
- case "${ARCH}" in
- #alpha) return 0 ;;
- #arm64) return 0 ;;
- #arm) return 0 ;;
- amd64) return 0 ;;
- #ia64) return 0 ;;
- #ppc) return 0 ;;
- #ppc64)
- # use big-endian && return 0
- # return 0
- # ;;
- #sparc) return 0 ;;
- x86) return 0 ;;
- *) return 1 ;;
- esac
-}
-
-GHC_PV=${PV}
-#GHC_PV=8.10.0.20200123 # uncomment only for -alpha, -beta, -rc ebuilds
-GHC_P=${PN}-${GHC_PV} # using ${P} is almost never correct
-
-SRC_URI="!binary? (
- https://downloads.haskell.org/ghc/${PV/_/-}/${GHC_P}-src.tar.xz
- test? ( https://downloads.haskell.org/ghc/${PV/_/-}/${GHC_P}-testsuite.tar.xz )
-)"
-S="${WORKDIR}"/${GHC_P}
-
-[[ -n $arch_binaries ]] && SRC_URI+=" !ghcbootstrap? ( $arch_binaries )"
-
-BUMP_LIBRARIES=(
- # "hackage-name hackage-version"
-)
-
-LICENSE="BSD"
-SLOT="0/${PV}"
-KEYWORDS=""
-IUSE="big-endian doc elfutils ghcbootstrap ghcmakebinary +gmp numa profile test"
-IUSE+=" binary"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- >=dev-lang/perl-5.6.1
- dev-libs/gmp:0=
- sys-libs/ncurses:0=[unicode]
- elfutils? ( dev-libs/elfutils )
- !ghcmakebinary? ( dev-libs/libffi:= )
- numa? ( sys-process/numactl )
-"
-
-# This set of dependencies is needed to run
-# prebuilt ghc. We specifically avoid ncurses
-# dependency with:
-# utils/ghc-pkg_HC_OPTS += -DBOOTSTRAPPING
-PREBUILT_BINARY_DEPENDS="
- !prefix? ( elibc_glibc? ( >=sys-libs/glibc-2.17 ) )
-"
-# This set of dependencies is needed to install
-# ghc[binary] in system. terminfo package is linked
-# against ncurses.
-PREBUILT_BINARY_RDEPENDS="${PREBUILT_BINARY_DEPENDS}
- sys-libs/ncurses:0/6
-"
-
-RDEPEND+="binary? ( ${PREBUILT_BINARY_RDEPENDS} )"
-
-DEPEND="${RDEPEND}
- doc? ( app-text/docbook-xml-dtd:4.2
- app-text/docbook-xml-dtd:4.5
- app-text/docbook-xsl-stylesheets
- dev-python/sphinx
- >=dev-libs/libxslt-1.1.2 )
- !ghcbootstrap? ( ${PREBUILT_BINARY_DEPENDS} )"
-
-# we build binaries without profiling support
-REQUIRED_USE="
- ?? ( ghcbootstrap binary )
- ?? ( profile binary )
-"
-
-# haskell libraries built with cabal in configure mode, #515354
-QA_CONFIGURE_OPTIONS+=" --with-compiler --with-gcc"
-
-is_crosscompile() {
- [[ ${CHOST} != ${CTARGET} ]]
-}
-
-is_native() {
- [[ ${CHOST} == ${CBUILD} ]] && [[ ${CHOST} == ${CTARGET} ]]
-}
-
-if ! is_crosscompile; then
- PDEPEND="!ghcbootstrap? ( >=app-admin/haskell-updater-1.2 )"
-fi
-
-# returns tool prefix for crosscompiler.
-# Example:
-# CTARGET=armv7a-unknown-linux-gnueabi
-# CHOST=x86_64-pc-linux-gnu
-# "armv7a-unknown-linux-gnueabi-"
-# CTARGET=${CHOST}
-# ""
-# Used in tools and library prefix:
-# "${ED}"/usr/bin/$(cross)haddock
-# "${ED}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d"
-
-cross() {
- if is_crosscompile; then
- echo "${CTARGET}-"
- else
- echo ""
- fi
-}
-
-append-ghc-cflags() {
- local persistent compile assemble link
- local flag ghcflag
-
- for flag in $*; do
- case ${flag} in
- persistent) persistent="yes";;
- compile) compile="yes";;
- assemble) assemble="yes";;
- link) link="yes";;
- *)
- [[ ${compile} ]] && ghcflag="-optc${flag}" CFLAGS+=" ${flag}" && GHC_FLAGS+=" ${ghcflag}" &&
- [[ ${persistent} ]] && GHC_PERSISTENT_FLAGS+=" ${ghcflag}"
- [[ ${assemble} ]] && ghcflag="-opta${flag}" CFLAGS+=" ${flag}" && GHC_FLAGS+=" ${ghcflag}" &&
- [[ ${persistent} ]] && GHC_PERSISTENT_FLAGS+=" ${ghcflag}"
- [[ ${link} ]] && ghcflag="-optl${flag}" LDFLAGS+=" ${flag}" && GHC_FLAGS+=" ${ghcflag}" &&
- [[ ${persistent} ]] && GHC_PERSISTENT_FLAGS+=" ${ghcflag}"
- ;;
- esac
- done
-}
-
-# $1 - lib name (under libraries/)
-# $2 - lib version
-# example: bump_lib "transformers" "0.4.2.0"
-bump_lib() {
- local pn=$1 pv=$2
- local p=${pn}-${pv}
- local f
-
- einfo "Bumping ${pn} up to ${pv}"
-
- for f in ghc.mk GNUmakefile; do
- mv libraries/"${pn}"/$f "${WORKDIR}"/"${p}"/$f || die
- done
- mv libraries/"${pn}" "${WORKDIR}"/"${pn}".old || die
- mv "${WORKDIR}"/"${p}" libraries/"${pn}" || die
-}
-
-update_SRC_URI() {
- local p pn pv
- for p in "${BUMP_LIBRARIES[@]}"; do
- set -- $p
- pn=$1 pv=$2
-
- SRC_URI+=" https://hackage.haskell.org/package/${pn}-${pv}/${pn}-${pv}.tar.gz"
- done
-}
-
-update_SRC_URI
-
-bump_libs() {
- local p pn pv
- for p in "${BUMP_LIBRARIES[@]}"; do
- set -- $p
- pn=$1 pv=$2
-
- bump_lib "${pn}" "${pv}"
- done
-}
-
-ghc_setup_cflags() {
- # TODO: plumb CFLAGS and BUILD_CFLAGS to respective CONF_CC_OPTS_STAGE<N>
- if ! is_native; then
- export CFLAGS=${GHC_CFLAGS-"-O2 -pipe"}
- export LDFLAGS=${GHC_LDFLAGS-"-Wl,-O1"}
- einfo "Crosscompiling mode:"
- einfo " CHOST: ${CHOST}"
- einfo " CTARGET: ${CTARGET}"
- einfo " CFLAGS: ${CFLAGS}"
- einfo " LDFLAGS: ${LDFLAGS}"
- einfo " prefix: $(cross)"
- return
- fi
- # We need to be very careful with the CFLAGS we ask ghc to pass through to
- # gcc. There are plenty of flags which will make gcc produce output that
- # breaks ghc in various ways. The main ones we want to pass through are
- # -mcpu / -march flags. These are important for arches like alpha & sparc.
- # We also use these CFLAGS for building the C parts of ghc, ie the rts.
- strip-flags
- strip-unsupported-flags
-
- # Cmm can't parse line numbers #482086
- replace-flags -ggdb[3-9] -ggdb2
-
- GHC_FLAGS=""
- GHC_PERSISTENT_FLAGS=""
- for flag in ${CFLAGS}; do
- case ${flag} in
-
- # Ignore extra optimisation (ghc passes -O to gcc anyway)
- # -O2 and above break on too many systems
- -O*) ;;
-
- # Arch and ABI flags are what we're really after
- -m*) append-ghc-cflags compile assemble ${flag};;
-
- # Sometimes it's handy to see backtrace of RTS
- # to get an idea what happens there
- -g*) append-ghc-cflags compile ${flag};;
-
- # Ignore all other flags, including all -f* flags
- esac
- done
-
- for flag in ${LDFLAGS}; do
- append-ghc-cflags link ${flag}
- done
-
- # GHC uses ${CBUILD}-gcc, ${CHOST}-gcc and ${CTARGET}-gcc at a single build.
- # Skip any gentoo-specific tweaks for cross-case to avoid passing unsupported
- # options to gcc.
- if is_native; then
- # prevent from failing to build unregisterised ghc:
- # https://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg171602.html
- use ppc64 && append-ghc-cflags persistent compile -mminimal-toc
- fi
-}
-
-# substitutes string $1 to $2 in files $3 $4 ...
-relocate_path() {
- local from=$1
- local to=$2
- shift 2
- local file=
- for file in "$@"
- do
- sed -i -e "s|$from|$to|g" \
- "$file" || die "path relocation failed for '$file'"
- done
-}
-
-# changes hardcoded ghc paths and updates package index
-# $1 - new absolute root path
-relocate_ghc() {
- local to=$1 ghc_v=${BIN_PV}
-
- # libdir for prebuilt binary and for current system may mismatch
- # It does for prefix installation for example: bug #476998
- local bin_ghc_prefix=${WORKDIR}/usr
- local bin_libpath=$(echo "${bin_ghc_prefix}"/lib*)
- local bin_libdir=${bin_libpath#${bin_ghc_prefix}/}
-
- # backup original script to use it later after relocation
- local gp_back="${T}/ghc-pkg-${ghc_v}-orig"
- cp "${WORKDIR}/usr/bin/ghc-pkg-${ghc_v}" "$gp_back" || die "unable to backup ghc-pkg wrapper"
-
- if [[ ${bin_libdir} != $(get_libdir) ]]; then
- einfo "Relocating '${bin_libdir}' to '$(get_libdir)' (bug #476998)"
- # moving the dir itself is not strictly needed
- # but then USE=binary would result in installing
- # in '${bin_libdir}'
- mv "${bin_ghc_prefix}/${bin_libdir}" "${bin_ghc_prefix}/$(get_libdir)" || die
-
- relocate_path "/usr/${bin_libdir}" "/usr/$(get_libdir)" \
- "${WORKDIR}/usr/bin/ghc-${ghc_v}" \
- "${WORKDIR}/usr/bin/ghci-${ghc_v}" \
- "${WORKDIR}/usr/bin/ghc-pkg-${ghc_v}" \
- "${WORKDIR}/usr/bin/hsc2hs" \
- "${WORKDIR}/usr/bin/runghc-${ghc_v}" \
- "$gp_back" \
- "${WORKDIR}/usr/$(get_libdir)/${PN}-${ghc_v}/package.conf.d/"*
- fi
-
- # Relocate from /usr to ${EPREFIX}/usr
- relocate_path "/usr" "${to}/usr" \
- "${WORKDIR}/usr/bin/ghc-${ghc_v}" \
- "${WORKDIR}/usr/bin/ghci-${ghc_v}" \
- "${WORKDIR}/usr/bin/ghc-pkg-${ghc_v}" \
- "${WORKDIR}/usr/bin/haddock-ghc-${ghc_v}" \
- "${WORKDIR}/usr/bin/hp2ps" \
- "${WORKDIR}/usr/bin/hpc" \
- "${WORKDIR}/usr/bin/hsc2hs" \
- "${WORKDIR}/usr/bin/runghc-${ghc_v}" \
- "${WORKDIR}/usr/$(get_libdir)/${PN}-${ghc_v}/package.conf.d/"*
-
- # this one we will use to regenerate cache
- # so it should point to current tree location
- relocate_path "/usr" "${WORKDIR}/usr" "$gp_back"
-
- if use prefix; then
- hprefixify "${bin_libpath}"/${PN}*/settings
- fi
-
- # regenerate the binary package cache
- "$gp_back" recache || die "failed to update cache after relocation"
- rm "$gp_back"
-}
-
-ghc-check-reqs() {
- # These are pessimistic values (slightly bigger than worst-case)
- # Worst case is UNREG USE=profile ia64. See bug #611866 for some
- # numbers on various arches.
- CHECKREQS_DISK_BUILD=8G
- CHECKREQS_DISK_USR=2G
- # USE=binary roughly takes
- use binary && CHECKREQS_DISK_BUILD=4G
-
- "$@"
-}
-
-pkg_pretend() {
- ghc-check-reqs check-reqs_pkg_pretend
-}
-
-pkg_setup() {
- ghc-check-reqs check-reqs_pkg_setup
-
- # quiet portage about prebuilt binaries
- use binary && QA_PREBUILT="*"
-
- [[ ${MERGE_TYPE} == binary ]] && return
-
- if use ghcbootstrap; then
- ewarn "You requested ghc bootstrapping, this is usually only used"
- ewarn "by Gentoo developers to make binary .tbz2 packages."
-
- [[ -z $(type -P ghc) ]] && \
- die "Could not find a ghc to bootstrap with."
- else
- if ! yet_binary; then
- eerror "Please try emerging with USE=ghcbootstrap and report build"
- eerror "sucess or failure to the haskell team (haskell@gentoo.org)"
- die "No binary available for '${ARCH}' arch yet, USE=ghcbootstrap"
- fi
- fi
-}
-
-src_unpack() {
- # Create the ${S} dir if we're using the binary version
- use binary && mkdir "${S}"
-
- # the Solaris and Darwin binaries from ghc (maeder) need to be
- # unpacked separately, so prevent them from being unpacked
- local ONLYA=${A}
- case ${CHOST} in
- *-darwin* | *-solaris*) ONLYA=${GHC_P}-src.tar.xz ;;
- esac
- unpack ${ONLYA}
-}
-
-src_prepare() {
- ghc_setup_cflags
-
- if ! use ghcbootstrap && [[ ${CHOST} != *-darwin* && ${CHOST} != *-solaris* ]]; then
- # Modify the wrapper script from the binary tarball to use GHC_PERSISTENT_FLAGS.
- # See bug #313635.
- sed -i -e "s|\"\$topdir\"|\"\$topdir\" ${GHC_PERSISTENT_FLAGS}|" \
- "${WORKDIR}/usr/bin/ghc-${BIN_PV}"
-
- # allow hardened users use vanilla binary to bootstrap ghc
- # ghci uses mmap with rwx protection at it implements dynamic
- # linking on it's own (bug #299709)
- pax-mark -m "${WORKDIR}/usr/$(get_libdir)/${PN}-${BIN_PV}/bin/ghc"
- fi
-
- if use binary; then
- if use prefix; then
- relocate_ghc "${EPREFIX}"
- fi
-
- # Move unpacked files to the expected place
- mv "${WORKDIR}/usr" "${S}"
- eapply_user
- else
- if ! use ghcbootstrap; then
- case ${CHOST} in
- *-darwin* | *-solaris*)
- # UPDATE ME for ghc-7
- mkdir "${WORKDIR}"/ghc-bin-installer || die
- pushd "${WORKDIR}"/ghc-bin-installer > /dev/null || die
- use sparc-solaris && unpack ghc-6.10.4-sparc-sun-solaris2.tar.bz2
- use x86-solaris && unpack ghc-7.0.3-i386-unknown-solaris2.tar.bz2
- use x64-macos && unpack ghc-7.4.1-x86_64-apple-darwin.tar.bz2
- popd > /dev/null
-
- pushd "${WORKDIR}"/ghc-bin-installer/ghc-[67].?*.? > /dev/null || die
- # fix the binaries so they run, on Solaris we need an
- # LD_LIBRARY_PATH which has our prefix libdirs, on
- # Darwin we need to replace the frameworks with our libs
- # from the prefix fix before installation, because some
- # of the tools are actually used during configure/make
- if [[ ${CHOST} == *-solaris* ]] ; then
- export LD_LIBRARY_PATH="${EPREFIX}/$(get_libdir):${EPREFIX}/usr/$(get_libdir):${LD_LIBRARY_PATH}"
- elif [[ ${CHOST} == *-darwin* ]] ; then
- local readline_framework=GNUreadline.framework/GNUreadline
- local gmp_framework=/opt/local/lib/libgmp.10.dylib
- local ncurses_file=/opt/local/lib/libncurses.5.dylib
- for binary in $(scanmacho -BRE MH_EXECUTE -F '%F' .) ; do
- install_name_tool -change \
- ${readline_framework} \
- "${EPREFIX}"/lib/libreadline.dylib \
- ${binary} || die
- install_name_tool -change \
- ${gmp_framework} \
- "${EPREFIX}"/usr/lib/libgmp.dylib \
- ${binary} || die
- install_name_tool -change \
- ${ncurses_file} \
- "${EPREFIX}"/usr/lib/libncurses.dylib \
- ${binary} || die
- done
- # we don't do frameworks!
- sed -i \
- -e 's/\(frameworks = \)\["GMP"\]/\1[]/g' \
- -e 's/\(extraLibraries = \)\["m"\]/\1["m","gmp"]/g' \
- rts/package.conf.in || die
- fi
-
- # it is autoconf, but we really don't want to give it too
- # many arguments, in fact we do the make in-place anyway
- ./configure --prefix="${WORKDIR}"/usr || die
- make install || die
- popd > /dev/null
- ;;
- *)
- relocate_ghc "${WORKDIR}"
- ;;
- esac
- fi
-
- sed -i -e "s|\"\$topdir\"|\"\$topdir\" ${GHC_PERSISTENT_FLAGS}|" \
- "${S}/ghc/ghc.wrapper"
-
- cd "${S}" # otherwise eapply will break
-
- eapply "${FILESDIR}"/${PN}-7.0.4-CHOST-prefix.patch
- eapply "${FILESDIR}"/${PN}-8.2.1-darwin.patch
- eapply "${FILESDIR}"/${PN}-7.8.3-prim-lm.patch
- eapply "${FILESDIR}"/${PN}-8.8.1-revert-CPP.patch
- eapply "${FILESDIR}"/${PN}-8.10.1-no-relax-everywhere.patch
- eapply "${FILESDIR}"/${PN}-8.10.1-allow-cross-bootstrap.patch
-
- # a bunch of crosscompiler patches
- # needs newer version:
- #eapply "${FILESDIR}"/${PN}-8.2.1_rc1-hp2ps-cross.patch
-
- # mingw32 target
- pushd "${S}/libraries/Win32"
- eapply "${FILESDIR}"/${PN}-8.2.1_rc1-win32-cross-2-hack.patch # bad workaround
- popd
-
- bump_libs
-
- eapply_user
- # as we have changed the build system
- eautoreconf
- fi
-}
-
-src_configure() {
- if ! use binary; then
- # initialize build.mk
- echo '# Gentoo changes' > mk/build.mk
-
- # Put docs into the right place, ie /usr/share/doc/ghc-${GHC_PV}
- echo "docdir = ${EPREFIX}/usr/share/doc/$(cross)${P}" >> mk/build.mk
- echo "htmldir = ${EPREFIX}/usr/share/doc/$(cross)${P}" >> mk/build.mk
-
- # We also need to use the GHC_FLAGS flags when building ghc itself
- echo "SRC_HC_OPTS+=${HCFLAGS} ${GHC_FLAGS}" >> mk/build.mk
- echo "SRC_CC_OPTS+=${CFLAGS}" >> mk/build.mk
- echo "SRC_LD_OPTS+=${LDFLAGS}" >> mk/build.mk
- # Speed up initial Cabal bootstrap
- echo "utils/ghc-cabal_dist_EXTRA_HC_OPTS+=$(ghc-make-args)" >> mk/build.mk
-
- # We can't depend on haddock except when bootstrapping when we
- # must build docs and include them into the binary .tbz2 package
- # app-text/dblatex is not in portage, can not build PDF or PS
- echo "BUILD_SPHINX_PDF = NO" >> mk/build.mk
- echo "BUILD_SPHINX_HTML = $(usex doc YES NO)" >> mk/build.mk
- echo "BUILD_MAN = $(usex doc YES NO)" >> mk/build.mk
-
- # this controls presence on 'xhtml' and 'haddock' in final install
- echo "HADDOCK_DOCS = YES" >> mk/build.mk
-
- # not used outside of ghc's test
- if [[ -n ${GHC_BUILD_DPH} ]]; then
- echo "BUILD_DPH = YES" >> mk/build.mk
- else
- echo "BUILD_DPH = NO" >> mk/build.mk
- fi
-
- # Any non-native build has to skip as it needs
- # target haddock binary to be runnabine.
- if ! is_native; then
- # disable docs generation as it requires running stage2
- echo "HADDOCK_DOCS=NO" >> mk/build.mk
- echo "BUILD_SPHINX_HTML=NO" >> mk/build.mk
- echo "BUILD_SPHINX_PDF=NO" >> mk/build.mk
- fi
-
- if is_crosscompile; then
- # Install ghc-stage1 crosscompiler instead of
- # ghc-stage2 cross-built compiler.
- echo "Stage1Only=YES" >> mk/build.mk
- fi
-
- # allows overriding build flavours for libraries:
- # v - vanilla (static libs)
- # p - profiled
- # dyn - shared libraries
- # example: GHC_LIBRARY_WAYS="v dyn"
- if [[ -n ${GHC_LIBRARY_WAYS} ]]; then
- echo "GhcLibWays=${GHC_LIBRARY_WAYS}" >> mk/build.mk
- fi
- echo "BUILD_PROF_LIBS = $(usex profile YES NO)" >> mk/build.mk
-
- # Get ghc from the unpacked binary .tbz2
- # except when bootstrapping we just pick ghc up off the path
- if ! use ghcbootstrap; then
- export PATH="${WORKDIR}/usr/bin:${PATH}"
- fi
-
- echo "INTEGER_LIBRARY = $(usex gmp integer-gmp integer-simple)" >> mk/build.mk
-
- # don't strip anything. Very useful when stage2 SIGSEGVs on you
- echo "STRIP_CMD = :" >> mk/build.mk
-
- local econf_args=()
-
- # GHC embeds toolchain it was built by and uses it later.
- # Don't allow things like ccache or versioned binary slip.
- # We use stable thing across gcc upgrades.
- # User can use EXTRA_ECONF=CC=... to override this default.
- econf_args+=(
- AR=${CTARGET}-ar
- CC=${CTARGET}-gcc
- # these should be inferred by GHC but ghc defaults
- # to using bundled tools on windows.
- Windres=${CTARGET}-windres
- DllWrap=${CTARGET}-dllwrap
- # we set the linker explicitly below
- --disable-ld-override
- )
- case ${CTARGET} in
- arm*)
- # ld.bfd-2.28 does not work for ghc. Force ld.gold
- # instead. This should be removed once gentoo gets
- # a fix for R_ARM_COPY bug: https://sourceware.org/PR16177
- econf_args+=(LD=${CTARGET}-ld.gold)
- ;;
- sparc*)
- # ld.gold-2.28 does not work for ghc. Force ld.bfd
- # instead. This should be removed once gentoo gets
- # a fix for missing --no-relax support bug:
- # https://sourceware.org/ml/binutils/2017-07/msg00183.html
- econf_args+=(LD=${CTARGET}-ld.bfd)
- ;;
- *)
- econf_args+=(LD=${CTARGET}-ld)
- esac
-
- if [[ ${CBUILD} != ${CHOST} ]]; then
- # GHC bug: ghc claims not to support cross-building.
- # It does, but does not distinct --host= value
- # for stage1 and stage2 compiler.
- econf_args+=(--host=${CBUILD})
- fi
-
- if use ghcmakebinary; then
- # When building booting libary we are trying to
- # bundle or restrict most of external depends
- # with unstable ABI:
- # - embed libffi (default GHC behaviour)
- # - disable ncurses support for ghci (via haskeline)
- # https://bugs.gentoo.org/557478
- # - disable ncurses support for ghc-pkg
- echo "libraries/haskeline_CONFIGURE_OPTS += --flag=-terminfo" >> mk/build.mk
- echo "utils/ghc-pkg_HC_OPTS += -DBOOTSTRAPPING" >> mk/build.mk
- elif is_native; then
- # using ${GTARGET}'s libffi is not supported yet:
- # GHC embeds full path for ffi includes without /usr/${CTARGET} account.
- econf_args+=(--with-system-libffi)
- econf_args+=(--with-ffi-includes=$($(tc-getPKG_CONFIG) libffi --cflags-only-I | sed -e 's@^-I@@'))
- fi
-
- einfo "Final mk/build.mk:"
- cat mk/build.mk || die
-
- econf ${econf_args[@]} \
- --enable-bootstrap-with-devel-snapshot \
- $(use_enable elfutils dwarf-unwind) \
- $(use_enable numa)
-
- if [[ ${PV} == *9999* ]]; then
- GHC_PV="$(grep 'S\[\"PACKAGE_VERSION\"\]' config.status | sed -e 's@^.*=\"\(.*\)\"@\1@')"
- GHC_P=${PN}-${GHC_PV}
- fi
- fi # ! use binary
-}
-
-src_compile() {
- if ! use binary; then
- # Stage1Only crosscompiler does not build stage2
- if ! is_crosscompile; then
- # 1. build/pax-mark compiler binary first
- emake ghc/stage2/build/tmp/ghc-stage2
- # 2. pax-mark (bug #516430)
- pax-mark -m ghc/stage2/build/tmp/ghc-stage2
- # 2. build/pax-mark haddock using ghc-stage2
- if is_native; then
- # non-native build does not build haddock
- # due to HADDOCK_DOCS=NO, but it could.
- emake utils/haddock/dist/build/tmp/haddock
- pax-mark -m utils/haddock/dist/build/tmp/haddock
- fi
- fi
- # 3. and then all the rest
- emake all
- fi # ! use binary
-}
-
-src_test() {
- # TODO: deal with:
- # - sandbox (pollutes environment)
- # - extra packages (to extend testsuite coverage)
- # bits are taken from 'validate'
- local make_test_target='test' # can be fulltest
- # not 'emake' as testsuite uses '$MAKE' without jobserver available
- make $make_test_target stage=2 THREADS=$(makeopts_jobs)
-}
-
-src_install() {
- if use binary; then
- use prefix && mkdir -p "${ED}"
- mv "${S}/usr" "${ED}"
- else
- [[ -f VERSION ]] || emake VERSION
-
- # -j1 due to a rare race in install script:
- # make --no-print-directory -f ghc.mk phase=final install
- # /usr/lib/portage/python3.4/ebuild-helpers/xattr/install -c -m 755 \
- # -d "/tmp/portage-tmpdir/portage/cross-armv7a-unknown-linux-gnueabi/ghc-9999/image/usr/lib64/armv7a-unknown-linux-gnueabi-ghc-8.3.20170404/include"
- # /usr/lib/portage/python3.4/ebuild-helpers/xattr/install -c -m 644 utils/hsc2hs/template-hsc.h \
- # "/tmp/portage-tmpdir/portage/cross-armv7a-unknown-linux-gnueabi/ghc-9999/image/usr/lib64/armv7a-unknown-linux-gnueabi-ghc-8.3.20170404"
- # /usr/bin/install: cannot create regular file \
- # '/tmp/portage-tmpdir/portage/cross-armv7a-unknown-linux-gnueabi/ghc-9999/image/usr/lib64/armv7a-unknown-linux-gnueabi-ghc-8.3.20170404': No such file or directory
- emake -j1 install DESTDIR="${D}"
-
- # Skip for cross-targets as they all share target location:
- # /usr/share/doc/ghc-9999/
- if ! is_crosscompile; then
- dodoc "distrib/README" "LICENSE" "VERSION"
- fi
-
- # rename ghc-shipped files to avoid collision
- # of external packages. Motivating example:
- # user had installed:
- # dev-lang/ghc-7.8.4-r0 (with transformers-0.3.0.0)
- # dev-haskell/transformers-0.4.2.0
- # then user tried to update to
- # dev-lang/ghc-7.8.4-r1 (with transformers-0.4.2.0)
- # this will lead to single .conf file collision.
- local shipped_conf renamed_conf
- local package_confdir="${ED}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d"
- for shipped_conf in "${package_confdir}"/*.conf; do
- # rename 'pkg-ver-id.conf' to 'pkg-ver-id-gentoo-${PF}.conf'
- renamed_conf=${shipped_conf%.conf}-gentoo-${PF}.conf
- mv "${shipped_conf}" "${renamed_conf}" || die
- done
-
- # remove link, but leave 'haddock-${GHC_P}'
- rm -f "${ED}"/usr/bin/$(cross)haddock
-
- if ! is_crosscompile; then
- newbashcomp "${FILESDIR}"/ghc-bash-completion ghc-pkg
- newbashcomp utils/completion/ghc.bash ghc
- fi
- fi
-
- # path to the package.cache
- local package_confdir="${ED}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d"
- PKGCACHE="${package_confdir}"/package.cache
- # copy the package.conf.d, including timestamp, save it so we can help
- # users that have a broken package.conf.d
- cp -pR "${package_confdir}"{,.initial} || die "failed to backup intial package.conf.d"
-
- # copy the package.conf, including timestamp, save it so we later can put it
- # back before uninstalling, or when upgrading.
- cp -p "${PKGCACHE}"{,.shipped} \
- || die "failed to copy package.conf.d/package.cache"
-
- if is_crosscompile; then
- # When we build a cross-compiler the layout is the following:
- # usr/lib/${CTARGET}-ghc-${VER}/ contains target libraries
- # but
- # usr/lib/${CTARGET}-ghc-${VER}/bin/ directory
- # containst host binaries (modulo bugs).
-
- # Portage's stripping mechanism does not skip stripping
- # foreign binaries. This frequently causes binaries to be
- # broken.
- #
- # Thus below we disable stripping of target libraries and allow
- # stripping hosts executables.
- dostrip -x "/usr/$(get_libdir)/$(cross)${GHC_P}"
- dostrip "/usr/$(get_libdir)/$(cross)${GHC_P}/bin"
- fi
-}
-
-pkg_preinst() {
- # have we got an earlier version of ghc installed?
- if has_version "<${CATEGORY}/${PF}"; then
- haskell_updater_warn="1"
- fi
-}
-
-pkg_postinst() {
- ghc-reregister
-
- # path to the package.cache
- PKGCACHE="${EROOT}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d/package.cache"
-
- # give the cache a new timestamp, it must be as recent as
- # the package.conf.d directory.
- touch "${PKGCACHE}"
-
- if [[ "${haskell_updater_warn}" == "1" ]]; then
- ewarn
- ewarn "\e[1;31m************************************************************************\e[0m"
- ewarn
- ewarn "You have just upgraded from an older version of GHC."
- ewarn "You may have to run"
- ewarn " 'haskell-updater'"
- ewarn "to rebuild all ghc-based Haskell libraries."
- ewarn
- ewarn "\e[1;31m************************************************************************\e[0m"
- ewarn
- fi
-}
-
-pkg_prerm() {
- PKGCACHE="${EROOT}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d/package.cache"
- rm -rf "${PKGCACHE}"
-
- cp -p "${PKGCACHE}"{.shipped,}
-}
-
-pkg_postrm() {
- ghc-package_pkg_postrm
-}
diff --git a/dev-lang/ghc/ghc-8.2.1.ebuild b/dev-lang/ghc/ghc-8.2.1.ebuild
deleted file mode 100644
index aa2a45cf9624..000000000000
--- a/dev-lang/ghc/ghc-8.2.1.ebuild
+++ /dev/null
@@ -1,754 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-
-# to make make a crosscompiler use crossdev and symlink ghc tree into
-# cross overlay. result would look like 'cross-sparc-unknown-linux-gnu/ghc'
-export CBUILD=${CBUILD:-${CHOST}}
-export CTARGET=${CTARGET:-${CHOST}}
-if [[ ${CTARGET} = ${CHOST} ]] ; then
- if [[ ${CATEGORY/cross-} != ${CATEGORY} ]] ; then
- export CTARGET=${CATEGORY/cross-}
- fi
-fi
-
-inherit autotools bash-completion-r1 eutils flag-o-matic ghc-package
-inherit multilib pax-utils toolchain-funcs versionator prefix
-inherit check-reqs
-DESCRIPTION="The Glasgow Haskell Compiler"
-HOMEPAGE="https://www.haskell.org/ghc/"
-
-# we don't have any binaries yet
-arch_binaries=""
-
-# sorted!
-#arch_binaries="$arch_binaries alpha? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-alpha.tbz2 )"
-#arch_binaries="$arch_binaries arm? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-armv7a-hardfloat-linux-gnueabi.tbz2 )"
-#arch_binaries="$arch_binaries arm64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-aarch64-unknown-linux-gnu.tbz2 )"
-arch_binaries="$arch_binaries amd64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-x86_64-pc-linux-gnu.tbz2 )"
-#arch_binaries="$arch_binaries ia64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ia64-fixed-fiw.tbz2 )"
-#arch_binaries="$arch_binaries ppc? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ppc.tbz2 )"
-#arch_binaries="$arch_binaries ppc64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ppc64.tbz2 )"
-#arch_binaries="$arch_binaries sparc? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-sparc.tbz2 )"
-arch_binaries="$arch_binaries x86? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-i686-pc-linux-gnu.tbz2 )"
-
-# various ports:
-#arch_binaries="$arch_binaries x86-fbsd? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-x86-fbsd.tbz2 )"
-
-# 0 - yet
-yet_binary() {
- case "${ARCH}" in
- #alpha) return 0 ;;
- #arm64) return 0 ;;
- #arm) return 0 ;;
- amd64) return 0 ;;
- #ia64) return 0 ;;
- #ppc) return 0 ;;
- #ppc64) return 0 ;;
- #sparc) return 0 ;;
- x86) return 0 ;;
- *) return 1 ;;
- esac
-}
-
-GHC_PV=${PV}
-#GHC_PV=8.2.0.20170704 # uncomment only for -rc ebuilds
-GHC_P=${PN}-${GHC_PV} # using ${P} is almost never correct
-
-SRC_URI="!binary? ( https://downloads.haskell.org/~ghc/${PV/_rc/-rc}/${GHC_P}-src.tar.xz )"
-S="${WORKDIR}"/${GHC_P}
-
-[[ -n $arch_binaries ]] && SRC_URI+=" !ghcbootstrap? ( $arch_binaries )"
-
-BUMP_LIBRARIES=(
- # "hackage-name hackage-version"
-)
-
-LICENSE="BSD"
-SLOT="0/${PV}"
-#KEYWORDS="~alpha ~amd64 ~x86 ~amd64-linux ~x86-linux"
-IUSE="doc ghcbootstrap ghcmakebinary +gmp profile"
-IUSE+=" binary"
-
-RDEPEND="
- >=dev-lang/perl-5.6.1
- dev-libs/gmp:0=
- sys-libs/ncurses:0=[unicode]
- !ghcmakebinary? ( dev-libs/libffi:= )
-"
-
-# This set of dependencies is needed to run
-# prebuilt ghc. We specifically avoid ncurses
-# dependency with:
-# utils/ghc-pkg_HC_OPTS += -DBOOTSTRAPPING
-PREBUILT_BINARY_DEPENDS="
- !prefix? ( elibc_glibc? ( >=sys-libs/glibc-2.17 ) )
-"
-# This set of dependencies is needed to install
-# ghc[binary] in system. terminfo package is linked
-# against ncurses.
-PREBUILT_BINARY_RDEPENDS="${PREBUILT_BINARY_DEPENDS}
- sys-libs/ncurses:0/6
-"
-
-RDEPEND+="binary? ( ${PREBUILT_BINARY_RDEPENDS} )"
-
-DEPEND="${RDEPEND}
- doc? ( app-text/docbook-xml-dtd:4.2
- app-text/docbook-xml-dtd:4.5
- app-text/docbook-xsl-stylesheets
- dev-python/sphinx
- >=dev-libs/libxslt-1.1.2 )
- !ghcbootstrap? ( ${PREBUILT_BINARY_DEPENDS} )"
-
-PDEPEND="!ghcbootstrap? ( =app-admin/haskell-updater-1.2* )"
-
-REQUIRED_USE="?? ( ghcbootstrap binary )"
-
-# haskell libraries built with cabal in configure mode, #515354
-QA_CONFIGURE_OPTIONS+=" --with-compiler --with-gcc"
-
-is_crosscompile() {
- [[ ${CHOST} != ${CTARGET} ]]
-}
-
-is_native() {
- [[ ${CHOST} == ${CBUILD} ]] && [[ ${CHOST} == ${CTARGET} ]]
-}
-
-# returns tool prefix for crosscompiler.
-# Example:
-# CTARGET=armv7a-unknown-linux-gnueabi
-# CHOST=x86_64-pc-linux-gnu
-# "armv7a-unknown-linux-gnueabi-"
-# CTARGET=${CHOST}
-# ""
-# Used in tools and library prefix:
-# "${ED}"/usr/bin/$(cross)haddock
-# "${ED}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d"
-
-cross() {
- if is_crosscompile; then
- echo "${CTARGET}-"
- else
- echo ""
- fi
-}
-
-append-ghc-cflags() {
- local persistent compile assemble link
- local flag ghcflag
-
- for flag in $*; do
- case ${flag} in
- persistent) persistent="yes";;
- compile) compile="yes";;
- assemble) assemble="yes";;
- link) link="yes";;
- *)
- [[ ${compile} ]] && ghcflag="-optc${flag}" CFLAGS+=" ${flag}" && GHC_FLAGS+=" ${ghcflag}" &&
- [[ ${persistent} ]] && GHC_PERSISTENT_FLAGS+=" ${ghcflag}"
- [[ ${assemble} ]] && ghcflag="-opta${flag}" CFLAGS+=" ${flag}" && GHC_FLAGS+=" ${ghcflag}" &&
- [[ ${persistent} ]] && GHC_PERSISTENT_FLAGS+=" ${ghcflag}"
- [[ ${link} ]] && ghcflag="-optl${flag}" LDFLAGS+=" ${flag}" && GHC_FLAGS+=" ${ghcflag}" &&
- [[ ${persistent} ]] && GHC_PERSISTENT_FLAGS+=" ${ghcflag}"
- ;;
- esac
- done
-}
-
-# $1 - lib name (under libraries/)
-# $2 - lib version
-# example: bump_lib "transformers" "0.4.2.0"
-bump_lib() {
- local pn=$1 pv=$2
- local p=${pn}-${pv}
- local f
-
- einfo "Bumping ${pn} up to ${pv}"
-
- for f in ghc.mk GNUmakefile; do
- mv libraries/"${pn}"/$f "${WORKDIR}"/"${p}"/$f || die
- done
- mv libraries/"${pn}" "${WORKDIR}"/"${pn}".old || die
- mv "${WORKDIR}"/"${p}" libraries/"${pn}" || die
-}
-
-update_SRC_URI() {
- local p pn pv
- for p in "${BUMP_LIBRARIES[@]}"; do
- set -- $p
- pn=$1 pv=$2
-
- SRC_URI+=" https://hackage.haskell.org/package/${pn}-${pv}/${pn}-${pv}.tar.gz"
- done
-}
-
-update_SRC_URI
-
-bump_libs() {
- local p pn pv
- for p in "${BUMP_LIBRARIES[@]}"; do
- set -- $p
- pn=$1 pv=$2
-
- bump_lib "${pn}" "${pv}"
- done
-}
-
-ghc_setup_cflags() {
- # TODO: plumb CFLAGS and BUILD_CFLAGS to respective CONF_CC_OPTS_STAGE<N>
- if ! is_native; then
- export CFLAGS=${GHC_CFLAGS-"-O2 -pipe"}
- export LDFLAGS=${GHC_LDFLAGS-"-Wl,-O1"}
- einfo "Crosscompiling mode:"
- einfo " CHOST: ${CHOST}"
- einfo " CTARGET: ${CTARGET}"
- einfo " CFLAGS: ${CFLAGS}"
- einfo " LDFLAGS: ${LDFLAGS}"
- einfo " prefix: $(cross)"
- return
- fi
- # We need to be very careful with the CFLAGS we ask ghc to pass through to
- # gcc. There are plenty of flags which will make gcc produce output that
- # breaks ghc in various ways. The main ones we want to pass through are
- # -mcpu / -march flags. These are important for arches like alpha & sparc.
- # We also use these CFLAGS for building the C parts of ghc, ie the rts.
- strip-flags
- strip-unsupported-flags
-
- # Cmm can't parse line numbers #482086
- replace-flags -ggdb[3-9] -ggdb2
-
- GHC_FLAGS=""
- GHC_PERSISTENT_FLAGS=""
- for flag in ${CFLAGS}; do
- case ${flag} in
-
- # Ignore extra optimisation (ghc passes -O to gcc anyway)
- # -O2 and above break on too many systems
- -O*) ;;
-
- # Arch and ABI flags are what we're really after
- -m*) append-ghc-cflags compile assemble ${flag};;
-
- # Sometimes it's handy to see backtrace of RTS
- # to get an idea what happens there
- -g*) append-ghc-cflags compile ${flag};;
-
- # Ignore all other flags, including all -f* flags
- esac
- done
-
- for flag in ${LDFLAGS}; do
- append-ghc-cflags link ${flag}
- done
-
- # GHC uses ${CBUILD}-gcc, ${CHOST}-gcc and ${CTARGET}-gcc at a single build.
- # Skip any gentoo-specific tweaks for cross-case to avoid passing unsupported
- # options to gcc.
- if is_native; then
- # hardened-gcc needs to be disabled, because our prebuilt binaries/libraries
- # are not built with fPIC, bug #606666
- gcc-specs-pie && append-ghc-cflags persistent compile link -nopie
- tc-is-gcc && version_is_at_least 6.3 $(gcc-version) && if ! use ghcbootstrap; then
- # gcc-6.3 has support for -no-pie upstream, but spelling differs from
- # gentoo-specific '-nopie'. We enable it in non-bootstrap to allow
- # hardened users try '-pie' in USE=ghcbootstrap mode.
- append-ghc-cflags compile link -no-pie
- fi
-
- # prevent from failing to build unregisterised ghc:
- # https://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg171602.html
- use ppc64 && append-ghc-cflags persistent compile -mminimal-toc
- fi
-}
-
-# substitutes string $1 to $2 in files $3 $4 ...
-relocate_path() {
- local from=$1
- local to=$2
- shift 2
- local file=
- for file in "$@"
- do
- sed -i -e "s|$from|$to|g" \
- "$file" || die "path relocation failed for '$file'"
- done
-}
-
-# changes hardcoded ghc paths and updates package index
-# $1 - new absolute root path
-relocate_ghc() {
- local to=$1
-
- # libdir for prebuilt binary and for current system may mismatch
- # It does for prefix installation for example: bug #476998
- local bin_ghc_prefix=${WORKDIR}/usr
- local bin_libpath=$(echo "${bin_ghc_prefix}"/lib*)
- local bin_libdir=${bin_libpath#${bin_ghc_prefix}/}
-
- # backup original script to use it later after relocation
- local gp_back="${T}/ghc-pkg-${GHC_PV}-orig"
- cp "${WORKDIR}/usr/bin/ghc-pkg-${GHC_PV}" "$gp_back" || die "unable to backup ghc-pkg wrapper"
-
- if [[ ${bin_libdir} != $(get_libdir) ]]; then
- einfo "Relocating '${bin_libdir}' to '$(get_libdir)' (bug #476998)"
- # moving the dir itself is not strictly needed
- # but then USE=binary would result in installing
- # in '${bin_libdir}'
- mv "${bin_ghc_prefix}/${bin_libdir}" "${bin_ghc_prefix}/$(get_libdir)" || die
-
- relocate_path "/usr/${bin_libdir}" "/usr/$(get_libdir)" \
- "${WORKDIR}/usr/bin/ghc-${GHC_PV}" \
- "${WORKDIR}/usr/bin/ghci-${GHC_PV}" \
- "${WORKDIR}/usr/bin/ghc-pkg-${GHC_PV}" \
- "${WORKDIR}/usr/bin/hsc2hs" \
- "${WORKDIR}/usr/bin/runghc-${GHC_PV}" \
- "$gp_back" \
- "${WORKDIR}/usr/$(get_libdir)/${GHC_P}/package.conf.d/"*
- fi
-
- # Relocate from /usr to ${EPREFIX}/usr
- relocate_path "/usr" "${to}/usr" \
- "${WORKDIR}/usr/bin/ghc-${GHC_PV}" \
- "${WORKDIR}/usr/bin/ghci-${GHC_PV}" \
- "${WORKDIR}/usr/bin/ghc-pkg-${GHC_PV}" \
- "${WORKDIR}/usr/bin/hsc2hs" \
- "${WORKDIR}/usr/bin/runghc-${GHC_PV}" \
- "${WORKDIR}/usr/$(get_libdir)/${GHC_P}/package.conf.d/"*
-
- # this one we will use to regenerate cache
- # so it should point to current tree location
- relocate_path "/usr" "${WORKDIR}/usr" "$gp_back"
-
- if use prefix; then
- hprefixify "${bin_libpath}"/${PN}*/settings
- fi
-
- # regenerate the binary package cache
- "$gp_back" recache || die "failed to update cache after relocation"
- rm "$gp_back"
-}
-
-ghc-check-reqs() {
- # These are pessimistic values (slightly bigger than worst-case)
- # Worst case is UNREG USE=profile ia64. See bug #611866 for some
- # numbers on various arches.
- CHECKREQS_DISK_BUILD=8G
- CHECKREQS_DISK_USR=2G
- # USE=binary roughly takes
- use binary && CHECKREQS_DISK_BUILD=4G
-
- "$@"
-}
-
-pkg_pretend() {
- ghc-check-reqs check-reqs_pkg_pretend
-}
-
-pkg_setup() {
- ghc-check-reqs check-reqs_pkg_setup
-
- # quiet portage about prebuilt binaries
- use binary && QA_PREBUILT="*"
-
- [[ ${MERGE_TYPE} == binary ]] && return
-
- if use ghcbootstrap; then
- ewarn "You requested ghc bootstrapping, this is usually only used"
- ewarn "by Gentoo developers to make binary .tbz2 packages."
-
- [[ -z $(type -P ghc) ]] && \
- die "Could not find a ghc to bootstrap with."
- else
- if ! yet_binary; then
- eerror "Please try emerging with USE=ghcbootstrap and report build"
- eerror "sucess or failure to the haskell team (haskell@gentoo.org)"
- die "No binary available for '${ARCH}' arch yet, USE=ghcbootstrap"
- fi
- fi
-}
-
-src_unpack() {
- # Create the ${S} dir if we're using the binary version
- use binary && mkdir "${S}"
-
- # the Solaris and Darwin binaries from ghc (maeder) need to be
- # unpacked separately, so prevent them from being unpacked
- local ONLYA=${A}
- case ${CHOST} in
- *-darwin* | *-solaris*) ONLYA=${GHC_P}-src.tar.xz ;;
- esac
- unpack ${ONLYA}
-}
-
-src_prepare() {
- ghc_setup_cflags
-
- if ! use ghcbootstrap && [[ ${CHOST} != *-darwin* && ${CHOST} != *-solaris* ]]; then
- # Modify the wrapper script from the binary tarball to use GHC_PERSISTENT_FLAGS.
- # See bug #313635.
- sed -i -e "s|\"\$topdir\"|\"\$topdir\" ${GHC_PERSISTENT_FLAGS}|" \
- "${WORKDIR}/usr/bin/ghc-${GHC_PV}"
-
- # allow hardened users use vanilla binary to bootstrap ghc
- # ghci uses mmap with rwx protection at it implements dynamic
- # linking on it's own (bug #299709)
- pax-mark -m "${WORKDIR}/usr/$(get_libdir)/${GHC_P}/bin/ghc"
- fi
-
- if use binary; then
- if use prefix; then
- relocate_ghc "${EPREFIX}"
- fi
-
- # Move unpacked files to the expected place
- mv "${WORKDIR}/usr" "${S}"
- else
- if ! use ghcbootstrap; then
- case ${CHOST} in
- *-darwin* | *-solaris*)
- # UPDATE ME for ghc-7
- mkdir "${WORKDIR}"/ghc-bin-installer || die
- pushd "${WORKDIR}"/ghc-bin-installer > /dev/null || die
- use sparc-solaris && unpack ghc-6.10.4-sparc-sun-solaris2.tar.bz2
- use x86-solaris && unpack ghc-7.0.3-i386-unknown-solaris2.tar.bz2
- use x64-macos && unpack ghc-7.4.1-x86_64-apple-darwin.tar.bz2
- popd > /dev/null
-
- pushd "${WORKDIR}"/ghc-bin-installer/ghc-[67].?*.? > /dev/null || die
- # fix the binaries so they run, on Solaris we need an
- # LD_LIBRARY_PATH which has our prefix libdirs, on
- # Darwin we need to replace the frameworks with our libs
- # from the prefix fix before installation, because some
- # of the tools are actually used during configure/make
- if [[ ${CHOST} == *-solaris* ]] ; then
- export LD_LIBRARY_PATH="${EPREFIX}/$(get_libdir):${EPREFIX}/usr/$(get_libdir):${LD_LIBRARY_PATH}"
- elif [[ ${CHOST} == *-darwin* ]] ; then
- local readline_framework=GNUreadline.framework/GNUreadline
- local gmp_framework=/opt/local/lib/libgmp.10.dylib
- local ncurses_file=/opt/local/lib/libncurses.5.dylib
- for binary in $(scanmacho -BRE MH_EXECUTE -F '%F' .) ; do
- install_name_tool -change \
- ${readline_framework} \
- "${EPREFIX}"/lib/libreadline.dylib \
- ${binary} || die
- install_name_tool -change \
- ${gmp_framework} \
- "${EPREFIX}"/usr/lib/libgmp.dylib \
- ${binary} || die
- install_name_tool -change \
- ${ncurses_file} \
- "${EPREFIX}"/usr/lib/libncurses.dylib \
- ${binary} || die
- done
- # we don't do frameworks!
- sed -i \
- -e 's/\(frameworks = \)\["GMP"\]/\1[]/g' \
- -e 's/\(extraLibraries = \)\["m"\]/\1["m","gmp"]/g' \
- rts/package.conf.in || die
- fi
-
- # it is autoconf, but we really don't want to give it too
- # much arguments, in fact we do the make in-place anyway
- ./configure --prefix="${WORKDIR}"/usr || die
- make install || die
- popd > /dev/null
- ;;
- *)
- relocate_ghc "${WORKDIR}"
- ;;
- esac
- fi
-
- sed -i -e "s|\"\$topdir\"|\"\$topdir\" ${GHC_PERSISTENT_FLAGS}|" \
- "${S}/ghc/ghc.wrapper"
-
- cd "${S}" # otherwise epatch will break
-
- epatch "${FILESDIR}"/${PN}-7.0.4-CHOST-prefix.patch
- epatch "${FILESDIR}"/${PN}-8.2.1-darwin.patch
-
- epatch "${FILESDIR}"/${PN}-8.2.1_rc1-cgen-constify.patch
- epatch "${FILESDIR}"/${PN}-7.8.3-prim-lm.patch
- epatch "${FILESDIR}"/${PN}-8.0.2-no-relax-everywhere.patch
-
- epatch "${FILESDIR}"/${PN}-8.2.1_rc2-O2-unreg.patch
-
- # a bunch of crosscompiler patches
- epatch "${FILESDIR}"/${PN}-8.2.1_rc1-unphased-cross.patch
- epatch "${FILESDIR}"/${PN}-8.2.1_rc1-staged-cross.patch
- epatch "${FILESDIR}"/${PN}-8.2.1_rc1-ghci-cross.patch
- epatch "${FILESDIR}"/${PN}-8.2.1_rc1-stage2-cross.patch
- epatch "${FILESDIR}"/${PN}-8.2.1_rc1-hp2ps-cross.patch
- epatch "${FILESDIR}"/${PN}-8.2.1_rc3-any-vendor.patch
- epatch "${FILESDIR}"/${PN}-8.2.1_rc3-stginit-data.patch
-
- # needs a new libffi release
- epatch "${FILESDIR}"/${PN}-8.0.2-libffi-alpha.patch
-
- # mingw32 target
- pushd "${S}/libraries/Win32"
- epatch "${FILESDIR}"/${PN}-8.2.1_rc1-win32-cross-1.patch # upstreamed, waits for merge to -HEAD
- epatch "${FILESDIR}"/${PN}-8.2.1_rc1-win32-cross-2-hack.patch # bad workaround
- popd
-
- bump_libs
-
- # as we have changed the build system
- eautoreconf
- fi
-}
-
-src_configure() {
- if ! use binary; then
- # initialize build.mk
- echo '# Gentoo changes' > mk/build.mk
-
- # Put docs into the right place, ie /usr/share/doc/ghc-${GHC_PV}
- echo "docdir = ${EPREFIX}/usr/share/doc/$(cross)${P}" >> mk/build.mk
- echo "htmldir = ${EPREFIX}/usr/share/doc/$(cross)${P}" >> mk/build.mk
-
- # We also need to use the GHC_FLAGS flags when building ghc itself
- echo "SRC_HC_OPTS+=${HCFLAGS} ${GHC_FLAGS}" >> mk/build.mk
- echo "SRC_CC_OPTS+=${CFLAGS}" >> mk/build.mk
- echo "SRC_LD_OPTS+=${LDFLAGS}" >> mk/build.mk
- # Speed up initial Cabal bootstrap
- echo "utils/ghc-cabal_dist_EXTRA_HC_OPTS+=$(ghc-make-args)" >> mk/build.mk
-
- # We can't depend on haddock except when bootstrapping when we
- # must build docs and include them into the binary .tbz2 package
- # app-text/dblatex is not in portage, can not build PDF or PS
- echo "BUILD_SPHINX_PDF = NO" >> mk/build.mk
- echo "BUILD_SPHINX_HTML = $(usex doc YES NO)" >> mk/build.mk
- echo "BUILD_MAN = $(usex doc YES NO)" >> mk/build.mk
-
- # this controls presence on 'xhtml' and 'haddock' in final install
- echo "HADDOCK_DOCS = YES" >> mk/build.mk
-
- # not used outside of ghc's test
- if [[ -n ${GHC_BUILD_DPH} ]]; then
- echo "BUILD_DPH = YES" >> mk/build.mk
- else
- echo "BUILD_DPH = NO" >> mk/build.mk
- fi
-
- # Any non-native build has to skip as it needs
- # target haddock binary to be runnabine.
- if ! is_native; then
- # disable docs generation as it requires running stage2
- echo "HADDOCK_DOCS=NO" >> mk/build.mk
- echo "BUILD_SPHINX_HTML=NO" >> mk/build.mk
- echo "BUILD_SPHINX_PDF=NO" >> mk/build.mk
- fi
-
- if is_crosscompile; then
- # Install ghc-stage1 crosscompiler instead of
- # ghc-stage2 cross-built compiler.
- echo "Stage1Only=YES" >> mk/build.mk
- fi
-
- # allows overriding build flavours for libraries:
- # v - vanilla (static libs)
- # p - profiled
- # dyn - shared libraries
- # example: GHC_LIBRARY_WAYS="v dyn"
- if [[ -n ${GHC_LIBRARY_WAYS} ]]; then
- echo "GhcLibWays=${GHC_LIBRARY_WAYS}" >> mk/build.mk
- fi
- echo "BUILD_PROF_LIBS = $(usex profile YES NO)" >> mk/build.mk
-
- # Get ghc from the unpacked binary .tbz2
- # except when bootstrapping we just pick ghc up off the path
- if ! use ghcbootstrap; then
- export PATH="${WORKDIR}/usr/bin:${PATH}"
- fi
-
- echo "INTEGER_LIBRARY = $(usex gmp integer-gmp integer-simple)" >> mk/build.mk
-
- # don't strip anything. Very useful when stage2 SIGSEGVs on you
- echo "STRIP_CMD = :" >> mk/build.mk
-
- local econf_args=()
-
- # GHC embeds toolchain it was built by and uses it later.
- # Don't allow things like ccache or versioned binary slip.
- # We use stable thing across gcc upgrades.
- # User can use EXTRA_ECONF=CC=... to override this default.
- econf_args+=(
- AR=${CTARGET}-ar
- CC=${CTARGET}-gcc
- LD=${CTARGET}-ld
- # these should be inferred by GHC but ghc defaults
- # to using bundled tools on windows.
- Windres=${CTARGET}-windres
- DllWrap=${CTARGET}-dllwrap
- )
- if [[ ${CTARGET} == arm* ]] ; then
- # ld.bfd-2.28 does not work for ghc. Force ld.gold
- # instead. This should be removed once gentoo gets
- # a fix for R_ARM_COPY bug: https://sourceware.org/PR16177
- econf_args+=(LD=${CTARGET}-ld.gold)
- fi
-
- if [[ ${CBUILD} != ${CHOST} ]]; then
- # GHC bug: ghc claims not to support cross-building.
- # It does, but does not distinct --host= value
- # for stage1 and stage2 compiler.
- econf_args+=(--host=${CBUILD})
- fi
-
- if use ghcmakebinary; then
- # When building booting libary we are trying to
- # bundle or restrict most of external depends
- # with unstable ABI:
- # - embed libffi (default GHC behaviour)
- # - disable ncurses support for ghci (via haskeline)
- # https://bugs.gentoo.org/557478
- # - disable ncurses support for ghc-pkg
- echo "libraries/haskeline_CONFIGURE_OPTS += --flag=-terminfo" >> mk/build.mk
- echo "utils/ghc-pkg_HC_OPTS += -DBOOTSTRAPPING" >> mk/build.mk
- elif is_native; then
- # using ${GTARGET}'s libffi is not supported yet:
- # GHC embeds full path for ffi includes without /usr/${CTARGET} account.
- econf_args+=(--with-system-libffi)
- econf_args+=(--with-ffi-includes=$($(tc-getPKG_CONFIG) libffi --cflags-only-I | sed -e 's@^-I@@'))
- fi
-
- einfo "Final mk/build.mk:"
- cat mk/build.mk || die
-
- econf ${econf_args[@]} --enable-bootstrap-with-devel-snapshot
-
- if [[ ${PV} == *9999* ]]; then
- GHC_PV="$(grep 'S\[\"PACKAGE_VERSION\"\]' config.status | sed -e 's@^.*=\"\(.*\)\"@\1@')"
- GHC_P=${PN}-${GHC_PV}
- fi
- fi # ! use binary
-}
-
-src_compile() {
- if ! use binary; then
- # Stage1Only crosscompiler does not build stage2
- if ! is_crosscompile; then
- # 1. build/pax-mark compiler binary first
- emake ghc/stage2/build/tmp/ghc-stage2
- # 2. pax-mark (bug #516430)
- pax-mark -m ghc/stage2/build/tmp/ghc-stage2
- # 2. build/pax-mark haddock using ghc-stage2
- if is_native; then
- # non-native build does not build haddock
- # due to HADDOCK_DOCS=NO, but it could.
- emake utils/haddock/dist/build/tmp/haddock
- pax-mark -m utils/haddock/dist/build/tmp/haddock
- fi
- fi
- # 3. and then all the rest
- emake all
- fi # ! use binary
-}
-
-src_install() {
- if use binary; then
- use prefix && mkdir -p "${ED}"
- mv "${S}/usr" "${ED}"
- else
- [[ -f VERSION ]] || emake VERSION
-
- # -j1 due to a rare race in install script:
- # make --no-print-directory -f ghc.mk phase=final install
- # /usr/lib/portage/python3.4/ebuild-helpers/xattr/install -c -m 755 \
- # -d "/tmp/portage-tmpdir/portage/cross-armv7a-unknown-linux-gnueabi/ghc-9999/image/usr/lib64/armv7a-unknown-linux-gnueabi-ghc-8.3.20170404/include"
- # /usr/lib/portage/python3.4/ebuild-helpers/xattr/install -c -m 644 utils/hsc2hs/template-hsc.h \
- # "/tmp/portage-tmpdir/portage/cross-armv7a-unknown-linux-gnueabi/ghc-9999/image/usr/lib64/armv7a-unknown-linux-gnueabi-ghc-8.3.20170404"
- # /usr/bin/install: cannot create regular file \
- # '/tmp/portage-tmpdir/portage/cross-armv7a-unknown-linux-gnueabi/ghc-9999/image/usr/lib64/armv7a-unknown-linux-gnueabi-ghc-8.3.20170404': No such file or directory
- emake -j1 install DESTDIR="${D}"
-
- # Skip for cross-targets as they all share target location:
- # /usr/share/doc/ghc-9999/
- if ! is_crosscompile; then
- dodoc "distrib/README" "ANNOUNCE" "LICENSE" "VERSION"
- fi
-
- # rename ghc-shipped files to avoid collision
- # of external packages. Motivating example:
- # user had installed:
- # dev-lang/ghc-7.8.4-r0 (with transformers-0.3.0.0)
- # dev-haskell/transformers-0.4.2.0
- # then user tried to update to
- # dev-lang/ghc-7.8.4-r1 (with transformers-0.4.2.0)
- # this will lead to single .conf file collision.
- local shipped_conf renamed_conf
- local package_confdir="${ED}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d"
- for shipped_conf in "${package_confdir}"/*.conf; do
- # rename 'pkg-ver-id.conf' to 'pkg-ver-id-gentoo-${PF}.conf'
- renamed_conf=${shipped_conf%.conf}-gentoo-${PF}.conf
- mv "${shipped_conf}" "${renamed_conf}" || die
- done
-
- # remove link, but leave 'haddock-${GHC_P}'
- rm -f "${ED}"/usr/bin/$(cross)haddock
-
- if ! is_crosscompile; then
- newbashcomp "${FILESDIR}"/ghc-bash-completion ghc-pkg
- newbashcomp utils/completion/ghc.bash ghc
- fi
- fi
-
- # path to the package.cache
- local package_confdir="${ED}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d"
- PKGCACHE="${package_confdir}"/package.cache
- # copy the package.conf.d, including timestamp, save it so we can help
- # users that have a broken package.conf.d
- cp -pR "${package_confdir}"{,.initial} || die "failed to backup intial package.conf.d"
-
- # copy the package.conf, including timestamp, save it so we later can put it
- # back before uninstalling, or when upgrading.
- cp -p "${PKGCACHE}"{,.shipped} \
- || die "failed to copy package.conf.d/package.cache"
-}
-
-pkg_preinst() {
- # have we got an earlier version of ghc installed?
- if has_version "<${CATEGORY}/${PF}"; then
- haskell_updater_warn="1"
- fi
-}
-
-pkg_postinst() {
- ghc-reregister
-
- # path to the package.cache
- PKGCACHE="${EROOT}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d/package.cache"
-
- # give the cache a new timestamp, it must be as recent as
- # the package.conf.d directory.
- touch "${PKGCACHE}"
-
- if [[ "${haskell_updater_warn}" == "1" ]]; then
- ewarn
- ewarn "\e[1;31m************************************************************************\e[0m"
- ewarn
- ewarn "You have just upgraded from an older version of GHC."
- ewarn "You may have to run"
- ewarn " 'haskell-updater'"
- ewarn "to rebuild all ghc-based Haskell libraries."
- ewarn
- ewarn "\e[1;31m************************************************************************\e[0m"
- ewarn
- fi
-}
-
-pkg_prerm() {
- PKGCACHE="${EROOT}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d/package.cache"
- rm -rf "${PKGCACHE}"
-
- cp -p "${PKGCACHE}"{.shipped,}
-}
-
-pkg_postrm() {
- ghc-package_pkg_postrm
-}
diff --git a/dev-lang/ghc/ghc-8.2.2.ebuild b/dev-lang/ghc/ghc-8.2.2.ebuild
deleted file mode 100644
index 1338261d87dc..000000000000
--- a/dev-lang/ghc/ghc-8.2.2.ebuild
+++ /dev/null
@@ -1,755 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-# to make make a crosscompiler use crossdev and symlink ghc tree into
-# cross overlay. result would look like 'cross-sparc-unknown-linux-gnu/ghc'
-export CBUILD=${CBUILD:-${CHOST}}
-export CTARGET=${CTARGET:-${CHOST}}
-if [[ ${CTARGET} = ${CHOST} ]] ; then
- if [[ ${CATEGORY/cross-} != ${CATEGORY} ]] ; then
- export CTARGET=${CATEGORY/cross-}
- fi
-fi
-
-inherit autotools bash-completion-r1 eutils flag-o-matic ghc-package
-inherit multilib pax-utils toolchain-funcs versionator prefix
-inherit check-reqs
-DESCRIPTION="The Glasgow Haskell Compiler"
-HOMEPAGE="https://www.haskell.org/ghc/"
-
-# we don't have any binaries yet
-arch_binaries=""
-
-# sorted!
-#arch_binaries="$arch_binaries alpha? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-alpha.tbz2 )"
-#arch_binaries="$arch_binaries arm? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-armv7a-hardfloat-linux-gnueabi.tbz2 )"
-#arch_binaries="$arch_binaries arm64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-aarch64-unknown-linux-gnu.tbz2 )"
-arch_binaries="$arch_binaries amd64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-x86_64-pc-linux-gnu.tbz2 )"
-#arch_binaries="$arch_binaries ia64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ia64-fixed-fiw.tbz2 )"
-#arch_binaries="$arch_binaries ppc? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ppc.tbz2 )"
-#arch_binaries="$arch_binaries ppc64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ppc64.tbz2 )"
-#arch_binaries="$arch_binaries sparc? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-sparc.tbz2 )"
-arch_binaries="$arch_binaries x86? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-i686-pc-linux-gnu.tbz2 )"
-
-# various ports:
-#arch_binaries="$arch_binaries x86-fbsd? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-x86-fbsd.tbz2 )"
-
-# 0 - yet
-yet_binary() {
- case "${ARCH}" in
- #alpha) return 0 ;;
- #arm64) return 0 ;;
- #arm) return 0 ;;
- amd64) return 0 ;;
- #ia64) return 0 ;;
- #ppc) return 0 ;;
- #ppc64) return 0 ;;
- #sparc) return 0 ;;
- x86) return 0 ;;
- *) return 1 ;;
- esac
-}
-
-GHC_PV=${PV}
-#GHC_PV=8.2.1.20171108 # uncomment only for -rc ebuilds
-GHC_P=${PN}-${GHC_PV} # using ${P} is almost never correct
-
-SRC_URI="!binary? ( https://downloads.haskell.org/~ghc/${PV/_rc/-rc}/${GHC_P}-src.tar.xz )"
-S="${WORKDIR}"/${GHC_P}
-
-[[ -n $arch_binaries ]] && SRC_URI+=" !ghcbootstrap? ( $arch_binaries )"
-
-BUMP_LIBRARIES=(
- # "hackage-name hackage-version"
-)
-
-LICENSE="BSD"
-SLOT="0/${PV}"
-#KEYWORDS="~alpha ~amd64 ~x86 ~amd64-linux ~x86-linux"
-IUSE="doc ghcbootstrap ghcmakebinary +gmp profile"
-IUSE+=" binary"
-
-RDEPEND="
- >=dev-lang/perl-5.6.1
- dev-libs/gmp:0=
- sys-libs/ncurses:0=[unicode]
- !ghcmakebinary? ( dev-libs/libffi:= )
-"
-
-# This set of dependencies is needed to run
-# prebuilt ghc. We specifically avoid ncurses
-# dependency with:
-# utils/ghc-pkg_HC_OPTS += -DBOOTSTRAPPING
-PREBUILT_BINARY_DEPENDS="
- !prefix? ( elibc_glibc? ( >=sys-libs/glibc-2.17 ) )
-"
-# This set of dependencies is needed to install
-# ghc[binary] in system. terminfo package is linked
-# against ncurses.
-PREBUILT_BINARY_RDEPENDS="${PREBUILT_BINARY_DEPENDS}
- sys-libs/ncurses:0/6
-"
-
-RDEPEND+="binary? ( ${PREBUILT_BINARY_RDEPENDS} )"
-
-DEPEND="${RDEPEND}
- doc? ( app-text/docbook-xml-dtd:4.2
- app-text/docbook-xml-dtd:4.5
- app-text/docbook-xsl-stylesheets
- dev-python/sphinx
- >=dev-libs/libxslt-1.1.2 )
- !ghcbootstrap? ( ${PREBUILT_BINARY_DEPENDS} )"
-
-PDEPEND="!ghcbootstrap? ( >=app-admin/haskell-updater-1.2 )"
-
-REQUIRED_USE="?? ( ghcbootstrap binary )"
-
-# haskell libraries built with cabal in configure mode, #515354
-QA_CONFIGURE_OPTIONS+=" --with-compiler --with-gcc"
-
-is_crosscompile() {
- [[ ${CHOST} != ${CTARGET} ]]
-}
-
-is_native() {
- [[ ${CHOST} == ${CBUILD} ]] && [[ ${CHOST} == ${CTARGET} ]]
-}
-
-# returns tool prefix for crosscompiler.
-# Example:
-# CTARGET=armv7a-unknown-linux-gnueabi
-# CHOST=x86_64-pc-linux-gnu
-# "armv7a-unknown-linux-gnueabi-"
-# CTARGET=${CHOST}
-# ""
-# Used in tools and library prefix:
-# "${ED}"/usr/bin/$(cross)haddock
-# "${ED}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d"
-
-cross() {
- if is_crosscompile; then
- echo "${CTARGET}-"
- else
- echo ""
- fi
-}
-
-append-ghc-cflags() {
- local persistent compile assemble link
- local flag ghcflag
-
- for flag in $*; do
- case ${flag} in
- persistent) persistent="yes";;
- compile) compile="yes";;
- assemble) assemble="yes";;
- link) link="yes";;
- *)
- [[ ${compile} ]] && ghcflag="-optc${flag}" CFLAGS+=" ${flag}" && GHC_FLAGS+=" ${ghcflag}" &&
- [[ ${persistent} ]] && GHC_PERSISTENT_FLAGS+=" ${ghcflag}"
- [[ ${assemble} ]] && ghcflag="-opta${flag}" CFLAGS+=" ${flag}" && GHC_FLAGS+=" ${ghcflag}" &&
- [[ ${persistent} ]] && GHC_PERSISTENT_FLAGS+=" ${ghcflag}"
- [[ ${link} ]] && ghcflag="-optl${flag}" LDFLAGS+=" ${flag}" && GHC_FLAGS+=" ${ghcflag}" &&
- [[ ${persistent} ]] && GHC_PERSISTENT_FLAGS+=" ${ghcflag}"
- ;;
- esac
- done
-}
-
-# $1 - lib name (under libraries/)
-# $2 - lib version
-# example: bump_lib "transformers" "0.4.2.0"
-bump_lib() {
- local pn=$1 pv=$2
- local p=${pn}-${pv}
- local f
-
- einfo "Bumping ${pn} up to ${pv}"
-
- for f in ghc.mk GNUmakefile; do
- mv libraries/"${pn}"/$f "${WORKDIR}"/"${p}"/$f || die
- done
- mv libraries/"${pn}" "${WORKDIR}"/"${pn}".old || die
- mv "${WORKDIR}"/"${p}" libraries/"${pn}" || die
-}
-
-update_SRC_URI() {
- local p pn pv
- for p in "${BUMP_LIBRARIES[@]}"; do
- set -- $p
- pn=$1 pv=$2
-
- SRC_URI+=" https://hackage.haskell.org/package/${pn}-${pv}/${pn}-${pv}.tar.gz"
- done
-}
-
-update_SRC_URI
-
-bump_libs() {
- local p pn pv
- for p in "${BUMP_LIBRARIES[@]}"; do
- set -- $p
- pn=$1 pv=$2
-
- bump_lib "${pn}" "${pv}"
- done
-}
-
-ghc_setup_cflags() {
- # TODO: plumb CFLAGS and BUILD_CFLAGS to respective CONF_CC_OPTS_STAGE<N>
- if ! is_native; then
- export CFLAGS=${GHC_CFLAGS-"-O2 -pipe"}
- export LDFLAGS=${GHC_LDFLAGS-"-Wl,-O1"}
- einfo "Crosscompiling mode:"
- einfo " CHOST: ${CHOST}"
- einfo " CTARGET: ${CTARGET}"
- einfo " CFLAGS: ${CFLAGS}"
- einfo " LDFLAGS: ${LDFLAGS}"
- einfo " prefix: $(cross)"
- return
- fi
- # We need to be very careful with the CFLAGS we ask ghc to pass through to
- # gcc. There are plenty of flags which will make gcc produce output that
- # breaks ghc in various ways. The main ones we want to pass through are
- # -mcpu / -march flags. These are important for arches like alpha & sparc.
- # We also use these CFLAGS for building the C parts of ghc, ie the rts.
- strip-flags
- strip-unsupported-flags
-
- # Cmm can't parse line numbers #482086
- replace-flags -ggdb[3-9] -ggdb2
-
- GHC_FLAGS=""
- GHC_PERSISTENT_FLAGS=""
- for flag in ${CFLAGS}; do
- case ${flag} in
-
- # Ignore extra optimisation (ghc passes -O to gcc anyway)
- # -O2 and above break on too many systems
- -O*) ;;
-
- # Arch and ABI flags are what we're really after
- -m*) append-ghc-cflags compile assemble ${flag};;
-
- # Sometimes it's handy to see backtrace of RTS
- # to get an idea what happens there
- -g*) append-ghc-cflags compile ${flag};;
-
- # Ignore all other flags, including all -f* flags
- esac
- done
-
- for flag in ${LDFLAGS}; do
- append-ghc-cflags link ${flag}
- done
-
- # GHC uses ${CBUILD}-gcc, ${CHOST}-gcc and ${CTARGET}-gcc at a single build.
- # Skip any gentoo-specific tweaks for cross-case to avoid passing unsupported
- # options to gcc.
- if is_native; then
- # hardened-gcc needs to be disabled, because our prebuilt binaries/libraries
- # are not built with fPIC, bug #606666
- gcc-specs-pie && append-ghc-cflags persistent compile link -nopie
- tc-is-gcc && version_is_at_least 6.3 $(gcc-version) && if ! use ghcbootstrap; then
- # gcc-6.3 has support for -no-pie upstream, but spelling differs from
- # gentoo-specific '-nopie'. We enable it in non-bootstrap to allow
- # hardened users try '-pie' in USE=ghcbootstrap mode.
- append-ghc-cflags compile link -no-pie
- fi
-
- # prevent from failing to build unregisterised ghc:
- # https://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg171602.html
- use ppc64 && append-ghc-cflags persistent compile -mminimal-toc
- fi
-}
-
-# substitutes string $1 to $2 in files $3 $4 ...
-relocate_path() {
- local from=$1
- local to=$2
- shift 2
- local file=
- for file in "$@"
- do
- sed -i -e "s|$from|$to|g" \
- "$file" || die "path relocation failed for '$file'"
- done
-}
-
-# changes hardcoded ghc paths and updates package index
-# $1 - new absolute root path
-relocate_ghc() {
- local to=$1
-
- # libdir for prebuilt binary and for current system may mismatch
- # It does for prefix installation for example: bug #476998
- local bin_ghc_prefix=${WORKDIR}/usr
- local bin_libpath=$(echo "${bin_ghc_prefix}"/lib*)
- local bin_libdir=${bin_libpath#${bin_ghc_prefix}/}
-
- # backup original script to use it later after relocation
- local gp_back="${T}/ghc-pkg-${GHC_PV}-orig"
- cp "${WORKDIR}/usr/bin/ghc-pkg-${GHC_PV}" "$gp_back" || die "unable to backup ghc-pkg wrapper"
-
- if [[ ${bin_libdir} != $(get_libdir) ]]; then
- einfo "Relocating '${bin_libdir}' to '$(get_libdir)' (bug #476998)"
- # moving the dir itself is not strictly needed
- # but then USE=binary would result in installing
- # in '${bin_libdir}'
- mv "${bin_ghc_prefix}/${bin_libdir}" "${bin_ghc_prefix}/$(get_libdir)" || die
-
- relocate_path "/usr/${bin_libdir}" "/usr/$(get_libdir)" \
- "${WORKDIR}/usr/bin/ghc-${GHC_PV}" \
- "${WORKDIR}/usr/bin/ghci-${GHC_PV}" \
- "${WORKDIR}/usr/bin/ghc-pkg-${GHC_PV}" \
- "${WORKDIR}/usr/bin/hsc2hs" \
- "${WORKDIR}/usr/bin/runghc-${GHC_PV}" \
- "$gp_back" \
- "${WORKDIR}/usr/$(get_libdir)/${GHC_P}/package.conf.d/"*
- fi
-
- # Relocate from /usr to ${EPREFIX}/usr
- relocate_path "/usr" "${to}/usr" \
- "${WORKDIR}/usr/bin/ghc-${GHC_PV}" \
- "${WORKDIR}/usr/bin/ghci-${GHC_PV}" \
- "${WORKDIR}/usr/bin/ghc-pkg-${GHC_PV}" \
- "${WORKDIR}/usr/bin/hsc2hs" \
- "${WORKDIR}/usr/bin/runghc-${GHC_PV}" \
- "${WORKDIR}/usr/$(get_libdir)/${GHC_P}/package.conf.d/"*
-
- # this one we will use to regenerate cache
- # so it should point to current tree location
- relocate_path "/usr" "${WORKDIR}/usr" "$gp_back"
-
- if use prefix; then
- hprefixify "${bin_libpath}"/${PN}*/settings
- fi
-
- # regenerate the binary package cache
- "$gp_back" recache || die "failed to update cache after relocation"
- rm "$gp_back"
-}
-
-ghc-check-reqs() {
- # These are pessimistic values (slightly bigger than worst-case)
- # Worst case is UNREG USE=profile ia64. See bug #611866 for some
- # numbers on various arches.
- CHECKREQS_DISK_BUILD=8G
- CHECKREQS_DISK_USR=2G
- # USE=binary roughly takes
- use binary && CHECKREQS_DISK_BUILD=4G
-
- "$@"
-}
-
-pkg_pretend() {
- ghc-check-reqs check-reqs_pkg_pretend
-}
-
-pkg_setup() {
- ghc-check-reqs check-reqs_pkg_setup
-
- # quiet portage about prebuilt binaries
- use binary && QA_PREBUILT="*"
-
- [[ ${MERGE_TYPE} == binary ]] && return
-
- if use ghcbootstrap; then
- ewarn "You requested ghc bootstrapping, this is usually only used"
- ewarn "by Gentoo developers to make binary .tbz2 packages."
-
- [[ -z $(type -P ghc) ]] && \
- die "Could not find a ghc to bootstrap with."
- else
- if ! yet_binary; then
- eerror "Please try emerging with USE=ghcbootstrap and report build"
- eerror "sucess or failure to the haskell team (haskell@gentoo.org)"
- die "No binary available for '${ARCH}' arch yet, USE=ghcbootstrap"
- fi
- fi
-}
-
-src_unpack() {
- # Create the ${S} dir if we're using the binary version
- use binary && mkdir "${S}"
-
- # the Solaris and Darwin binaries from ghc (maeder) need to be
- # unpacked separately, so prevent them from being unpacked
- local ONLYA=${A}
- case ${CHOST} in
- *-darwin* | *-solaris*) ONLYA=${GHC_P}-src.tar.xz ;;
- esac
- unpack ${ONLYA}
-}
-
-src_prepare() {
- ghc_setup_cflags
-
- if ! use ghcbootstrap && [[ ${CHOST} != *-darwin* && ${CHOST} != *-solaris* ]]; then
- # Modify the wrapper script from the binary tarball to use GHC_PERSISTENT_FLAGS.
- # See bug #313635.
- sed -i -e "s|\"\$topdir\"|\"\$topdir\" ${GHC_PERSISTENT_FLAGS}|" \
- "${WORKDIR}/usr/bin/ghc-${GHC_PV}"
-
- # allow hardened users use vanilla binary to bootstrap ghc
- # ghci uses mmap with rwx protection at it implements dynamic
- # linking on it's own (bug #299709)
- pax-mark -m "${WORKDIR}/usr/$(get_libdir)/${GHC_P}/bin/ghc"
- fi
-
- if use binary; then
- if use prefix; then
- relocate_ghc "${EPREFIX}"
- fi
-
- # Move unpacked files to the expected place
- mv "${WORKDIR}/usr" "${S}"
- eapply_user
- else
- if ! use ghcbootstrap; then
- case ${CHOST} in
- *-darwin* | *-solaris*)
- # UPDATE ME for ghc-7
- mkdir "${WORKDIR}"/ghc-bin-installer || die
- pushd "${WORKDIR}"/ghc-bin-installer > /dev/null || die
- use sparc-solaris && unpack ghc-6.10.4-sparc-sun-solaris2.tar.bz2
- use x86-solaris && unpack ghc-7.0.3-i386-unknown-solaris2.tar.bz2
- use x64-macos && unpack ghc-7.4.1-x86_64-apple-darwin.tar.bz2
- popd > /dev/null
-
- pushd "${WORKDIR}"/ghc-bin-installer/ghc-[67].?*.? > /dev/null || die
- # fix the binaries so they run, on Solaris we need an
- # LD_LIBRARY_PATH which has our prefix libdirs, on
- # Darwin we need to replace the frameworks with our libs
- # from the prefix fix before installation, because some
- # of the tools are actually used during configure/make
- if [[ ${CHOST} == *-solaris* ]] ; then
- export LD_LIBRARY_PATH="${EPREFIX}/$(get_libdir):${EPREFIX}/usr/$(get_libdir):${LD_LIBRARY_PATH}"
- elif [[ ${CHOST} == *-darwin* ]] ; then
- local readline_framework=GNUreadline.framework/GNUreadline
- local gmp_framework=/opt/local/lib/libgmp.10.dylib
- local ncurses_file=/opt/local/lib/libncurses.5.dylib
- for binary in $(scanmacho -BRE MH_EXECUTE -F '%F' .) ; do
- install_name_tool -change \
- ${readline_framework} \
- "${EPREFIX}"/lib/libreadline.dylib \
- ${binary} || die
- install_name_tool -change \
- ${gmp_framework} \
- "${EPREFIX}"/usr/lib/libgmp.dylib \
- ${binary} || die
- install_name_tool -change \
- ${ncurses_file} \
- "${EPREFIX}"/usr/lib/libncurses.dylib \
- ${binary} || die
- done
- # we don't do frameworks!
- sed -i \
- -e 's/\(frameworks = \)\["GMP"\]/\1[]/g' \
- -e 's/\(extraLibraries = \)\["m"\]/\1["m","gmp"]/g' \
- rts/package.conf.in || die
- fi
-
- # it is autoconf, but we really don't want to give it too
- # much arguments, in fact we do the make in-place anyway
- ./configure --prefix="${WORKDIR}"/usr || die
- make install || die
- popd > /dev/null
- ;;
- *)
- relocate_ghc "${WORKDIR}"
- ;;
- esac
- fi
-
- sed -i -e "s|\"\$topdir\"|\"\$topdir\" ${GHC_PERSISTENT_FLAGS}|" \
- "${S}/ghc/ghc.wrapper"
-
- cd "${S}" # otherwise eapply will break
-
- eapply "${FILESDIR}"/${PN}-7.0.4-CHOST-prefix.patch
- eapply "${FILESDIR}"/${PN}-8.2.1-darwin.patch
-
- eapply "${FILESDIR}"/${PN}-8.2.1_rc1-cgen-constify.patch
- eapply "${FILESDIR}"/${PN}-7.8.3-prim-lm.patch
- eapply "${FILESDIR}"/${PN}-8.0.2-no-relax-everywhere.patch
-
- eapply "${FILESDIR}"/${PN}-8.2.1_rc2-O2-unreg.patch
- eapply "${FILESDIR}"/${PN}-8.0.2-binutils-2.30.patch
-
- # a bunch of crosscompiler patches
- eapply "${FILESDIR}"/${PN}-8.2.1_rc1-unphased-cross.patch
- eapply "${FILESDIR}"/${PN}-8.2.1_rc1-staged-cross.patch
- eapply "${FILESDIR}"/${PN}-8.2.1_rc1-ghci-cross.patch
- eapply "${FILESDIR}"/${PN}-8.2.1_rc1-stage2-cross.patch
- eapply "${FILESDIR}"/${PN}-8.2.1_rc1-hp2ps-cross.patch
-
- # needs a new libffi release
- eapply "${FILESDIR}"/${PN}-8.0.2-libffi-alpha.patch
-
- # mingw32 target
- pushd "${S}/libraries/Win32"
- eapply "${FILESDIR}"/${PN}-8.2.1_rc1-win32-cross-1.patch # upstreamed, waits for merge to -HEAD
- eapply "${FILESDIR}"/${PN}-8.2.1_rc1-win32-cross-2-hack.patch # bad workaround
- popd
-
- bump_libs
-
- eapply_user
- # as we have changed the build system
- eautoreconf
- fi
-}
-
-src_configure() {
- if ! use binary; then
- # initialize build.mk
- echo '# Gentoo changes' > mk/build.mk
-
- # Put docs into the right place, ie /usr/share/doc/ghc-${GHC_PV}
- echo "docdir = ${EPREFIX}/usr/share/doc/$(cross)${P}" >> mk/build.mk
- echo "htmldir = ${EPREFIX}/usr/share/doc/$(cross)${P}" >> mk/build.mk
-
- # We also need to use the GHC_FLAGS flags when building ghc itself
- echo "SRC_HC_OPTS+=${HCFLAGS} ${GHC_FLAGS}" >> mk/build.mk
- echo "SRC_CC_OPTS+=${CFLAGS}" >> mk/build.mk
- echo "SRC_LD_OPTS+=${LDFLAGS}" >> mk/build.mk
- # Speed up initial Cabal bootstrap
- echo "utils/ghc-cabal_dist_EXTRA_HC_OPTS+=$(ghc-make-args)" >> mk/build.mk
-
- # We can't depend on haddock except when bootstrapping when we
- # must build docs and include them into the binary .tbz2 package
- # app-text/dblatex is not in portage, can not build PDF or PS
- echo "BUILD_SPHINX_PDF = NO" >> mk/build.mk
- echo "BUILD_SPHINX_HTML = $(usex doc YES NO)" >> mk/build.mk
- echo "BUILD_MAN = $(usex doc YES NO)" >> mk/build.mk
-
- # this controls presence on 'xhtml' and 'haddock' in final install
- echo "HADDOCK_DOCS = YES" >> mk/build.mk
-
- # not used outside of ghc's test
- if [[ -n ${GHC_BUILD_DPH} ]]; then
- echo "BUILD_DPH = YES" >> mk/build.mk
- else
- echo "BUILD_DPH = NO" >> mk/build.mk
- fi
-
- # Any non-native build has to skip as it needs
- # target haddock binary to be runnabine.
- if ! is_native; then
- # disable docs generation as it requires running stage2
- echo "HADDOCK_DOCS=NO" >> mk/build.mk
- echo "BUILD_SPHINX_HTML=NO" >> mk/build.mk
- echo "BUILD_SPHINX_PDF=NO" >> mk/build.mk
- fi
-
- if is_crosscompile; then
- # Install ghc-stage1 crosscompiler instead of
- # ghc-stage2 cross-built compiler.
- echo "Stage1Only=YES" >> mk/build.mk
- fi
-
- # allows overriding build flavours for libraries:
- # v - vanilla (static libs)
- # p - profiled
- # dyn - shared libraries
- # example: GHC_LIBRARY_WAYS="v dyn"
- if [[ -n ${GHC_LIBRARY_WAYS} ]]; then
- echo "GhcLibWays=${GHC_LIBRARY_WAYS}" >> mk/build.mk
- fi
- echo "BUILD_PROF_LIBS = $(usex profile YES NO)" >> mk/build.mk
-
- # Get ghc from the unpacked binary .tbz2
- # except when bootstrapping we just pick ghc up off the path
- if ! use ghcbootstrap; then
- export PATH="${WORKDIR}/usr/bin:${PATH}"
- fi
-
- echo "INTEGER_LIBRARY = $(usex gmp integer-gmp integer-simple)" >> mk/build.mk
-
- # don't strip anything. Very useful when stage2 SIGSEGVs on you
- echo "STRIP_CMD = :" >> mk/build.mk
-
- local econf_args=()
-
- # GHC embeds toolchain it was built by and uses it later.
- # Don't allow things like ccache or versioned binary slip.
- # We use stable thing across gcc upgrades.
- # User can use EXTRA_ECONF=CC=... to override this default.
- econf_args+=(
- AR=${CTARGET}-ar
- CC=${CTARGET}-gcc
- LD=${CTARGET}-ld
- # these should be inferred by GHC but ghc defaults
- # to using bundled tools on windows.
- Windres=${CTARGET}-windres
- DllWrap=${CTARGET}-dllwrap
- )
- if [[ ${CTARGET} == arm* ]] ; then
- # ld.bfd-2.28 does not work for ghc. Force ld.gold
- # instead. This should be removed once gentoo gets
- # a fix for R_ARM_COPY bug: https://sourceware.org/PR16177
- econf_args+=(LD=${CTARGET}-ld.gold)
- fi
-
- if [[ ${CBUILD} != ${CHOST} ]]; then
- # GHC bug: ghc claims not to support cross-building.
- # It does, but does not distinct --host= value
- # for stage1 and stage2 compiler.
- econf_args+=(--host=${CBUILD})
- fi
-
- if use ghcmakebinary; then
- # When building booting libary we are trying to
- # bundle or restrict most of external depends
- # with unstable ABI:
- # - embed libffi (default GHC behaviour)
- # - disable ncurses support for ghci (via haskeline)
- # https://bugs.gentoo.org/557478
- # - disable ncurses support for ghc-pkg
- echo "libraries/haskeline_CONFIGURE_OPTS += --flag=-terminfo" >> mk/build.mk
- echo "utils/ghc-pkg_HC_OPTS += -DBOOTSTRAPPING" >> mk/build.mk
- elif is_native; then
- # using ${GTARGET}'s libffi is not supported yet:
- # GHC embeds full path for ffi includes without /usr/${CTARGET} account.
- econf_args+=(--with-system-libffi)
- econf_args+=(--with-ffi-includes=$($(tc-getPKG_CONFIG) libffi --cflags-only-I | sed -e 's@^-I@@'))
- fi
-
- einfo "Final mk/build.mk:"
- cat mk/build.mk || die
-
- econf ${econf_args[@]} --enable-bootstrap-with-devel-snapshot
-
- if [[ ${PV} == *9999* ]]; then
- GHC_PV="$(grep 'S\[\"PACKAGE_VERSION\"\]' config.status | sed -e 's@^.*=\"\(.*\)\"@\1@')"
- GHC_P=${PN}-${GHC_PV}
- fi
- fi # ! use binary
-}
-
-src_compile() {
- if ! use binary; then
- # Stage1Only crosscompiler does not build stage2
- if ! is_crosscompile; then
- # 1. build/pax-mark compiler binary first
- emake ghc/stage2/build/tmp/ghc-stage2
- # 2. pax-mark (bug #516430)
- pax-mark -m ghc/stage2/build/tmp/ghc-stage2
- # 2. build/pax-mark haddock using ghc-stage2
- if is_native; then
- # non-native build does not build haddock
- # due to HADDOCK_DOCS=NO, but it could.
- emake utils/haddock/dist/build/tmp/haddock
- pax-mark -m utils/haddock/dist/build/tmp/haddock
- fi
- fi
- # 3. and then all the rest
- emake all
- fi # ! use binary
-}
-
-src_install() {
- if use binary; then
- use prefix && mkdir -p "${ED}"
- mv "${S}/usr" "${ED}"
- else
- [[ -f VERSION ]] || emake VERSION
-
- # -j1 due to a rare race in install script:
- # make --no-print-directory -f ghc.mk phase=final install
- # /usr/lib/portage/python3.4/ebuild-helpers/xattr/install -c -m 755 \
- # -d "/tmp/portage-tmpdir/portage/cross-armv7a-unknown-linux-gnueabi/ghc-9999/image/usr/lib64/armv7a-unknown-linux-gnueabi-ghc-8.3.20170404/include"
- # /usr/lib/portage/python3.4/ebuild-helpers/xattr/install -c -m 644 utils/hsc2hs/template-hsc.h \
- # "/tmp/portage-tmpdir/portage/cross-armv7a-unknown-linux-gnueabi/ghc-9999/image/usr/lib64/armv7a-unknown-linux-gnueabi-ghc-8.3.20170404"
- # /usr/bin/install: cannot create regular file \
- # '/tmp/portage-tmpdir/portage/cross-armv7a-unknown-linux-gnueabi/ghc-9999/image/usr/lib64/armv7a-unknown-linux-gnueabi-ghc-8.3.20170404': No such file or directory
- emake -j1 install DESTDIR="${D}"
-
- # Skip for cross-targets as they all share target location:
- # /usr/share/doc/ghc-9999/
- if ! is_crosscompile; then
- dodoc "distrib/README" "ANNOUNCE" "LICENSE" "VERSION"
- fi
-
- # rename ghc-shipped files to avoid collision
- # of external packages. Motivating example:
- # user had installed:
- # dev-lang/ghc-7.8.4-r0 (with transformers-0.3.0.0)
- # dev-haskell/transformers-0.4.2.0
- # then user tried to update to
- # dev-lang/ghc-7.8.4-r1 (with transformers-0.4.2.0)
- # this will lead to single .conf file collision.
- local shipped_conf renamed_conf
- local package_confdir="${ED}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d"
- for shipped_conf in "${package_confdir}"/*.conf; do
- # rename 'pkg-ver-id.conf' to 'pkg-ver-id-gentoo-${PF}.conf'
- renamed_conf=${shipped_conf%.conf}-gentoo-${PF}.conf
- mv "${shipped_conf}" "${renamed_conf}" || die
- done
-
- # remove link, but leave 'haddock-${GHC_P}'
- rm -f "${ED}"/usr/bin/$(cross)haddock
-
- if ! is_crosscompile; then
- newbashcomp "${FILESDIR}"/ghc-bash-completion ghc-pkg
- newbashcomp utils/completion/ghc.bash ghc
- fi
- fi
-
- # path to the package.cache
- local package_confdir="${ED}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d"
- PKGCACHE="${package_confdir}"/package.cache
- # copy the package.conf.d, including timestamp, save it so we can help
- # users that have a broken package.conf.d
- cp -pR "${package_confdir}"{,.initial} || die "failed to backup intial package.conf.d"
-
- # copy the package.conf, including timestamp, save it so we later can put it
- # back before uninstalling, or when upgrading.
- cp -p "${PKGCACHE}"{,.shipped} \
- || die "failed to copy package.conf.d/package.cache"
-}
-
-pkg_preinst() {
- # have we got an earlier version of ghc installed?
- if has_version "<${CATEGORY}/${PF}"; then
- haskell_updater_warn="1"
- fi
-}
-
-pkg_postinst() {
- ghc-reregister
-
- # path to the package.cache
- PKGCACHE="${EROOT}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d/package.cache"
-
- # give the cache a new timestamp, it must be as recent as
- # the package.conf.d directory.
- touch "${PKGCACHE}"
-
- if [[ "${haskell_updater_warn}" == "1" ]]; then
- ewarn
- ewarn "\e[1;31m************************************************************************\e[0m"
- ewarn
- ewarn "You have just upgraded from an older version of GHC."
- ewarn "You may have to run"
- ewarn " 'haskell-updater'"
- ewarn "to rebuild all ghc-based Haskell libraries."
- ewarn
- ewarn "\e[1;31m************************************************************************\e[0m"
- ewarn
- fi
-}
-
-pkg_prerm() {
- PKGCACHE="${EROOT}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d/package.cache"
- rm -rf "${PKGCACHE}"
-
- cp -p "${PKGCACHE}"{.shipped,}
-}
-
-pkg_postrm() {
- ghc-package_pkg_postrm
-}
diff --git a/dev-lang/ghc/ghc-8.4.1.ebuild b/dev-lang/ghc/ghc-8.4.1.ebuild
deleted file mode 100644
index 0e86ec36e7d4..000000000000
--- a/dev-lang/ghc/ghc-8.4.1.ebuild
+++ /dev/null
@@ -1,755 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-# to make make a crosscompiler use crossdev and symlink ghc tree into
-# cross overlay. result would look like 'cross-sparc-unknown-linux-gnu/ghc'
-export CBUILD=${CBUILD:-${CHOST}}
-export CTARGET=${CTARGET:-${CHOST}}
-if [[ ${CTARGET} = ${CHOST} ]] ; then
- if [[ ${CATEGORY/cross-} != ${CATEGORY} ]] ; then
- export CTARGET=${CATEGORY/cross-}
- fi
-fi
-
-inherit autotools bash-completion-r1 eutils flag-o-matic ghc-package
-inherit multilib pax-utils toolchain-funcs versionator prefix
-inherit check-reqs
-DESCRIPTION="The Glasgow Haskell Compiler"
-HOMEPAGE="https://www.haskell.org/ghc/"
-
-# we don't have any binaries yet
-arch_binaries=""
-
-# sorted!
-#arch_binaries="$arch_binaries alpha? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-alpha.tbz2 )"
-#arch_binaries="$arch_binaries arm? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-armv7a-hardfloat-linux-gnueabi.tbz2 )"
-#arch_binaries="$arch_binaries arm64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-aarch64-unknown-linux-gnu.tbz2 )"
-arch_binaries="$arch_binaries amd64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-x86_64-pc-linux-gnu.tbz2 )"
-#arch_binaries="$arch_binaries ia64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ia64-fixed-fiw.tbz2 )"
-#arch_binaries="$arch_binaries ppc? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ppc.tbz2 )"
-#arch_binaries="$arch_binaries ppc64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ppc64.tbz2 )"
-#arch_binaries="$arch_binaries sparc? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-sparc.tbz2 )"
-arch_binaries="$arch_binaries x86? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-i686-pc-linux-gnu.tbz2 )"
-
-# various ports:
-#arch_binaries="$arch_binaries x86-fbsd? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-x86-fbsd.tbz2 )"
-
-# 0 - yet
-yet_binary() {
- case "${ARCH}" in
- #alpha) return 0 ;;
- #arm64) return 0 ;;
- #arm) return 0 ;;
- amd64) return 0 ;;
- #ia64) return 0 ;;
- #ppc) return 0 ;;
- #ppc64) return 0 ;;
- #sparc) return 0 ;;
- x86) return 0 ;;
- *) return 1 ;;
- esac
-}
-
-GHC_PV=${PV}
-#GHC_PV=8.4.0.20180224 # uncomment only for -alpha, -beta, -rc ebuilds
-GHC_P=${PN}-${GHC_PV} # using ${P} is almost never correct
-
-SRC_URI="!binary? ( https://downloads.haskell.org/~ghc/${PV/_/-}/${GHC_P}-src.tar.xz )"
-S="${WORKDIR}"/${GHC_P}
-
-[[ -n $arch_binaries ]] && SRC_URI+=" !ghcbootstrap? ( $arch_binaries )"
-
-BUMP_LIBRARIES=(
- # "hackage-name hackage-version"
-)
-
-LICENSE="BSD"
-SLOT="0/${PV}"
-#KEYWORDS="~alpha ~amd64 ~x86 ~amd64-linux ~x86-linux"
-IUSE="doc ghcbootstrap ghcmakebinary +gmp profile"
-IUSE+=" binary"
-
-RDEPEND="
- >=dev-lang/perl-5.6.1
- dev-libs/gmp:0=
- sys-libs/ncurses:0=[unicode]
- !ghcmakebinary? ( dev-libs/libffi:= )
-"
-
-# This set of dependencies is needed to run
-# prebuilt ghc. We specifically avoid ncurses
-# dependency with:
-# utils/ghc-pkg_HC_OPTS += -DBOOTSTRAPPING
-PREBUILT_BINARY_DEPENDS="
- !prefix? ( elibc_glibc? ( >=sys-libs/glibc-2.17 ) )
-"
-# This set of dependencies is needed to install
-# ghc[binary] in system. terminfo package is linked
-# against ncurses.
-PREBUILT_BINARY_RDEPENDS="${PREBUILT_BINARY_DEPENDS}
- sys-libs/ncurses:0/6
-"
-
-RDEPEND+="binary? ( ${PREBUILT_BINARY_RDEPENDS} )"
-
-DEPEND="${RDEPEND}
- doc? ( app-text/docbook-xml-dtd:4.2
- app-text/docbook-xml-dtd:4.5
- app-text/docbook-xsl-stylesheets
- dev-python/sphinx
- >=dev-libs/libxslt-1.1.2 )
- !ghcbootstrap? ( ${PREBUILT_BINARY_DEPENDS} )"
-
-PDEPEND="!ghcbootstrap? ( >=app-admin/haskell-updater-1.2 )"
-
-REQUIRED_USE="?? ( ghcbootstrap binary )"
-
-# haskell libraries built with cabal in configure mode, #515354
-QA_CONFIGURE_OPTIONS+=" --with-compiler --with-gcc"
-
-is_crosscompile() {
- [[ ${CHOST} != ${CTARGET} ]]
-}
-
-is_native() {
- [[ ${CHOST} == ${CBUILD} ]] && [[ ${CHOST} == ${CTARGET} ]]
-}
-
-# returns tool prefix for crosscompiler.
-# Example:
-# CTARGET=armv7a-unknown-linux-gnueabi
-# CHOST=x86_64-pc-linux-gnu
-# "armv7a-unknown-linux-gnueabi-"
-# CTARGET=${CHOST}
-# ""
-# Used in tools and library prefix:
-# "${ED}"/usr/bin/$(cross)haddock
-# "${ED}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d"
-
-cross() {
- if is_crosscompile; then
- echo "${CTARGET}-"
- else
- echo ""
- fi
-}
-
-append-ghc-cflags() {
- local persistent compile assemble link
- local flag ghcflag
-
- for flag in $*; do
- case ${flag} in
- persistent) persistent="yes";;
- compile) compile="yes";;
- assemble) assemble="yes";;
- link) link="yes";;
- *)
- [[ ${compile} ]] && ghcflag="-optc${flag}" CFLAGS+=" ${flag}" && GHC_FLAGS+=" ${ghcflag}" &&
- [[ ${persistent} ]] && GHC_PERSISTENT_FLAGS+=" ${ghcflag}"
- [[ ${assemble} ]] && ghcflag="-opta${flag}" CFLAGS+=" ${flag}" && GHC_FLAGS+=" ${ghcflag}" &&
- [[ ${persistent} ]] && GHC_PERSISTENT_FLAGS+=" ${ghcflag}"
- [[ ${link} ]] && ghcflag="-optl${flag}" LDFLAGS+=" ${flag}" && GHC_FLAGS+=" ${ghcflag}" &&
- [[ ${persistent} ]] && GHC_PERSISTENT_FLAGS+=" ${ghcflag}"
- ;;
- esac
- done
-}
-
-# $1 - lib name (under libraries/)
-# $2 - lib version
-# example: bump_lib "transformers" "0.4.2.0"
-bump_lib() {
- local pn=$1 pv=$2
- local p=${pn}-${pv}
- local f
-
- einfo "Bumping ${pn} up to ${pv}"
-
- for f in ghc.mk GNUmakefile; do
- mv libraries/"${pn}"/$f "${WORKDIR}"/"${p}"/$f || die
- done
- mv libraries/"${pn}" "${WORKDIR}"/"${pn}".old || die
- mv "${WORKDIR}"/"${p}" libraries/"${pn}" || die
-}
-
-update_SRC_URI() {
- local p pn pv
- for p in "${BUMP_LIBRARIES[@]}"; do
- set -- $p
- pn=$1 pv=$2
-
- SRC_URI+=" https://hackage.haskell.org/package/${pn}-${pv}/${pn}-${pv}.tar.gz"
- done
-}
-
-update_SRC_URI
-
-bump_libs() {
- local p pn pv
- for p in "${BUMP_LIBRARIES[@]}"; do
- set -- $p
- pn=$1 pv=$2
-
- bump_lib "${pn}" "${pv}"
- done
-}
-
-ghc_setup_cflags() {
- # TODO: plumb CFLAGS and BUILD_CFLAGS to respective CONF_CC_OPTS_STAGE<N>
- if ! is_native; then
- export CFLAGS=${GHC_CFLAGS-"-O2 -pipe"}
- export LDFLAGS=${GHC_LDFLAGS-"-Wl,-O1"}
- einfo "Crosscompiling mode:"
- einfo " CHOST: ${CHOST}"
- einfo " CTARGET: ${CTARGET}"
- einfo " CFLAGS: ${CFLAGS}"
- einfo " LDFLAGS: ${LDFLAGS}"
- einfo " prefix: $(cross)"
- return
- fi
- # We need to be very careful with the CFLAGS we ask ghc to pass through to
- # gcc. There are plenty of flags which will make gcc produce output that
- # breaks ghc in various ways. The main ones we want to pass through are
- # -mcpu / -march flags. These are important for arches like alpha & sparc.
- # We also use these CFLAGS for building the C parts of ghc, ie the rts.
- strip-flags
- strip-unsupported-flags
-
- # Cmm can't parse line numbers #482086
- replace-flags -ggdb[3-9] -ggdb2
-
- GHC_FLAGS=""
- GHC_PERSISTENT_FLAGS=""
- for flag in ${CFLAGS}; do
- case ${flag} in
-
- # Ignore extra optimisation (ghc passes -O to gcc anyway)
- # -O2 and above break on too many systems
- -O*) ;;
-
- # Arch and ABI flags are what we're really after
- -m*) append-ghc-cflags compile assemble ${flag};;
-
- # Sometimes it's handy to see backtrace of RTS
- # to get an idea what happens there
- -g*) append-ghc-cflags compile ${flag};;
-
- # Ignore all other flags, including all -f* flags
- esac
- done
-
- for flag in ${LDFLAGS}; do
- append-ghc-cflags link ${flag}
- done
-
- # GHC uses ${CBUILD}-gcc, ${CHOST}-gcc and ${CTARGET}-gcc at a single build.
- # Skip any gentoo-specific tweaks for cross-case to avoid passing unsupported
- # options to gcc.
- if is_native; then
- # hardened-gcc needs to be disabled, because our prebuilt binaries/libraries
- # are not built with fPIC, bug #606666
- gcc-specs-pie && append-ghc-cflags persistent compile link -nopie
- tc-is-gcc && version_is_at_least 6.3 $(gcc-version) && if ! use ghcbootstrap; then
- # gcc-6.3 has support for -no-pie upstream, but spelling differs from
- # gentoo-specific '-nopie'. We enable it in non-bootstrap to allow
- # hardened users try '-pie' in USE=ghcbootstrap mode.
- append-ghc-cflags compile link -no-pie
- fi
-
- # prevent from failing to build unregisterised ghc:
- # https://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg171602.html
- use ppc64 && append-ghc-cflags persistent compile -mminimal-toc
- fi
-}
-
-# substitutes string $1 to $2 in files $3 $4 ...
-relocate_path() {
- local from=$1
- local to=$2
- shift 2
- local file=
- for file in "$@"
- do
- sed -i -e "s|$from|$to|g" \
- "$file" || die "path relocation failed for '$file'"
- done
-}
-
-# changes hardcoded ghc paths and updates package index
-# $1 - new absolute root path
-relocate_ghc() {
- local to=$1
-
- # libdir for prebuilt binary and for current system may mismatch
- # It does for prefix installation for example: bug #476998
- local bin_ghc_prefix=${WORKDIR}/usr
- local bin_libpath=$(echo "${bin_ghc_prefix}"/lib*)
- local bin_libdir=${bin_libpath#${bin_ghc_prefix}/}
-
- # backup original script to use it later after relocation
- local gp_back="${T}/ghc-pkg-${GHC_PV}-orig"
- cp "${WORKDIR}/usr/bin/ghc-pkg-${GHC_PV}" "$gp_back" || die "unable to backup ghc-pkg wrapper"
-
- if [[ ${bin_libdir} != $(get_libdir) ]]; then
- einfo "Relocating '${bin_libdir}' to '$(get_libdir)' (bug #476998)"
- # moving the dir itself is not strictly needed
- # but then USE=binary would result in installing
- # in '${bin_libdir}'
- mv "${bin_ghc_prefix}/${bin_libdir}" "${bin_ghc_prefix}/$(get_libdir)" || die
-
- relocate_path "/usr/${bin_libdir}" "/usr/$(get_libdir)" \
- "${WORKDIR}/usr/bin/ghc-${GHC_PV}" \
- "${WORKDIR}/usr/bin/ghci-${GHC_PV}" \
- "${WORKDIR}/usr/bin/ghc-pkg-${GHC_PV}" \
- "${WORKDIR}/usr/bin/hsc2hs" \
- "${WORKDIR}/usr/bin/runghc-${GHC_PV}" \
- "$gp_back" \
- "${WORKDIR}/usr/$(get_libdir)/${GHC_P}/package.conf.d/"*
- fi
-
- # Relocate from /usr to ${EPREFIX}/usr
- relocate_path "/usr" "${to}/usr" \
- "${WORKDIR}/usr/bin/ghc-${GHC_PV}" \
- "${WORKDIR}/usr/bin/ghci-${GHC_PV}" \
- "${WORKDIR}/usr/bin/ghc-pkg-${GHC_PV}" \
- "${WORKDIR}/usr/bin/hsc2hs" \
- "${WORKDIR}/usr/bin/runghc-${GHC_PV}" \
- "${WORKDIR}/usr/$(get_libdir)/${GHC_P}/package.conf.d/"*
-
- # this one we will use to regenerate cache
- # so it should point to current tree location
- relocate_path "/usr" "${WORKDIR}/usr" "$gp_back"
-
- if use prefix; then
- hprefixify "${bin_libpath}"/${PN}*/settings
- fi
-
- # regenerate the binary package cache
- "$gp_back" recache || die "failed to update cache after relocation"
- rm "$gp_back"
-}
-
-ghc-check-reqs() {
- # These are pessimistic values (slightly bigger than worst-case)
- # Worst case is UNREG USE=profile ia64. See bug #611866 for some
- # numbers on various arches.
- CHECKREQS_DISK_BUILD=8G
- CHECKREQS_DISK_USR=2G
- # USE=binary roughly takes
- use binary && CHECKREQS_DISK_BUILD=4G
-
- "$@"
-}
-
-pkg_pretend() {
- ghc-check-reqs check-reqs_pkg_pretend
-}
-
-pkg_setup() {
- ghc-check-reqs check-reqs_pkg_setup
-
- # quiet portage about prebuilt binaries
- use binary && QA_PREBUILT="*"
-
- [[ ${MERGE_TYPE} == binary ]] && return
-
- if use ghcbootstrap; then
- ewarn "You requested ghc bootstrapping, this is usually only used"
- ewarn "by Gentoo developers to make binary .tbz2 packages."
-
- [[ -z $(type -P ghc) ]] && \
- die "Could not find a ghc to bootstrap with."
- else
- if ! yet_binary; then
- eerror "Please try emerging with USE=ghcbootstrap and report build"
- eerror "sucess or failure to the haskell team (haskell@gentoo.org)"
- die "No binary available for '${ARCH}' arch yet, USE=ghcbootstrap"
- fi
- fi
-}
-
-src_unpack() {
- # Create the ${S} dir if we're using the binary version
- use binary && mkdir "${S}"
-
- # the Solaris and Darwin binaries from ghc (maeder) need to be
- # unpacked separately, so prevent them from being unpacked
- local ONLYA=${A}
- case ${CHOST} in
- *-darwin* | *-solaris*) ONLYA=${GHC_P}-src.tar.xz ;;
- esac
- unpack ${ONLYA}
-}
-
-src_prepare() {
- ghc_setup_cflags
-
- if ! use ghcbootstrap && [[ ${CHOST} != *-darwin* && ${CHOST} != *-solaris* ]]; then
- # Modify the wrapper script from the binary tarball to use GHC_PERSISTENT_FLAGS.
- # See bug #313635.
- sed -i -e "s|\"\$topdir\"|\"\$topdir\" ${GHC_PERSISTENT_FLAGS}|" \
- "${WORKDIR}/usr/bin/ghc-${GHC_PV}"
-
- # allow hardened users use vanilla binary to bootstrap ghc
- # ghci uses mmap with rwx protection at it implements dynamic
- # linking on it's own (bug #299709)
- pax-mark -m "${WORKDIR}/usr/$(get_libdir)/${GHC_P}/bin/ghc"
- fi
-
- if use binary; then
- if use prefix; then
- relocate_ghc "${EPREFIX}"
- fi
-
- # Move unpacked files to the expected place
- mv "${WORKDIR}/usr" "${S}"
- eapply_user
- else
- if ! use ghcbootstrap; then
- case ${CHOST} in
- *-darwin* | *-solaris*)
- # UPDATE ME for ghc-7
- mkdir "${WORKDIR}"/ghc-bin-installer || die
- pushd "${WORKDIR}"/ghc-bin-installer > /dev/null || die
- use sparc-solaris && unpack ghc-6.10.4-sparc-sun-solaris2.tar.bz2
- use x86-solaris && unpack ghc-7.0.3-i386-unknown-solaris2.tar.bz2
- use x64-macos && unpack ghc-7.4.1-x86_64-apple-darwin.tar.bz2
- popd > /dev/null
-
- pushd "${WORKDIR}"/ghc-bin-installer/ghc-[67].?*.? > /dev/null || die
- # fix the binaries so they run, on Solaris we need an
- # LD_LIBRARY_PATH which has our prefix libdirs, on
- # Darwin we need to replace the frameworks with our libs
- # from the prefix fix before installation, because some
- # of the tools are actually used during configure/make
- if [[ ${CHOST} == *-solaris* ]] ; then
- export LD_LIBRARY_PATH="${EPREFIX}/$(get_libdir):${EPREFIX}/usr/$(get_libdir):${LD_LIBRARY_PATH}"
- elif [[ ${CHOST} == *-darwin* ]] ; then
- local readline_framework=GNUreadline.framework/GNUreadline
- local gmp_framework=/opt/local/lib/libgmp.10.dylib
- local ncurses_file=/opt/local/lib/libncurses.5.dylib
- for binary in $(scanmacho -BRE MH_EXECUTE -F '%F' .) ; do
- install_name_tool -change \
- ${readline_framework} \
- "${EPREFIX}"/lib/libreadline.dylib \
- ${binary} || die
- install_name_tool -change \
- ${gmp_framework} \
- "${EPREFIX}"/usr/lib/libgmp.dylib \
- ${binary} || die
- install_name_tool -change \
- ${ncurses_file} \
- "${EPREFIX}"/usr/lib/libncurses.dylib \
- ${binary} || die
- done
- # we don't do frameworks!
- sed -i \
- -e 's/\(frameworks = \)\["GMP"\]/\1[]/g' \
- -e 's/\(extraLibraries = \)\["m"\]/\1["m","gmp"]/g' \
- rts/package.conf.in || die
- fi
-
- # it is autoconf, but we really don't want to give it too
- # much arguments, in fact we do the make in-place anyway
- ./configure --prefix="${WORKDIR}"/usr || die
- make install || die
- popd > /dev/null
- ;;
- *)
- relocate_ghc "${WORKDIR}"
- ;;
- esac
- fi
-
- sed -i -e "s|\"\$topdir\"|\"\$topdir\" ${GHC_PERSISTENT_FLAGS}|" \
- "${S}/ghc/ghc.wrapper"
-
- cd "${S}" # otherwise eapply will break
-
- eapply "${FILESDIR}"/${PN}-7.0.4-CHOST-prefix.patch
- eapply "${FILESDIR}"/${PN}-8.2.1-darwin.patch
- eapply "${FILESDIR}"/${PN}-7.8.3-prim-lm.patch
- eapply "${FILESDIR}"/${PN}-8.0.2-no-relax-everywhere.patch
-
- # a bunch of crosscompiler patches
- # needs newer version:
- #eapply "${FILESDIR}"/${PN}-8.2.1_rc1-hp2ps-cross.patch
-
- # mingw32 target
- pushd "${S}/libraries/Win32"
- eapply "${FILESDIR}"/${PN}-8.2.1_rc1-win32-cross-2-hack.patch # bad workaround
- popd
-
- bump_libs
-
- eapply_user
- # as we have changed the build system
- eautoreconf
- fi
-}
-
-src_configure() {
- if ! use binary; then
- # initialize build.mk
- echo '# Gentoo changes' > mk/build.mk
-
- # Put docs into the right place, ie /usr/share/doc/ghc-${GHC_PV}
- echo "docdir = ${EPREFIX}/usr/share/doc/$(cross)${P}" >> mk/build.mk
- echo "htmldir = ${EPREFIX}/usr/share/doc/$(cross)${P}" >> mk/build.mk
-
- # We also need to use the GHC_FLAGS flags when building ghc itself
- echo "SRC_HC_OPTS+=${HCFLAGS} ${GHC_FLAGS}" >> mk/build.mk
- echo "SRC_CC_OPTS+=${CFLAGS}" >> mk/build.mk
- echo "SRC_LD_OPTS+=${LDFLAGS}" >> mk/build.mk
- # Speed up initial Cabal bootstrap
- echo "utils/ghc-cabal_dist_EXTRA_HC_OPTS+=$(ghc-make-args)" >> mk/build.mk
-
- # We can't depend on haddock except when bootstrapping when we
- # must build docs and include them into the binary .tbz2 package
- # app-text/dblatex is not in portage, can not build PDF or PS
- echo "BUILD_SPHINX_PDF = NO" >> mk/build.mk
- echo "BUILD_SPHINX_HTML = $(usex doc YES NO)" >> mk/build.mk
- echo "BUILD_MAN = $(usex doc YES NO)" >> mk/build.mk
-
- # this controls presence on 'xhtml' and 'haddock' in final install
- echo "HADDOCK_DOCS = YES" >> mk/build.mk
-
- # not used outside of ghc's test
- if [[ -n ${GHC_BUILD_DPH} ]]; then
- echo "BUILD_DPH = YES" >> mk/build.mk
- else
- echo "BUILD_DPH = NO" >> mk/build.mk
- fi
-
- # Any non-native build has to skip as it needs
- # target haddock binary to be runnabine.
- if ! is_native; then
- # disable docs generation as it requires running stage2
- echo "HADDOCK_DOCS=NO" >> mk/build.mk
- echo "BUILD_SPHINX_HTML=NO" >> mk/build.mk
- echo "BUILD_SPHINX_PDF=NO" >> mk/build.mk
- fi
-
- if is_crosscompile; then
- # Install ghc-stage1 crosscompiler instead of
- # ghc-stage2 cross-built compiler.
- echo "Stage1Only=YES" >> mk/build.mk
- fi
-
- # allows overriding build flavours for libraries:
- # v - vanilla (static libs)
- # p - profiled
- # dyn - shared libraries
- # example: GHC_LIBRARY_WAYS="v dyn"
- if [[ -n ${GHC_LIBRARY_WAYS} ]]; then
- echo "GhcLibWays=${GHC_LIBRARY_WAYS}" >> mk/build.mk
- fi
- echo "BUILD_PROF_LIBS = $(usex profile YES NO)" >> mk/build.mk
-
- # Get ghc from the unpacked binary .tbz2
- # except when bootstrapping we just pick ghc up off the path
- if ! use ghcbootstrap; then
- export PATH="${WORKDIR}/usr/bin:${PATH}"
- fi
-
- echo "INTEGER_LIBRARY = $(usex gmp integer-gmp integer-simple)" >> mk/build.mk
-
- # don't strip anything. Very useful when stage2 SIGSEGVs on you
- echo "STRIP_CMD = :" >> mk/build.mk
-
- local econf_args=()
-
- # GHC embeds toolchain it was built by and uses it later.
- # Don't allow things like ccache or versioned binary slip.
- # We use stable thing across gcc upgrades.
- # User can use EXTRA_ECONF=CC=... to override this default.
- econf_args+=(
- AR=${CTARGET}-ar
- CC=${CTARGET}-gcc
- # these should be inferred by GHC but ghc defaults
- # to using bundled tools on windows.
- Windres=${CTARGET}-windres
- DllWrap=${CTARGET}-dllwrap
- # we set the linker explicitly below
- --disable-ld-override
- )
- case ${CTARGET} in
- arm*)
- # ld.bfd-2.28 does not work for ghc. Force ld.gold
- # instead. This should be removed once gentoo gets
- # a fix for R_ARM_COPY bug: https://sourceware.org/PR16177
- econf_args+=(LD=${CTARGET}-ld.gold)
- ;;
- sparc*)
- # ld.gold-2.28 does not work for ghc. Force ld.bfd
- # instead. This should be removed once gentoo gets
- # a fix for missing --no-relax support bug:
- # https://sourceware.org/ml/binutils/2017-07/msg00183.html
- econf_args+=(LD=${CTARGET}-ld.bfd)
- ;;
- *)
- econf_args+=(LD=${CTARGET}-ld)
- esac
-
- if [[ ${CBUILD} != ${CHOST} ]]; then
- # GHC bug: ghc claims not to support cross-building.
- # It does, but does not distinct --host= value
- # for stage1 and stage2 compiler.
- econf_args+=(--host=${CBUILD})
- fi
-
- if use ghcmakebinary; then
- # When building booting libary we are trying to
- # bundle or restrict most of external depends
- # with unstable ABI:
- # - embed libffi (default GHC behaviour)
- # - disable ncurses support for ghci (via haskeline)
- # https://bugs.gentoo.org/557478
- # - disable ncurses support for ghc-pkg
- echo "libraries/haskeline_CONFIGURE_OPTS += --flag=-terminfo" >> mk/build.mk
- echo "utils/ghc-pkg_HC_OPTS += -DBOOTSTRAPPING" >> mk/build.mk
- elif is_native; then
- # using ${GTARGET}'s libffi is not supported yet:
- # GHC embeds full path for ffi includes without /usr/${CTARGET} account.
- econf_args+=(--with-system-libffi)
- econf_args+=(--with-ffi-includes=$($(tc-getPKG_CONFIG) libffi --cflags-only-I | sed -e 's@^-I@@'))
- fi
-
- einfo "Final mk/build.mk:"
- cat mk/build.mk || die
-
- econf ${econf_args[@]} --enable-bootstrap-with-devel-snapshot
-
- if [[ ${PV} == *9999* ]]; then
- GHC_PV="$(grep 'S\[\"PACKAGE_VERSION\"\]' config.status | sed -e 's@^.*=\"\(.*\)\"@\1@')"
- GHC_P=${PN}-${GHC_PV}
- fi
- fi # ! use binary
-}
-
-src_compile() {
- if ! use binary; then
- # Stage1Only crosscompiler does not build stage2
- if ! is_crosscompile; then
- # 1. build/pax-mark compiler binary first
- emake ghc/stage2/build/tmp/ghc-stage2
- # 2. pax-mark (bug #516430)
- pax-mark -m ghc/stage2/build/tmp/ghc-stage2
- # 2. build/pax-mark haddock using ghc-stage2
- if is_native; then
- # non-native build does not build haddock
- # due to HADDOCK_DOCS=NO, but it could.
- emake utils/haddock/dist/build/tmp/haddock
- pax-mark -m utils/haddock/dist/build/tmp/haddock
- fi
- fi
- # 3. and then all the rest
- emake all
- fi # ! use binary
-}
-
-src_install() {
- if use binary; then
- use prefix && mkdir -p "${ED}"
- mv "${S}/usr" "${ED}"
- else
- [[ -f VERSION ]] || emake VERSION
-
- # -j1 due to a rare race in install script:
- # make --no-print-directory -f ghc.mk phase=final install
- # /usr/lib/portage/python3.4/ebuild-helpers/xattr/install -c -m 755 \
- # -d "/tmp/portage-tmpdir/portage/cross-armv7a-unknown-linux-gnueabi/ghc-9999/image/usr/lib64/armv7a-unknown-linux-gnueabi-ghc-8.3.20170404/include"
- # /usr/lib/portage/python3.4/ebuild-helpers/xattr/install -c -m 644 utils/hsc2hs/template-hsc.h \
- # "/tmp/portage-tmpdir/portage/cross-armv7a-unknown-linux-gnueabi/ghc-9999/image/usr/lib64/armv7a-unknown-linux-gnueabi-ghc-8.3.20170404"
- # /usr/bin/install: cannot create regular file \
- # '/tmp/portage-tmpdir/portage/cross-armv7a-unknown-linux-gnueabi/ghc-9999/image/usr/lib64/armv7a-unknown-linux-gnueabi-ghc-8.3.20170404': No such file or directory
- emake -j1 install DESTDIR="${D}"
-
- # Skip for cross-targets as they all share target location:
- # /usr/share/doc/ghc-9999/
- if ! is_crosscompile; then
- dodoc "distrib/README" "ANNOUNCE" "LICENSE" "VERSION"
- fi
-
- # rename ghc-shipped files to avoid collision
- # of external packages. Motivating example:
- # user had installed:
- # dev-lang/ghc-7.8.4-r0 (with transformers-0.3.0.0)
- # dev-haskell/transformers-0.4.2.0
- # then user tried to update to
- # dev-lang/ghc-7.8.4-r1 (with transformers-0.4.2.0)
- # this will lead to single .conf file collision.
- local shipped_conf renamed_conf
- local package_confdir="${ED}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d"
- for shipped_conf in "${package_confdir}"/*.conf; do
- # rename 'pkg-ver-id.conf' to 'pkg-ver-id-gentoo-${PF}.conf'
- renamed_conf=${shipped_conf%.conf}-gentoo-${PF}.conf
- mv "${shipped_conf}" "${renamed_conf}" || die
- done
-
- # remove link, but leave 'haddock-${GHC_P}'
- rm -f "${ED}"/usr/bin/$(cross)haddock
-
- if ! is_crosscompile; then
- newbashcomp "${FILESDIR}"/ghc-bash-completion ghc-pkg
- newbashcomp utils/completion/ghc.bash ghc
- fi
- fi
-
- # path to the package.cache
- local package_confdir="${ED}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d"
- PKGCACHE="${package_confdir}"/package.cache
- # copy the package.conf.d, including timestamp, save it so we can help
- # users that have a broken package.conf.d
- cp -pR "${package_confdir}"{,.initial} || die "failed to backup intial package.conf.d"
-
- # copy the package.conf, including timestamp, save it so we later can put it
- # back before uninstalling, or when upgrading.
- cp -p "${PKGCACHE}"{,.shipped} \
- || die "failed to copy package.conf.d/package.cache"
-}
-
-pkg_preinst() {
- # have we got an earlier version of ghc installed?
- if has_version "<${CATEGORY}/${PF}"; then
- haskell_updater_warn="1"
- fi
-}
-
-pkg_postinst() {
- ghc-reregister
-
- # path to the package.cache
- PKGCACHE="${EROOT}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d/package.cache"
-
- # give the cache a new timestamp, it must be as recent as
- # the package.conf.d directory.
- touch "${PKGCACHE}"
-
- if [[ "${haskell_updater_warn}" == "1" ]]; then
- ewarn
- ewarn "\e[1;31m************************************************************************\e[0m"
- ewarn
- ewarn "You have just upgraded from an older version of GHC."
- ewarn "You may have to run"
- ewarn " 'haskell-updater'"
- ewarn "to rebuild all ghc-based Haskell libraries."
- ewarn
- ewarn "\e[1;31m************************************************************************\e[0m"
- ewarn
- fi
-}
-
-pkg_prerm() {
- PKGCACHE="${EROOT}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d/package.cache"
- rm -rf "${PKGCACHE}"
-
- cp -p "${PKGCACHE}"{.shipped,}
-}
-
-pkg_postrm() {
- ghc-package_pkg_postrm
-}
diff --git a/dev-lang/ghc/ghc-8.4.2.ebuild b/dev-lang/ghc/ghc-8.4.2.ebuild
deleted file mode 100644
index f6d8c953ac95..000000000000
--- a/dev-lang/ghc/ghc-8.4.2.ebuild
+++ /dev/null
@@ -1,760 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-# to make make a crosscompiler use crossdev and symlink ghc tree into
-# cross overlay. result would look like 'cross-sparc-unknown-linux-gnu/ghc'
-export CBUILD=${CBUILD:-${CHOST}}
-export CTARGET=${CTARGET:-${CHOST}}
-if [[ ${CTARGET} = ${CHOST} ]] ; then
- if [[ ${CATEGORY/cross-} != ${CATEGORY} ]] ; then
- export CTARGET=${CATEGORY/cross-}
- fi
-fi
-
-inherit autotools bash-completion-r1 eutils flag-o-matic ghc-package
-inherit multilib pax-utils toolchain-funcs versionator prefix
-inherit check-reqs
-DESCRIPTION="The Glasgow Haskell Compiler"
-HOMEPAGE="https://www.haskell.org/ghc/"
-
-# we don't have any binaries yet
-arch_binaries=""
-
-# sorted!
-#arch_binaries="$arch_binaries alpha? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-alpha.tbz2 )"
-#arch_binaries="$arch_binaries arm? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-armv7a-hardfloat-linux-gnueabi.tbz2 )"
-#arch_binaries="$arch_binaries arm64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-aarch64-unknown-linux-gnu.tbz2 )"
-arch_binaries="$arch_binaries amd64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-x86_64-pc-linux-gnu.tbz2 )"
-#arch_binaries="$arch_binaries ia64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ia64-fixed-fiw.tbz2 )"
-#arch_binaries="$arch_binaries ppc? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ppc.tbz2 )"
-#arch_binaries="$arch_binaries ppc64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ppc64.tbz2 )"
-#arch_binaries="$arch_binaries sparc? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-sparc.tbz2 )"
-arch_binaries="$arch_binaries x86? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-i686-pc-linux-gnu.tbz2 )"
-
-# various ports:
-#arch_binaries="$arch_binaries x86-fbsd? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-x86-fbsd.tbz2 )"
-
-# 0 - yet
-yet_binary() {
- case "${ARCH}" in
- #alpha) return 0 ;;
- #arm64) return 0 ;;
- #arm) return 0 ;;
- amd64) return 0 ;;
- #ia64) return 0 ;;
- #ppc) return 0 ;;
- #ppc64) return 0 ;;
- #sparc) return 0 ;;
- x86) return 0 ;;
- *) return 1 ;;
- esac
-}
-
-GHC_PV=${PV}
-#GHC_PV=8.4.1.20180329 # uncomment only for -alpha, -beta, -rc ebuilds
-GHC_P=${PN}-${GHC_PV} # using ${P} is almost never correct
-
-SRC_URI="!binary? ( https://downloads.haskell.org/~ghc/${PV/_/-}/${GHC_P}-src.tar.xz )"
-S="${WORKDIR}"/${GHC_P}
-
-[[ -n $arch_binaries ]] && SRC_URI+=" !ghcbootstrap? ( $arch_binaries )"
-
-BUMP_LIBRARIES=(
- # "hackage-name hackage-version"
-)
-
-LICENSE="BSD"
-SLOT="0/${PV}"
-#KEYWORDS="~alpha ~amd64 ~x86 ~amd64-linux ~x86-linux"
-IUSE="doc ghcbootstrap ghcmakebinary +gmp profile"
-IUSE+=" binary"
-
-RDEPEND="
- >=dev-lang/perl-5.6.1
- dev-libs/gmp:0=
- sys-libs/ncurses:0=[unicode]
- !ghcmakebinary? ( dev-libs/libffi:= )
-"
-
-# This set of dependencies is needed to run
-# prebuilt ghc. We specifically avoid ncurses
-# dependency with:
-# utils/ghc-pkg_HC_OPTS += -DBOOTSTRAPPING
-PREBUILT_BINARY_DEPENDS="
- !prefix? ( elibc_glibc? ( >=sys-libs/glibc-2.17 ) )
-"
-# This set of dependencies is needed to install
-# ghc[binary] in system. terminfo package is linked
-# against ncurses.
-PREBUILT_BINARY_RDEPENDS="${PREBUILT_BINARY_DEPENDS}
- sys-libs/ncurses:0/6
-"
-
-RDEPEND+="binary? ( ${PREBUILT_BINARY_RDEPENDS} )"
-
-DEPEND="${RDEPEND}
- doc? ( app-text/docbook-xml-dtd:4.2
- app-text/docbook-xml-dtd:4.5
- app-text/docbook-xsl-stylesheets
- dev-python/sphinx
- >=dev-libs/libxslt-1.1.2 )
- !ghcbootstrap? ( ${PREBUILT_BINARY_DEPENDS} )"
-
-PDEPEND="!ghcbootstrap? ( >=app-admin/haskell-updater-1.2 )"
-
-REQUIRED_USE="?? ( ghcbootstrap binary )"
-
-# haskell libraries built with cabal in configure mode, #515354
-QA_CONFIGURE_OPTIONS+=" --with-compiler --with-gcc"
-
-is_crosscompile() {
- [[ ${CHOST} != ${CTARGET} ]]
-}
-
-is_native() {
- [[ ${CHOST} == ${CBUILD} ]] && [[ ${CHOST} == ${CTARGET} ]]
-}
-
-# returns tool prefix for crosscompiler.
-# Example:
-# CTARGET=armv7a-unknown-linux-gnueabi
-# CHOST=x86_64-pc-linux-gnu
-# "armv7a-unknown-linux-gnueabi-"
-# CTARGET=${CHOST}
-# ""
-# Used in tools and library prefix:
-# "${ED}"/usr/bin/$(cross)haddock
-# "${ED}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d"
-
-cross() {
- if is_crosscompile; then
- echo "${CTARGET}-"
- else
- echo ""
- fi
-}
-
-append-ghc-cflags() {
- local persistent compile assemble link
- local flag ghcflag
-
- for flag in $*; do
- case ${flag} in
- persistent) persistent="yes";;
- compile) compile="yes";;
- assemble) assemble="yes";;
- link) link="yes";;
- *)
- [[ ${compile} ]] && ghcflag="-optc${flag}" CFLAGS+=" ${flag}" && GHC_FLAGS+=" ${ghcflag}" &&
- [[ ${persistent} ]] && GHC_PERSISTENT_FLAGS+=" ${ghcflag}"
- [[ ${assemble} ]] && ghcflag="-opta${flag}" CFLAGS+=" ${flag}" && GHC_FLAGS+=" ${ghcflag}" &&
- [[ ${persistent} ]] && GHC_PERSISTENT_FLAGS+=" ${ghcflag}"
- [[ ${link} ]] && ghcflag="-optl${flag}" LDFLAGS+=" ${flag}" && GHC_FLAGS+=" ${ghcflag}" &&
- [[ ${persistent} ]] && GHC_PERSISTENT_FLAGS+=" ${ghcflag}"
- ;;
- esac
- done
-}
-
-# $1 - lib name (under libraries/)
-# $2 - lib version
-# example: bump_lib "transformers" "0.4.2.0"
-bump_lib() {
- local pn=$1 pv=$2
- local p=${pn}-${pv}
- local f
-
- einfo "Bumping ${pn} up to ${pv}"
-
- for f in ghc.mk GNUmakefile; do
- mv libraries/"${pn}"/$f "${WORKDIR}"/"${p}"/$f || die
- done
- mv libraries/"${pn}" "${WORKDIR}"/"${pn}".old || die
- mv "${WORKDIR}"/"${p}" libraries/"${pn}" || die
-}
-
-update_SRC_URI() {
- local p pn pv
- for p in "${BUMP_LIBRARIES[@]}"; do
- set -- $p
- pn=$1 pv=$2
-
- SRC_URI+=" https://hackage.haskell.org/package/${pn}-${pv}/${pn}-${pv}.tar.gz"
- done
-}
-
-update_SRC_URI
-
-bump_libs() {
- local p pn pv
- for p in "${BUMP_LIBRARIES[@]}"; do
- set -- $p
- pn=$1 pv=$2
-
- bump_lib "${pn}" "${pv}"
- done
-}
-
-ghc_setup_cflags() {
- # TODO: plumb CFLAGS and BUILD_CFLAGS to respective CONF_CC_OPTS_STAGE<N>
- if ! is_native; then
- export CFLAGS=${GHC_CFLAGS-"-O2 -pipe"}
- export LDFLAGS=${GHC_LDFLAGS-"-Wl,-O1"}
- einfo "Crosscompiling mode:"
- einfo " CHOST: ${CHOST}"
- einfo " CTARGET: ${CTARGET}"
- einfo " CFLAGS: ${CFLAGS}"
- einfo " LDFLAGS: ${LDFLAGS}"
- einfo " prefix: $(cross)"
- return
- fi
- # We need to be very careful with the CFLAGS we ask ghc to pass through to
- # gcc. There are plenty of flags which will make gcc produce output that
- # breaks ghc in various ways. The main ones we want to pass through are
- # -mcpu / -march flags. These are important for arches like alpha & sparc.
- # We also use these CFLAGS for building the C parts of ghc, ie the rts.
- strip-flags
- strip-unsupported-flags
-
- # Cmm can't parse line numbers #482086
- replace-flags -ggdb[3-9] -ggdb2
-
- GHC_FLAGS=""
- GHC_PERSISTENT_FLAGS=""
- for flag in ${CFLAGS}; do
- case ${flag} in
-
- # Ignore extra optimisation (ghc passes -O to gcc anyway)
- # -O2 and above break on too many systems
- -O*) ;;
-
- # Arch and ABI flags are what we're really after
- -m*) append-ghc-cflags compile assemble ${flag};;
-
- # Sometimes it's handy to see backtrace of RTS
- # to get an idea what happens there
- -g*) append-ghc-cflags compile ${flag};;
-
- # Ignore all other flags, including all -f* flags
- esac
- done
-
- for flag in ${LDFLAGS}; do
- append-ghc-cflags link ${flag}
- done
-
- # GHC uses ${CBUILD}-gcc, ${CHOST}-gcc and ${CTARGET}-gcc at a single build.
- # Skip any gentoo-specific tweaks for cross-case to avoid passing unsupported
- # options to gcc.
- if is_native; then
- # hardened-gcc needs to be disabled, because our prebuilt binaries/libraries
- # are not built with fPIC, bug #606666
- gcc-specs-pie && append-ghc-cflags persistent compile link -nopie
- tc-is-gcc && version_is_at_least 6.3 $(gcc-version) && if ! use ghcbootstrap; then
- # gcc-6.3 has support for -no-pie upstream, but spelling differs from
- # gentoo-specific '-nopie'. We enable it in non-bootstrap to allow
- # hardened users try '-pie' in USE=ghcbootstrap mode.
- append-ghc-cflags compile link -no-pie
- fi
-
- # prevent from failing to build unregisterised ghc:
- # https://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg171602.html
- use ppc64 && append-ghc-cflags persistent compile -mminimal-toc
- fi
-}
-
-# substitutes string $1 to $2 in files $3 $4 ...
-relocate_path() {
- local from=$1
- local to=$2
- shift 2
- local file=
- for file in "$@"
- do
- sed -i -e "s|$from|$to|g" \
- "$file" || die "path relocation failed for '$file'"
- done
-}
-
-# changes hardcoded ghc paths and updates package index
-# $1 - new absolute root path
-relocate_ghc() {
- local to=$1
-
- # libdir for prebuilt binary and for current system may mismatch
- # It does for prefix installation for example: bug #476998
- local bin_ghc_prefix=${WORKDIR}/usr
- local bin_libpath=$(echo "${bin_ghc_prefix}"/lib*)
- local bin_libdir=${bin_libpath#${bin_ghc_prefix}/}
-
- # backup original script to use it later after relocation
- local gp_back="${T}/ghc-pkg-${GHC_PV}-orig"
- cp "${WORKDIR}/usr/bin/ghc-pkg-${GHC_PV}" "$gp_back" || die "unable to backup ghc-pkg wrapper"
-
- if [[ ${bin_libdir} != $(get_libdir) ]]; then
- einfo "Relocating '${bin_libdir}' to '$(get_libdir)' (bug #476998)"
- # moving the dir itself is not strictly needed
- # but then USE=binary would result in installing
- # in '${bin_libdir}'
- mv "${bin_ghc_prefix}/${bin_libdir}" "${bin_ghc_prefix}/$(get_libdir)" || die
-
- relocate_path "/usr/${bin_libdir}" "/usr/$(get_libdir)" \
- "${WORKDIR}/usr/bin/ghc-${GHC_PV}" \
- "${WORKDIR}/usr/bin/ghci-${GHC_PV}" \
- "${WORKDIR}/usr/bin/ghc-pkg-${GHC_PV}" \
- "${WORKDIR}/usr/bin/hsc2hs" \
- "${WORKDIR}/usr/bin/runghc-${GHC_PV}" \
- "$gp_back" \
- "${WORKDIR}/usr/$(get_libdir)/${GHC_P}/package.conf.d/"*
- fi
-
- # Relocate from /usr to ${EPREFIX}/usr
- relocate_path "/usr" "${to}/usr" \
- "${WORKDIR}/usr/bin/ghc-${GHC_PV}" \
- "${WORKDIR}/usr/bin/ghci-${GHC_PV}" \
- "${WORKDIR}/usr/bin/ghc-pkg-${GHC_PV}" \
- "${WORKDIR}/usr/bin/haddock-ghc-${GHC_PV}" \
- "${WORKDIR}/usr/bin/hp2ps" \
- "${WORKDIR}/usr/bin/hpc" \
- "${WORKDIR}/usr/bin/hsc2hs" \
- "${WORKDIR}/usr/bin/runghc-${GHC_PV}" \
- "${WORKDIR}/usr/$(get_libdir)/${GHC_P}/package.conf.d/"*
-
- # this one we will use to regenerate cache
- # so it should point to current tree location
- relocate_path "/usr" "${WORKDIR}/usr" "$gp_back"
-
- if use prefix; then
- hprefixify "${bin_libpath}"/${PN}*/settings
- fi
-
- # regenerate the binary package cache
- "$gp_back" recache || die "failed to update cache after relocation"
- rm "$gp_back"
-}
-
-ghc-check-reqs() {
- # These are pessimistic values (slightly bigger than worst-case)
- # Worst case is UNREG USE=profile ia64. See bug #611866 for some
- # numbers on various arches.
- CHECKREQS_DISK_BUILD=8G
- CHECKREQS_DISK_USR=2G
- # USE=binary roughly takes
- use binary && CHECKREQS_DISK_BUILD=4G
-
- "$@"
-}
-
-pkg_pretend() {
- ghc-check-reqs check-reqs_pkg_pretend
-}
-
-pkg_setup() {
- ghc-check-reqs check-reqs_pkg_setup
-
- # quiet portage about prebuilt binaries
- use binary && QA_PREBUILT="*"
-
- [[ ${MERGE_TYPE} == binary ]] && return
-
- if use ghcbootstrap; then
- ewarn "You requested ghc bootstrapping, this is usually only used"
- ewarn "by Gentoo developers to make binary .tbz2 packages."
-
- [[ -z $(type -P ghc) ]] && \
- die "Could not find a ghc to bootstrap with."
- else
- if ! yet_binary; then
- eerror "Please try emerging with USE=ghcbootstrap and report build"
- eerror "sucess or failure to the haskell team (haskell@gentoo.org)"
- die "No binary available for '${ARCH}' arch yet, USE=ghcbootstrap"
- fi
- fi
-}
-
-src_unpack() {
- # Create the ${S} dir if we're using the binary version
- use binary && mkdir "${S}"
-
- # the Solaris and Darwin binaries from ghc (maeder) need to be
- # unpacked separately, so prevent them from being unpacked
- local ONLYA=${A}
- case ${CHOST} in
- *-darwin* | *-solaris*) ONLYA=${GHC_P}-src.tar.xz ;;
- esac
- unpack ${ONLYA}
-}
-
-src_prepare() {
- ghc_setup_cflags
-
- if ! use ghcbootstrap && [[ ${CHOST} != *-darwin* && ${CHOST} != *-solaris* ]]; then
- # Modify the wrapper script from the binary tarball to use GHC_PERSISTENT_FLAGS.
- # See bug #313635.
- sed -i -e "s|\"\$topdir\"|\"\$topdir\" ${GHC_PERSISTENT_FLAGS}|" \
- "${WORKDIR}/usr/bin/ghc-${GHC_PV}"
-
- # allow hardened users use vanilla binary to bootstrap ghc
- # ghci uses mmap with rwx protection at it implements dynamic
- # linking on it's own (bug #299709)
- pax-mark -m "${WORKDIR}/usr/$(get_libdir)/${GHC_P}/bin/ghc"
- fi
-
- if use binary; then
- if use prefix; then
- relocate_ghc "${EPREFIX}"
- fi
-
- # Move unpacked files to the expected place
- mv "${WORKDIR}/usr" "${S}"
- eapply_user
- else
- if ! use ghcbootstrap; then
- case ${CHOST} in
- *-darwin* | *-solaris*)
- # UPDATE ME for ghc-7
- mkdir "${WORKDIR}"/ghc-bin-installer || die
- pushd "${WORKDIR}"/ghc-bin-installer > /dev/null || die
- use sparc-solaris && unpack ghc-6.10.4-sparc-sun-solaris2.tar.bz2
- use x86-solaris && unpack ghc-7.0.3-i386-unknown-solaris2.tar.bz2
- use x64-macos && unpack ghc-7.4.1-x86_64-apple-darwin.tar.bz2
- popd > /dev/null
-
- pushd "${WORKDIR}"/ghc-bin-installer/ghc-[67].?*.? > /dev/null || die
- # fix the binaries so they run, on Solaris we need an
- # LD_LIBRARY_PATH which has our prefix libdirs, on
- # Darwin we need to replace the frameworks with our libs
- # from the prefix fix before installation, because some
- # of the tools are actually used during configure/make
- if [[ ${CHOST} == *-solaris* ]] ; then
- export LD_LIBRARY_PATH="${EPREFIX}/$(get_libdir):${EPREFIX}/usr/$(get_libdir):${LD_LIBRARY_PATH}"
- elif [[ ${CHOST} == *-darwin* ]] ; then
- local readline_framework=GNUreadline.framework/GNUreadline
- local gmp_framework=/opt/local/lib/libgmp.10.dylib
- local ncurses_file=/opt/local/lib/libncurses.5.dylib
- for binary in $(scanmacho -BRE MH_EXECUTE -F '%F' .) ; do
- install_name_tool -change \
- ${readline_framework} \
- "${EPREFIX}"/lib/libreadline.dylib \
- ${binary} || die
- install_name_tool -change \
- ${gmp_framework} \
- "${EPREFIX}"/usr/lib/libgmp.dylib \
- ${binary} || die
- install_name_tool -change \
- ${ncurses_file} \
- "${EPREFIX}"/usr/lib/libncurses.dylib \
- ${binary} || die
- done
- # we don't do frameworks!
- sed -i \
- -e 's/\(frameworks = \)\["GMP"\]/\1[]/g' \
- -e 's/\(extraLibraries = \)\["m"\]/\1["m","gmp"]/g' \
- rts/package.conf.in || die
- fi
-
- # it is autoconf, but we really don't want to give it too
- # much arguments, in fact we do the make in-place anyway
- ./configure --prefix="${WORKDIR}"/usr || die
- make install || die
- popd > /dev/null
- ;;
- *)
- relocate_ghc "${WORKDIR}"
- ;;
- esac
- fi
-
- sed -i -e "s|\"\$topdir\"|\"\$topdir\" ${GHC_PERSISTENT_FLAGS}|" \
- "${S}/ghc/ghc.wrapper"
-
- cd "${S}" # otherwise eapply will break
-
- eapply "${FILESDIR}"/${PN}-7.0.4-CHOST-prefix.patch
- eapply "${FILESDIR}"/${PN}-8.2.1-darwin.patch
- eapply "${FILESDIR}"/${PN}-7.8.3-prim-lm.patch
- eapply "${FILESDIR}"/${PN}-8.0.2-no-relax-everywhere.patch
- eapply "${FILESDIR}"/${PN}-8.0.2-binutils-2.30.patch
- eapply "${FILESDIR}"/${PN}-8.4.2-allow-cross-bootstrap.patch
-
- # a bunch of crosscompiler patches
- # needs newer version:
- #eapply "${FILESDIR}"/${PN}-8.2.1_rc1-hp2ps-cross.patch
-
- # mingw32 target
- pushd "${S}/libraries/Win32"
- eapply "${FILESDIR}"/${PN}-8.2.1_rc1-win32-cross-2-hack.patch # bad workaround
- popd
-
- bump_libs
-
- eapply_user
- # as we have changed the build system
- eautoreconf
- fi
-}
-
-src_configure() {
- if ! use binary; then
- # initialize build.mk
- echo '# Gentoo changes' > mk/build.mk
-
- # Put docs into the right place, ie /usr/share/doc/ghc-${GHC_PV}
- echo "docdir = ${EPREFIX}/usr/share/doc/$(cross)${P}" >> mk/build.mk
- echo "htmldir = ${EPREFIX}/usr/share/doc/$(cross)${P}" >> mk/build.mk
-
- # We also need to use the GHC_FLAGS flags when building ghc itself
- echo "SRC_HC_OPTS+=${HCFLAGS} ${GHC_FLAGS}" >> mk/build.mk
- echo "SRC_CC_OPTS+=${CFLAGS}" >> mk/build.mk
- echo "SRC_LD_OPTS+=${LDFLAGS}" >> mk/build.mk
- # Speed up initial Cabal bootstrap
- echo "utils/ghc-cabal_dist_EXTRA_HC_OPTS+=$(ghc-make-args)" >> mk/build.mk
-
- # We can't depend on haddock except when bootstrapping when we
- # must build docs and include them into the binary .tbz2 package
- # app-text/dblatex is not in portage, can not build PDF or PS
- echo "BUILD_SPHINX_PDF = NO" >> mk/build.mk
- echo "BUILD_SPHINX_HTML = $(usex doc YES NO)" >> mk/build.mk
- echo "BUILD_MAN = $(usex doc YES NO)" >> mk/build.mk
-
- # this controls presence on 'xhtml' and 'haddock' in final install
- echo "HADDOCK_DOCS = YES" >> mk/build.mk
-
- # not used outside of ghc's test
- if [[ -n ${GHC_BUILD_DPH} ]]; then
- echo "BUILD_DPH = YES" >> mk/build.mk
- else
- echo "BUILD_DPH = NO" >> mk/build.mk
- fi
-
- # Any non-native build has to skip as it needs
- # target haddock binary to be runnabine.
- if ! is_native; then
- # disable docs generation as it requires running stage2
- echo "HADDOCK_DOCS=NO" >> mk/build.mk
- echo "BUILD_SPHINX_HTML=NO" >> mk/build.mk
- echo "BUILD_SPHINX_PDF=NO" >> mk/build.mk
- fi
-
- if is_crosscompile; then
- # Install ghc-stage1 crosscompiler instead of
- # ghc-stage2 cross-built compiler.
- echo "Stage1Only=YES" >> mk/build.mk
- fi
-
- # allows overriding build flavours for libraries:
- # v - vanilla (static libs)
- # p - profiled
- # dyn - shared libraries
- # example: GHC_LIBRARY_WAYS="v dyn"
- if [[ -n ${GHC_LIBRARY_WAYS} ]]; then
- echo "GhcLibWays=${GHC_LIBRARY_WAYS}" >> mk/build.mk
- fi
- echo "BUILD_PROF_LIBS = $(usex profile YES NO)" >> mk/build.mk
-
- # Get ghc from the unpacked binary .tbz2
- # except when bootstrapping we just pick ghc up off the path
- if ! use ghcbootstrap; then
- export PATH="${WORKDIR}/usr/bin:${PATH}"
- fi
-
- echo "INTEGER_LIBRARY = $(usex gmp integer-gmp integer-simple)" >> mk/build.mk
-
- # don't strip anything. Very useful when stage2 SIGSEGVs on you
- echo "STRIP_CMD = :" >> mk/build.mk
-
- local econf_args=()
-
- # GHC embeds toolchain it was built by and uses it later.
- # Don't allow things like ccache or versioned binary slip.
- # We use stable thing across gcc upgrades.
- # User can use EXTRA_ECONF=CC=... to override this default.
- econf_args+=(
- AR=${CTARGET}-ar
- CC=${CTARGET}-gcc
- # these should be inferred by GHC but ghc defaults
- # to using bundled tools on windows.
- Windres=${CTARGET}-windres
- DllWrap=${CTARGET}-dllwrap
- # we set the linker explicitly below
- --disable-ld-override
- )
- case ${CTARGET} in
- arm*)
- # ld.bfd-2.28 does not work for ghc. Force ld.gold
- # instead. This should be removed once gentoo gets
- # a fix for R_ARM_COPY bug: https://sourceware.org/PR16177
- econf_args+=(LD=${CTARGET}-ld.gold)
- ;;
- sparc*)
- # ld.gold-2.28 does not work for ghc. Force ld.bfd
- # instead. This should be removed once gentoo gets
- # a fix for missing --no-relax support bug:
- # https://sourceware.org/ml/binutils/2017-07/msg00183.html
- econf_args+=(LD=${CTARGET}-ld.bfd)
- ;;
- *)
- econf_args+=(LD=${CTARGET}-ld)
- esac
-
- if [[ ${CBUILD} != ${CHOST} ]]; then
- # GHC bug: ghc claims not to support cross-building.
- # It does, but does not distinct --host= value
- # for stage1 and stage2 compiler.
- econf_args+=(--host=${CBUILD})
- fi
-
- if use ghcmakebinary; then
- # When building booting libary we are trying to
- # bundle or restrict most of external depends
- # with unstable ABI:
- # - embed libffi (default GHC behaviour)
- # - disable ncurses support for ghci (via haskeline)
- # https://bugs.gentoo.org/557478
- # - disable ncurses support for ghc-pkg
- echo "libraries/haskeline_CONFIGURE_OPTS += --flag=-terminfo" >> mk/build.mk
- echo "utils/ghc-pkg_HC_OPTS += -DBOOTSTRAPPING" >> mk/build.mk
- elif is_native; then
- # using ${GTARGET}'s libffi is not supported yet:
- # GHC embeds full path for ffi includes without /usr/${CTARGET} account.
- econf_args+=(--with-system-libffi)
- econf_args+=(--with-ffi-includes=$($(tc-getPKG_CONFIG) libffi --cflags-only-I | sed -e 's@^-I@@'))
- fi
-
- einfo "Final mk/build.mk:"
- cat mk/build.mk || die
-
- econf ${econf_args[@]} --enable-bootstrap-with-devel-snapshot
-
- if [[ ${PV} == *9999* ]]; then
- GHC_PV="$(grep 'S\[\"PACKAGE_VERSION\"\]' config.status | sed -e 's@^.*=\"\(.*\)\"@\1@')"
- GHC_P=${PN}-${GHC_PV}
- fi
- fi # ! use binary
-}
-
-src_compile() {
- if ! use binary; then
- # Stage1Only crosscompiler does not build stage2
- if ! is_crosscompile; then
- # 1. build/pax-mark compiler binary first
- emake ghc/stage2/build/tmp/ghc-stage2
- # 2. pax-mark (bug #516430)
- pax-mark -m ghc/stage2/build/tmp/ghc-stage2
- # 2. build/pax-mark haddock using ghc-stage2
- if is_native; then
- # non-native build does not build haddock
- # due to HADDOCK_DOCS=NO, but it could.
- emake utils/haddock/dist/build/tmp/haddock
- pax-mark -m utils/haddock/dist/build/tmp/haddock
- fi
- fi
- # 3. and then all the rest
- emake all
- fi # ! use binary
-}
-
-src_install() {
- if use binary; then
- use prefix && mkdir -p "${ED}"
- mv "${S}/usr" "${ED}"
- else
- [[ -f VERSION ]] || emake VERSION
-
- # -j1 due to a rare race in install script:
- # make --no-print-directory -f ghc.mk phase=final install
- # /usr/lib/portage/python3.4/ebuild-helpers/xattr/install -c -m 755 \
- # -d "/tmp/portage-tmpdir/portage/cross-armv7a-unknown-linux-gnueabi/ghc-9999/image/usr/lib64/armv7a-unknown-linux-gnueabi-ghc-8.3.20170404/include"
- # /usr/lib/portage/python3.4/ebuild-helpers/xattr/install -c -m 644 utils/hsc2hs/template-hsc.h \
- # "/tmp/portage-tmpdir/portage/cross-armv7a-unknown-linux-gnueabi/ghc-9999/image/usr/lib64/armv7a-unknown-linux-gnueabi-ghc-8.3.20170404"
- # /usr/bin/install: cannot create regular file \
- # '/tmp/portage-tmpdir/portage/cross-armv7a-unknown-linux-gnueabi/ghc-9999/image/usr/lib64/armv7a-unknown-linux-gnueabi-ghc-8.3.20170404': No such file or directory
- emake -j1 install DESTDIR="${D}"
-
- # Skip for cross-targets as they all share target location:
- # /usr/share/doc/ghc-9999/
- if ! is_crosscompile; then
- dodoc "distrib/README" "ANNOUNCE" "LICENSE" "VERSION"
- fi
-
- # rename ghc-shipped files to avoid collision
- # of external packages. Motivating example:
- # user had installed:
- # dev-lang/ghc-7.8.4-r0 (with transformers-0.3.0.0)
- # dev-haskell/transformers-0.4.2.0
- # then user tried to update to
- # dev-lang/ghc-7.8.4-r1 (with transformers-0.4.2.0)
- # this will lead to single .conf file collision.
- local shipped_conf renamed_conf
- local package_confdir="${ED}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d"
- for shipped_conf in "${package_confdir}"/*.conf; do
- # rename 'pkg-ver-id.conf' to 'pkg-ver-id-gentoo-${PF}.conf'
- renamed_conf=${shipped_conf%.conf}-gentoo-${PF}.conf
- mv "${shipped_conf}" "${renamed_conf}" || die
- done
-
- # remove link, but leave 'haddock-${GHC_P}'
- rm -f "${ED}"/usr/bin/$(cross)haddock
-
- if ! is_crosscompile; then
- newbashcomp "${FILESDIR}"/ghc-bash-completion ghc-pkg
- newbashcomp utils/completion/ghc.bash ghc
- fi
- fi
-
- # path to the package.cache
- local package_confdir="${ED}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d"
- PKGCACHE="${package_confdir}"/package.cache
- # copy the package.conf.d, including timestamp, save it so we can help
- # users that have a broken package.conf.d
- cp -pR "${package_confdir}"{,.initial} || die "failed to backup intial package.conf.d"
-
- # copy the package.conf, including timestamp, save it so we later can put it
- # back before uninstalling, or when upgrading.
- cp -p "${PKGCACHE}"{,.shipped} \
- || die "failed to copy package.conf.d/package.cache"
-}
-
-pkg_preinst() {
- # have we got an earlier version of ghc installed?
- if has_version "<${CATEGORY}/${PF}"; then
- haskell_updater_warn="1"
- fi
-}
-
-pkg_postinst() {
- ghc-reregister
-
- # path to the package.cache
- PKGCACHE="${EROOT}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d/package.cache"
-
- # give the cache a new timestamp, it must be as recent as
- # the package.conf.d directory.
- touch "${PKGCACHE}"
-
- if [[ "${haskell_updater_warn}" == "1" ]]; then
- ewarn
- ewarn "\e[1;31m************************************************************************\e[0m"
- ewarn
- ewarn "You have just upgraded from an older version of GHC."
- ewarn "You may have to run"
- ewarn " 'haskell-updater'"
- ewarn "to rebuild all ghc-based Haskell libraries."
- ewarn
- ewarn "\e[1;31m************************************************************************\e[0m"
- ewarn
- fi
-}
-
-pkg_prerm() {
- PKGCACHE="${EROOT}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d/package.cache"
- rm -rf "${PKGCACHE}"
-
- cp -p "${PKGCACHE}"{.shipped,}
-}
-
-pkg_postrm() {
- ghc-package_pkg_postrm
-}
diff --git a/dev-lang/ghc/ghc-8.4.3.ebuild b/dev-lang/ghc/ghc-8.4.3.ebuild
deleted file mode 100644
index 58e642364d02..000000000000
--- a/dev-lang/ghc/ghc-8.4.3.ebuild
+++ /dev/null
@@ -1,759 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-# to make make a crosscompiler use crossdev and symlink ghc tree into
-# cross overlay. result would look like 'cross-sparc-unknown-linux-gnu/ghc'
-export CBUILD=${CBUILD:-${CHOST}}
-export CTARGET=${CTARGET:-${CHOST}}
-if [[ ${CTARGET} = ${CHOST} ]] ; then
- if [[ ${CATEGORY/cross-} != ${CATEGORY} ]] ; then
- export CTARGET=${CATEGORY/cross-}
- fi
-fi
-
-inherit autotools bash-completion-r1 eutils flag-o-matic ghc-package
-inherit multilib pax-utils toolchain-funcs versionator prefix
-inherit check-reqs
-DESCRIPTION="The Glasgow Haskell Compiler"
-HOMEPAGE="https://www.haskell.org/ghc/"
-
-# we don't have any binaries yet
-arch_binaries=""
-
-# sorted!
-#arch_binaries="$arch_binaries alpha? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-alpha.tbz2 )"
-#arch_binaries="$arch_binaries arm? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-armv7a-hardfloat-linux-gnueabi.tbz2 )"
-#arch_binaries="$arch_binaries arm64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-aarch64-unknown-linux-gnu.tbz2 )"
-arch_binaries="$arch_binaries amd64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-x86_64-pc-linux-gnu.tbz2 )"
-#arch_binaries="$arch_binaries ia64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ia64-fixed-fiw.tbz2 )"
-#arch_binaries="$arch_binaries ppc? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ppc.tbz2 )"
-#arch_binaries="$arch_binaries ppc64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ppc64.tbz2 )"
-#arch_binaries="$arch_binaries sparc? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-sparc.tbz2 )"
-arch_binaries="$arch_binaries x86? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-i686-pc-linux-gnu.tbz2 )"
-
-# various ports:
-#arch_binaries="$arch_binaries x86-fbsd? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-x86-fbsd.tbz2 )"
-
-# 0 - yet
-yet_binary() {
- case "${ARCH}" in
- #alpha) return 0 ;;
- #arm64) return 0 ;;
- #arm) return 0 ;;
- amd64) return 0 ;;
- #ia64) return 0 ;;
- #ppc) return 0 ;;
- #ppc64) return 0 ;;
- #sparc) return 0 ;;
- x86) return 0 ;;
- *) return 1 ;;
- esac
-}
-
-GHC_PV=${PV}
-#GHC_PV=8.4.1.20180329 # uncomment only for -alpha, -beta, -rc ebuilds
-GHC_P=${PN}-${GHC_PV} # using ${P} is almost never correct
-
-SRC_URI="!binary? ( https://downloads.haskell.org/~ghc/${PV/_/-}/${GHC_P}-src.tar.xz )"
-S="${WORKDIR}"/${GHC_P}
-
-[[ -n $arch_binaries ]] && SRC_URI+=" !ghcbootstrap? ( $arch_binaries )"
-
-BUMP_LIBRARIES=(
- # "hackage-name hackage-version"
-)
-
-LICENSE="BSD"
-SLOT="0/${PV}"
-#KEYWORDS="~alpha ~amd64 ~x86 ~amd64-linux ~x86-linux"
-IUSE="doc ghcbootstrap ghcmakebinary +gmp profile"
-IUSE+=" binary"
-
-RDEPEND="
- >=dev-lang/perl-5.6.1
- dev-libs/gmp:0=
- sys-libs/ncurses:0=[unicode]
- !ghcmakebinary? ( dev-libs/libffi:= )
-"
-
-# This set of dependencies is needed to run
-# prebuilt ghc. We specifically avoid ncurses
-# dependency with:
-# utils/ghc-pkg_HC_OPTS += -DBOOTSTRAPPING
-PREBUILT_BINARY_DEPENDS="
- !prefix? ( elibc_glibc? ( >=sys-libs/glibc-2.17 ) )
-"
-# This set of dependencies is needed to install
-# ghc[binary] in system. terminfo package is linked
-# against ncurses.
-PREBUILT_BINARY_RDEPENDS="${PREBUILT_BINARY_DEPENDS}
- sys-libs/ncurses:0/6
-"
-
-RDEPEND+="binary? ( ${PREBUILT_BINARY_RDEPENDS} )"
-
-DEPEND="${RDEPEND}
- doc? ( app-text/docbook-xml-dtd:4.2
- app-text/docbook-xml-dtd:4.5
- app-text/docbook-xsl-stylesheets
- dev-python/sphinx
- >=dev-libs/libxslt-1.1.2 )
- !ghcbootstrap? ( ${PREBUILT_BINARY_DEPENDS} )"
-
-PDEPEND="!ghcbootstrap? ( >=app-admin/haskell-updater-1.2 )"
-
-REQUIRED_USE="?? ( ghcbootstrap binary )"
-
-# haskell libraries built with cabal in configure mode, #515354
-QA_CONFIGURE_OPTIONS+=" --with-compiler --with-gcc"
-
-is_crosscompile() {
- [[ ${CHOST} != ${CTARGET} ]]
-}
-
-is_native() {
- [[ ${CHOST} == ${CBUILD} ]] && [[ ${CHOST} == ${CTARGET} ]]
-}
-
-# returns tool prefix for crosscompiler.
-# Example:
-# CTARGET=armv7a-unknown-linux-gnueabi
-# CHOST=x86_64-pc-linux-gnu
-# "armv7a-unknown-linux-gnueabi-"
-# CTARGET=${CHOST}
-# ""
-# Used in tools and library prefix:
-# "${ED}"/usr/bin/$(cross)haddock
-# "${ED}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d"
-
-cross() {
- if is_crosscompile; then
- echo "${CTARGET}-"
- else
- echo ""
- fi
-}
-
-append-ghc-cflags() {
- local persistent compile assemble link
- local flag ghcflag
-
- for flag in $*; do
- case ${flag} in
- persistent) persistent="yes";;
- compile) compile="yes";;
- assemble) assemble="yes";;
- link) link="yes";;
- *)
- [[ ${compile} ]] && ghcflag="-optc${flag}" CFLAGS+=" ${flag}" && GHC_FLAGS+=" ${ghcflag}" &&
- [[ ${persistent} ]] && GHC_PERSISTENT_FLAGS+=" ${ghcflag}"
- [[ ${assemble} ]] && ghcflag="-opta${flag}" CFLAGS+=" ${flag}" && GHC_FLAGS+=" ${ghcflag}" &&
- [[ ${persistent} ]] && GHC_PERSISTENT_FLAGS+=" ${ghcflag}"
- [[ ${link} ]] && ghcflag="-optl${flag}" LDFLAGS+=" ${flag}" && GHC_FLAGS+=" ${ghcflag}" &&
- [[ ${persistent} ]] && GHC_PERSISTENT_FLAGS+=" ${ghcflag}"
- ;;
- esac
- done
-}
-
-# $1 - lib name (under libraries/)
-# $2 - lib version
-# example: bump_lib "transformers" "0.4.2.0"
-bump_lib() {
- local pn=$1 pv=$2
- local p=${pn}-${pv}
- local f
-
- einfo "Bumping ${pn} up to ${pv}"
-
- for f in ghc.mk GNUmakefile; do
- mv libraries/"${pn}"/$f "${WORKDIR}"/"${p}"/$f || die
- done
- mv libraries/"${pn}" "${WORKDIR}"/"${pn}".old || die
- mv "${WORKDIR}"/"${p}" libraries/"${pn}" || die
-}
-
-update_SRC_URI() {
- local p pn pv
- for p in "${BUMP_LIBRARIES[@]}"; do
- set -- $p
- pn=$1 pv=$2
-
- SRC_URI+=" https://hackage.haskell.org/package/${pn}-${pv}/${pn}-${pv}.tar.gz"
- done
-}
-
-update_SRC_URI
-
-bump_libs() {
- local p pn pv
- for p in "${BUMP_LIBRARIES[@]}"; do
- set -- $p
- pn=$1 pv=$2
-
- bump_lib "${pn}" "${pv}"
- done
-}
-
-ghc_setup_cflags() {
- # TODO: plumb CFLAGS and BUILD_CFLAGS to respective CONF_CC_OPTS_STAGE<N>
- if ! is_native; then
- export CFLAGS=${GHC_CFLAGS-"-O2 -pipe"}
- export LDFLAGS=${GHC_LDFLAGS-"-Wl,-O1"}
- einfo "Crosscompiling mode:"
- einfo " CHOST: ${CHOST}"
- einfo " CTARGET: ${CTARGET}"
- einfo " CFLAGS: ${CFLAGS}"
- einfo " LDFLAGS: ${LDFLAGS}"
- einfo " prefix: $(cross)"
- return
- fi
- # We need to be very careful with the CFLAGS we ask ghc to pass through to
- # gcc. There are plenty of flags which will make gcc produce output that
- # breaks ghc in various ways. The main ones we want to pass through are
- # -mcpu / -march flags. These are important for arches like alpha & sparc.
- # We also use these CFLAGS for building the C parts of ghc, ie the rts.
- strip-flags
- strip-unsupported-flags
-
- # Cmm can't parse line numbers #482086
- replace-flags -ggdb[3-9] -ggdb2
-
- GHC_FLAGS=""
- GHC_PERSISTENT_FLAGS=""
- for flag in ${CFLAGS}; do
- case ${flag} in
-
- # Ignore extra optimisation (ghc passes -O to gcc anyway)
- # -O2 and above break on too many systems
- -O*) ;;
-
- # Arch and ABI flags are what we're really after
- -m*) append-ghc-cflags compile assemble ${flag};;
-
- # Sometimes it's handy to see backtrace of RTS
- # to get an idea what happens there
- -g*) append-ghc-cflags compile ${flag};;
-
- # Ignore all other flags, including all -f* flags
- esac
- done
-
- for flag in ${LDFLAGS}; do
- append-ghc-cflags link ${flag}
- done
-
- # GHC uses ${CBUILD}-gcc, ${CHOST}-gcc and ${CTARGET}-gcc at a single build.
- # Skip any gentoo-specific tweaks for cross-case to avoid passing unsupported
- # options to gcc.
- if is_native; then
- # hardened-gcc needs to be disabled, because our prebuilt binaries/libraries
- # are not built with fPIC, bug #606666
- gcc-specs-pie && append-ghc-cflags persistent compile link -nopie
- tc-is-gcc && version_is_at_least 6.3 $(gcc-version) && if ! use ghcbootstrap; then
- # gcc-6.3 has support for -no-pie upstream, but spelling differs from
- # gentoo-specific '-nopie'. We enable it in non-bootstrap to allow
- # hardened users try '-pie' in USE=ghcbootstrap mode.
- append-ghc-cflags compile link -no-pie
- fi
-
- # prevent from failing to build unregisterised ghc:
- # https://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg171602.html
- use ppc64 && append-ghc-cflags persistent compile -mminimal-toc
- fi
-}
-
-# substitutes string $1 to $2 in files $3 $4 ...
-relocate_path() {
- local from=$1
- local to=$2
- shift 2
- local file=
- for file in "$@"
- do
- sed -i -e "s|$from|$to|g" \
- "$file" || die "path relocation failed for '$file'"
- done
-}
-
-# changes hardcoded ghc paths and updates package index
-# $1 - new absolute root path
-relocate_ghc() {
- local to=$1
-
- # libdir for prebuilt binary and for current system may mismatch
- # It does for prefix installation for example: bug #476998
- local bin_ghc_prefix=${WORKDIR}/usr
- local bin_libpath=$(echo "${bin_ghc_prefix}"/lib*)
- local bin_libdir=${bin_libpath#${bin_ghc_prefix}/}
-
- # backup original script to use it later after relocation
- local gp_back="${T}/ghc-pkg-${GHC_PV}-orig"
- cp "${WORKDIR}/usr/bin/ghc-pkg-${GHC_PV}" "$gp_back" || die "unable to backup ghc-pkg wrapper"
-
- if [[ ${bin_libdir} != $(get_libdir) ]]; then
- einfo "Relocating '${bin_libdir}' to '$(get_libdir)' (bug #476998)"
- # moving the dir itself is not strictly needed
- # but then USE=binary would result in installing
- # in '${bin_libdir}'
- mv "${bin_ghc_prefix}/${bin_libdir}" "${bin_ghc_prefix}/$(get_libdir)" || die
-
- relocate_path "/usr/${bin_libdir}" "/usr/$(get_libdir)" \
- "${WORKDIR}/usr/bin/ghc-${GHC_PV}" \
- "${WORKDIR}/usr/bin/ghci-${GHC_PV}" \
- "${WORKDIR}/usr/bin/ghc-pkg-${GHC_PV}" \
- "${WORKDIR}/usr/bin/hsc2hs" \
- "${WORKDIR}/usr/bin/runghc-${GHC_PV}" \
- "$gp_back" \
- "${WORKDIR}/usr/$(get_libdir)/${GHC_P}/package.conf.d/"*
- fi
-
- # Relocate from /usr to ${EPREFIX}/usr
- relocate_path "/usr" "${to}/usr" \
- "${WORKDIR}/usr/bin/ghc-${GHC_PV}" \
- "${WORKDIR}/usr/bin/ghci-${GHC_PV}" \
- "${WORKDIR}/usr/bin/ghc-pkg-${GHC_PV}" \
- "${WORKDIR}/usr/bin/haddock-ghc-${GHC_PV}" \
- "${WORKDIR}/usr/bin/hp2ps" \
- "${WORKDIR}/usr/bin/hpc" \
- "${WORKDIR}/usr/bin/hsc2hs" \
- "${WORKDIR}/usr/bin/runghc-${GHC_PV}" \
- "${WORKDIR}/usr/$(get_libdir)/${GHC_P}/package.conf.d/"*
-
- # this one we will use to regenerate cache
- # so it should point to current tree location
- relocate_path "/usr" "${WORKDIR}/usr" "$gp_back"
-
- if use prefix; then
- hprefixify "${bin_libpath}"/${PN}*/settings
- fi
-
- # regenerate the binary package cache
- "$gp_back" recache || die "failed to update cache after relocation"
- rm "$gp_back"
-}
-
-ghc-check-reqs() {
- # These are pessimistic values (slightly bigger than worst-case)
- # Worst case is UNREG USE=profile ia64. See bug #611866 for some
- # numbers on various arches.
- CHECKREQS_DISK_BUILD=8G
- CHECKREQS_DISK_USR=2G
- # USE=binary roughly takes
- use binary && CHECKREQS_DISK_BUILD=4G
-
- "$@"
-}
-
-pkg_pretend() {
- ghc-check-reqs check-reqs_pkg_pretend
-}
-
-pkg_setup() {
- ghc-check-reqs check-reqs_pkg_setup
-
- # quiet portage about prebuilt binaries
- use binary && QA_PREBUILT="*"
-
- [[ ${MERGE_TYPE} == binary ]] && return
-
- if use ghcbootstrap; then
- ewarn "You requested ghc bootstrapping, this is usually only used"
- ewarn "by Gentoo developers to make binary .tbz2 packages."
-
- [[ -z $(type -P ghc) ]] && \
- die "Could not find a ghc to bootstrap with."
- else
- if ! yet_binary; then
- eerror "Please try emerging with USE=ghcbootstrap and report build"
- eerror "sucess or failure to the haskell team (haskell@gentoo.org)"
- die "No binary available for '${ARCH}' arch yet, USE=ghcbootstrap"
- fi
- fi
-}
-
-src_unpack() {
- # Create the ${S} dir if we're using the binary version
- use binary && mkdir "${S}"
-
- # the Solaris and Darwin binaries from ghc (maeder) need to be
- # unpacked separately, so prevent them from being unpacked
- local ONLYA=${A}
- case ${CHOST} in
- *-darwin* | *-solaris*) ONLYA=${GHC_P}-src.tar.xz ;;
- esac
- unpack ${ONLYA}
-}
-
-src_prepare() {
- ghc_setup_cflags
-
- if ! use ghcbootstrap && [[ ${CHOST} != *-darwin* && ${CHOST} != *-solaris* ]]; then
- # Modify the wrapper script from the binary tarball to use GHC_PERSISTENT_FLAGS.
- # See bug #313635.
- sed -i -e "s|\"\$topdir\"|\"\$topdir\" ${GHC_PERSISTENT_FLAGS}|" \
- "${WORKDIR}/usr/bin/ghc-${GHC_PV}"
-
- # allow hardened users use vanilla binary to bootstrap ghc
- # ghci uses mmap with rwx protection at it implements dynamic
- # linking on it's own (bug #299709)
- pax-mark -m "${WORKDIR}/usr/$(get_libdir)/${GHC_P}/bin/ghc"
- fi
-
- if use binary; then
- if use prefix; then
- relocate_ghc "${EPREFIX}"
- fi
-
- # Move unpacked files to the expected place
- mv "${WORKDIR}/usr" "${S}"
- eapply_user
- else
- if ! use ghcbootstrap; then
- case ${CHOST} in
- *-darwin* | *-solaris*)
- # UPDATE ME for ghc-7
- mkdir "${WORKDIR}"/ghc-bin-installer || die
- pushd "${WORKDIR}"/ghc-bin-installer > /dev/null || die
- use sparc-solaris && unpack ghc-6.10.4-sparc-sun-solaris2.tar.bz2
- use x86-solaris && unpack ghc-7.0.3-i386-unknown-solaris2.tar.bz2
- use x64-macos && unpack ghc-7.4.1-x86_64-apple-darwin.tar.bz2
- popd > /dev/null
-
- pushd "${WORKDIR}"/ghc-bin-installer/ghc-[67].?*.? > /dev/null || die
- # fix the binaries so they run, on Solaris we need an
- # LD_LIBRARY_PATH which has our prefix libdirs, on
- # Darwin we need to replace the frameworks with our libs
- # from the prefix fix before installation, because some
- # of the tools are actually used during configure/make
- if [[ ${CHOST} == *-solaris* ]] ; then
- export LD_LIBRARY_PATH="${EPREFIX}/$(get_libdir):${EPREFIX}/usr/$(get_libdir):${LD_LIBRARY_PATH}"
- elif [[ ${CHOST} == *-darwin* ]] ; then
- local readline_framework=GNUreadline.framework/GNUreadline
- local gmp_framework=/opt/local/lib/libgmp.10.dylib
- local ncurses_file=/opt/local/lib/libncurses.5.dylib
- for binary in $(scanmacho -BRE MH_EXECUTE -F '%F' .) ; do
- install_name_tool -change \
- ${readline_framework} \
- "${EPREFIX}"/lib/libreadline.dylib \
- ${binary} || die
- install_name_tool -change \
- ${gmp_framework} \
- "${EPREFIX}"/usr/lib/libgmp.dylib \
- ${binary} || die
- install_name_tool -change \
- ${ncurses_file} \
- "${EPREFIX}"/usr/lib/libncurses.dylib \
- ${binary} || die
- done
- # we don't do frameworks!
- sed -i \
- -e 's/\(frameworks = \)\["GMP"\]/\1[]/g' \
- -e 's/\(extraLibraries = \)\["m"\]/\1["m","gmp"]/g' \
- rts/package.conf.in || die
- fi
-
- # it is autoconf, but we really don't want to give it too
- # much arguments, in fact we do the make in-place anyway
- ./configure --prefix="${WORKDIR}"/usr || die
- make install || die
- popd > /dev/null
- ;;
- *)
- relocate_ghc "${WORKDIR}"
- ;;
- esac
- fi
-
- sed -i -e "s|\"\$topdir\"|\"\$topdir\" ${GHC_PERSISTENT_FLAGS}|" \
- "${S}/ghc/ghc.wrapper"
-
- cd "${S}" # otherwise eapply will break
-
- eapply "${FILESDIR}"/${PN}-7.0.4-CHOST-prefix.patch
- eapply "${FILESDIR}"/${PN}-8.2.1-darwin.patch
- eapply "${FILESDIR}"/${PN}-7.8.3-prim-lm.patch
- eapply "${FILESDIR}"/${PN}-8.0.2-no-relax-everywhere.patch
- eapply "${FILESDIR}"/${PN}-8.4.2-allow-cross-bootstrap.patch
-
- # a bunch of crosscompiler patches
- # needs newer version:
- #eapply "${FILESDIR}"/${PN}-8.2.1_rc1-hp2ps-cross.patch
-
- # mingw32 target
- pushd "${S}/libraries/Win32"
- eapply "${FILESDIR}"/${PN}-8.2.1_rc1-win32-cross-2-hack.patch # bad workaround
- popd
-
- bump_libs
-
- eapply_user
- # as we have changed the build system
- eautoreconf
- fi
-}
-
-src_configure() {
- if ! use binary; then
- # initialize build.mk
- echo '# Gentoo changes' > mk/build.mk
-
- # Put docs into the right place, ie /usr/share/doc/ghc-${GHC_PV}
- echo "docdir = ${EPREFIX}/usr/share/doc/$(cross)${P}" >> mk/build.mk
- echo "htmldir = ${EPREFIX}/usr/share/doc/$(cross)${P}" >> mk/build.mk
-
- # We also need to use the GHC_FLAGS flags when building ghc itself
- echo "SRC_HC_OPTS+=${HCFLAGS} ${GHC_FLAGS}" >> mk/build.mk
- echo "SRC_CC_OPTS+=${CFLAGS}" >> mk/build.mk
- echo "SRC_LD_OPTS+=${LDFLAGS}" >> mk/build.mk
- # Speed up initial Cabal bootstrap
- echo "utils/ghc-cabal_dist_EXTRA_HC_OPTS+=$(ghc-make-args)" >> mk/build.mk
-
- # We can't depend on haddock except when bootstrapping when we
- # must build docs and include them into the binary .tbz2 package
- # app-text/dblatex is not in portage, can not build PDF or PS
- echo "BUILD_SPHINX_PDF = NO" >> mk/build.mk
- echo "BUILD_SPHINX_HTML = $(usex doc YES NO)" >> mk/build.mk
- echo "BUILD_MAN = $(usex doc YES NO)" >> mk/build.mk
-
- # this controls presence on 'xhtml' and 'haddock' in final install
- echo "HADDOCK_DOCS = YES" >> mk/build.mk
-
- # not used outside of ghc's test
- if [[ -n ${GHC_BUILD_DPH} ]]; then
- echo "BUILD_DPH = YES" >> mk/build.mk
- else
- echo "BUILD_DPH = NO" >> mk/build.mk
- fi
-
- # Any non-native build has to skip as it needs
- # target haddock binary to be runnabine.
- if ! is_native; then
- # disable docs generation as it requires running stage2
- echo "HADDOCK_DOCS=NO" >> mk/build.mk
- echo "BUILD_SPHINX_HTML=NO" >> mk/build.mk
- echo "BUILD_SPHINX_PDF=NO" >> mk/build.mk
- fi
-
- if is_crosscompile; then
- # Install ghc-stage1 crosscompiler instead of
- # ghc-stage2 cross-built compiler.
- echo "Stage1Only=YES" >> mk/build.mk
- fi
-
- # allows overriding build flavours for libraries:
- # v - vanilla (static libs)
- # p - profiled
- # dyn - shared libraries
- # example: GHC_LIBRARY_WAYS="v dyn"
- if [[ -n ${GHC_LIBRARY_WAYS} ]]; then
- echo "GhcLibWays=${GHC_LIBRARY_WAYS}" >> mk/build.mk
- fi
- echo "BUILD_PROF_LIBS = $(usex profile YES NO)" >> mk/build.mk
-
- # Get ghc from the unpacked binary .tbz2
- # except when bootstrapping we just pick ghc up off the path
- if ! use ghcbootstrap; then
- export PATH="${WORKDIR}/usr/bin:${PATH}"
- fi
-
- echo "INTEGER_LIBRARY = $(usex gmp integer-gmp integer-simple)" >> mk/build.mk
-
- # don't strip anything. Very useful when stage2 SIGSEGVs on you
- echo "STRIP_CMD = :" >> mk/build.mk
-
- local econf_args=()
-
- # GHC embeds toolchain it was built by and uses it later.
- # Don't allow things like ccache or versioned binary slip.
- # We use stable thing across gcc upgrades.
- # User can use EXTRA_ECONF=CC=... to override this default.
- econf_args+=(
- AR=${CTARGET}-ar
- CC=${CTARGET}-gcc
- # these should be inferred by GHC but ghc defaults
- # to using bundled tools on windows.
- Windres=${CTARGET}-windres
- DllWrap=${CTARGET}-dllwrap
- # we set the linker explicitly below
- --disable-ld-override
- )
- case ${CTARGET} in
- arm*)
- # ld.bfd-2.28 does not work for ghc. Force ld.gold
- # instead. This should be removed once gentoo gets
- # a fix for R_ARM_COPY bug: https://sourceware.org/PR16177
- econf_args+=(LD=${CTARGET}-ld.gold)
- ;;
- sparc*)
- # ld.gold-2.28 does not work for ghc. Force ld.bfd
- # instead. This should be removed once gentoo gets
- # a fix for missing --no-relax support bug:
- # https://sourceware.org/ml/binutils/2017-07/msg00183.html
- econf_args+=(LD=${CTARGET}-ld.bfd)
- ;;
- *)
- econf_args+=(LD=${CTARGET}-ld)
- esac
-
- if [[ ${CBUILD} != ${CHOST} ]]; then
- # GHC bug: ghc claims not to support cross-building.
- # It does, but does not distinct --host= value
- # for stage1 and stage2 compiler.
- econf_args+=(--host=${CBUILD})
- fi
-
- if use ghcmakebinary; then
- # When building booting libary we are trying to
- # bundle or restrict most of external depends
- # with unstable ABI:
- # - embed libffi (default GHC behaviour)
- # - disable ncurses support for ghci (via haskeline)
- # https://bugs.gentoo.org/557478
- # - disable ncurses support for ghc-pkg
- echo "libraries/haskeline_CONFIGURE_OPTS += --flag=-terminfo" >> mk/build.mk
- echo "utils/ghc-pkg_HC_OPTS += -DBOOTSTRAPPING" >> mk/build.mk
- elif is_native; then
- # using ${GTARGET}'s libffi is not supported yet:
- # GHC embeds full path for ffi includes without /usr/${CTARGET} account.
- econf_args+=(--with-system-libffi)
- econf_args+=(--with-ffi-includes=$($(tc-getPKG_CONFIG) libffi --cflags-only-I | sed -e 's@^-I@@'))
- fi
-
- einfo "Final mk/build.mk:"
- cat mk/build.mk || die
-
- econf ${econf_args[@]} --enable-bootstrap-with-devel-snapshot
-
- if [[ ${PV} == *9999* ]]; then
- GHC_PV="$(grep 'S\[\"PACKAGE_VERSION\"\]' config.status | sed -e 's@^.*=\"\(.*\)\"@\1@')"
- GHC_P=${PN}-${GHC_PV}
- fi
- fi # ! use binary
-}
-
-src_compile() {
- if ! use binary; then
- # Stage1Only crosscompiler does not build stage2
- if ! is_crosscompile; then
- # 1. build/pax-mark compiler binary first
- emake ghc/stage2/build/tmp/ghc-stage2
- # 2. pax-mark (bug #516430)
- pax-mark -m ghc/stage2/build/tmp/ghc-stage2
- # 2. build/pax-mark haddock using ghc-stage2
- if is_native; then
- # non-native build does not build haddock
- # due to HADDOCK_DOCS=NO, but it could.
- emake utils/haddock/dist/build/tmp/haddock
- pax-mark -m utils/haddock/dist/build/tmp/haddock
- fi
- fi
- # 3. and then all the rest
- emake all
- fi # ! use binary
-}
-
-src_install() {
- if use binary; then
- use prefix && mkdir -p "${ED}"
- mv "${S}/usr" "${ED}"
- else
- [[ -f VERSION ]] || emake VERSION
-
- # -j1 due to a rare race in install script:
- # make --no-print-directory -f ghc.mk phase=final install
- # /usr/lib/portage/python3.4/ebuild-helpers/xattr/install -c -m 755 \
- # -d "/tmp/portage-tmpdir/portage/cross-armv7a-unknown-linux-gnueabi/ghc-9999/image/usr/lib64/armv7a-unknown-linux-gnueabi-ghc-8.3.20170404/include"
- # /usr/lib/portage/python3.4/ebuild-helpers/xattr/install -c -m 644 utils/hsc2hs/template-hsc.h \
- # "/tmp/portage-tmpdir/portage/cross-armv7a-unknown-linux-gnueabi/ghc-9999/image/usr/lib64/armv7a-unknown-linux-gnueabi-ghc-8.3.20170404"
- # /usr/bin/install: cannot create regular file \
- # '/tmp/portage-tmpdir/portage/cross-armv7a-unknown-linux-gnueabi/ghc-9999/image/usr/lib64/armv7a-unknown-linux-gnueabi-ghc-8.3.20170404': No such file or directory
- emake -j1 install DESTDIR="${D}"
-
- # Skip for cross-targets as they all share target location:
- # /usr/share/doc/ghc-9999/
- if ! is_crosscompile; then
- dodoc "distrib/README" "ANNOUNCE" "LICENSE" "VERSION"
- fi
-
- # rename ghc-shipped files to avoid collision
- # of external packages. Motivating example:
- # user had installed:
- # dev-lang/ghc-7.8.4-r0 (with transformers-0.3.0.0)
- # dev-haskell/transformers-0.4.2.0
- # then user tried to update to
- # dev-lang/ghc-7.8.4-r1 (with transformers-0.4.2.0)
- # this will lead to single .conf file collision.
- local shipped_conf renamed_conf
- local package_confdir="${ED}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d"
- for shipped_conf in "${package_confdir}"/*.conf; do
- # rename 'pkg-ver-id.conf' to 'pkg-ver-id-gentoo-${PF}.conf'
- renamed_conf=${shipped_conf%.conf}-gentoo-${PF}.conf
- mv "${shipped_conf}" "${renamed_conf}" || die
- done
-
- # remove link, but leave 'haddock-${GHC_P}'
- rm -f "${ED}"/usr/bin/$(cross)haddock
-
- if ! is_crosscompile; then
- newbashcomp "${FILESDIR}"/ghc-bash-completion ghc-pkg
- newbashcomp utils/completion/ghc.bash ghc
- fi
- fi
-
- # path to the package.cache
- local package_confdir="${ED}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d"
- PKGCACHE="${package_confdir}"/package.cache
- # copy the package.conf.d, including timestamp, save it so we can help
- # users that have a broken package.conf.d
- cp -pR "${package_confdir}"{,.initial} || die "failed to backup intial package.conf.d"
-
- # copy the package.conf, including timestamp, save it so we later can put it
- # back before uninstalling, or when upgrading.
- cp -p "${PKGCACHE}"{,.shipped} \
- || die "failed to copy package.conf.d/package.cache"
-}
-
-pkg_preinst() {
- # have we got an earlier version of ghc installed?
- if has_version "<${CATEGORY}/${PF}"; then
- haskell_updater_warn="1"
- fi
-}
-
-pkg_postinst() {
- ghc-reregister
-
- # path to the package.cache
- PKGCACHE="${EROOT}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d/package.cache"
-
- # give the cache a new timestamp, it must be as recent as
- # the package.conf.d directory.
- touch "${PKGCACHE}"
-
- if [[ "${haskell_updater_warn}" == "1" ]]; then
- ewarn
- ewarn "\e[1;31m************************************************************************\e[0m"
- ewarn
- ewarn "You have just upgraded from an older version of GHC."
- ewarn "You may have to run"
- ewarn " 'haskell-updater'"
- ewarn "to rebuild all ghc-based Haskell libraries."
- ewarn
- ewarn "\e[1;31m************************************************************************\e[0m"
- ewarn
- fi
-}
-
-pkg_prerm() {
- PKGCACHE="${EROOT}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d/package.cache"
- rm -rf "${PKGCACHE}"
-
- cp -p "${PKGCACHE}"{.shipped,}
-}
-
-pkg_postrm() {
- ghc-package_pkg_postrm
-}
diff --git a/dev-lang/ghc/ghc-8.6.4.ebuild b/dev-lang/ghc/ghc-8.6.4.ebuild
deleted file mode 100644
index 52d995e60819..000000000000
--- a/dev-lang/ghc/ghc-8.6.4.ebuild
+++ /dev/null
@@ -1,775 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-# to make make a crosscompiler use crossdev and symlink ghc tree into
-# cross overlay. result would look like 'cross-sparc-unknown-linux-gnu/ghc'
-export CBUILD=${CBUILD:-${CHOST}}
-export CTARGET=${CTARGET:-${CHOST}}
-if [[ ${CTARGET} = ${CHOST} ]] ; then
- if [[ ${CATEGORY/cross-} != ${CATEGORY} ]] ; then
- export CTARGET=${CATEGORY/cross-}
- fi
-fi
-
-inherit autotools bash-completion-r1 eutils flag-o-matic ghc-package
-inherit multilib multiprocessing pax-utils toolchain-funcs versionator prefix
-inherit check-reqs
-DESCRIPTION="The Glasgow Haskell Compiler"
-HOMEPAGE="https://www.haskell.org/ghc/"
-
-# we don't have any binaries yet
-arch_binaries=""
-
-BIN_PV=${PV}
-# sorted!
-#arch_binaries="$arch_binaries alpha? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-alpha.tbz2 )"
-#arch_binaries="$arch_binaries arm? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-armv7a-hardfloat-linux-gnueabi.tbz2 )"
-#arch_binaries="$arch_binaries arm64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-aarch64-unknown-linux-gnu.tbz2 )"
-arch_binaries="$arch_binaries amd64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-x86_64-pc-linux-gnu.tbz2 )"
-#arch_binaries="$arch_binaries ia64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ia64-fixed-fiw.tbz2 )"
-#arch_binaries="$arch_binaries ppc? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ppc.tbz2 )"
-#arch_binaries="$arch_binaries ppc64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ppc64.tbz2 )"
-#arch_binaries="$arch_binaries sparc? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-sparc.tbz2 )"
-arch_binaries="$arch_binaries x86? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-i686-pc-linux-gnu.tbz2 )"
-
-# various ports:
-#arch_binaries="$arch_binaries x86-fbsd? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-x86-fbsd.tbz2 )"
-
-# 0 - yet
-yet_binary() {
- case "${ARCH}" in
- #alpha) return 0 ;;
- #arm64) return 0 ;;
- #arm) return 0 ;;
- amd64) return 0 ;;
- #ia64) return 0 ;;
- #ppc) return 0 ;;
- #ppc64) return 0 ;;
- #sparc) return 0 ;;
- x86) return 0 ;;
- *) return 1 ;;
- esac
-}
-
-GHC_PV=${PV}
-#GHC_PV=8.6.0.20180810 # uncomment only for -alpha, -beta, -rc ebuilds
-GHC_P=${PN}-${GHC_PV} # using ${P} is almost never correct
-
-SRC_URI="!binary? (
- https://downloads.haskell.org/~ghc/${PV/_/-}/${GHC_P}-src.tar.xz
- test? ( https://downloads.haskell.org/~ghc/${PV/_/-}/${GHC_P}-testsuite.tar.xz )
-)"
-S="${WORKDIR}"/${GHC_P}
-
-[[ -n $arch_binaries ]] && SRC_URI+=" !ghcbootstrap? ( $arch_binaries )"
-
-BUMP_LIBRARIES=(
- # "hackage-name hackage-version"
-)
-
-LICENSE="BSD"
-SLOT="0/${PV}"
-#will need big tree sync
-#KEYWORDS="~amd64 ~x86"
-IUSE="doc ghcbootstrap ghcmakebinary +gmp profile test"
-RESTRICT="!test? ( test )"
-IUSE+=" binary"
-
-RDEPEND="
- >=dev-lang/perl-5.6.1
- dev-libs/gmp:0=
- sys-libs/ncurses:0=[unicode]
- !ghcmakebinary? ( dev-libs/libffi:= )
-"
-
-# This set of dependencies is needed to run
-# prebuilt ghc. We specifically avoid ncurses
-# dependency with:
-# utils/ghc-pkg_HC_OPTS += -DBOOTSTRAPPING
-PREBUILT_BINARY_DEPENDS="
- !prefix? ( elibc_glibc? ( >=sys-libs/glibc-2.17 ) )
-"
-# This set of dependencies is needed to install
-# ghc[binary] in system. terminfo package is linked
-# against ncurses.
-PREBUILT_BINARY_RDEPENDS="${PREBUILT_BINARY_DEPENDS}
- sys-libs/ncurses:0/6
-"
-
-RDEPEND+="binary? ( ${PREBUILT_BINARY_RDEPENDS} )"
-
-DEPEND="${RDEPEND}
- doc? ( app-text/docbook-xml-dtd:4.2
- app-text/docbook-xml-dtd:4.5
- app-text/docbook-xsl-stylesheets
- dev-python/sphinx
- >=dev-libs/libxslt-1.1.2 )
- !ghcbootstrap? ( ${PREBUILT_BINARY_DEPENDS} )"
-
-PDEPEND="!ghcbootstrap? ( >=app-admin/haskell-updater-1.2 )"
-
-REQUIRED_USE="?? ( ghcbootstrap binary )"
-
-# haskell libraries built with cabal in configure mode, #515354
-QA_CONFIGURE_OPTIONS+=" --with-compiler --with-gcc"
-
-is_crosscompile() {
- [[ ${CHOST} != ${CTARGET} ]]
-}
-
-is_native() {
- [[ ${CHOST} == ${CBUILD} ]] && [[ ${CHOST} == ${CTARGET} ]]
-}
-
-# returns tool prefix for crosscompiler.
-# Example:
-# CTARGET=armv7a-unknown-linux-gnueabi
-# CHOST=x86_64-pc-linux-gnu
-# "armv7a-unknown-linux-gnueabi-"
-# CTARGET=${CHOST}
-# ""
-# Used in tools and library prefix:
-# "${ED}"/usr/bin/$(cross)haddock
-# "${ED}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d"
-
-cross() {
- if is_crosscompile; then
- echo "${CTARGET}-"
- else
- echo ""
- fi
-}
-
-append-ghc-cflags() {
- local persistent compile assemble link
- local flag ghcflag
-
- for flag in $*; do
- case ${flag} in
- persistent) persistent="yes";;
- compile) compile="yes";;
- assemble) assemble="yes";;
- link) link="yes";;
- *)
- [[ ${compile} ]] && ghcflag="-optc${flag}" CFLAGS+=" ${flag}" && GHC_FLAGS+=" ${ghcflag}" &&
- [[ ${persistent} ]] && GHC_PERSISTENT_FLAGS+=" ${ghcflag}"
- [[ ${assemble} ]] && ghcflag="-opta${flag}" CFLAGS+=" ${flag}" && GHC_FLAGS+=" ${ghcflag}" &&
- [[ ${persistent} ]] && GHC_PERSISTENT_FLAGS+=" ${ghcflag}"
- [[ ${link} ]] && ghcflag="-optl${flag}" LDFLAGS+=" ${flag}" && GHC_FLAGS+=" ${ghcflag}" &&
- [[ ${persistent} ]] && GHC_PERSISTENT_FLAGS+=" ${ghcflag}"
- ;;
- esac
- done
-}
-
-# $1 - lib name (under libraries/)
-# $2 - lib version
-# example: bump_lib "transformers" "0.4.2.0"
-bump_lib() {
- local pn=$1 pv=$2
- local p=${pn}-${pv}
- local f
-
- einfo "Bumping ${pn} up to ${pv}"
-
- for f in ghc.mk GNUmakefile; do
- mv libraries/"${pn}"/$f "${WORKDIR}"/"${p}"/$f || die
- done
- mv libraries/"${pn}" "${WORKDIR}"/"${pn}".old || die
- mv "${WORKDIR}"/"${p}" libraries/"${pn}" || die
-}
-
-update_SRC_URI() {
- local p pn pv
- for p in "${BUMP_LIBRARIES[@]}"; do
- set -- $p
- pn=$1 pv=$2
-
- SRC_URI+=" https://hackage.haskell.org/package/${pn}-${pv}/${pn}-${pv}.tar.gz"
- done
-}
-
-update_SRC_URI
-
-bump_libs() {
- local p pn pv
- for p in "${BUMP_LIBRARIES[@]}"; do
- set -- $p
- pn=$1 pv=$2
-
- bump_lib "${pn}" "${pv}"
- done
-}
-
-ghc_setup_cflags() {
- # TODO: plumb CFLAGS and BUILD_CFLAGS to respective CONF_CC_OPTS_STAGE<N>
- if ! is_native; then
- export CFLAGS=${GHC_CFLAGS-"-O2 -pipe"}
- export LDFLAGS=${GHC_LDFLAGS-"-Wl,-O1"}
- einfo "Crosscompiling mode:"
- einfo " CHOST: ${CHOST}"
- einfo " CTARGET: ${CTARGET}"
- einfo " CFLAGS: ${CFLAGS}"
- einfo " LDFLAGS: ${LDFLAGS}"
- einfo " prefix: $(cross)"
- return
- fi
- # We need to be very careful with the CFLAGS we ask ghc to pass through to
- # gcc. There are plenty of flags which will make gcc produce output that
- # breaks ghc in various ways. The main ones we want to pass through are
- # -mcpu / -march flags. These are important for arches like alpha & sparc.
- # We also use these CFLAGS for building the C parts of ghc, ie the rts.
- strip-flags
- strip-unsupported-flags
-
- # Cmm can't parse line numbers #482086
- replace-flags -ggdb[3-9] -ggdb2
-
- GHC_FLAGS=""
- GHC_PERSISTENT_FLAGS=""
- for flag in ${CFLAGS}; do
- case ${flag} in
-
- # Ignore extra optimisation (ghc passes -O to gcc anyway)
- # -O2 and above break on too many systems
- -O*) ;;
-
- # Arch and ABI flags are what we're really after
- -m*) append-ghc-cflags compile assemble ${flag};;
-
- # Sometimes it's handy to see backtrace of RTS
- # to get an idea what happens there
- -g*) append-ghc-cflags compile ${flag};;
-
- # Ignore all other flags, including all -f* flags
- esac
- done
-
- for flag in ${LDFLAGS}; do
- append-ghc-cflags link ${flag}
- done
-
- # GHC uses ${CBUILD}-gcc, ${CHOST}-gcc and ${CTARGET}-gcc at a single build.
- # Skip any gentoo-specific tweaks for cross-case to avoid passing unsupported
- # options to gcc.
- if is_native; then
- # hardened-gcc needs to be disabled, because our prebuilt binaries/libraries
- # are not built with fPIC, bug #606666
- gcc-specs-pie && append-ghc-cflags persistent compile link -nopie
- tc-is-gcc && version_is_at_least 6.3 $(gcc-version) && if ! use ghcbootstrap; then
- # gcc-6.3 has support for -no-pie upstream, but spelling differs from
- # gentoo-specific '-nopie'. We enable it in non-bootstrap to allow
- # hardened users try '-pie' in USE=ghcbootstrap mode.
- append-ghc-cflags compile link -no-pie
- fi
-
- # prevent from failing to build unregisterised ghc:
- # https://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg171602.html
- use ppc64 && append-ghc-cflags persistent compile -mminimal-toc
- fi
-}
-
-# substitutes string $1 to $2 in files $3 $4 ...
-relocate_path() {
- local from=$1
- local to=$2
- shift 2
- local file=
- for file in "$@"
- do
- sed -i -e "s|$from|$to|g" \
- "$file" || die "path relocation failed for '$file'"
- done
-}
-
-# changes hardcoded ghc paths and updates package index
-# $1 - new absolute root path
-relocate_ghc() {
- local to=$1 ghc_v=${BIN_PV}
-
- # libdir for prebuilt binary and for current system may mismatch
- # It does for prefix installation for example: bug #476998
- local bin_ghc_prefix=${WORKDIR}/usr
- local bin_libpath=$(echo "${bin_ghc_prefix}"/lib*)
- local bin_libdir=${bin_libpath#${bin_ghc_prefix}/}
-
- # backup original script to use it later after relocation
- local gp_back="${T}/ghc-pkg-${ghc_v}-orig"
- cp "${WORKDIR}/usr/bin/ghc-pkg-${ghc_v}" "$gp_back" || die "unable to backup ghc-pkg wrapper"
-
- if [[ ${bin_libdir} != $(get_libdir) ]]; then
- einfo "Relocating '${bin_libdir}' to '$(get_libdir)' (bug #476998)"
- # moving the dir itself is not strictly needed
- # but then USE=binary would result in installing
- # in '${bin_libdir}'
- mv "${bin_ghc_prefix}/${bin_libdir}" "${bin_ghc_prefix}/$(get_libdir)" || die
-
- relocate_path "/usr/${bin_libdir}" "/usr/$(get_libdir)" \
- "${WORKDIR}/usr/bin/ghc-${ghc_v}" \
- "${WORKDIR}/usr/bin/ghci-${ghc_v}" \
- "${WORKDIR}/usr/bin/ghc-pkg-${ghc_v}" \
- "${WORKDIR}/usr/bin/hsc2hs" \
- "${WORKDIR}/usr/bin/runghc-${ghc_v}" \
- "$gp_back" \
- "${WORKDIR}/usr/$(get_libdir)/${PN}-${ghc_v}/package.conf.d/"*
- fi
-
- # Relocate from /usr to ${EPREFIX}/usr
- relocate_path "/usr" "${to}/usr" \
- "${WORKDIR}/usr/bin/ghc-${ghc_v}" \
- "${WORKDIR}/usr/bin/ghci-${ghc_v}" \
- "${WORKDIR}/usr/bin/ghc-pkg-${ghc_v}" \
- "${WORKDIR}/usr/bin/haddock-ghc-${ghc_v}" \
- "${WORKDIR}/usr/bin/hp2ps" \
- "${WORKDIR}/usr/bin/hpc" \
- "${WORKDIR}/usr/bin/hsc2hs" \
- "${WORKDIR}/usr/bin/runghc-${ghc_v}" \
- "${WORKDIR}/usr/$(get_libdir)/${PN}-${ghc_v}/package.conf.d/"*
-
- # this one we will use to regenerate cache
- # so it should point to current tree location
- relocate_path "/usr" "${WORKDIR}/usr" "$gp_back"
-
- if use prefix; then
- hprefixify "${bin_libpath}"/${PN}*/settings
- fi
-
- # regenerate the binary package cache
- "$gp_back" recache || die "failed to update cache after relocation"
- rm "$gp_back"
-}
-
-ghc-check-reqs() {
- # These are pessimistic values (slightly bigger than worst-case)
- # Worst case is UNREG USE=profile ia64. See bug #611866 for some
- # numbers on various arches.
- CHECKREQS_DISK_BUILD=8G
- CHECKREQS_DISK_USR=2G
- # USE=binary roughly takes
- use binary && CHECKREQS_DISK_BUILD=4G
-
- "$@"
-}
-
-pkg_pretend() {
- ghc-check-reqs check-reqs_pkg_pretend
-}
-
-pkg_setup() {
- ghc-check-reqs check-reqs_pkg_setup
-
- # quiet portage about prebuilt binaries
- use binary && QA_PREBUILT="*"
-
- [[ ${MERGE_TYPE} == binary ]] && return
-
- if use ghcbootstrap; then
- ewarn "You requested ghc bootstrapping, this is usually only used"
- ewarn "by Gentoo developers to make binary .tbz2 packages."
-
- [[ -z $(type -P ghc) ]] && \
- die "Could not find a ghc to bootstrap with."
- else
- if ! yet_binary; then
- eerror "Please try emerging with USE=ghcbootstrap and report build"
- eerror "sucess or failure to the haskell team (haskell@gentoo.org)"
- die "No binary available for '${ARCH}' arch yet, USE=ghcbootstrap"
- fi
- fi
-}
-
-src_unpack() {
- # Create the ${S} dir if we're using the binary version
- use binary && mkdir "${S}"
-
- # the Solaris and Darwin binaries from ghc (maeder) need to be
- # unpacked separately, so prevent them from being unpacked
- local ONLYA=${A}
- case ${CHOST} in
- *-darwin* | *-solaris*) ONLYA=${GHC_P}-src.tar.xz ;;
- esac
- unpack ${ONLYA}
-}
-
-src_prepare() {
- ghc_setup_cflags
-
- if ! use ghcbootstrap && [[ ${CHOST} != *-darwin* && ${CHOST} != *-solaris* ]]; then
- # Modify the wrapper script from the binary tarball to use GHC_PERSISTENT_FLAGS.
- # See bug #313635.
- sed -i -e "s|\"\$topdir\"|\"\$topdir\" ${GHC_PERSISTENT_FLAGS}|" \
- "${WORKDIR}/usr/bin/ghc-${BIN_PV}"
-
- # allow hardened users use vanilla binary to bootstrap ghc
- # ghci uses mmap with rwx protection at it implements dynamic
- # linking on it's own (bug #299709)
- pax-mark -m "${WORKDIR}/usr/$(get_libdir)/${PN}-${BIN_PV}/bin/ghc"
- fi
-
- if use binary; then
- if use prefix; then
- relocate_ghc "${EPREFIX}"
- fi
-
- # Move unpacked files to the expected place
- mv "${WORKDIR}/usr" "${S}"
- eapply_user
- else
- if ! use ghcbootstrap; then
- case ${CHOST} in
- *-darwin* | *-solaris*)
- # UPDATE ME for ghc-7
- mkdir "${WORKDIR}"/ghc-bin-installer || die
- pushd "${WORKDIR}"/ghc-bin-installer > /dev/null || die
- use sparc-solaris && unpack ghc-6.10.4-sparc-sun-solaris2.tar.bz2
- use x86-solaris && unpack ghc-7.0.3-i386-unknown-solaris2.tar.bz2
- use x64-macos && unpack ghc-7.4.1-x86_64-apple-darwin.tar.bz2
- popd > /dev/null
-
- pushd "${WORKDIR}"/ghc-bin-installer/ghc-[67].?*.? > /dev/null || die
- # fix the binaries so they run, on Solaris we need an
- # LD_LIBRARY_PATH which has our prefix libdirs, on
- # Darwin we need to replace the frameworks with our libs
- # from the prefix fix before installation, because some
- # of the tools are actually used during configure/make
- if [[ ${CHOST} == *-solaris* ]] ; then
- export LD_LIBRARY_PATH="${EPREFIX}/$(get_libdir):${EPREFIX}/usr/$(get_libdir):${LD_LIBRARY_PATH}"
- elif [[ ${CHOST} == *-darwin* ]] ; then
- local readline_framework=GNUreadline.framework/GNUreadline
- local gmp_framework=/opt/local/lib/libgmp.10.dylib
- local ncurses_file=/opt/local/lib/libncurses.5.dylib
- for binary in $(scanmacho -BRE MH_EXECUTE -F '%F' .) ; do
- install_name_tool -change \
- ${readline_framework} \
- "${EPREFIX}"/lib/libreadline.dylib \
- ${binary} || die
- install_name_tool -change \
- ${gmp_framework} \
- "${EPREFIX}"/usr/lib/libgmp.dylib \
- ${binary} || die
- install_name_tool -change \
- ${ncurses_file} \
- "${EPREFIX}"/usr/lib/libncurses.dylib \
- ${binary} || die
- done
- # we don't do frameworks!
- sed -i \
- -e 's/\(frameworks = \)\["GMP"\]/\1[]/g' \
- -e 's/\(extraLibraries = \)\["m"\]/\1["m","gmp"]/g' \
- rts/package.conf.in || die
- fi
-
- # it is autoconf, but we really don't want to give it too
- # many arguments, in fact we do the make in-place anyway
- ./configure --prefix="${WORKDIR}"/usr || die
- make install || die
- popd > /dev/null
- ;;
- *)
- relocate_ghc "${WORKDIR}"
- ;;
- esac
- fi
-
- sed -i -e "s|\"\$topdir\"|\"\$topdir\" ${GHC_PERSISTENT_FLAGS}|" \
- "${S}/ghc/ghc.wrapper"
-
- cd "${S}" # otherwise eapply will break
-
- eapply "${FILESDIR}"/${PN}-7.0.4-CHOST-prefix.patch
- eapply "${FILESDIR}"/${PN}-8.2.1-darwin.patch
- eapply "${FILESDIR}"/${PN}-7.8.3-prim-lm.patch
- eapply "${FILESDIR}"/${PN}-8.0.2-no-relax-everywhere.patch
- eapply "${FILESDIR}"/${PN}-8.4.2-allow-cross-bootstrap.patch
-
- # a bunch of crosscompiler patches
- # needs newer version:
- #eapply "${FILESDIR}"/${PN}-8.2.1_rc1-hp2ps-cross.patch
-
- # mingw32 target
- pushd "${S}/libraries/Win32"
- eapply "${FILESDIR}"/${PN}-8.2.1_rc1-win32-cross-2-hack.patch # bad workaround
- popd
-
- bump_libs
-
- eapply_user
- # as we have changed the build system
- eautoreconf
- fi
-}
-
-src_configure() {
- if ! use binary; then
- # initialize build.mk
- echo '# Gentoo changes' > mk/build.mk
-
- # Put docs into the right place, ie /usr/share/doc/ghc-${GHC_PV}
- echo "docdir = ${EPREFIX}/usr/share/doc/$(cross)${P}" >> mk/build.mk
- echo "htmldir = ${EPREFIX}/usr/share/doc/$(cross)${P}" >> mk/build.mk
-
- # We also need to use the GHC_FLAGS flags when building ghc itself
- echo "SRC_HC_OPTS+=${HCFLAGS} ${GHC_FLAGS}" >> mk/build.mk
- echo "SRC_CC_OPTS+=${CFLAGS}" >> mk/build.mk
- echo "SRC_LD_OPTS+=${LDFLAGS}" >> mk/build.mk
- # Speed up initial Cabal bootstrap
- echo "utils/ghc-cabal_dist_EXTRA_HC_OPTS+=$(ghc-make-args)" >> mk/build.mk
-
- # We can't depend on haddock except when bootstrapping when we
- # must build docs and include them into the binary .tbz2 package
- # app-text/dblatex is not in portage, can not build PDF or PS
- echo "BUILD_SPHINX_PDF = NO" >> mk/build.mk
- echo "BUILD_SPHINX_HTML = $(usex doc YES NO)" >> mk/build.mk
- echo "BUILD_MAN = $(usex doc YES NO)" >> mk/build.mk
-
- # this controls presence on 'xhtml' and 'haddock' in final install
- echo "HADDOCK_DOCS = YES" >> mk/build.mk
-
- # not used outside of ghc's test
- if [[ -n ${GHC_BUILD_DPH} ]]; then
- echo "BUILD_DPH = YES" >> mk/build.mk
- else
- echo "BUILD_DPH = NO" >> mk/build.mk
- fi
-
- # Any non-native build has to skip as it needs
- # target haddock binary to be runnabine.
- if ! is_native; then
- # disable docs generation as it requires running stage2
- echo "HADDOCK_DOCS=NO" >> mk/build.mk
- echo "BUILD_SPHINX_HTML=NO" >> mk/build.mk
- echo "BUILD_SPHINX_PDF=NO" >> mk/build.mk
- fi
-
- if is_crosscompile; then
- # Install ghc-stage1 crosscompiler instead of
- # ghc-stage2 cross-built compiler.
- echo "Stage1Only=YES" >> mk/build.mk
- fi
-
- # allows overriding build flavours for libraries:
- # v - vanilla (static libs)
- # p - profiled
- # dyn - shared libraries
- # example: GHC_LIBRARY_WAYS="v dyn"
- if [[ -n ${GHC_LIBRARY_WAYS} ]]; then
- echo "GhcLibWays=${GHC_LIBRARY_WAYS}" >> mk/build.mk
- fi
- echo "BUILD_PROF_LIBS = $(usex profile YES NO)" >> mk/build.mk
-
- # Get ghc from the unpacked binary .tbz2
- # except when bootstrapping we just pick ghc up off the path
- if ! use ghcbootstrap; then
- export PATH="${WORKDIR}/usr/bin:${PATH}"
- fi
-
- echo "INTEGER_LIBRARY = $(usex gmp integer-gmp integer-simple)" >> mk/build.mk
-
- # don't strip anything. Very useful when stage2 SIGSEGVs on you
- echo "STRIP_CMD = :" >> mk/build.mk
-
- local econf_args=()
-
- # GHC embeds toolchain it was built by and uses it later.
- # Don't allow things like ccache or versioned binary slip.
- # We use stable thing across gcc upgrades.
- # User can use EXTRA_ECONF=CC=... to override this default.
- econf_args+=(
- AR=${CTARGET}-ar
- CC=${CTARGET}-gcc
- # these should be inferred by GHC but ghc defaults
- # to using bundled tools on windows.
- Windres=${CTARGET}-windres
- DllWrap=${CTARGET}-dllwrap
- # we set the linker explicitly below
- --disable-ld-override
- )
- case ${CTARGET} in
- arm*)
- # ld.bfd-2.28 does not work for ghc. Force ld.gold
- # instead. This should be removed once gentoo gets
- # a fix for R_ARM_COPY bug: https://sourceware.org/PR16177
- econf_args+=(LD=${CTARGET}-ld.gold)
- ;;
- sparc*)
- # ld.gold-2.28 does not work for ghc. Force ld.bfd
- # instead. This should be removed once gentoo gets
- # a fix for missing --no-relax support bug:
- # https://sourceware.org/ml/binutils/2017-07/msg00183.html
- econf_args+=(LD=${CTARGET}-ld.bfd)
- ;;
- *)
- econf_args+=(LD=${CTARGET}-ld)
- esac
-
- if [[ ${CBUILD} != ${CHOST} ]]; then
- # GHC bug: ghc claims not to support cross-building.
- # It does, but does not distinct --host= value
- # for stage1 and stage2 compiler.
- econf_args+=(--host=${CBUILD})
- fi
-
- if use ghcmakebinary; then
- # When building booting libary we are trying to
- # bundle or restrict most of external depends
- # with unstable ABI:
- # - embed libffi (default GHC behaviour)
- # - disable ncurses support for ghci (via haskeline)
- # https://bugs.gentoo.org/557478
- # - disable ncurses support for ghc-pkg
- echo "libraries/haskeline_CONFIGURE_OPTS += --flag=-terminfo" >> mk/build.mk
- echo "utils/ghc-pkg_HC_OPTS += -DBOOTSTRAPPING" >> mk/build.mk
- elif is_native; then
- # using ${GTARGET}'s libffi is not supported yet:
- # GHC embeds full path for ffi includes without /usr/${CTARGET} account.
- econf_args+=(--with-system-libffi)
- econf_args+=(--with-ffi-includes=$($(tc-getPKG_CONFIG) libffi --cflags-only-I | sed -e 's@^-I@@'))
- fi
-
- einfo "Final mk/build.mk:"
- cat mk/build.mk || die
-
- econf ${econf_args[@]} --enable-bootstrap-with-devel-snapshot
-
- if [[ ${PV} == *9999* ]]; then
- GHC_PV="$(grep 'S\[\"PACKAGE_VERSION\"\]' config.status | sed -e 's@^.*=\"\(.*\)\"@\1@')"
- GHC_P=${PN}-${GHC_PV}
- fi
- fi # ! use binary
-}
-
-src_compile() {
- if ! use binary; then
- # Stage1Only crosscompiler does not build stage2
- if ! is_crosscompile; then
- # 1. build/pax-mark compiler binary first
- emake ghc/stage2/build/tmp/ghc-stage2
- # 2. pax-mark (bug #516430)
- pax-mark -m ghc/stage2/build/tmp/ghc-stage2
- # 2. build/pax-mark haddock using ghc-stage2
- if is_native; then
- # non-native build does not build haddock
- # due to HADDOCK_DOCS=NO, but it could.
- emake utils/haddock/dist/build/tmp/haddock
- pax-mark -m utils/haddock/dist/build/tmp/haddock
- fi
- fi
- # 3. and then all the rest
- emake all
- fi # ! use binary
-}
-
-src_test() {
- # TODO: deal with:
- # - sandbox (pollutes environment)
- # - extra packages (to extend testsuite coverage)
- # bits are taken from 'validate'
- local make_test_target='test' # can be fulltest
- # not 'emake' as testsuite uses '$MAKE' without jobserver available
- make $make_test_target stage=2 THREADS=$(makeopts_jobs)
-}
-
-src_install() {
- if use binary; then
- use prefix && mkdir -p "${ED}"
- mv "${S}/usr" "${ED}"
- else
- [[ -f VERSION ]] || emake VERSION
-
- # -j1 due to a rare race in install script:
- # make --no-print-directory -f ghc.mk phase=final install
- # /usr/lib/portage/python3.4/ebuild-helpers/xattr/install -c -m 755 \
- # -d "/tmp/portage-tmpdir/portage/cross-armv7a-unknown-linux-gnueabi/ghc-9999/image/usr/lib64/armv7a-unknown-linux-gnueabi-ghc-8.3.20170404/include"
- # /usr/lib/portage/python3.4/ebuild-helpers/xattr/install -c -m 644 utils/hsc2hs/template-hsc.h \
- # "/tmp/portage-tmpdir/portage/cross-armv7a-unknown-linux-gnueabi/ghc-9999/image/usr/lib64/armv7a-unknown-linux-gnueabi-ghc-8.3.20170404"
- # /usr/bin/install: cannot create regular file \
- # '/tmp/portage-tmpdir/portage/cross-armv7a-unknown-linux-gnueabi/ghc-9999/image/usr/lib64/armv7a-unknown-linux-gnueabi-ghc-8.3.20170404': No such file or directory
- emake -j1 install DESTDIR="${D}"
-
- # Skip for cross-targets as they all share target location:
- # /usr/share/doc/ghc-9999/
- if ! is_crosscompile; then
- dodoc "distrib/README" "ANNOUNCE" "LICENSE" "VERSION"
- fi
-
- # rename ghc-shipped files to avoid collision
- # of external packages. Motivating example:
- # user had installed:
- # dev-lang/ghc-7.8.4-r0 (with transformers-0.3.0.0)
- # dev-haskell/transformers-0.4.2.0
- # then user tried to update to
- # dev-lang/ghc-7.8.4-r1 (with transformers-0.4.2.0)
- # this will lead to single .conf file collision.
- local shipped_conf renamed_conf
- local package_confdir="${ED}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d"
- for shipped_conf in "${package_confdir}"/*.conf; do
- # rename 'pkg-ver-id.conf' to 'pkg-ver-id-gentoo-${PF}.conf'
- renamed_conf=${shipped_conf%.conf}-gentoo-${PF}.conf
- mv "${shipped_conf}" "${renamed_conf}" || die
- done
-
- # remove link, but leave 'haddock-${GHC_P}'
- rm -f "${ED}"/usr/bin/$(cross)haddock
-
- if ! is_crosscompile; then
- newbashcomp "${FILESDIR}"/ghc-bash-completion ghc-pkg
- newbashcomp utils/completion/ghc.bash ghc
- fi
- fi
-
- # path to the package.cache
- local package_confdir="${ED}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d"
- PKGCACHE="${package_confdir}"/package.cache
- # copy the package.conf.d, including timestamp, save it so we can help
- # users that have a broken package.conf.d
- cp -pR "${package_confdir}"{,.initial} || die "failed to backup intial package.conf.d"
-
- # copy the package.conf, including timestamp, save it so we later can put it
- # back before uninstalling, or when upgrading.
- cp -p "${PKGCACHE}"{,.shipped} \
- || die "failed to copy package.conf.d/package.cache"
-}
-
-pkg_preinst() {
- # have we got an earlier version of ghc installed?
- if has_version "<${CATEGORY}/${PF}"; then
- haskell_updater_warn="1"
- fi
-}
-
-pkg_postinst() {
- ghc-reregister
-
- # path to the package.cache
- PKGCACHE="${EROOT}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d/package.cache"
-
- # give the cache a new timestamp, it must be as recent as
- # the package.conf.d directory.
- touch "${PKGCACHE}"
-
- if [[ "${haskell_updater_warn}" == "1" ]]; then
- ewarn
- ewarn "\e[1;31m************************************************************************\e[0m"
- ewarn
- ewarn "You have just upgraded from an older version of GHC."
- ewarn "You may have to run"
- ewarn " 'haskell-updater'"
- ewarn "to rebuild all ghc-based Haskell libraries."
- ewarn
- ewarn "\e[1;31m************************************************************************\e[0m"
- ewarn
- fi
-}
-
-pkg_prerm() {
- PKGCACHE="${EROOT}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d/package.cache"
- rm -rf "${PKGCACHE}"
-
- cp -p "${PKGCACHE}"{.shipped,}
-}
-
-pkg_postrm() {
- ghc-package_pkg_postrm
-}
diff --git a/dev-lang/ghc/ghc-8.6.5.ebuild b/dev-lang/ghc/ghc-8.6.5.ebuild
deleted file mode 100644
index 89e16a5acd9b..000000000000
--- a/dev-lang/ghc/ghc-8.6.5.ebuild
+++ /dev/null
@@ -1,784 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-# to make make a crosscompiler use crossdev and symlink ghc tree into
-# cross overlay. result would look like 'cross-sparc-unknown-linux-gnu/ghc'
-export CBUILD=${CBUILD:-${CHOST}}
-export CTARGET=${CTARGET:-${CHOST}}
-if [[ ${CTARGET} = ${CHOST} ]] ; then
- if [[ ${CATEGORY/cross-} != ${CATEGORY} ]] ; then
- export CTARGET=${CATEGORY/cross-}
- fi
-fi
-
-inherit autotools bash-completion-r1 eutils flag-o-matic ghc-package
-inherit multilib multiprocessing pax-utils toolchain-funcs versionator prefix
-inherit check-reqs
-DESCRIPTION="The Glasgow Haskell Compiler"
-HOMEPAGE="https://www.haskell.org/ghc/"
-
-# we don't have any binaries yet
-arch_binaries=""
-
-BIN_PV=${PV}
-# sorted!
-#arch_binaries="$arch_binaries alpha? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-alpha.tbz2 )"
-#arch_binaries="$arch_binaries arm? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-armv7a-hardfloat-linux-gnueabi.tbz2 )"
-#arch_binaries="$arch_binaries arm64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-aarch64-unknown-linux-gnu.tbz2 )"
-arch_binaries="$arch_binaries amd64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-x86_64-pc-linux-gnu.tbz2 )"
-#arch_binaries="$arch_binaries ia64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ia64-fixed-fiw.tbz2 )"
-#arch_binaries="$arch_binaries ppc? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ppc.tbz2 )"
-arch_binaries="$arch_binaries ppc64? ( !big-endian? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-powerpc64le-unknown-linux-gnu.tbz2 ) )"
-#arch_binaries="$arch_binaries sparc? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-sparc.tbz2 )"
-arch_binaries="$arch_binaries x86? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-i686-pc-linux-gnu.tbz2 )"
-
-# various ports:
-#arch_binaries="$arch_binaries x86-fbsd? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-x86-fbsd.tbz2 )"
-
-# 0 - yet
-yet_binary() {
- case "${ARCH}" in
- #alpha) return 0 ;;
- #arm64) return 0 ;;
- #arm) return 0 ;;
- amd64) return 0 ;;
- #ia64) return 0 ;;
- #ppc) return 0 ;;
- ppc64)
- use big-endian && return 1
- return 0
- ;;
- #sparc) return 0 ;;
- x86) return 0 ;;
- *) return 1 ;;
- esac
-}
-
-GHC_PV=${PV}
-#GHC_PV=8.6.0.20180810 # uncomment only for -alpha, -beta, -rc ebuilds
-GHC_P=${PN}-${GHC_PV} # using ${P} is almost never correct
-
-SRC_URI="!binary? (
- https://downloads.haskell.org/~ghc/${PV/_/-}/${GHC_P}-src.tar.xz
- test? ( https://downloads.haskell.org/~ghc/${PV/_/-}/${GHC_P}-testsuite.tar.xz )
-)"
-S="${WORKDIR}"/${GHC_P}
-
-[[ -n $arch_binaries ]] && SRC_URI+=" !ghcbootstrap? ( $arch_binaries )"
-
-BUMP_LIBRARIES=(
- # "hackage-name hackage-version"
-)
-
-LICENSE="BSD"
-SLOT="0/${PV}"
-# to be rekeyworded when most of revdeps are updated
-#KEYWORDS="~amd64 ~x86"
-IUSE="big-endian doc elfutils ghcbootstrap ghcmakebinary +gmp numa profile test"
-IUSE+=" binary"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- >=dev-lang/perl-5.6.1
- dev-libs/gmp:0=
- sys-libs/ncurses:0=[unicode]
- elfutils? ( dev-libs/elfutils )
- !ghcmakebinary? ( dev-libs/libffi:= )
- numa? ( sys-process/numactl )
-"
-
-# This set of dependencies is needed to run
-# prebuilt ghc. We specifically avoid ncurses
-# dependency with:
-# utils/ghc-pkg_HC_OPTS += -DBOOTSTRAPPING
-PREBUILT_BINARY_DEPENDS="
- !prefix? ( elibc_glibc? ( >=sys-libs/glibc-2.17 ) )
-"
-# This set of dependencies is needed to install
-# ghc[binary] in system. terminfo package is linked
-# against ncurses.
-PREBUILT_BINARY_RDEPENDS="${PREBUILT_BINARY_DEPENDS}
- sys-libs/ncurses:0/6
-"
-
-RDEPEND+="binary? ( ${PREBUILT_BINARY_RDEPENDS} )"
-
-DEPEND="${RDEPEND}
- doc? ( app-text/docbook-xml-dtd:4.2
- app-text/docbook-xml-dtd:4.5
- app-text/docbook-xsl-stylesheets
- dev-python/sphinx
- >=dev-libs/libxslt-1.1.2 )
- !ghcbootstrap? ( ${PREBUILT_BINARY_DEPENDS} )"
-
-PDEPEND="!ghcbootstrap? ( >=app-admin/haskell-updater-1.2 )"
-
-REQUIRED_USE="?? ( ghcbootstrap binary )"
-
-# haskell libraries built with cabal in configure mode, #515354
-QA_CONFIGURE_OPTIONS+=" --with-compiler --with-gcc"
-
-is_crosscompile() {
- [[ ${CHOST} != ${CTARGET} ]]
-}
-
-is_native() {
- [[ ${CHOST} == ${CBUILD} ]] && [[ ${CHOST} == ${CTARGET} ]]
-}
-
-# returns tool prefix for crosscompiler.
-# Example:
-# CTARGET=armv7a-unknown-linux-gnueabi
-# CHOST=x86_64-pc-linux-gnu
-# "armv7a-unknown-linux-gnueabi-"
-# CTARGET=${CHOST}
-# ""
-# Used in tools and library prefix:
-# "${ED}"/usr/bin/$(cross)haddock
-# "${ED}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d"
-
-cross() {
- if is_crosscompile; then
- echo "${CTARGET}-"
- else
- echo ""
- fi
-}
-
-append-ghc-cflags() {
- local persistent compile assemble link
- local flag ghcflag
-
- for flag in $*; do
- case ${flag} in
- persistent) persistent="yes";;
- compile) compile="yes";;
- assemble) assemble="yes";;
- link) link="yes";;
- *)
- [[ ${compile} ]] && ghcflag="-optc${flag}" CFLAGS+=" ${flag}" && GHC_FLAGS+=" ${ghcflag}" &&
- [[ ${persistent} ]] && GHC_PERSISTENT_FLAGS+=" ${ghcflag}"
- [[ ${assemble} ]] && ghcflag="-opta${flag}" CFLAGS+=" ${flag}" && GHC_FLAGS+=" ${ghcflag}" &&
- [[ ${persistent} ]] && GHC_PERSISTENT_FLAGS+=" ${ghcflag}"
- [[ ${link} ]] && ghcflag="-optl${flag}" LDFLAGS+=" ${flag}" && GHC_FLAGS+=" ${ghcflag}" &&
- [[ ${persistent} ]] && GHC_PERSISTENT_FLAGS+=" ${ghcflag}"
- ;;
- esac
- done
-}
-
-# $1 - lib name (under libraries/)
-# $2 - lib version
-# example: bump_lib "transformers" "0.4.2.0"
-bump_lib() {
- local pn=$1 pv=$2
- local p=${pn}-${pv}
- local f
-
- einfo "Bumping ${pn} up to ${pv}"
-
- for f in ghc.mk GNUmakefile; do
- mv libraries/"${pn}"/$f "${WORKDIR}"/"${p}"/$f || die
- done
- mv libraries/"${pn}" "${WORKDIR}"/"${pn}".old || die
- mv "${WORKDIR}"/"${p}" libraries/"${pn}" || die
-}
-
-update_SRC_URI() {
- local p pn pv
- for p in "${BUMP_LIBRARIES[@]}"; do
- set -- $p
- pn=$1 pv=$2
-
- SRC_URI+=" https://hackage.haskell.org/package/${pn}-${pv}/${pn}-${pv}.tar.gz"
- done
-}
-
-update_SRC_URI
-
-bump_libs() {
- local p pn pv
- for p in "${BUMP_LIBRARIES[@]}"; do
- set -- $p
- pn=$1 pv=$2
-
- bump_lib "${pn}" "${pv}"
- done
-}
-
-ghc_setup_cflags() {
- # TODO: plumb CFLAGS and BUILD_CFLAGS to respective CONF_CC_OPTS_STAGE<N>
- if ! is_native; then
- export CFLAGS=${GHC_CFLAGS-"-O2 -pipe"}
- export LDFLAGS=${GHC_LDFLAGS-"-Wl,-O1"}
- einfo "Crosscompiling mode:"
- einfo " CHOST: ${CHOST}"
- einfo " CTARGET: ${CTARGET}"
- einfo " CFLAGS: ${CFLAGS}"
- einfo " LDFLAGS: ${LDFLAGS}"
- einfo " prefix: $(cross)"
- return
- fi
- # We need to be very careful with the CFLAGS we ask ghc to pass through to
- # gcc. There are plenty of flags which will make gcc produce output that
- # breaks ghc in various ways. The main ones we want to pass through are
- # -mcpu / -march flags. These are important for arches like alpha & sparc.
- # We also use these CFLAGS for building the C parts of ghc, ie the rts.
- strip-flags
- strip-unsupported-flags
-
- # Cmm can't parse line numbers #482086
- replace-flags -ggdb[3-9] -ggdb2
-
- GHC_FLAGS=""
- GHC_PERSISTENT_FLAGS=""
- for flag in ${CFLAGS}; do
- case ${flag} in
-
- # Ignore extra optimisation (ghc passes -O to gcc anyway)
- # -O2 and above break on too many systems
- -O*) ;;
-
- # Arch and ABI flags are what we're really after
- -m*) append-ghc-cflags compile assemble ${flag};;
-
- # Sometimes it's handy to see backtrace of RTS
- # to get an idea what happens there
- -g*) append-ghc-cflags compile ${flag};;
-
- # Ignore all other flags, including all -f* flags
- esac
- done
-
- for flag in ${LDFLAGS}; do
- append-ghc-cflags link ${flag}
- done
-
- # GHC uses ${CBUILD}-gcc, ${CHOST}-gcc and ${CTARGET}-gcc at a single build.
- # Skip any gentoo-specific tweaks for cross-case to avoid passing unsupported
- # options to gcc.
- if is_native; then
- # hardened-gcc needs to be disabled, because our prebuilt binaries/libraries
- # are not built with fPIC, bug #606666
- gcc-specs-pie && append-ghc-cflags persistent compile link -nopie
- tc-is-gcc && version_is_at_least 6.3 $(gcc-version) && if ! use ghcbootstrap; then
- # gcc-6.3 has support for -no-pie upstream, but spelling differs from
- # gentoo-specific '-nopie'. We enable it in non-bootstrap to allow
- # hardened users try '-pie' in USE=ghcbootstrap mode.
- append-ghc-cflags compile link -no-pie
- fi
-
- # prevent from failing to build unregisterised ghc:
- # https://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg171602.html
- use ppc64 && append-ghc-cflags persistent compile -mminimal-toc
- fi
-}
-
-# substitutes string $1 to $2 in files $3 $4 ...
-relocate_path() {
- local from=$1
- local to=$2
- shift 2
- local file=
- for file in "$@"
- do
- sed -i -e "s|$from|$to|g" \
- "$file" || die "path relocation failed for '$file'"
- done
-}
-
-# changes hardcoded ghc paths and updates package index
-# $1 - new absolute root path
-relocate_ghc() {
- local to=$1 ghc_v=${BIN_PV}
-
- # libdir for prebuilt binary and for current system may mismatch
- # It does for prefix installation for example: bug #476998
- local bin_ghc_prefix=${WORKDIR}/usr
- local bin_libpath=$(echo "${bin_ghc_prefix}"/lib*)
- local bin_libdir=${bin_libpath#${bin_ghc_prefix}/}
-
- # backup original script to use it later after relocation
- local gp_back="${T}/ghc-pkg-${ghc_v}-orig"
- cp "${WORKDIR}/usr/bin/ghc-pkg-${ghc_v}" "$gp_back" || die "unable to backup ghc-pkg wrapper"
-
- if [[ ${bin_libdir} != $(get_libdir) ]]; then
- einfo "Relocating '${bin_libdir}' to '$(get_libdir)' (bug #476998)"
- # moving the dir itself is not strictly needed
- # but then USE=binary would result in installing
- # in '${bin_libdir}'
- mv "${bin_ghc_prefix}/${bin_libdir}" "${bin_ghc_prefix}/$(get_libdir)" || die
-
- relocate_path "/usr/${bin_libdir}" "/usr/$(get_libdir)" \
- "${WORKDIR}/usr/bin/ghc-${ghc_v}" \
- "${WORKDIR}/usr/bin/ghci-${ghc_v}" \
- "${WORKDIR}/usr/bin/ghc-pkg-${ghc_v}" \
- "${WORKDIR}/usr/bin/hsc2hs" \
- "${WORKDIR}/usr/bin/runghc-${ghc_v}" \
- "$gp_back" \
- "${WORKDIR}/usr/$(get_libdir)/${PN}-${ghc_v}/package.conf.d/"*
- fi
-
- # Relocate from /usr to ${EPREFIX}/usr
- relocate_path "/usr" "${to}/usr" \
- "${WORKDIR}/usr/bin/ghc-${ghc_v}" \
- "${WORKDIR}/usr/bin/ghci-${ghc_v}" \
- "${WORKDIR}/usr/bin/ghc-pkg-${ghc_v}" \
- "${WORKDIR}/usr/bin/haddock-ghc-${ghc_v}" \
- "${WORKDIR}/usr/bin/hp2ps" \
- "${WORKDIR}/usr/bin/hpc" \
- "${WORKDIR}/usr/bin/hsc2hs" \
- "${WORKDIR}/usr/bin/runghc-${ghc_v}" \
- "${WORKDIR}/usr/$(get_libdir)/${PN}-${ghc_v}/package.conf.d/"*
-
- # this one we will use to regenerate cache
- # so it should point to current tree location
- relocate_path "/usr" "${WORKDIR}/usr" "$gp_back"
-
- if use prefix; then
- hprefixify "${bin_libpath}"/${PN}*/settings
- fi
-
- # regenerate the binary package cache
- "$gp_back" recache || die "failed to update cache after relocation"
- rm "$gp_back"
-}
-
-ghc-check-reqs() {
- # These are pessimistic values (slightly bigger than worst-case)
- # Worst case is UNREG USE=profile ia64. See bug #611866 for some
- # numbers on various arches.
- CHECKREQS_DISK_BUILD=8G
- CHECKREQS_DISK_USR=2G
- # USE=binary roughly takes
- use binary && CHECKREQS_DISK_BUILD=4G
-
- "$@"
-}
-
-pkg_pretend() {
- ghc-check-reqs check-reqs_pkg_pretend
-}
-
-pkg_setup() {
- ghc-check-reqs check-reqs_pkg_setup
-
- # quiet portage about prebuilt binaries
- use binary && QA_PREBUILT="*"
-
- [[ ${MERGE_TYPE} == binary ]] && return
-
- if use ghcbootstrap; then
- ewarn "You requested ghc bootstrapping, this is usually only used"
- ewarn "by Gentoo developers to make binary .tbz2 packages."
-
- [[ -z $(type -P ghc) ]] && \
- die "Could not find a ghc to bootstrap with."
- else
- if ! yet_binary; then
- eerror "Please try emerging with USE=ghcbootstrap and report build"
- eerror "sucess or failure to the haskell team (haskell@gentoo.org)"
- die "No binary available for '${ARCH}' arch yet, USE=ghcbootstrap"
- fi
- fi
-}
-
-src_unpack() {
- # Create the ${S} dir if we're using the binary version
- use binary && mkdir "${S}"
-
- # the Solaris and Darwin binaries from ghc (maeder) need to be
- # unpacked separately, so prevent them from being unpacked
- local ONLYA=${A}
- case ${CHOST} in
- *-darwin* | *-solaris*) ONLYA=${GHC_P}-src.tar.xz ;;
- esac
- unpack ${ONLYA}
-}
-
-src_prepare() {
- ghc_setup_cflags
-
- if ! use ghcbootstrap && [[ ${CHOST} != *-darwin* && ${CHOST} != *-solaris* ]]; then
- # Modify the wrapper script from the binary tarball to use GHC_PERSISTENT_FLAGS.
- # See bug #313635.
- sed -i -e "s|\"\$topdir\"|\"\$topdir\" ${GHC_PERSISTENT_FLAGS}|" \
- "${WORKDIR}/usr/bin/ghc-${BIN_PV}"
-
- # allow hardened users use vanilla binary to bootstrap ghc
- # ghci uses mmap with rwx protection at it implements dynamic
- # linking on it's own (bug #299709)
- pax-mark -m "${WORKDIR}/usr/$(get_libdir)/${PN}-${BIN_PV}/bin/ghc"
- fi
-
- if use binary; then
- if use prefix; then
- relocate_ghc "${EPREFIX}"
- fi
-
- # Move unpacked files to the expected place
- mv "${WORKDIR}/usr" "${S}"
- eapply_user
- else
- if ! use ghcbootstrap; then
- case ${CHOST} in
- *-darwin* | *-solaris*)
- # UPDATE ME for ghc-7
- mkdir "${WORKDIR}"/ghc-bin-installer || die
- pushd "${WORKDIR}"/ghc-bin-installer > /dev/null || die
- use sparc-solaris && unpack ghc-6.10.4-sparc-sun-solaris2.tar.bz2
- use x86-solaris && unpack ghc-7.0.3-i386-unknown-solaris2.tar.bz2
- use x64-macos && unpack ghc-7.4.1-x86_64-apple-darwin.tar.bz2
- popd > /dev/null
-
- pushd "${WORKDIR}"/ghc-bin-installer/ghc-[67].?*.? > /dev/null || die
- # fix the binaries so they run, on Solaris we need an
- # LD_LIBRARY_PATH which has our prefix libdirs, on
- # Darwin we need to replace the frameworks with our libs
- # from the prefix fix before installation, because some
- # of the tools are actually used during configure/make
- if [[ ${CHOST} == *-solaris* ]] ; then
- export LD_LIBRARY_PATH="${EPREFIX}/$(get_libdir):${EPREFIX}/usr/$(get_libdir):${LD_LIBRARY_PATH}"
- elif [[ ${CHOST} == *-darwin* ]] ; then
- local readline_framework=GNUreadline.framework/GNUreadline
- local gmp_framework=/opt/local/lib/libgmp.10.dylib
- local ncurses_file=/opt/local/lib/libncurses.5.dylib
- for binary in $(scanmacho -BRE MH_EXECUTE -F '%F' .) ; do
- install_name_tool -change \
- ${readline_framework} \
- "${EPREFIX}"/lib/libreadline.dylib \
- ${binary} || die
- install_name_tool -change \
- ${gmp_framework} \
- "${EPREFIX}"/usr/lib/libgmp.dylib \
- ${binary} || die
- install_name_tool -change \
- ${ncurses_file} \
- "${EPREFIX}"/usr/lib/libncurses.dylib \
- ${binary} || die
- done
- # we don't do frameworks!
- sed -i \
- -e 's/\(frameworks = \)\["GMP"\]/\1[]/g' \
- -e 's/\(extraLibraries = \)\["m"\]/\1["m","gmp"]/g' \
- rts/package.conf.in || die
- fi
-
- # it is autoconf, but we really don't want to give it too
- # many arguments, in fact we do the make in-place anyway
- ./configure --prefix="${WORKDIR}"/usr || die
- make install || die
- popd > /dev/null
- ;;
- *)
- relocate_ghc "${WORKDIR}"
- ;;
- esac
- fi
-
- sed -i -e "s|\"\$topdir\"|\"\$topdir\" ${GHC_PERSISTENT_FLAGS}|" \
- "${S}/ghc/ghc.wrapper"
-
- cd "${S}" # otherwise eapply will break
-
- eapply "${FILESDIR}"/${PN}-7.0.4-CHOST-prefix.patch
- eapply "${FILESDIR}"/${PN}-8.2.1-darwin.patch
- eapply "${FILESDIR}"/${PN}-7.8.3-prim-lm.patch
- eapply "${FILESDIR}"/${PN}-8.0.2-no-relax-everywhere.patch
- eapply "${FILESDIR}"/${PN}-8.4.2-allow-cross-bootstrap.patch
- eapply "${FILESDIR}"/${PN}-8.6.5-numa.patch
-
- # a bunch of crosscompiler patches
- # needs newer version:
- #eapply "${FILESDIR}"/${PN}-8.2.1_rc1-hp2ps-cross.patch
-
- # mingw32 target
- pushd "${S}/libraries/Win32"
- eapply "${FILESDIR}"/${PN}-8.2.1_rc1-win32-cross-2-hack.patch # bad workaround
- popd
-
- bump_libs
-
- eapply_user
- # as we have changed the build system
- eautoreconf
- fi
-}
-
-src_configure() {
- if ! use binary; then
- # initialize build.mk
- echo '# Gentoo changes' > mk/build.mk
-
- # Put docs into the right place, ie /usr/share/doc/ghc-${GHC_PV}
- echo "docdir = ${EPREFIX}/usr/share/doc/$(cross)${P}" >> mk/build.mk
- echo "htmldir = ${EPREFIX}/usr/share/doc/$(cross)${P}" >> mk/build.mk
-
- # We also need to use the GHC_FLAGS flags when building ghc itself
- echo "SRC_HC_OPTS+=${HCFLAGS} ${GHC_FLAGS}" >> mk/build.mk
- echo "SRC_CC_OPTS+=${CFLAGS}" >> mk/build.mk
- echo "SRC_LD_OPTS+=${LDFLAGS}" >> mk/build.mk
- # Speed up initial Cabal bootstrap
- echo "utils/ghc-cabal_dist_EXTRA_HC_OPTS+=$(ghc-make-args)" >> mk/build.mk
-
- # We can't depend on haddock except when bootstrapping when we
- # must build docs and include them into the binary .tbz2 package
- # app-text/dblatex is not in portage, can not build PDF or PS
- echo "BUILD_SPHINX_PDF = NO" >> mk/build.mk
- echo "BUILD_SPHINX_HTML = $(usex doc YES NO)" >> mk/build.mk
- echo "BUILD_MAN = $(usex doc YES NO)" >> mk/build.mk
-
- # this controls presence on 'xhtml' and 'haddock' in final install
- echo "HADDOCK_DOCS = YES" >> mk/build.mk
-
- # not used outside of ghc's test
- if [[ -n ${GHC_BUILD_DPH} ]]; then
- echo "BUILD_DPH = YES" >> mk/build.mk
- else
- echo "BUILD_DPH = NO" >> mk/build.mk
- fi
-
- # Any non-native build has to skip as it needs
- # target haddock binary to be runnabine.
- if ! is_native; then
- # disable docs generation as it requires running stage2
- echo "HADDOCK_DOCS=NO" >> mk/build.mk
- echo "BUILD_SPHINX_HTML=NO" >> mk/build.mk
- echo "BUILD_SPHINX_PDF=NO" >> mk/build.mk
- fi
-
- if is_crosscompile; then
- # Install ghc-stage1 crosscompiler instead of
- # ghc-stage2 cross-built compiler.
- echo "Stage1Only=YES" >> mk/build.mk
- fi
-
- # allows overriding build flavours for libraries:
- # v - vanilla (static libs)
- # p - profiled
- # dyn - shared libraries
- # example: GHC_LIBRARY_WAYS="v dyn"
- if [[ -n ${GHC_LIBRARY_WAYS} ]]; then
- echo "GhcLibWays=${GHC_LIBRARY_WAYS}" >> mk/build.mk
- fi
- echo "BUILD_PROF_LIBS = $(usex profile YES NO)" >> mk/build.mk
-
- # Get ghc from the unpacked binary .tbz2
- # except when bootstrapping we just pick ghc up off the path
- if ! use ghcbootstrap; then
- export PATH="${WORKDIR}/usr/bin:${PATH}"
- fi
-
- echo "INTEGER_LIBRARY = $(usex gmp integer-gmp integer-simple)" >> mk/build.mk
-
- # don't strip anything. Very useful when stage2 SIGSEGVs on you
- echo "STRIP_CMD = :" >> mk/build.mk
-
- local econf_args=()
-
- # GHC embeds toolchain it was built by and uses it later.
- # Don't allow things like ccache or versioned binary slip.
- # We use stable thing across gcc upgrades.
- # User can use EXTRA_ECONF=CC=... to override this default.
- econf_args+=(
- AR=${CTARGET}-ar
- CC=${CTARGET}-gcc
- # these should be inferred by GHC but ghc defaults
- # to using bundled tools on windows.
- Windres=${CTARGET}-windres
- DllWrap=${CTARGET}-dllwrap
- # we set the linker explicitly below
- --disable-ld-override
- )
- case ${CTARGET} in
- arm*)
- # ld.bfd-2.28 does not work for ghc. Force ld.gold
- # instead. This should be removed once gentoo gets
- # a fix for R_ARM_COPY bug: https://sourceware.org/PR16177
- econf_args+=(LD=${CTARGET}-ld.gold)
- ;;
- sparc*)
- # ld.gold-2.28 does not work for ghc. Force ld.bfd
- # instead. This should be removed once gentoo gets
- # a fix for missing --no-relax support bug:
- # https://sourceware.org/ml/binutils/2017-07/msg00183.html
- econf_args+=(LD=${CTARGET}-ld.bfd)
- ;;
- *)
- econf_args+=(LD=${CTARGET}-ld)
- esac
-
- if [[ ${CBUILD} != ${CHOST} ]]; then
- # GHC bug: ghc claims not to support cross-building.
- # It does, but does not distinct --host= value
- # for stage1 and stage2 compiler.
- econf_args+=(--host=${CBUILD})
- fi
-
- if use ghcmakebinary; then
- # When building booting libary we are trying to
- # bundle or restrict most of external depends
- # with unstable ABI:
- # - embed libffi (default GHC behaviour)
- # - disable ncurses support for ghci (via haskeline)
- # https://bugs.gentoo.org/557478
- # - disable ncurses support for ghc-pkg
- echo "libraries/haskeline_CONFIGURE_OPTS += --flag=-terminfo" >> mk/build.mk
- echo "utils/ghc-pkg_HC_OPTS += -DBOOTSTRAPPING" >> mk/build.mk
- elif is_native; then
- # using ${GTARGET}'s libffi is not supported yet:
- # GHC embeds full path for ffi includes without /usr/${CTARGET} account.
- econf_args+=(--with-system-libffi)
- econf_args+=(--with-ffi-includes=$($(tc-getPKG_CONFIG) libffi --cflags-only-I | sed -e 's@^-I@@'))
- fi
-
- einfo "Final mk/build.mk:"
- cat mk/build.mk || die
-
- econf ${econf_args[@]} \
- --enable-bootstrap-with-devel-snapshot \
- $(use elfutils && echo --enable-dwarf-unwind) \
- $(use_enable numa)
-
- if [[ ${PV} == *9999* ]]; then
- GHC_PV="$(grep 'S\[\"PACKAGE_VERSION\"\]' config.status | sed -e 's@^.*=\"\(.*\)\"@\1@')"
- GHC_P=${PN}-${GHC_PV}
- fi
- fi # ! use binary
-}
-
-src_compile() {
- if ! use binary; then
- # Stage1Only crosscompiler does not build stage2
- if ! is_crosscompile; then
- # 1. build/pax-mark compiler binary first
- emake ghc/stage2/build/tmp/ghc-stage2
- # 2. pax-mark (bug #516430)
- pax-mark -m ghc/stage2/build/tmp/ghc-stage2
- # 2. build/pax-mark haddock using ghc-stage2
- if is_native; then
- # non-native build does not build haddock
- # due to HADDOCK_DOCS=NO, but it could.
- emake utils/haddock/dist/build/tmp/haddock
- pax-mark -m utils/haddock/dist/build/tmp/haddock
- fi
- fi
- # 3. and then all the rest
- emake all
- fi # ! use binary
-}
-
-src_test() {
- # TODO: deal with:
- # - sandbox (pollutes environment)
- # - extra packages (to extend testsuite coverage)
- # bits are taken from 'validate'
- local make_test_target='test' # can be fulltest
- # not 'emake' as testsuite uses '$MAKE' without jobserver available
- make $make_test_target stage=2 THREADS=$(makeopts_jobs)
-}
-
-src_install() {
- if use binary; then
- use prefix && mkdir -p "${ED}"
- mv "${S}/usr" "${ED}"
- else
- [[ -f VERSION ]] || emake VERSION
-
- # -j1 due to a rare race in install script:
- # make --no-print-directory -f ghc.mk phase=final install
- # /usr/lib/portage/python3.4/ebuild-helpers/xattr/install -c -m 755 \
- # -d "/tmp/portage-tmpdir/portage/cross-armv7a-unknown-linux-gnueabi/ghc-9999/image/usr/lib64/armv7a-unknown-linux-gnueabi-ghc-8.3.20170404/include"
- # /usr/lib/portage/python3.4/ebuild-helpers/xattr/install -c -m 644 utils/hsc2hs/template-hsc.h \
- # "/tmp/portage-tmpdir/portage/cross-armv7a-unknown-linux-gnueabi/ghc-9999/image/usr/lib64/armv7a-unknown-linux-gnueabi-ghc-8.3.20170404"
- # /usr/bin/install: cannot create regular file \
- # '/tmp/portage-tmpdir/portage/cross-armv7a-unknown-linux-gnueabi/ghc-9999/image/usr/lib64/armv7a-unknown-linux-gnueabi-ghc-8.3.20170404': No such file or directory
- emake -j1 install DESTDIR="${D}"
-
- # Skip for cross-targets as they all share target location:
- # /usr/share/doc/ghc-9999/
- if ! is_crosscompile; then
- dodoc "distrib/README" "ANNOUNCE" "LICENSE" "VERSION"
- fi
-
- # rename ghc-shipped files to avoid collision
- # of external packages. Motivating example:
- # user had installed:
- # dev-lang/ghc-7.8.4-r0 (with transformers-0.3.0.0)
- # dev-haskell/transformers-0.4.2.0
- # then user tried to update to
- # dev-lang/ghc-7.8.4-r1 (with transformers-0.4.2.0)
- # this will lead to single .conf file collision.
- local shipped_conf renamed_conf
- local package_confdir="${ED}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d"
- for shipped_conf in "${package_confdir}"/*.conf; do
- # rename 'pkg-ver-id.conf' to 'pkg-ver-id-gentoo-${PF}.conf'
- renamed_conf=${shipped_conf%.conf}-gentoo-${PF}.conf
- mv "${shipped_conf}" "${renamed_conf}" || die
- done
-
- # remove link, but leave 'haddock-${GHC_P}'
- rm -f "${ED}"/usr/bin/$(cross)haddock
-
- if ! is_crosscompile; then
- newbashcomp "${FILESDIR}"/ghc-bash-completion ghc-pkg
- newbashcomp utils/completion/ghc.bash ghc
- fi
- fi
-
- # path to the package.cache
- local package_confdir="${ED}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d"
- PKGCACHE="${package_confdir}"/package.cache
- # copy the package.conf.d, including timestamp, save it so we can help
- # users that have a broken package.conf.d
- cp -pR "${package_confdir}"{,.initial} || die "failed to backup intial package.conf.d"
-
- # copy the package.conf, including timestamp, save it so we later can put it
- # back before uninstalling, or when upgrading.
- cp -p "${PKGCACHE}"{,.shipped} \
- || die "failed to copy package.conf.d/package.cache"
-}
-
-pkg_preinst() {
- # have we got an earlier version of ghc installed?
- if has_version "<${CATEGORY}/${PF}"; then
- haskell_updater_warn="1"
- fi
-}
-
-pkg_postinst() {
- ghc-reregister
-
- # path to the package.cache
- PKGCACHE="${EROOT}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d/package.cache"
-
- # give the cache a new timestamp, it must be as recent as
- # the package.conf.d directory.
- touch "${PKGCACHE}"
-
- if [[ "${haskell_updater_warn}" == "1" ]]; then
- ewarn
- ewarn "\e[1;31m************************************************************************\e[0m"
- ewarn
- ewarn "You have just upgraded from an older version of GHC."
- ewarn "You may have to run"
- ewarn " 'haskell-updater'"
- ewarn "to rebuild all ghc-based Haskell libraries."
- ewarn
- ewarn "\e[1;31m************************************************************************\e[0m"
- ewarn
- fi
-}
-
-pkg_prerm() {
- PKGCACHE="${EROOT}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d/package.cache"
- rm -rf "${PKGCACHE}"
-
- cp -p "${PKGCACHE}"{.shipped,}
-}
-
-pkg_postrm() {
- ghc-package_pkg_postrm
-}
diff --git a/dev-lang/ghc/ghc-8.8.1.ebuild b/dev-lang/ghc/ghc-8.8.1.ebuild
deleted file mode 100644
index 00ce56862619..000000000000
--- a/dev-lang/ghc/ghc-8.8.1.ebuild
+++ /dev/null
@@ -1,804 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-# to make make a crosscompiler use crossdev and symlink ghc tree into
-# cross overlay. result would look like 'cross-sparc-unknown-linux-gnu/ghc'
-export CBUILD=${CBUILD:-${CHOST}}
-export CTARGET=${CTARGET:-${CHOST}}
-if [[ ${CTARGET} = ${CHOST} ]] ; then
- if [[ ${CATEGORY/cross-} != ${CATEGORY} ]] ; then
- export CTARGET=${CATEGORY/cross-}
- fi
-fi
-
-inherit autotools bash-completion-r1 eutils flag-o-matic ghc-package
-inherit multilib multiprocessing pax-utils toolchain-funcs prefix
-inherit check-reqs
-DESCRIPTION="The Glasgow Haskell Compiler"
-HOMEPAGE="https://www.haskell.org/ghc/"
-
-# we don't have any binaries yet
-arch_binaries=""
-
-BIN_PV=${PV}
-# sorted!
-#arch_binaries="$arch_binaries alpha? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-alpha.tbz2 )"
-#arch_binaries="$arch_binaries arm? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-armv7a-hardfloat-linux-gnueabi.tbz2 )"
-#arch_binaries="$arch_binaries arm64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-aarch64-unknown-linux-gnu.tbz2 )"
-arch_binaries="$arch_binaries amd64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-x86_64-pc-linux-gnu.tbz2 )"
-#arch_binaries="$arch_binaries ia64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ia64-fixed-fiw.tbz2 )"
-#arch_binaries="$arch_binaries ppc? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ppc.tbz2 )"
-arch_binaries="$arch_binaries ppc64? ( !big-endian? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-powerpc64le-unknown-linux-gnu.tbz2 ) )"
-#arch_binaries="$arch_binaries sparc? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-sparc.tbz2 )"
-arch_binaries="$arch_binaries x86? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-i686-pc-linux-gnu.tbz2 )"
-
-# various ports:
-#arch_binaries="$arch_binaries x86-fbsd? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-x86-fbsd.tbz2 )"
-
-# 0 - yet
-yet_binary() {
- case "${ARCH}" in
- #alpha) return 0 ;;
- #arm64) return 0 ;;
- #arm) return 0 ;;
- amd64) return 0 ;;
- #ia64) return 0 ;;
- #ppc) return 0 ;;
- ppc64)
- use big-endian && return 1
- return 0
- ;;
- #sparc) return 0 ;;
- x86) return 0 ;;
- *) return 1 ;;
- esac
-}
-
-GHC_PV=${PV}
-#GHC_PV=8.6.0.20180810 # uncomment only for -alpha, -beta, -rc ebuilds
-GHC_P=${PN}-${GHC_PV} # using ${P} is almost never correct
-
-SRC_URI="!binary? (
- https://downloads.haskell.org/~ghc/${PV/_/-}/${GHC_P}-src.tar.xz
- test? ( https://downloads.haskell.org/~ghc/${PV/_/-}/${GHC_P}-testsuite.tar.xz )
-)"
-S="${WORKDIR}"/${GHC_P}
-
-[[ -n $arch_binaries ]] && SRC_URI+=" !ghcbootstrap? ( $arch_binaries )"
-
-BUMP_LIBRARIES=(
- # "hackage-name hackage-version"
-)
-
-LICENSE="BSD"
-SLOT="0/${PV}"
-KEYWORDS=""
-IUSE="big-endian doc elfutils ghcbootstrap ghcmakebinary +gmp numa profile test"
-IUSE+=" binary"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- >=dev-lang/perl-5.6.1
- dev-libs/gmp:0=
- sys-libs/ncurses:0=[unicode]
- elfutils? ( dev-libs/elfutils )
- !ghcmakebinary? ( dev-libs/libffi:= )
- numa? ( sys-process/numactl )
-"
-
-# This set of dependencies is needed to run
-# prebuilt ghc. We specifically avoid ncurses
-# dependency with:
-# utils/ghc-pkg_HC_OPTS += -DBOOTSTRAPPING
-PREBUILT_BINARY_DEPENDS="
- !prefix? ( elibc_glibc? ( >=sys-libs/glibc-2.17 ) )
-"
-# This set of dependencies is needed to install
-# ghc[binary] in system. terminfo package is linked
-# against ncurses.
-PREBUILT_BINARY_RDEPENDS="${PREBUILT_BINARY_DEPENDS}
- sys-libs/ncurses:0/6
-"
-
-RDEPEND+="binary? ( ${PREBUILT_BINARY_RDEPENDS} )"
-
-DEPEND="${RDEPEND}
- doc? ( app-text/docbook-xml-dtd:4.2
- app-text/docbook-xml-dtd:4.5
- app-text/docbook-xsl-stylesheets
- dev-python/sphinx
- >=dev-libs/libxslt-1.1.2 )
- !ghcbootstrap? ( ${PREBUILT_BINARY_DEPENDS} )"
-
-REQUIRED_USE="?? ( ghcbootstrap binary )"
-
-# haskell libraries built with cabal in configure mode, #515354
-QA_CONFIGURE_OPTIONS+=" --with-compiler --with-gcc"
-
-is_crosscompile() {
- [[ ${CHOST} != ${CTARGET} ]]
-}
-
-is_native() {
- [[ ${CHOST} == ${CBUILD} ]] && [[ ${CHOST} == ${CTARGET} ]]
-}
-
-if ! is_crosscompile; then
- PDEPEND="!ghcbootstrap? ( >=app-admin/haskell-updater-1.2 )"
-fi
-
-# returns tool prefix for crosscompiler.
-# Example:
-# CTARGET=armv7a-unknown-linux-gnueabi
-# CHOST=x86_64-pc-linux-gnu
-# "armv7a-unknown-linux-gnueabi-"
-# CTARGET=${CHOST}
-# ""
-# Used in tools and library prefix:
-# "${ED}"/usr/bin/$(cross)haddock
-# "${ED}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d"
-
-cross() {
- if is_crosscompile; then
- echo "${CTARGET}-"
- else
- echo ""
- fi
-}
-
-append-ghc-cflags() {
- local persistent compile assemble link
- local flag ghcflag
-
- for flag in $*; do
- case ${flag} in
- persistent) persistent="yes";;
- compile) compile="yes";;
- assemble) assemble="yes";;
- link) link="yes";;
- *)
- [[ ${compile} ]] && ghcflag="-optc${flag}" CFLAGS+=" ${flag}" && GHC_FLAGS+=" ${ghcflag}" &&
- [[ ${persistent} ]] && GHC_PERSISTENT_FLAGS+=" ${ghcflag}"
- [[ ${assemble} ]] && ghcflag="-opta${flag}" CFLAGS+=" ${flag}" && GHC_FLAGS+=" ${ghcflag}" &&
- [[ ${persistent} ]] && GHC_PERSISTENT_FLAGS+=" ${ghcflag}"
- [[ ${link} ]] && ghcflag="-optl${flag}" LDFLAGS+=" ${flag}" && GHC_FLAGS+=" ${ghcflag}" &&
- [[ ${persistent} ]] && GHC_PERSISTENT_FLAGS+=" ${ghcflag}"
- ;;
- esac
- done
-}
-
-# $1 - lib name (under libraries/)
-# $2 - lib version
-# example: bump_lib "transformers" "0.4.2.0"
-bump_lib() {
- local pn=$1 pv=$2
- local p=${pn}-${pv}
- local f
-
- einfo "Bumping ${pn} up to ${pv}"
-
- for f in ghc.mk GNUmakefile; do
- mv libraries/"${pn}"/$f "${WORKDIR}"/"${p}"/$f || die
- done
- mv libraries/"${pn}" "${WORKDIR}"/"${pn}".old || die
- mv "${WORKDIR}"/"${p}" libraries/"${pn}" || die
-}
-
-update_SRC_URI() {
- local p pn pv
- for p in "${BUMP_LIBRARIES[@]}"; do
- set -- $p
- pn=$1 pv=$2
-
- SRC_URI+=" https://hackage.haskell.org/package/${pn}-${pv}/${pn}-${pv}.tar.gz"
- done
-}
-
-update_SRC_URI
-
-bump_libs() {
- local p pn pv
- for p in "${BUMP_LIBRARIES[@]}"; do
- set -- $p
- pn=$1 pv=$2
-
- bump_lib "${pn}" "${pv}"
- done
-}
-
-ghc_setup_cflags() {
- # TODO: plumb CFLAGS and BUILD_CFLAGS to respective CONF_CC_OPTS_STAGE<N>
- if ! is_native; then
- export CFLAGS=${GHC_CFLAGS-"-O2 -pipe"}
- export LDFLAGS=${GHC_LDFLAGS-"-Wl,-O1"}
- einfo "Crosscompiling mode:"
- einfo " CHOST: ${CHOST}"
- einfo " CTARGET: ${CTARGET}"
- einfo " CFLAGS: ${CFLAGS}"
- einfo " LDFLAGS: ${LDFLAGS}"
- einfo " prefix: $(cross)"
- return
- fi
- # We need to be very careful with the CFLAGS we ask ghc to pass through to
- # gcc. There are plenty of flags which will make gcc produce output that
- # breaks ghc in various ways. The main ones we want to pass through are
- # -mcpu / -march flags. These are important for arches like alpha & sparc.
- # We also use these CFLAGS for building the C parts of ghc, ie the rts.
- strip-flags
- strip-unsupported-flags
-
- # Cmm can't parse line numbers #482086
- replace-flags -ggdb[3-9] -ggdb2
-
- GHC_FLAGS=""
- GHC_PERSISTENT_FLAGS=""
- for flag in ${CFLAGS}; do
- case ${flag} in
-
- # Ignore extra optimisation (ghc passes -O to gcc anyway)
- # -O2 and above break on too many systems
- -O*) ;;
-
- # Arch and ABI flags are what we're really after
- -m*) append-ghc-cflags compile assemble ${flag};;
-
- # Sometimes it's handy to see backtrace of RTS
- # to get an idea what happens there
- -g*) append-ghc-cflags compile ${flag};;
-
- # Ignore all other flags, including all -f* flags
- esac
- done
-
- for flag in ${LDFLAGS}; do
- append-ghc-cflags link ${flag}
- done
-
- # GHC uses ${CBUILD}-gcc, ${CHOST}-gcc and ${CTARGET}-gcc at a single build.
- # Skip any gentoo-specific tweaks for cross-case to avoid passing unsupported
- # options to gcc.
- if is_native; then
- # hardened-gcc needs to be disabled, because our prebuilt binaries/libraries
- # are not built with fPIC, bug #606666
- gcc-specs-pie && append-ghc-cflags persistent compile link -nopie
- tc-is-gcc && ver_test $(gcc-version) -ge 6.3 && if ! use ghcbootstrap; then
- # gcc-6.3 has support for -no-pie upstream, but spelling differs from
- # gentoo-specific '-nopie'. We enable it in non-bootstrap to allow
- # hardened users try '-pie' in USE=ghcbootstrap mode.
- append-ghc-cflags compile link -no-pie
- fi
-
- # prevent from failing to build unregisterised ghc:
- # https://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg171602.html
- use ppc64 && append-ghc-cflags persistent compile -mminimal-toc
- fi
-}
-
-# substitutes string $1 to $2 in files $3 $4 ...
-relocate_path() {
- local from=$1
- local to=$2
- shift 2
- local file=
- for file in "$@"
- do
- sed -i -e "s|$from|$to|g" \
- "$file" || die "path relocation failed for '$file'"
- done
-}
-
-# changes hardcoded ghc paths and updates package index
-# $1 - new absolute root path
-relocate_ghc() {
- local to=$1 ghc_v=${BIN_PV}
-
- # libdir for prebuilt binary and for current system may mismatch
- # It does for prefix installation for example: bug #476998
- local bin_ghc_prefix=${WORKDIR}/usr
- local bin_libpath=$(echo "${bin_ghc_prefix}"/lib*)
- local bin_libdir=${bin_libpath#${bin_ghc_prefix}/}
-
- # backup original script to use it later after relocation
- local gp_back="${T}/ghc-pkg-${ghc_v}-orig"
- cp "${WORKDIR}/usr/bin/ghc-pkg-${ghc_v}" "$gp_back" || die "unable to backup ghc-pkg wrapper"
-
- if [[ ${bin_libdir} != $(get_libdir) ]]; then
- einfo "Relocating '${bin_libdir}' to '$(get_libdir)' (bug #476998)"
- # moving the dir itself is not strictly needed
- # but then USE=binary would result in installing
- # in '${bin_libdir}'
- mv "${bin_ghc_prefix}/${bin_libdir}" "${bin_ghc_prefix}/$(get_libdir)" || die
-
- relocate_path "/usr/${bin_libdir}" "/usr/$(get_libdir)" \
- "${WORKDIR}/usr/bin/ghc-${ghc_v}" \
- "${WORKDIR}/usr/bin/ghci-${ghc_v}" \
- "${WORKDIR}/usr/bin/ghc-pkg-${ghc_v}" \
- "${WORKDIR}/usr/bin/hsc2hs" \
- "${WORKDIR}/usr/bin/runghc-${ghc_v}" \
- "$gp_back" \
- "${WORKDIR}/usr/$(get_libdir)/${PN}-${ghc_v}/package.conf.d/"*
- fi
-
- # Relocate from /usr to ${EPREFIX}/usr
- relocate_path "/usr" "${to}/usr" \
- "${WORKDIR}/usr/bin/ghc-${ghc_v}" \
- "${WORKDIR}/usr/bin/ghci-${ghc_v}" \
- "${WORKDIR}/usr/bin/ghc-pkg-${ghc_v}" \
- "${WORKDIR}/usr/bin/haddock-ghc-${ghc_v}" \
- "${WORKDIR}/usr/bin/hp2ps" \
- "${WORKDIR}/usr/bin/hpc" \
- "${WORKDIR}/usr/bin/hsc2hs" \
- "${WORKDIR}/usr/bin/runghc-${ghc_v}" \
- "${WORKDIR}/usr/$(get_libdir)/${PN}-${ghc_v}/package.conf.d/"*
-
- # this one we will use to regenerate cache
- # so it should point to current tree location
- relocate_path "/usr" "${WORKDIR}/usr" "$gp_back"
-
- if use prefix; then
- hprefixify "${bin_libpath}"/${PN}*/settings
- fi
-
- # regenerate the binary package cache
- "$gp_back" recache || die "failed to update cache after relocation"
- rm "$gp_back"
-}
-
-ghc-check-reqs() {
- # These are pessimistic values (slightly bigger than worst-case)
- # Worst case is UNREG USE=profile ia64. See bug #611866 for some
- # numbers on various arches.
- CHECKREQS_DISK_BUILD=8G
- CHECKREQS_DISK_USR=2G
- # USE=binary roughly takes
- use binary && CHECKREQS_DISK_BUILD=4G
-
- "$@"
-}
-
-pkg_pretend() {
- ghc-check-reqs check-reqs_pkg_pretend
-}
-
-pkg_setup() {
- ghc-check-reqs check-reqs_pkg_setup
-
- # quiet portage about prebuilt binaries
- use binary && QA_PREBUILT="*"
-
- [[ ${MERGE_TYPE} == binary ]] && return
-
- if use ghcbootstrap; then
- ewarn "You requested ghc bootstrapping, this is usually only used"
- ewarn "by Gentoo developers to make binary .tbz2 packages."
-
- [[ -z $(type -P ghc) ]] && \
- die "Could not find a ghc to bootstrap with."
- else
- if ! yet_binary; then
- eerror "Please try emerging with USE=ghcbootstrap and report build"
- eerror "sucess or failure to the haskell team (haskell@gentoo.org)"
- die "No binary available for '${ARCH}' arch yet, USE=ghcbootstrap"
- fi
- fi
-}
-
-src_unpack() {
- # Create the ${S} dir if we're using the binary version
- use binary && mkdir "${S}"
-
- # the Solaris and Darwin binaries from ghc (maeder) need to be
- # unpacked separately, so prevent them from being unpacked
- local ONLYA=${A}
- case ${CHOST} in
- *-darwin* | *-solaris*) ONLYA=${GHC_P}-src.tar.xz ;;
- esac
- unpack ${ONLYA}
-}
-
-src_prepare() {
- ghc_setup_cflags
-
- if ! use ghcbootstrap && [[ ${CHOST} != *-darwin* && ${CHOST} != *-solaris* ]]; then
- # Modify the wrapper script from the binary tarball to use GHC_PERSISTENT_FLAGS.
- # See bug #313635.
- sed -i -e "s|\"\$topdir\"|\"\$topdir\" ${GHC_PERSISTENT_FLAGS}|" \
- "${WORKDIR}/usr/bin/ghc-${BIN_PV}"
-
- # allow hardened users use vanilla binary to bootstrap ghc
- # ghci uses mmap with rwx protection at it implements dynamic
- # linking on it's own (bug #299709)
- pax-mark -m "${WORKDIR}/usr/$(get_libdir)/${PN}-${BIN_PV}/bin/ghc"
- fi
-
- if use binary; then
- if use prefix; then
- relocate_ghc "${EPREFIX}"
- fi
-
- # Move unpacked files to the expected place
- mv "${WORKDIR}/usr" "${S}"
- eapply_user
- else
- if ! use ghcbootstrap; then
- case ${CHOST} in
- *-darwin* | *-solaris*)
- # UPDATE ME for ghc-7
- mkdir "${WORKDIR}"/ghc-bin-installer || die
- pushd "${WORKDIR}"/ghc-bin-installer > /dev/null || die
- use sparc-solaris && unpack ghc-6.10.4-sparc-sun-solaris2.tar.bz2
- use x86-solaris && unpack ghc-7.0.3-i386-unknown-solaris2.tar.bz2
- use x64-macos && unpack ghc-7.4.1-x86_64-apple-darwin.tar.bz2
- popd > /dev/null
-
- pushd "${WORKDIR}"/ghc-bin-installer/ghc-[67].?*.? > /dev/null || die
- # fix the binaries so they run, on Solaris we need an
- # LD_LIBRARY_PATH which has our prefix libdirs, on
- # Darwin we need to replace the frameworks with our libs
- # from the prefix fix before installation, because some
- # of the tools are actually used during configure/make
- if [[ ${CHOST} == *-solaris* ]] ; then
- export LD_LIBRARY_PATH="${EPREFIX}/$(get_libdir):${EPREFIX}/usr/$(get_libdir):${LD_LIBRARY_PATH}"
- elif [[ ${CHOST} == *-darwin* ]] ; then
- local readline_framework=GNUreadline.framework/GNUreadline
- local gmp_framework=/opt/local/lib/libgmp.10.dylib
- local ncurses_file=/opt/local/lib/libncurses.5.dylib
- for binary in $(scanmacho -BRE MH_EXECUTE -F '%F' .) ; do
- install_name_tool -change \
- ${readline_framework} \
- "${EPREFIX}"/lib/libreadline.dylib \
- ${binary} || die
- install_name_tool -change \
- ${gmp_framework} \
- "${EPREFIX}"/usr/lib/libgmp.dylib \
- ${binary} || die
- install_name_tool -change \
- ${ncurses_file} \
- "${EPREFIX}"/usr/lib/libncurses.dylib \
- ${binary} || die
- done
- # we don't do frameworks!
- sed -i \
- -e 's/\(frameworks = \)\["GMP"\]/\1[]/g' \
- -e 's/\(extraLibraries = \)\["m"\]/\1["m","gmp"]/g' \
- rts/package.conf.in || die
- fi
-
- # it is autoconf, but we really don't want to give it too
- # many arguments, in fact we do the make in-place anyway
- ./configure --prefix="${WORKDIR}"/usr || die
- make install || die
- popd > /dev/null
- ;;
- *)
- relocate_ghc "${WORKDIR}"
- ;;
- esac
- fi
-
- sed -i -e "s|\"\$topdir\"|\"\$topdir\" ${GHC_PERSISTENT_FLAGS}|" \
- "${S}/ghc/ghc.wrapper"
-
- cd "${S}" # otherwise eapply will break
-
- eapply "${FILESDIR}"/${PN}-7.0.4-CHOST-prefix.patch
- eapply "${FILESDIR}"/${PN}-8.2.1-darwin.patch
- eapply "${FILESDIR}"/${PN}-7.8.3-prim-lm.patch
- eapply "${FILESDIR}"/${PN}-8.0.2-no-relax-everywhere.patch
- eapply "${FILESDIR}"/${PN}-8.4.2-allow-cross-bootstrap.patch
- eapply "${FILESDIR}"/${PN}-8.6.5-numa.patch
- eapply "${FILESDIR}"/${PN}-8.8.1-no-alex.patch
- eapply "${FILESDIR}"/${PN}-8.8.1-revert-CPP.patch
-
- # a bunch of crosscompiler patches
- # needs newer version:
- #eapply "${FILESDIR}"/${PN}-8.2.1_rc1-hp2ps-cross.patch
-
- # mingw32 target
- pushd "${S}/libraries/Win32"
- eapply "${FILESDIR}"/${PN}-8.2.1_rc1-win32-cross-2-hack.patch # bad workaround
- popd
-
- bump_libs
-
- eapply_user
- # as we have changed the build system
- eautoreconf
- fi
-}
-
-src_configure() {
- if ! use binary; then
- # initialize build.mk
- echo '# Gentoo changes' > mk/build.mk
-
- # Put docs into the right place, ie /usr/share/doc/ghc-${GHC_PV}
- echo "docdir = ${EPREFIX}/usr/share/doc/$(cross)${P}" >> mk/build.mk
- echo "htmldir = ${EPREFIX}/usr/share/doc/$(cross)${P}" >> mk/build.mk
-
- # We also need to use the GHC_FLAGS flags when building ghc itself
- echo "SRC_HC_OPTS+=${HCFLAGS} ${GHC_FLAGS}" >> mk/build.mk
- echo "SRC_CC_OPTS+=${CFLAGS}" >> mk/build.mk
- echo "SRC_LD_OPTS+=${LDFLAGS}" >> mk/build.mk
- # Speed up initial Cabal bootstrap
- echo "utils/ghc-cabal_dist_EXTRA_HC_OPTS+=$(ghc-make-args)" >> mk/build.mk
-
- # We can't depend on haddock except when bootstrapping when we
- # must build docs and include them into the binary .tbz2 package
- # app-text/dblatex is not in portage, can not build PDF or PS
- echo "BUILD_SPHINX_PDF = NO" >> mk/build.mk
- echo "BUILD_SPHINX_HTML = $(usex doc YES NO)" >> mk/build.mk
- echo "BUILD_MAN = $(usex doc YES NO)" >> mk/build.mk
-
- # this controls presence on 'xhtml' and 'haddock' in final install
- echo "HADDOCK_DOCS = YES" >> mk/build.mk
-
- # not used outside of ghc's test
- if [[ -n ${GHC_BUILD_DPH} ]]; then
- echo "BUILD_DPH = YES" >> mk/build.mk
- else
- echo "BUILD_DPH = NO" >> mk/build.mk
- fi
-
- # Any non-native build has to skip as it needs
- # target haddock binary to be runnabine.
- if ! is_native; then
- # disable docs generation as it requires running stage2
- echo "HADDOCK_DOCS=NO" >> mk/build.mk
- echo "BUILD_SPHINX_HTML=NO" >> mk/build.mk
- echo "BUILD_SPHINX_PDF=NO" >> mk/build.mk
- fi
-
- if is_crosscompile; then
- # Install ghc-stage1 crosscompiler instead of
- # ghc-stage2 cross-built compiler.
- echo "Stage1Only=YES" >> mk/build.mk
- fi
-
- # allows overriding build flavours for libraries:
- # v - vanilla (static libs)
- # p - profiled
- # dyn - shared libraries
- # example: GHC_LIBRARY_WAYS="v dyn"
- if [[ -n ${GHC_LIBRARY_WAYS} ]]; then
- echo "GhcLibWays=${GHC_LIBRARY_WAYS}" >> mk/build.mk
- fi
- echo "BUILD_PROF_LIBS = $(usex profile YES NO)" >> mk/build.mk
-
- # Get ghc from the unpacked binary .tbz2
- # except when bootstrapping we just pick ghc up off the path
- if ! use ghcbootstrap; then
- export PATH="${WORKDIR}/usr/bin:${PATH}"
- fi
-
- echo "INTEGER_LIBRARY = $(usex gmp integer-gmp integer-simple)" >> mk/build.mk
-
- # don't strip anything. Very useful when stage2 SIGSEGVs on you
- echo "STRIP_CMD = :" >> mk/build.mk
-
- local econf_args=()
-
- # GHC embeds toolchain it was built by and uses it later.
- # Don't allow things like ccache or versioned binary slip.
- # We use stable thing across gcc upgrades.
- # User can use EXTRA_ECONF=CC=... to override this default.
- econf_args+=(
- AR=${CTARGET}-ar
- CC=${CTARGET}-gcc
- # these should be inferred by GHC but ghc defaults
- # to using bundled tools on windows.
- Windres=${CTARGET}-windres
- DllWrap=${CTARGET}-dllwrap
- # we set the linker explicitly below
- --disable-ld-override
- )
- case ${CTARGET} in
- arm*)
- # ld.bfd-2.28 does not work for ghc. Force ld.gold
- # instead. This should be removed once gentoo gets
- # a fix for R_ARM_COPY bug: https://sourceware.org/PR16177
- econf_args+=(LD=${CTARGET}-ld.gold)
- ;;
- sparc*)
- # ld.gold-2.28 does not work for ghc. Force ld.bfd
- # instead. This should be removed once gentoo gets
- # a fix for missing --no-relax support bug:
- # https://sourceware.org/ml/binutils/2017-07/msg00183.html
- econf_args+=(LD=${CTARGET}-ld.bfd)
- ;;
- *)
- econf_args+=(LD=${CTARGET}-ld)
- esac
-
- if [[ ${CBUILD} != ${CHOST} ]]; then
- # GHC bug: ghc claims not to support cross-building.
- # It does, but does not distinct --host= value
- # for stage1 and stage2 compiler.
- econf_args+=(--host=${CBUILD})
- fi
-
- if use ghcmakebinary; then
- # When building booting libary we are trying to
- # bundle or restrict most of external depends
- # with unstable ABI:
- # - embed libffi (default GHC behaviour)
- # - disable ncurses support for ghci (via haskeline)
- # https://bugs.gentoo.org/557478
- # - disable ncurses support for ghc-pkg
- echo "libraries/haskeline_CONFIGURE_OPTS += --flag=-terminfo" >> mk/build.mk
- echo "utils/ghc-pkg_HC_OPTS += -DBOOTSTRAPPING" >> mk/build.mk
- elif is_native; then
- # using ${GTARGET}'s libffi is not supported yet:
- # GHC embeds full path for ffi includes without /usr/${CTARGET} account.
- econf_args+=(--with-system-libffi)
- econf_args+=(--with-ffi-includes=$($(tc-getPKG_CONFIG) libffi --cflags-only-I | sed -e 's@^-I@@'))
- fi
-
- einfo "Final mk/build.mk:"
- cat mk/build.mk || die
-
- econf ${econf_args[@]} \
- --enable-bootstrap-with-devel-snapshot \
- $(use elfutils && echo --enable-dwarf-unwind) \
- $(use_enable numa)
-
- if [[ ${PV} == *9999* ]]; then
- GHC_PV="$(grep 'S\[\"PACKAGE_VERSION\"\]' config.status | sed -e 's@^.*=\"\(.*\)\"@\1@')"
- GHC_P=${PN}-${GHC_PV}
- fi
- fi # ! use binary
-}
-
-src_compile() {
- if ! use binary; then
- # Stage1Only crosscompiler does not build stage2
- if ! is_crosscompile; then
- # 1. build/pax-mark compiler binary first
- emake ghc/stage2/build/tmp/ghc-stage2
- # 2. pax-mark (bug #516430)
- pax-mark -m ghc/stage2/build/tmp/ghc-stage2
- # 2. build/pax-mark haddock using ghc-stage2
- if is_native; then
- # non-native build does not build haddock
- # due to HADDOCK_DOCS=NO, but it could.
- emake utils/haddock/dist/build/tmp/haddock
- pax-mark -m utils/haddock/dist/build/tmp/haddock
- fi
- fi
- # 3. and then all the rest
- emake all
- fi # ! use binary
-}
-
-src_test() {
- # TODO: deal with:
- # - sandbox (pollutes environment)
- # - extra packages (to extend testsuite coverage)
- # bits are taken from 'validate'
- local make_test_target='test' # can be fulltest
- # not 'emake' as testsuite uses '$MAKE' without jobserver available
- make $make_test_target stage=2 THREADS=$(makeopts_jobs)
-}
-
-src_install() {
- if use binary; then
- use prefix && mkdir -p "${ED}"
- mv "${S}/usr" "${ED}"
- else
- [[ -f VERSION ]] || emake VERSION
-
- # -j1 due to a rare race in install script:
- # make --no-print-directory -f ghc.mk phase=final install
- # /usr/lib/portage/python3.4/ebuild-helpers/xattr/install -c -m 755 \
- # -d "/tmp/portage-tmpdir/portage/cross-armv7a-unknown-linux-gnueabi/ghc-9999/image/usr/lib64/armv7a-unknown-linux-gnueabi-ghc-8.3.20170404/include"
- # /usr/lib/portage/python3.4/ebuild-helpers/xattr/install -c -m 644 utils/hsc2hs/template-hsc.h \
- # "/tmp/portage-tmpdir/portage/cross-armv7a-unknown-linux-gnueabi/ghc-9999/image/usr/lib64/armv7a-unknown-linux-gnueabi-ghc-8.3.20170404"
- # /usr/bin/install: cannot create regular file \
- # '/tmp/portage-tmpdir/portage/cross-armv7a-unknown-linux-gnueabi/ghc-9999/image/usr/lib64/armv7a-unknown-linux-gnueabi-ghc-8.3.20170404': No such file or directory
- emake -j1 install DESTDIR="${D}"
-
- # Skip for cross-targets as they all share target location:
- # /usr/share/doc/ghc-9999/
- if ! is_crosscompile; then
- dodoc "distrib/README" "ANNOUNCE" "LICENSE" "VERSION"
- fi
-
- # rename ghc-shipped files to avoid collision
- # of external packages. Motivating example:
- # user had installed:
- # dev-lang/ghc-7.8.4-r0 (with transformers-0.3.0.0)
- # dev-haskell/transformers-0.4.2.0
- # then user tried to update to
- # dev-lang/ghc-7.8.4-r1 (with transformers-0.4.2.0)
- # this will lead to single .conf file collision.
- local shipped_conf renamed_conf
- local package_confdir="${ED}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d"
- for shipped_conf in "${package_confdir}"/*.conf; do
- # rename 'pkg-ver-id.conf' to 'pkg-ver-id-gentoo-${PF}.conf'
- renamed_conf=${shipped_conf%.conf}-gentoo-${PF}.conf
- mv "${shipped_conf}" "${renamed_conf}" || die
- done
-
- # remove link, but leave 'haddock-${GHC_P}'
- rm -f "${ED}"/usr/bin/$(cross)haddock
-
- if ! is_crosscompile; then
- newbashcomp "${FILESDIR}"/ghc-bash-completion ghc-pkg
- newbashcomp utils/completion/ghc.bash ghc
- fi
- fi
-
- # path to the package.cache
- local package_confdir="${ED}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d"
- PKGCACHE="${package_confdir}"/package.cache
- # copy the package.conf.d, including timestamp, save it so we can help
- # users that have a broken package.conf.d
- cp -pR "${package_confdir}"{,.initial} || die "failed to backup intial package.conf.d"
-
- # copy the package.conf, including timestamp, save it so we later can put it
- # back before uninstalling, or when upgrading.
- cp -p "${PKGCACHE}"{,.shipped} \
- || die "failed to copy package.conf.d/package.cache"
-
- if is_crosscompile; then
- # When we build a cross-compiler the layout is the following:
- # usr/lib/${CTARGET}-ghc-${VER}/ contains target libraries
- # but
- # usr/lib/${CTARGET}-ghc-${VER}/bin/ directory
- # containst host binaries (modulo bugs).
-
- # Portage's stripping mechanism does not skip stripping
- # foreign binaries. This frequently causes binaries to be
- # broken.
- #
- # Thus below we disable stripping of target libraries and allow
- # stripping hosts executables.
- dostrip -x "/usr/$(get_libdir)/$(cross)${GHC_P}"
- dostrip "/usr/$(get_libdir)/$(cross)${GHC_P}/bin"
- fi
-}
-
-pkg_preinst() {
- # have we got an earlier version of ghc installed?
- if has_version "<${CATEGORY}/${PF}"; then
- haskell_updater_warn="1"
- fi
-}
-
-pkg_postinst() {
- ghc-reregister
-
- # path to the package.cache
- PKGCACHE="${EROOT}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d/package.cache"
-
- # give the cache a new timestamp, it must be as recent as
- # the package.conf.d directory.
- touch "${PKGCACHE}"
-
- if [[ "${haskell_updater_warn}" == "1" ]]; then
- ewarn
- ewarn "\e[1;31m************************************************************************\e[0m"
- ewarn
- ewarn "You have just upgraded from an older version of GHC."
- ewarn "You may have to run"
- ewarn " 'haskell-updater'"
- ewarn "to rebuild all ghc-based Haskell libraries."
- ewarn
- ewarn "\e[1;31m************************************************************************\e[0m"
- ewarn
- fi
-}
-
-pkg_prerm() {
- PKGCACHE="${EROOT}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d/package.cache"
- rm -rf "${PKGCACHE}"
-
- cp -p "${PKGCACHE}"{.shipped,}
-}
-
-pkg_postrm() {
- ghc-package_pkg_postrm
-}
diff --git a/dev-lang/ghc/ghc-8.8.2.ebuild b/dev-lang/ghc/ghc-8.8.2.ebuild
deleted file mode 100644
index 61b81fb8fb23..000000000000
--- a/dev-lang/ghc/ghc-8.8.2.ebuild
+++ /dev/null
@@ -1,803 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-# to make make a crosscompiler use crossdev and symlink ghc tree into
-# cross overlay. result would look like 'cross-sparc-unknown-linux-gnu/ghc'
-export CBUILD=${CBUILD:-${CHOST}}
-export CTARGET=${CTARGET:-${CHOST}}
-if [[ ${CTARGET} = ${CHOST} ]] ; then
- if [[ ${CATEGORY/cross-} != ${CATEGORY} ]] ; then
- export CTARGET=${CATEGORY/cross-}
- fi
-fi
-
-inherit autotools bash-completion-r1 eutils flag-o-matic ghc-package
-inherit multilib multiprocessing pax-utils toolchain-funcs prefix
-inherit check-reqs
-DESCRIPTION="The Glasgow Haskell Compiler"
-HOMEPAGE="https://www.haskell.org/ghc/"
-
-# we don't have any binaries yet
-arch_binaries=""
-
-BIN_PV=${PV}
-# sorted!
-#arch_binaries="$arch_binaries alpha? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-alpha.tbz2 )"
-#arch_binaries="$arch_binaries arm? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-armv7a-hardfloat-linux-gnueabi.tbz2 )"
-#arch_binaries="$arch_binaries arm64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-aarch64-unknown-linux-gnu.tbz2 )"
-arch_binaries="$arch_binaries amd64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-x86_64-pc-linux-gnu.tbz2 )"
-#arch_binaries="$arch_binaries ia64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ia64-fixed-fiw.tbz2 )"
-#arch_binaries="$arch_binaries ppc? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ppc.tbz2 )"
-#arch_binaries="$arch_binaries ppc64? ( !big-endian? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-powerpc64le-unknown-linux-gnu.tbz2 ) )"
-#arch_binaries="$arch_binaries sparc? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-sparc.tbz2 )"
-arch_binaries="$arch_binaries x86? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-i686-pc-linux-gnu.tbz2 )"
-
-# various ports:
-#arch_binaries="$arch_binaries x86-fbsd? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-x86-fbsd.tbz2 )"
-
-# 0 - yet
-yet_binary() {
- case "${ARCH}" in
- #alpha) return 0 ;;
- #arm64) return 0 ;;
- #arm) return 0 ;;
- amd64) return 0 ;;
- #ia64) return 0 ;;
- #ppc) return 0 ;;
- #ppc64)
- # use big-endian && return 1
- # return 0
- # ;;
- #sparc) return 0 ;;
- x86) return 0 ;;
- *) return 1 ;;
- esac
-}
-
-GHC_PV=${PV}
-#GHC_PV=8.6.0.20180810 # uncomment only for -alpha, -beta, -rc ebuilds
-GHC_P=${PN}-${GHC_PV} # using ${P} is almost never correct
-
-SRC_URI="!binary? (
- https://downloads.haskell.org/~ghc/${PV/_/-}/${GHC_P}-src.tar.xz
- test? ( https://downloads.haskell.org/~ghc/${PV/_/-}/${GHC_P}-testsuite.tar.xz )
-)"
-S="${WORKDIR}"/${GHC_P}
-
-[[ -n $arch_binaries ]] && SRC_URI+=" !ghcbootstrap? ( $arch_binaries )"
-
-BUMP_LIBRARIES=(
- # "hackage-name hackage-version"
-)
-
-LICENSE="BSD"
-SLOT="0/${PV}"
-KEYWORDS=""
-IUSE="big-endian doc elfutils ghcbootstrap ghcmakebinary +gmp numa profile test"
-IUSE+=" binary"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- >=dev-lang/perl-5.6.1
- dev-libs/gmp:0=
- sys-libs/ncurses:0=[unicode]
- elfutils? ( dev-libs/elfutils )
- !ghcmakebinary? ( dev-libs/libffi:= )
- numa? ( sys-process/numactl )
-"
-
-# This set of dependencies is needed to run
-# prebuilt ghc. We specifically avoid ncurses
-# dependency with:
-# utils/ghc-pkg_HC_OPTS += -DBOOTSTRAPPING
-PREBUILT_BINARY_DEPENDS="
- !prefix? ( elibc_glibc? ( >=sys-libs/glibc-2.17 ) )
-"
-# This set of dependencies is needed to install
-# ghc[binary] in system. terminfo package is linked
-# against ncurses.
-PREBUILT_BINARY_RDEPENDS="${PREBUILT_BINARY_DEPENDS}
- sys-libs/ncurses:0/6
-"
-
-RDEPEND+="binary? ( ${PREBUILT_BINARY_RDEPENDS} )"
-
-DEPEND="${RDEPEND}
- doc? ( app-text/docbook-xml-dtd:4.2
- app-text/docbook-xml-dtd:4.5
- app-text/docbook-xsl-stylesheets
- dev-python/sphinx
- >=dev-libs/libxslt-1.1.2 )
- !ghcbootstrap? ( ${PREBUILT_BINARY_DEPENDS} )"
-
-REQUIRED_USE="?? ( ghcbootstrap binary )"
-
-# haskell libraries built with cabal in configure mode, #515354
-QA_CONFIGURE_OPTIONS+=" --with-compiler --with-gcc"
-
-is_crosscompile() {
- [[ ${CHOST} != ${CTARGET} ]]
-}
-
-is_native() {
- [[ ${CHOST} == ${CBUILD} ]] && [[ ${CHOST} == ${CTARGET} ]]
-}
-
-if ! is_crosscompile; then
- PDEPEND="!ghcbootstrap? ( >=app-admin/haskell-updater-1.2 )"
-fi
-
-# returns tool prefix for crosscompiler.
-# Example:
-# CTARGET=armv7a-unknown-linux-gnueabi
-# CHOST=x86_64-pc-linux-gnu
-# "armv7a-unknown-linux-gnueabi-"
-# CTARGET=${CHOST}
-# ""
-# Used in tools and library prefix:
-# "${ED}"/usr/bin/$(cross)haddock
-# "${ED}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d"
-
-cross() {
- if is_crosscompile; then
- echo "${CTARGET}-"
- else
- echo ""
- fi
-}
-
-append-ghc-cflags() {
- local persistent compile assemble link
- local flag ghcflag
-
- for flag in $*; do
- case ${flag} in
- persistent) persistent="yes";;
- compile) compile="yes";;
- assemble) assemble="yes";;
- link) link="yes";;
- *)
- [[ ${compile} ]] && ghcflag="-optc${flag}" CFLAGS+=" ${flag}" && GHC_FLAGS+=" ${ghcflag}" &&
- [[ ${persistent} ]] && GHC_PERSISTENT_FLAGS+=" ${ghcflag}"
- [[ ${assemble} ]] && ghcflag="-opta${flag}" CFLAGS+=" ${flag}" && GHC_FLAGS+=" ${ghcflag}" &&
- [[ ${persistent} ]] && GHC_PERSISTENT_FLAGS+=" ${ghcflag}"
- [[ ${link} ]] && ghcflag="-optl${flag}" LDFLAGS+=" ${flag}" && GHC_FLAGS+=" ${ghcflag}" &&
- [[ ${persistent} ]] && GHC_PERSISTENT_FLAGS+=" ${ghcflag}"
- ;;
- esac
- done
-}
-
-# $1 - lib name (under libraries/)
-# $2 - lib version
-# example: bump_lib "transformers" "0.4.2.0"
-bump_lib() {
- local pn=$1 pv=$2
- local p=${pn}-${pv}
- local f
-
- einfo "Bumping ${pn} up to ${pv}"
-
- for f in ghc.mk GNUmakefile; do
- mv libraries/"${pn}"/$f "${WORKDIR}"/"${p}"/$f || die
- done
- mv libraries/"${pn}" "${WORKDIR}"/"${pn}".old || die
- mv "${WORKDIR}"/"${p}" libraries/"${pn}" || die
-}
-
-update_SRC_URI() {
- local p pn pv
- for p in "${BUMP_LIBRARIES[@]}"; do
- set -- $p
- pn=$1 pv=$2
-
- SRC_URI+=" https://hackage.haskell.org/package/${pn}-${pv}/${pn}-${pv}.tar.gz"
- done
-}
-
-update_SRC_URI
-
-bump_libs() {
- local p pn pv
- for p in "${BUMP_LIBRARIES[@]}"; do
- set -- $p
- pn=$1 pv=$2
-
- bump_lib "${pn}" "${pv}"
- done
-}
-
-ghc_setup_cflags() {
- # TODO: plumb CFLAGS and BUILD_CFLAGS to respective CONF_CC_OPTS_STAGE<N>
- if ! is_native; then
- export CFLAGS=${GHC_CFLAGS-"-O2 -pipe"}
- export LDFLAGS=${GHC_LDFLAGS-"-Wl,-O1"}
- einfo "Crosscompiling mode:"
- einfo " CHOST: ${CHOST}"
- einfo " CTARGET: ${CTARGET}"
- einfo " CFLAGS: ${CFLAGS}"
- einfo " LDFLAGS: ${LDFLAGS}"
- einfo " prefix: $(cross)"
- return
- fi
- # We need to be very careful with the CFLAGS we ask ghc to pass through to
- # gcc. There are plenty of flags which will make gcc produce output that
- # breaks ghc in various ways. The main ones we want to pass through are
- # -mcpu / -march flags. These are important for arches like alpha & sparc.
- # We also use these CFLAGS for building the C parts of ghc, ie the rts.
- strip-flags
- strip-unsupported-flags
-
- # Cmm can't parse line numbers #482086
- replace-flags -ggdb[3-9] -ggdb2
-
- GHC_FLAGS=""
- GHC_PERSISTENT_FLAGS=""
- for flag in ${CFLAGS}; do
- case ${flag} in
-
- # Ignore extra optimisation (ghc passes -O to gcc anyway)
- # -O2 and above break on too many systems
- -O*) ;;
-
- # Arch and ABI flags are what we're really after
- -m*) append-ghc-cflags compile assemble ${flag};;
-
- # Sometimes it's handy to see backtrace of RTS
- # to get an idea what happens there
- -g*) append-ghc-cflags compile ${flag};;
-
- # Ignore all other flags, including all -f* flags
- esac
- done
-
- for flag in ${LDFLAGS}; do
- append-ghc-cflags link ${flag}
- done
-
- # GHC uses ${CBUILD}-gcc, ${CHOST}-gcc and ${CTARGET}-gcc at a single build.
- # Skip any gentoo-specific tweaks for cross-case to avoid passing unsupported
- # options to gcc.
- if is_native; then
- # hardened-gcc needs to be disabled, because our prebuilt binaries/libraries
- # are not built with fPIC, bug #606666
- gcc-specs-pie && append-ghc-cflags persistent compile link -nopie
- tc-is-gcc && ver_test $(gcc-version) -ge 6.3 && if ! use ghcbootstrap; then
- # gcc-6.3 has support for -no-pie upstream, but spelling differs from
- # gentoo-specific '-nopie'. We enable it in non-bootstrap to allow
- # hardened users try '-pie' in USE=ghcbootstrap mode.
- append-ghc-cflags compile link -no-pie
- fi
-
- # prevent from failing to build unregisterised ghc:
- # https://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg171602.html
- use ppc64 && append-ghc-cflags persistent compile -mminimal-toc
- fi
-}
-
-# substitutes string $1 to $2 in files $3 $4 ...
-relocate_path() {
- local from=$1
- local to=$2
- shift 2
- local file=
- for file in "$@"
- do
- sed -i -e "s|$from|$to|g" \
- "$file" || die "path relocation failed for '$file'"
- done
-}
-
-# changes hardcoded ghc paths and updates package index
-# $1 - new absolute root path
-relocate_ghc() {
- local to=$1 ghc_v=${BIN_PV}
-
- # libdir for prebuilt binary and for current system may mismatch
- # It does for prefix installation for example: bug #476998
- local bin_ghc_prefix=${WORKDIR}/usr
- local bin_libpath=$(echo "${bin_ghc_prefix}"/lib*)
- local bin_libdir=${bin_libpath#${bin_ghc_prefix}/}
-
- # backup original script to use it later after relocation
- local gp_back="${T}/ghc-pkg-${ghc_v}-orig"
- cp "${WORKDIR}/usr/bin/ghc-pkg-${ghc_v}" "$gp_back" || die "unable to backup ghc-pkg wrapper"
-
- if [[ ${bin_libdir} != $(get_libdir) ]]; then
- einfo "Relocating '${bin_libdir}' to '$(get_libdir)' (bug #476998)"
- # moving the dir itself is not strictly needed
- # but then USE=binary would result in installing
- # in '${bin_libdir}'
- mv "${bin_ghc_prefix}/${bin_libdir}" "${bin_ghc_prefix}/$(get_libdir)" || die
-
- relocate_path "/usr/${bin_libdir}" "/usr/$(get_libdir)" \
- "${WORKDIR}/usr/bin/ghc-${ghc_v}" \
- "${WORKDIR}/usr/bin/ghci-${ghc_v}" \
- "${WORKDIR}/usr/bin/ghc-pkg-${ghc_v}" \
- "${WORKDIR}/usr/bin/hsc2hs" \
- "${WORKDIR}/usr/bin/runghc-${ghc_v}" \
- "$gp_back" \
- "${WORKDIR}/usr/$(get_libdir)/${PN}-${ghc_v}/package.conf.d/"*
- fi
-
- # Relocate from /usr to ${EPREFIX}/usr
- relocate_path "/usr" "${to}/usr" \
- "${WORKDIR}/usr/bin/ghc-${ghc_v}" \
- "${WORKDIR}/usr/bin/ghci-${ghc_v}" \
- "${WORKDIR}/usr/bin/ghc-pkg-${ghc_v}" \
- "${WORKDIR}/usr/bin/haddock-ghc-${ghc_v}" \
- "${WORKDIR}/usr/bin/hp2ps" \
- "${WORKDIR}/usr/bin/hpc" \
- "${WORKDIR}/usr/bin/hsc2hs" \
- "${WORKDIR}/usr/bin/runghc-${ghc_v}" \
- "${WORKDIR}/usr/$(get_libdir)/${PN}-${ghc_v}/package.conf.d/"*
-
- # this one we will use to regenerate cache
- # so it should point to current tree location
- relocate_path "/usr" "${WORKDIR}/usr" "$gp_back"
-
- if use prefix; then
- hprefixify "${bin_libpath}"/${PN}*/settings
- fi
-
- # regenerate the binary package cache
- "$gp_back" recache || die "failed to update cache after relocation"
- rm "$gp_back"
-}
-
-ghc-check-reqs() {
- # These are pessimistic values (slightly bigger than worst-case)
- # Worst case is UNREG USE=profile ia64. See bug #611866 for some
- # numbers on various arches.
- CHECKREQS_DISK_BUILD=8G
- CHECKREQS_DISK_USR=2G
- # USE=binary roughly takes
- use binary && CHECKREQS_DISK_BUILD=4G
-
- "$@"
-}
-
-pkg_pretend() {
- ghc-check-reqs check-reqs_pkg_pretend
-}
-
-pkg_setup() {
- ghc-check-reqs check-reqs_pkg_setup
-
- # quiet portage about prebuilt binaries
- use binary && QA_PREBUILT="*"
-
- [[ ${MERGE_TYPE} == binary ]] && return
-
- if use ghcbootstrap; then
- ewarn "You requested ghc bootstrapping, this is usually only used"
- ewarn "by Gentoo developers to make binary .tbz2 packages."
-
- [[ -z $(type -P ghc) ]] && \
- die "Could not find a ghc to bootstrap with."
- else
- if ! yet_binary; then
- eerror "Please try emerging with USE=ghcbootstrap and report build"
- eerror "sucess or failure to the haskell team (haskell@gentoo.org)"
- die "No binary available for '${ARCH}' arch yet, USE=ghcbootstrap"
- fi
- fi
-}
-
-src_unpack() {
- # Create the ${S} dir if we're using the binary version
- use binary && mkdir "${S}"
-
- # the Solaris and Darwin binaries from ghc (maeder) need to be
- # unpacked separately, so prevent them from being unpacked
- local ONLYA=${A}
- case ${CHOST} in
- *-darwin* | *-solaris*) ONLYA=${GHC_P}-src.tar.xz ;;
- esac
- unpack ${ONLYA}
-}
-
-src_prepare() {
- ghc_setup_cflags
-
- if ! use ghcbootstrap && [[ ${CHOST} != *-darwin* && ${CHOST} != *-solaris* ]]; then
- # Modify the wrapper script from the binary tarball to use GHC_PERSISTENT_FLAGS.
- # See bug #313635.
- sed -i -e "s|\"\$topdir\"|\"\$topdir\" ${GHC_PERSISTENT_FLAGS}|" \
- "${WORKDIR}/usr/bin/ghc-${BIN_PV}"
-
- # allow hardened users use vanilla binary to bootstrap ghc
- # ghci uses mmap with rwx protection at it implements dynamic
- # linking on it's own (bug #299709)
- pax-mark -m "${WORKDIR}/usr/$(get_libdir)/${PN}-${BIN_PV}/bin/ghc"
- fi
-
- if use binary; then
- if use prefix; then
- relocate_ghc "${EPREFIX}"
- fi
-
- # Move unpacked files to the expected place
- mv "${WORKDIR}/usr" "${S}"
- eapply_user
- else
- if ! use ghcbootstrap; then
- case ${CHOST} in
- *-darwin* | *-solaris*)
- # UPDATE ME for ghc-7
- mkdir "${WORKDIR}"/ghc-bin-installer || die
- pushd "${WORKDIR}"/ghc-bin-installer > /dev/null || die
- use sparc-solaris && unpack ghc-6.10.4-sparc-sun-solaris2.tar.bz2
- use x86-solaris && unpack ghc-7.0.3-i386-unknown-solaris2.tar.bz2
- use x64-macos && unpack ghc-7.4.1-x86_64-apple-darwin.tar.bz2
- popd > /dev/null
-
- pushd "${WORKDIR}"/ghc-bin-installer/ghc-[67].?*.? > /dev/null || die
- # fix the binaries so they run, on Solaris we need an
- # LD_LIBRARY_PATH which has our prefix libdirs, on
- # Darwin we need to replace the frameworks with our libs
- # from the prefix fix before installation, because some
- # of the tools are actually used during configure/make
- if [[ ${CHOST} == *-solaris* ]] ; then
- export LD_LIBRARY_PATH="${EPREFIX}/$(get_libdir):${EPREFIX}/usr/$(get_libdir):${LD_LIBRARY_PATH}"
- elif [[ ${CHOST} == *-darwin* ]] ; then
- local readline_framework=GNUreadline.framework/GNUreadline
- local gmp_framework=/opt/local/lib/libgmp.10.dylib
- local ncurses_file=/opt/local/lib/libncurses.5.dylib
- for binary in $(scanmacho -BRE MH_EXECUTE -F '%F' .) ; do
- install_name_tool -change \
- ${readline_framework} \
- "${EPREFIX}"/lib/libreadline.dylib \
- ${binary} || die
- install_name_tool -change \
- ${gmp_framework} \
- "${EPREFIX}"/usr/lib/libgmp.dylib \
- ${binary} || die
- install_name_tool -change \
- ${ncurses_file} \
- "${EPREFIX}"/usr/lib/libncurses.dylib \
- ${binary} || die
- done
- # we don't do frameworks!
- sed -i \
- -e 's/\(frameworks = \)\["GMP"\]/\1[]/g' \
- -e 's/\(extraLibraries = \)\["m"\]/\1["m","gmp"]/g' \
- rts/package.conf.in || die
- fi
-
- # it is autoconf, but we really don't want to give it too
- # many arguments, in fact we do the make in-place anyway
- ./configure --prefix="${WORKDIR}"/usr || die
- make install || die
- popd > /dev/null
- ;;
- *)
- relocate_ghc "${WORKDIR}"
- ;;
- esac
- fi
-
- sed -i -e "s|\"\$topdir\"|\"\$topdir\" ${GHC_PERSISTENT_FLAGS}|" \
- "${S}/ghc/ghc.wrapper"
-
- cd "${S}" # otherwise eapply will break
-
- eapply "${FILESDIR}"/${PN}-7.0.4-CHOST-prefix.patch
- eapply "${FILESDIR}"/${PN}-8.2.1-darwin.patch
- eapply "${FILESDIR}"/${PN}-7.8.3-prim-lm.patch
- eapply "${FILESDIR}"/${PN}-8.0.2-no-relax-everywhere.patch
- eapply "${FILESDIR}"/${PN}-8.4.2-allow-cross-bootstrap.patch
- eapply "${FILESDIR}"/${PN}-8.6.5-numa.patch
- eapply "${FILESDIR}"/${PN}-8.8.1-revert-CPP.patch
-
- # a bunch of crosscompiler patches
- # needs newer version:
- #eapply "${FILESDIR}"/${PN}-8.2.1_rc1-hp2ps-cross.patch
-
- # mingw32 target
- pushd "${S}/libraries/Win32"
- eapply "${FILESDIR}"/${PN}-8.2.1_rc1-win32-cross-2-hack.patch # bad workaround
- popd
-
- bump_libs
-
- eapply_user
- # as we have changed the build system
- eautoreconf
- fi
-}
-
-src_configure() {
- if ! use binary; then
- # initialize build.mk
- echo '# Gentoo changes' > mk/build.mk
-
- # Put docs into the right place, ie /usr/share/doc/ghc-${GHC_PV}
- echo "docdir = ${EPREFIX}/usr/share/doc/$(cross)${P}" >> mk/build.mk
- echo "htmldir = ${EPREFIX}/usr/share/doc/$(cross)${P}" >> mk/build.mk
-
- # We also need to use the GHC_FLAGS flags when building ghc itself
- echo "SRC_HC_OPTS+=${HCFLAGS} ${GHC_FLAGS}" >> mk/build.mk
- echo "SRC_CC_OPTS+=${CFLAGS}" >> mk/build.mk
- echo "SRC_LD_OPTS+=${LDFLAGS}" >> mk/build.mk
- # Speed up initial Cabal bootstrap
- echo "utils/ghc-cabal_dist_EXTRA_HC_OPTS+=$(ghc-make-args)" >> mk/build.mk
-
- # We can't depend on haddock except when bootstrapping when we
- # must build docs and include them into the binary .tbz2 package
- # app-text/dblatex is not in portage, can not build PDF or PS
- echo "BUILD_SPHINX_PDF = NO" >> mk/build.mk
- echo "BUILD_SPHINX_HTML = $(usex doc YES NO)" >> mk/build.mk
- echo "BUILD_MAN = $(usex doc YES NO)" >> mk/build.mk
-
- # this controls presence on 'xhtml' and 'haddock' in final install
- echo "HADDOCK_DOCS = YES" >> mk/build.mk
-
- # not used outside of ghc's test
- if [[ -n ${GHC_BUILD_DPH} ]]; then
- echo "BUILD_DPH = YES" >> mk/build.mk
- else
- echo "BUILD_DPH = NO" >> mk/build.mk
- fi
-
- # Any non-native build has to skip as it needs
- # target haddock binary to be runnabine.
- if ! is_native; then
- # disable docs generation as it requires running stage2
- echo "HADDOCK_DOCS=NO" >> mk/build.mk
- echo "BUILD_SPHINX_HTML=NO" >> mk/build.mk
- echo "BUILD_SPHINX_PDF=NO" >> mk/build.mk
- fi
-
- if is_crosscompile; then
- # Install ghc-stage1 crosscompiler instead of
- # ghc-stage2 cross-built compiler.
- echo "Stage1Only=YES" >> mk/build.mk
- fi
-
- # allows overriding build flavours for libraries:
- # v - vanilla (static libs)
- # p - profiled
- # dyn - shared libraries
- # example: GHC_LIBRARY_WAYS="v dyn"
- if [[ -n ${GHC_LIBRARY_WAYS} ]]; then
- echo "GhcLibWays=${GHC_LIBRARY_WAYS}" >> mk/build.mk
- fi
- echo "BUILD_PROF_LIBS = $(usex profile YES NO)" >> mk/build.mk
-
- # Get ghc from the unpacked binary .tbz2
- # except when bootstrapping we just pick ghc up off the path
- if ! use ghcbootstrap; then
- export PATH="${WORKDIR}/usr/bin:${PATH}"
- fi
-
- echo "INTEGER_LIBRARY = $(usex gmp integer-gmp integer-simple)" >> mk/build.mk
-
- # don't strip anything. Very useful when stage2 SIGSEGVs on you
- echo "STRIP_CMD = :" >> mk/build.mk
-
- local econf_args=()
-
- # GHC embeds toolchain it was built by and uses it later.
- # Don't allow things like ccache or versioned binary slip.
- # We use stable thing across gcc upgrades.
- # User can use EXTRA_ECONF=CC=... to override this default.
- econf_args+=(
- AR=${CTARGET}-ar
- CC=${CTARGET}-gcc
- # these should be inferred by GHC but ghc defaults
- # to using bundled tools on windows.
- Windres=${CTARGET}-windres
- DllWrap=${CTARGET}-dllwrap
- # we set the linker explicitly below
- --disable-ld-override
- )
- case ${CTARGET} in
- arm*)
- # ld.bfd-2.28 does not work for ghc. Force ld.gold
- # instead. This should be removed once gentoo gets
- # a fix for R_ARM_COPY bug: https://sourceware.org/PR16177
- econf_args+=(LD=${CTARGET}-ld.gold)
- ;;
- sparc*)
- # ld.gold-2.28 does not work for ghc. Force ld.bfd
- # instead. This should be removed once gentoo gets
- # a fix for missing --no-relax support bug:
- # https://sourceware.org/ml/binutils/2017-07/msg00183.html
- econf_args+=(LD=${CTARGET}-ld.bfd)
- ;;
- *)
- econf_args+=(LD=${CTARGET}-ld)
- esac
-
- if [[ ${CBUILD} != ${CHOST} ]]; then
- # GHC bug: ghc claims not to support cross-building.
- # It does, but does not distinct --host= value
- # for stage1 and stage2 compiler.
- econf_args+=(--host=${CBUILD})
- fi
-
- if use ghcmakebinary; then
- # When building booting libary we are trying to
- # bundle or restrict most of external depends
- # with unstable ABI:
- # - embed libffi (default GHC behaviour)
- # - disable ncurses support for ghci (via haskeline)
- # https://bugs.gentoo.org/557478
- # - disable ncurses support for ghc-pkg
- echo "libraries/haskeline_CONFIGURE_OPTS += --flag=-terminfo" >> mk/build.mk
- echo "utils/ghc-pkg_HC_OPTS += -DBOOTSTRAPPING" >> mk/build.mk
- elif is_native; then
- # using ${GTARGET}'s libffi is not supported yet:
- # GHC embeds full path for ffi includes without /usr/${CTARGET} account.
- econf_args+=(--with-system-libffi)
- econf_args+=(--with-ffi-includes=$($(tc-getPKG_CONFIG) libffi --cflags-only-I | sed -e 's@^-I@@'))
- fi
-
- einfo "Final mk/build.mk:"
- cat mk/build.mk || die
-
- econf ${econf_args[@]} \
- --enable-bootstrap-with-devel-snapshot \
- $(use elfutils && echo --enable-dwarf-unwind) \
- $(use_enable numa)
-
- if [[ ${PV} == *9999* ]]; then
- GHC_PV="$(grep 'S\[\"PACKAGE_VERSION\"\]' config.status | sed -e 's@^.*=\"\(.*\)\"@\1@')"
- GHC_P=${PN}-${GHC_PV}
- fi
- fi # ! use binary
-}
-
-src_compile() {
- if ! use binary; then
- # Stage1Only crosscompiler does not build stage2
- if ! is_crosscompile; then
- # 1. build/pax-mark compiler binary first
- emake ghc/stage2/build/tmp/ghc-stage2
- # 2. pax-mark (bug #516430)
- pax-mark -m ghc/stage2/build/tmp/ghc-stage2
- # 2. build/pax-mark haddock using ghc-stage2
- if is_native; then
- # non-native build does not build haddock
- # due to HADDOCK_DOCS=NO, but it could.
- emake utils/haddock/dist/build/tmp/haddock
- pax-mark -m utils/haddock/dist/build/tmp/haddock
- fi
- fi
- # 3. and then all the rest
- emake all
- fi # ! use binary
-}
-
-src_test() {
- # TODO: deal with:
- # - sandbox (pollutes environment)
- # - extra packages (to extend testsuite coverage)
- # bits are taken from 'validate'
- local make_test_target='test' # can be fulltest
- # not 'emake' as testsuite uses '$MAKE' without jobserver available
- make $make_test_target stage=2 THREADS=$(makeopts_jobs)
-}
-
-src_install() {
- if use binary; then
- use prefix && mkdir -p "${ED}"
- mv "${S}/usr" "${ED}"
- else
- [[ -f VERSION ]] || emake VERSION
-
- # -j1 due to a rare race in install script:
- # make --no-print-directory -f ghc.mk phase=final install
- # /usr/lib/portage/python3.4/ebuild-helpers/xattr/install -c -m 755 \
- # -d "/tmp/portage-tmpdir/portage/cross-armv7a-unknown-linux-gnueabi/ghc-9999/image/usr/lib64/armv7a-unknown-linux-gnueabi-ghc-8.3.20170404/include"
- # /usr/lib/portage/python3.4/ebuild-helpers/xattr/install -c -m 644 utils/hsc2hs/template-hsc.h \
- # "/tmp/portage-tmpdir/portage/cross-armv7a-unknown-linux-gnueabi/ghc-9999/image/usr/lib64/armv7a-unknown-linux-gnueabi-ghc-8.3.20170404"
- # /usr/bin/install: cannot create regular file \
- # '/tmp/portage-tmpdir/portage/cross-armv7a-unknown-linux-gnueabi/ghc-9999/image/usr/lib64/armv7a-unknown-linux-gnueabi-ghc-8.3.20170404': No such file or directory
- emake -j1 install DESTDIR="${D}"
-
- # Skip for cross-targets as they all share target location:
- # /usr/share/doc/ghc-9999/
- if ! is_crosscompile; then
- dodoc "distrib/README" "ANNOUNCE" "LICENSE" "VERSION"
- fi
-
- # rename ghc-shipped files to avoid collision
- # of external packages. Motivating example:
- # user had installed:
- # dev-lang/ghc-7.8.4-r0 (with transformers-0.3.0.0)
- # dev-haskell/transformers-0.4.2.0
- # then user tried to update to
- # dev-lang/ghc-7.8.4-r1 (with transformers-0.4.2.0)
- # this will lead to single .conf file collision.
- local shipped_conf renamed_conf
- local package_confdir="${ED}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d"
- for shipped_conf in "${package_confdir}"/*.conf; do
- # rename 'pkg-ver-id.conf' to 'pkg-ver-id-gentoo-${PF}.conf'
- renamed_conf=${shipped_conf%.conf}-gentoo-${PF}.conf
- mv "${shipped_conf}" "${renamed_conf}" || die
- done
-
- # remove link, but leave 'haddock-${GHC_P}'
- rm -f "${ED}"/usr/bin/$(cross)haddock
-
- if ! is_crosscompile; then
- newbashcomp "${FILESDIR}"/ghc-bash-completion ghc-pkg
- newbashcomp utils/completion/ghc.bash ghc
- fi
- fi
-
- # path to the package.cache
- local package_confdir="${ED}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d"
- PKGCACHE="${package_confdir}"/package.cache
- # copy the package.conf.d, including timestamp, save it so we can help
- # users that have a broken package.conf.d
- cp -pR "${package_confdir}"{,.initial} || die "failed to backup intial package.conf.d"
-
- # copy the package.conf, including timestamp, save it so we later can put it
- # back before uninstalling, or when upgrading.
- cp -p "${PKGCACHE}"{,.shipped} \
- || die "failed to copy package.conf.d/package.cache"
-
- if is_crosscompile; then
- # When we build a cross-compiler the layout is the following:
- # usr/lib/${CTARGET}-ghc-${VER}/ contains target libraries
- # but
- # usr/lib/${CTARGET}-ghc-${VER}/bin/ directory
- # containst host binaries (modulo bugs).
-
- # Portage's stripping mechanism does not skip stripping
- # foreign binaries. This frequently causes binaries to be
- # broken.
- #
- # Thus below we disable stripping of target libraries and allow
- # stripping hosts executables.
- dostrip -x "/usr/$(get_libdir)/$(cross)${GHC_P}"
- dostrip "/usr/$(get_libdir)/$(cross)${GHC_P}/bin"
- fi
-}
-
-pkg_preinst() {
- # have we got an earlier version of ghc installed?
- if has_version "<${CATEGORY}/${PF}"; then
- haskell_updater_warn="1"
- fi
-}
-
-pkg_postinst() {
- ghc-reregister
-
- # path to the package.cache
- PKGCACHE="${EROOT}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d/package.cache"
-
- # give the cache a new timestamp, it must be as recent as
- # the package.conf.d directory.
- touch "${PKGCACHE}"
-
- if [[ "${haskell_updater_warn}" == "1" ]]; then
- ewarn
- ewarn "\e[1;31m************************************************************************\e[0m"
- ewarn
- ewarn "You have just upgraded from an older version of GHC."
- ewarn "You may have to run"
- ewarn " 'haskell-updater'"
- ewarn "to rebuild all ghc-based Haskell libraries."
- ewarn
- ewarn "\e[1;31m************************************************************************\e[0m"
- ewarn
- fi
-}
-
-pkg_prerm() {
- PKGCACHE="${EROOT}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d/package.cache"
- rm -rf "${PKGCACHE}"
-
- cp -p "${PKGCACHE}"{.shipped,}
-}
-
-pkg_postrm() {
- ghc-package_pkg_postrm
-}
diff --git a/dev-lang/ghc/ghc-8.8.3.ebuild b/dev-lang/ghc/ghc-8.8.3.ebuild
deleted file mode 100644
index eb0ede0ad7fe..000000000000
--- a/dev-lang/ghc/ghc-8.8.3.ebuild
+++ /dev/null
@@ -1,808 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-# to make make a crosscompiler use crossdev and symlink ghc tree into
-# cross overlay. result would look like 'cross-sparc-unknown-linux-gnu/ghc'
-export CBUILD=${CBUILD:-${CHOST}}
-export CTARGET=${CTARGET:-${CHOST}}
-if [[ ${CTARGET} = ${CHOST} ]] ; then
- if [[ ${CATEGORY/cross-} != ${CATEGORY} ]] ; then
- export CTARGET=${CATEGORY/cross-}
- fi
-fi
-
-inherit autotools bash-completion-r1 eutils flag-o-matic ghc-package
-inherit multilib multiprocessing pax-utils toolchain-funcs prefix
-inherit check-reqs
-DESCRIPTION="The Glasgow Haskell Compiler"
-HOMEPAGE="https://www.haskell.org/ghc/"
-
-# we don't have any binaries yet
-arch_binaries=""
-
-BIN_PV=${PV}
-# sorted!
-#arch_binaries="$arch_binaries alpha? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-alpha.tbz2 )"
-#arch_binaries="$arch_binaries arm? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-armv7a-hardfloat-linux-gnueabi.tbz2 )"
-#arch_binaries="$arch_binaries arm64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-aarch64-unknown-linux-gnu.tbz2 )"
-arch_binaries="$arch_binaries amd64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-x86_64-pc-linux-gnu.tbz2 )"
-#arch_binaries="$arch_binaries ia64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ia64-fixed-fiw.tbz2 )"
-#arch_binaries="$arch_binaries ppc? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ppc.tbz2 )"
-#arch_binaries="$arch_binaries ppc64? ( !big-endian? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-powerpc64le-unknown-linux-gnu.tbz2 ) )"
-#arch_binaries="$arch_binaries sparc? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-sparc.tbz2 )"
-arch_binaries="$arch_binaries x86? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-i686-pc-linux-gnu.tbz2 )"
-
-# various ports:
-#arch_binaries="$arch_binaries x86-fbsd? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-x86-fbsd.tbz2 )"
-
-# 0 - yet
-yet_binary() {
- case "${ARCH}" in
- #alpha) return 0 ;;
- #arm64) return 0 ;;
- #arm) return 0 ;;
- amd64) return 0 ;;
- #ia64) return 0 ;;
- #ppc) return 0 ;;
- #ppc64)
- # use big-endian && return 1
- # return 0
- # ;;
- #sparc) return 0 ;;
- x86) return 0 ;;
- *) return 1 ;;
- esac
-}
-
-GHC_PV=${PV}
-#GHC_PV=8.6.0.20180810 # uncomment only for -alpha, -beta, -rc ebuilds
-GHC_P=${PN}-${GHC_PV} # using ${P} is almost never correct
-
-SRC_URI="!binary? (
- https://downloads.haskell.org/~ghc/${PV/_/-}/${GHC_P}-src.tar.xz
- test? ( https://downloads.haskell.org/~ghc/${PV/_/-}/${GHC_P}-testsuite.tar.xz )
-)"
-S="${WORKDIR}"/${GHC_P}
-
-[[ -n $arch_binaries ]] && SRC_URI+=" !ghcbootstrap? ( $arch_binaries )"
-
-BUMP_LIBRARIES=(
- # "hackage-name hackage-version"
-)
-
-LICENSE="BSD"
-SLOT="0/${PV}"
-KEYWORDS=""
-IUSE="big-endian doc elfutils ghcbootstrap ghcmakebinary +gmp numa profile test"
-IUSE+=" binary"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- >=dev-lang/perl-5.6.1
- dev-libs/gmp:0=
- sys-libs/ncurses:0=[unicode]
- elfutils? ( dev-libs/elfutils )
- !ghcmakebinary? ( dev-libs/libffi:= )
- numa? ( sys-process/numactl )
-"
-
-# This set of dependencies is needed to run
-# prebuilt ghc. We specifically avoid ncurses
-# dependency with:
-# utils/ghc-pkg_HC_OPTS += -DBOOTSTRAPPING
-PREBUILT_BINARY_DEPENDS="
- !prefix? ( elibc_glibc? ( >=sys-libs/glibc-2.17 ) )
-"
-# This set of dependencies is needed to install
-# ghc[binary] in system. terminfo package is linked
-# against ncurses.
-PREBUILT_BINARY_RDEPENDS="${PREBUILT_BINARY_DEPENDS}
- sys-libs/ncurses:0/6
-"
-
-RDEPEND+="binary? ( ${PREBUILT_BINARY_RDEPENDS} )"
-
-DEPEND="${RDEPEND}
- doc? ( app-text/docbook-xml-dtd:4.2
- app-text/docbook-xml-dtd:4.5
- app-text/docbook-xsl-stylesheets
- dev-python/sphinx
- >=dev-libs/libxslt-1.1.2 )
- !ghcbootstrap? ( ${PREBUILT_BINARY_DEPENDS} )"
-
-# we build binaries without profiling support
-REQUIRED_USE="
- ?? ( ghcbootstrap binary )
- ?? ( profile binary )
-"
-
-# haskell libraries built with cabal in configure mode, #515354
-QA_CONFIGURE_OPTIONS+=" --with-compiler --with-gcc"
-
-is_crosscompile() {
- [[ ${CHOST} != ${CTARGET} ]]
-}
-
-is_native() {
- [[ ${CHOST} == ${CBUILD} ]] && [[ ${CHOST} == ${CTARGET} ]]
-}
-
-if ! is_crosscompile; then
- PDEPEND="!ghcbootstrap? ( >=app-admin/haskell-updater-1.2 )"
-fi
-
-# returns tool prefix for crosscompiler.
-# Example:
-# CTARGET=armv7a-unknown-linux-gnueabi
-# CHOST=x86_64-pc-linux-gnu
-# "armv7a-unknown-linux-gnueabi-"
-# CTARGET=${CHOST}
-# ""
-# Used in tools and library prefix:
-# "${ED}"/usr/bin/$(cross)haddock
-# "${ED}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d"
-
-cross() {
- if is_crosscompile; then
- echo "${CTARGET}-"
- else
- echo ""
- fi
-}
-
-append-ghc-cflags() {
- local persistent compile assemble link
- local flag ghcflag
-
- for flag in $*; do
- case ${flag} in
- persistent) persistent="yes";;
- compile) compile="yes";;
- assemble) assemble="yes";;
- link) link="yes";;
- *)
- [[ ${compile} ]] && ghcflag="-optc${flag}" CFLAGS+=" ${flag}" && GHC_FLAGS+=" ${ghcflag}" &&
- [[ ${persistent} ]] && GHC_PERSISTENT_FLAGS+=" ${ghcflag}"
- [[ ${assemble} ]] && ghcflag="-opta${flag}" CFLAGS+=" ${flag}" && GHC_FLAGS+=" ${ghcflag}" &&
- [[ ${persistent} ]] && GHC_PERSISTENT_FLAGS+=" ${ghcflag}"
- [[ ${link} ]] && ghcflag="-optl${flag}" LDFLAGS+=" ${flag}" && GHC_FLAGS+=" ${ghcflag}" &&
- [[ ${persistent} ]] && GHC_PERSISTENT_FLAGS+=" ${ghcflag}"
- ;;
- esac
- done
-}
-
-# $1 - lib name (under libraries/)
-# $2 - lib version
-# example: bump_lib "transformers" "0.4.2.0"
-bump_lib() {
- local pn=$1 pv=$2
- local p=${pn}-${pv}
- local f
-
- einfo "Bumping ${pn} up to ${pv}"
-
- for f in ghc.mk GNUmakefile; do
- mv libraries/"${pn}"/$f "${WORKDIR}"/"${p}"/$f || die
- done
- mv libraries/"${pn}" "${WORKDIR}"/"${pn}".old || die
- mv "${WORKDIR}"/"${p}" libraries/"${pn}" || die
-}
-
-update_SRC_URI() {
- local p pn pv
- for p in "${BUMP_LIBRARIES[@]}"; do
- set -- $p
- pn=$1 pv=$2
-
- SRC_URI+=" https://hackage.haskell.org/package/${pn}-${pv}/${pn}-${pv}.tar.gz"
- done
-}
-
-update_SRC_URI
-
-bump_libs() {
- local p pn pv
- for p in "${BUMP_LIBRARIES[@]}"; do
- set -- $p
- pn=$1 pv=$2
-
- bump_lib "${pn}" "${pv}"
- done
-}
-
-ghc_setup_cflags() {
- # TODO: plumb CFLAGS and BUILD_CFLAGS to respective CONF_CC_OPTS_STAGE<N>
- if ! is_native; then
- export CFLAGS=${GHC_CFLAGS-"-O2 -pipe"}
- export LDFLAGS=${GHC_LDFLAGS-"-Wl,-O1"}
- einfo "Crosscompiling mode:"
- einfo " CHOST: ${CHOST}"
- einfo " CTARGET: ${CTARGET}"
- einfo " CFLAGS: ${CFLAGS}"
- einfo " LDFLAGS: ${LDFLAGS}"
- einfo " prefix: $(cross)"
- return
- fi
- # We need to be very careful with the CFLAGS we ask ghc to pass through to
- # gcc. There are plenty of flags which will make gcc produce output that
- # breaks ghc in various ways. The main ones we want to pass through are
- # -mcpu / -march flags. These are important for arches like alpha & sparc.
- # We also use these CFLAGS for building the C parts of ghc, ie the rts.
- strip-flags
- strip-unsupported-flags
-
- # Cmm can't parse line numbers #482086
- replace-flags -ggdb[3-9] -ggdb2
-
- GHC_FLAGS=""
- GHC_PERSISTENT_FLAGS=""
- for flag in ${CFLAGS}; do
- case ${flag} in
-
- # Ignore extra optimisation (ghc passes -O to gcc anyway)
- # -O2 and above break on too many systems
- -O*) ;;
-
- # Arch and ABI flags are what we're really after
- -m*) append-ghc-cflags compile assemble ${flag};;
-
- # Sometimes it's handy to see backtrace of RTS
- # to get an idea what happens there
- -g*) append-ghc-cflags compile ${flag};;
-
- # Ignore all other flags, including all -f* flags
- esac
- done
-
- for flag in ${LDFLAGS}; do
- append-ghc-cflags link ${flag}
- done
-
- # GHC uses ${CBUILD}-gcc, ${CHOST}-gcc and ${CTARGET}-gcc at a single build.
- # Skip any gentoo-specific tweaks for cross-case to avoid passing unsupported
- # options to gcc.
- if is_native; then
- # hardened-gcc needs to be disabled, because our prebuilt binaries/libraries
- # are not built with fPIC, bug #606666
- gcc-specs-pie && append-ghc-cflags persistent compile link -nopie
- tc-is-gcc && ver_test $(gcc-version) -ge 6.3 && if ! use ghcbootstrap; then
- # gcc-6.3 has support for -no-pie upstream, but spelling differs from
- # gentoo-specific '-nopie'. We enable it in non-bootstrap to allow
- # hardened users try '-pie' in USE=ghcbootstrap mode.
- append-ghc-cflags compile link -no-pie
- fi
-
- # prevent from failing to build unregisterised ghc:
- # https://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg171602.html
- use ppc64 && append-ghc-cflags persistent compile -mminimal-toc
- fi
-}
-
-# substitutes string $1 to $2 in files $3 $4 ...
-relocate_path() {
- local from=$1
- local to=$2
- shift 2
- local file=
- for file in "$@"
- do
- sed -i -e "s|$from|$to|g" \
- "$file" || die "path relocation failed for '$file'"
- done
-}
-
-# changes hardcoded ghc paths and updates package index
-# $1 - new absolute root path
-relocate_ghc() {
- local to=$1 ghc_v=${BIN_PV}
-
- # libdir for prebuilt binary and for current system may mismatch
- # It does for prefix installation for example: bug #476998
- local bin_ghc_prefix=${WORKDIR}/usr
- local bin_libpath=$(echo "${bin_ghc_prefix}"/lib*)
- local bin_libdir=${bin_libpath#${bin_ghc_prefix}/}
-
- # backup original script to use it later after relocation
- local gp_back="${T}/ghc-pkg-${ghc_v}-orig"
- cp "${WORKDIR}/usr/bin/ghc-pkg-${ghc_v}" "$gp_back" || die "unable to backup ghc-pkg wrapper"
-
- if [[ ${bin_libdir} != $(get_libdir) ]]; then
- einfo "Relocating '${bin_libdir}' to '$(get_libdir)' (bug #476998)"
- # moving the dir itself is not strictly needed
- # but then USE=binary would result in installing
- # in '${bin_libdir}'
- mv "${bin_ghc_prefix}/${bin_libdir}" "${bin_ghc_prefix}/$(get_libdir)" || die
-
- relocate_path "/usr/${bin_libdir}" "/usr/$(get_libdir)" \
- "${WORKDIR}/usr/bin/ghc-${ghc_v}" \
- "${WORKDIR}/usr/bin/ghci-${ghc_v}" \
- "${WORKDIR}/usr/bin/ghc-pkg-${ghc_v}" \
- "${WORKDIR}/usr/bin/hsc2hs" \
- "${WORKDIR}/usr/bin/runghc-${ghc_v}" \
- "$gp_back" \
- "${WORKDIR}/usr/$(get_libdir)/${PN}-${ghc_v}/package.conf.d/"*
- fi
-
- # Relocate from /usr to ${EPREFIX}/usr
- relocate_path "/usr" "${to}/usr" \
- "${WORKDIR}/usr/bin/ghc-${ghc_v}" \
- "${WORKDIR}/usr/bin/ghci-${ghc_v}" \
- "${WORKDIR}/usr/bin/ghc-pkg-${ghc_v}" \
- "${WORKDIR}/usr/bin/haddock-ghc-${ghc_v}" \
- "${WORKDIR}/usr/bin/hp2ps" \
- "${WORKDIR}/usr/bin/hpc" \
- "${WORKDIR}/usr/bin/hsc2hs" \
- "${WORKDIR}/usr/bin/runghc-${ghc_v}" \
- "${WORKDIR}/usr/$(get_libdir)/${PN}-${ghc_v}/package.conf.d/"*
-
- # this one we will use to regenerate cache
- # so it should point to current tree location
- relocate_path "/usr" "${WORKDIR}/usr" "$gp_back"
-
- if use prefix; then
- hprefixify "${bin_libpath}"/${PN}*/settings
- fi
-
- # regenerate the binary package cache
- "$gp_back" recache || die "failed to update cache after relocation"
- rm "$gp_back"
-}
-
-ghc-check-reqs() {
- # These are pessimistic values (slightly bigger than worst-case)
- # Worst case is UNREG USE=profile ia64. See bug #611866 for some
- # numbers on various arches.
- CHECKREQS_DISK_BUILD=8G
- CHECKREQS_DISK_USR=2G
- # USE=binary roughly takes
- use binary && CHECKREQS_DISK_BUILD=4G
-
- "$@"
-}
-
-pkg_pretend() {
- ghc-check-reqs check-reqs_pkg_pretend
-}
-
-pkg_setup() {
- ghc-check-reqs check-reqs_pkg_setup
-
- # quiet portage about prebuilt binaries
- use binary && QA_PREBUILT="*"
-
- [[ ${MERGE_TYPE} == binary ]] && return
-
- if use ghcbootstrap; then
- ewarn "You requested ghc bootstrapping, this is usually only used"
- ewarn "by Gentoo developers to make binary .tbz2 packages."
-
- [[ -z $(type -P ghc) ]] && \
- die "Could not find a ghc to bootstrap with."
- else
- if ! yet_binary; then
- eerror "Please try emerging with USE=ghcbootstrap and report build"
- eerror "sucess or failure to the haskell team (haskell@gentoo.org)"
- die "No binary available for '${ARCH}' arch yet, USE=ghcbootstrap"
- fi
- fi
-}
-
-src_unpack() {
- # Create the ${S} dir if we're using the binary version
- use binary && mkdir "${S}"
-
- # the Solaris and Darwin binaries from ghc (maeder) need to be
- # unpacked separately, so prevent them from being unpacked
- local ONLYA=${A}
- case ${CHOST} in
- *-darwin* | *-solaris*) ONLYA=${GHC_P}-src.tar.xz ;;
- esac
- unpack ${ONLYA}
-}
-
-src_prepare() {
- ghc_setup_cflags
-
- if ! use ghcbootstrap && [[ ${CHOST} != *-darwin* && ${CHOST} != *-solaris* ]]; then
- # Modify the wrapper script from the binary tarball to use GHC_PERSISTENT_FLAGS.
- # See bug #313635.
- sed -i -e "s|\"\$topdir\"|\"\$topdir\" ${GHC_PERSISTENT_FLAGS}|" \
- "${WORKDIR}/usr/bin/ghc-${BIN_PV}"
-
- # allow hardened users use vanilla binary to bootstrap ghc
- # ghci uses mmap with rwx protection at it implements dynamic
- # linking on it's own (bug #299709)
- pax-mark -m "${WORKDIR}/usr/$(get_libdir)/${PN}-${BIN_PV}/bin/ghc"
- fi
-
- if use binary; then
- if use prefix; then
- relocate_ghc "${EPREFIX}"
- fi
-
- # Move unpacked files to the expected place
- mv "${WORKDIR}/usr" "${S}"
- eapply_user
- else
- if ! use ghcbootstrap; then
- case ${CHOST} in
- *-darwin* | *-solaris*)
- # UPDATE ME for ghc-7
- mkdir "${WORKDIR}"/ghc-bin-installer || die
- pushd "${WORKDIR}"/ghc-bin-installer > /dev/null || die
- use sparc-solaris && unpack ghc-6.10.4-sparc-sun-solaris2.tar.bz2
- use x86-solaris && unpack ghc-7.0.3-i386-unknown-solaris2.tar.bz2
- use x64-macos && unpack ghc-7.4.1-x86_64-apple-darwin.tar.bz2
- popd > /dev/null
-
- pushd "${WORKDIR}"/ghc-bin-installer/ghc-[67].?*.? > /dev/null || die
- # fix the binaries so they run, on Solaris we need an
- # LD_LIBRARY_PATH which has our prefix libdirs, on
- # Darwin we need to replace the frameworks with our libs
- # from the prefix fix before installation, because some
- # of the tools are actually used during configure/make
- if [[ ${CHOST} == *-solaris* ]] ; then
- export LD_LIBRARY_PATH="${EPREFIX}/$(get_libdir):${EPREFIX}/usr/$(get_libdir):${LD_LIBRARY_PATH}"
- elif [[ ${CHOST} == *-darwin* ]] ; then
- local readline_framework=GNUreadline.framework/GNUreadline
- local gmp_framework=/opt/local/lib/libgmp.10.dylib
- local ncurses_file=/opt/local/lib/libncurses.5.dylib
- for binary in $(scanmacho -BRE MH_EXECUTE -F '%F' .) ; do
- install_name_tool -change \
- ${readline_framework} \
- "${EPREFIX}"/lib/libreadline.dylib \
- ${binary} || die
- install_name_tool -change \
- ${gmp_framework} \
- "${EPREFIX}"/usr/lib/libgmp.dylib \
- ${binary} || die
- install_name_tool -change \
- ${ncurses_file} \
- "${EPREFIX}"/usr/lib/libncurses.dylib \
- ${binary} || die
- done
- # we don't do frameworks!
- sed -i \
- -e 's/\(frameworks = \)\["GMP"\]/\1[]/g' \
- -e 's/\(extraLibraries = \)\["m"\]/\1["m","gmp"]/g' \
- rts/package.conf.in || die
- fi
-
- # it is autoconf, but we really don't want to give it too
- # many arguments, in fact we do the make in-place anyway
- ./configure --prefix="${WORKDIR}"/usr || die
- make install || die
- popd > /dev/null
- ;;
- *)
- relocate_ghc "${WORKDIR}"
- ;;
- esac
- fi
-
- sed -i -e "s|\"\$topdir\"|\"\$topdir\" ${GHC_PERSISTENT_FLAGS}|" \
- "${S}/ghc/ghc.wrapper"
-
- cd "${S}" # otherwise eapply will break
-
- eapply "${FILESDIR}"/${PN}-7.0.4-CHOST-prefix.patch
- eapply "${FILESDIR}"/${PN}-8.2.1-darwin.patch
- eapply "${FILESDIR}"/${PN}-7.8.3-prim-lm.patch
- eapply "${FILESDIR}"/${PN}-8.0.2-no-relax-everywhere.patch
- eapply "${FILESDIR}"/${PN}-8.4.2-allow-cross-bootstrap.patch
- eapply "${FILESDIR}"/${PN}-8.6.5-numa.patch
- # rumors say this is fixed properly in 8.8.3. Let's check!
- #eapply "${FILESDIR}"/${PN}-8.8.1-revert-CPP.patch
-
- # a bunch of crosscompiler patches
- # needs newer version:
- #eapply "${FILESDIR}"/${PN}-8.2.1_rc1-hp2ps-cross.patch
-
- # mingw32 target
- pushd "${S}/libraries/Win32"
- eapply "${FILESDIR}"/${PN}-8.2.1_rc1-win32-cross-2-hack.patch # bad workaround
- popd
-
- bump_libs
-
- eapply_user
- # as we have changed the build system
- eautoreconf
- fi
-}
-
-src_configure() {
- if ! use binary; then
- # initialize build.mk
- echo '# Gentoo changes' > mk/build.mk
-
- # Put docs into the right place, ie /usr/share/doc/ghc-${GHC_PV}
- echo "docdir = ${EPREFIX}/usr/share/doc/$(cross)${P}" >> mk/build.mk
- echo "htmldir = ${EPREFIX}/usr/share/doc/$(cross)${P}" >> mk/build.mk
-
- # We also need to use the GHC_FLAGS flags when building ghc itself
- echo "SRC_HC_OPTS+=${HCFLAGS} ${GHC_FLAGS}" >> mk/build.mk
- echo "SRC_CC_OPTS+=${CFLAGS}" >> mk/build.mk
- echo "SRC_LD_OPTS+=${LDFLAGS}" >> mk/build.mk
- # Speed up initial Cabal bootstrap
- echo "utils/ghc-cabal_dist_EXTRA_HC_OPTS+=$(ghc-make-args)" >> mk/build.mk
-
- # We can't depend on haddock except when bootstrapping when we
- # must build docs and include them into the binary .tbz2 package
- # app-text/dblatex is not in portage, can not build PDF or PS
- echo "BUILD_SPHINX_PDF = NO" >> mk/build.mk
- echo "BUILD_SPHINX_HTML = $(usex doc YES NO)" >> mk/build.mk
- echo "BUILD_MAN = $(usex doc YES NO)" >> mk/build.mk
-
- # this controls presence on 'xhtml' and 'haddock' in final install
- echo "HADDOCK_DOCS = YES" >> mk/build.mk
-
- # not used outside of ghc's test
- if [[ -n ${GHC_BUILD_DPH} ]]; then
- echo "BUILD_DPH = YES" >> mk/build.mk
- else
- echo "BUILD_DPH = NO" >> mk/build.mk
- fi
-
- # Any non-native build has to skip as it needs
- # target haddock binary to be runnabine.
- if ! is_native; then
- # disable docs generation as it requires running stage2
- echo "HADDOCK_DOCS=NO" >> mk/build.mk
- echo "BUILD_SPHINX_HTML=NO" >> mk/build.mk
- echo "BUILD_SPHINX_PDF=NO" >> mk/build.mk
- fi
-
- if is_crosscompile; then
- # Install ghc-stage1 crosscompiler instead of
- # ghc-stage2 cross-built compiler.
- echo "Stage1Only=YES" >> mk/build.mk
- fi
-
- # allows overriding build flavours for libraries:
- # v - vanilla (static libs)
- # p - profiled
- # dyn - shared libraries
- # example: GHC_LIBRARY_WAYS="v dyn"
- if [[ -n ${GHC_LIBRARY_WAYS} ]]; then
- echo "GhcLibWays=${GHC_LIBRARY_WAYS}" >> mk/build.mk
- fi
- echo "BUILD_PROF_LIBS = $(usex profile YES NO)" >> mk/build.mk
-
- # Get ghc from the unpacked binary .tbz2
- # except when bootstrapping we just pick ghc up off the path
- if ! use ghcbootstrap; then
- export PATH="${WORKDIR}/usr/bin:${PATH}"
- fi
-
- echo "INTEGER_LIBRARY = $(usex gmp integer-gmp integer-simple)" >> mk/build.mk
-
- # don't strip anything. Very useful when stage2 SIGSEGVs on you
- echo "STRIP_CMD = :" >> mk/build.mk
-
- local econf_args=()
-
- # GHC embeds toolchain it was built by and uses it later.
- # Don't allow things like ccache or versioned binary slip.
- # We use stable thing across gcc upgrades.
- # User can use EXTRA_ECONF=CC=... to override this default.
- econf_args+=(
- AR=${CTARGET}-ar
- CC=${CTARGET}-gcc
- # these should be inferred by GHC but ghc defaults
- # to using bundled tools on windows.
- Windres=${CTARGET}-windres
- DllWrap=${CTARGET}-dllwrap
- # we set the linker explicitly below
- --disable-ld-override
- )
- case ${CTARGET} in
- arm*)
- # ld.bfd-2.28 does not work for ghc. Force ld.gold
- # instead. This should be removed once gentoo gets
- # a fix for R_ARM_COPY bug: https://sourceware.org/PR16177
- econf_args+=(LD=${CTARGET}-ld.gold)
- ;;
- sparc*)
- # ld.gold-2.28 does not work for ghc. Force ld.bfd
- # instead. This should be removed once gentoo gets
- # a fix for missing --no-relax support bug:
- # https://sourceware.org/ml/binutils/2017-07/msg00183.html
- econf_args+=(LD=${CTARGET}-ld.bfd)
- ;;
- *)
- econf_args+=(LD=${CTARGET}-ld)
- esac
-
- if [[ ${CBUILD} != ${CHOST} ]]; then
- # GHC bug: ghc claims not to support cross-building.
- # It does, but does not distinct --host= value
- # for stage1 and stage2 compiler.
- econf_args+=(--host=${CBUILD})
- fi
-
- if use ghcmakebinary; then
- # When building booting libary we are trying to
- # bundle or restrict most of external depends
- # with unstable ABI:
- # - embed libffi (default GHC behaviour)
- # - disable ncurses support for ghci (via haskeline)
- # https://bugs.gentoo.org/557478
- # - disable ncurses support for ghc-pkg
- echo "libraries/haskeline_CONFIGURE_OPTS += --flag=-terminfo" >> mk/build.mk
- echo "utils/ghc-pkg_HC_OPTS += -DBOOTSTRAPPING" >> mk/build.mk
- elif is_native; then
- # using ${GTARGET}'s libffi is not supported yet:
- # GHC embeds full path for ffi includes without /usr/${CTARGET} account.
- econf_args+=(--with-system-libffi)
- econf_args+=(--with-ffi-includes=$($(tc-getPKG_CONFIG) libffi --cflags-only-I | sed -e 's@^-I@@'))
- fi
-
- einfo "Final mk/build.mk:"
- cat mk/build.mk || die
-
- econf ${econf_args[@]} \
- --enable-bootstrap-with-devel-snapshot \
- $(use elfutils && echo --enable-dwarf-unwind) \
- $(use_enable numa)
-
- if [[ ${PV} == *9999* ]]; then
- GHC_PV="$(grep 'S\[\"PACKAGE_VERSION\"\]' config.status | sed -e 's@^.*=\"\(.*\)\"@\1@')"
- GHC_P=${PN}-${GHC_PV}
- fi
- fi # ! use binary
-}
-
-src_compile() {
- if ! use binary; then
- # Stage1Only crosscompiler does not build stage2
- if ! is_crosscompile; then
- # 1. build/pax-mark compiler binary first
- emake ghc/stage2/build/tmp/ghc-stage2
- # 2. pax-mark (bug #516430)
- pax-mark -m ghc/stage2/build/tmp/ghc-stage2
- # 2. build/pax-mark haddock using ghc-stage2
- if is_native; then
- # non-native build does not build haddock
- # due to HADDOCK_DOCS=NO, but it could.
- emake utils/haddock/dist/build/tmp/haddock
- pax-mark -m utils/haddock/dist/build/tmp/haddock
- fi
- fi
- # 3. and then all the rest
- emake all
- fi # ! use binary
-}
-
-src_test() {
- # TODO: deal with:
- # - sandbox (pollutes environment)
- # - extra packages (to extend testsuite coverage)
- # bits are taken from 'validate'
- local make_test_target='test' # can be fulltest
- # not 'emake' as testsuite uses '$MAKE' without jobserver available
- make $make_test_target stage=2 THREADS=$(makeopts_jobs)
-}
-
-src_install() {
- if use binary; then
- use prefix && mkdir -p "${ED}"
- mv "${S}/usr" "${ED}"
- else
- [[ -f VERSION ]] || emake VERSION
-
- # -j1 due to a rare race in install script:
- # make --no-print-directory -f ghc.mk phase=final install
- # /usr/lib/portage/python3.4/ebuild-helpers/xattr/install -c -m 755 \
- # -d "/tmp/portage-tmpdir/portage/cross-armv7a-unknown-linux-gnueabi/ghc-9999/image/usr/lib64/armv7a-unknown-linux-gnueabi-ghc-8.3.20170404/include"
- # /usr/lib/portage/python3.4/ebuild-helpers/xattr/install -c -m 644 utils/hsc2hs/template-hsc.h \
- # "/tmp/portage-tmpdir/portage/cross-armv7a-unknown-linux-gnueabi/ghc-9999/image/usr/lib64/armv7a-unknown-linux-gnueabi-ghc-8.3.20170404"
- # /usr/bin/install: cannot create regular file \
- # '/tmp/portage-tmpdir/portage/cross-armv7a-unknown-linux-gnueabi/ghc-9999/image/usr/lib64/armv7a-unknown-linux-gnueabi-ghc-8.3.20170404': No such file or directory
- emake -j1 install DESTDIR="${D}"
-
- # Skip for cross-targets as they all share target location:
- # /usr/share/doc/ghc-9999/
- if ! is_crosscompile; then
- dodoc "distrib/README" "ANNOUNCE" "LICENSE" "VERSION"
- fi
-
- # rename ghc-shipped files to avoid collision
- # of external packages. Motivating example:
- # user had installed:
- # dev-lang/ghc-7.8.4-r0 (with transformers-0.3.0.0)
- # dev-haskell/transformers-0.4.2.0
- # then user tried to update to
- # dev-lang/ghc-7.8.4-r1 (with transformers-0.4.2.0)
- # this will lead to single .conf file collision.
- local shipped_conf renamed_conf
- local package_confdir="${ED}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d"
- for shipped_conf in "${package_confdir}"/*.conf; do
- # rename 'pkg-ver-id.conf' to 'pkg-ver-id-gentoo-${PF}.conf'
- renamed_conf=${shipped_conf%.conf}-gentoo-${PF}.conf
- mv "${shipped_conf}" "${renamed_conf}" || die
- done
-
- # remove link, but leave 'haddock-${GHC_P}'
- rm -f "${ED}"/usr/bin/$(cross)haddock
-
- if ! is_crosscompile; then
- newbashcomp "${FILESDIR}"/ghc-bash-completion ghc-pkg
- newbashcomp utils/completion/ghc.bash ghc
- fi
- fi
-
- # path to the package.cache
- local package_confdir="${ED}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d"
- PKGCACHE="${package_confdir}"/package.cache
- # copy the package.conf.d, including timestamp, save it so we can help
- # users that have a broken package.conf.d
- cp -pR "${package_confdir}"{,.initial} || die "failed to backup intial package.conf.d"
-
- # copy the package.conf, including timestamp, save it so we later can put it
- # back before uninstalling, or when upgrading.
- cp -p "${PKGCACHE}"{,.shipped} \
- || die "failed to copy package.conf.d/package.cache"
-
- if is_crosscompile; then
- # When we build a cross-compiler the layout is the following:
- # usr/lib/${CTARGET}-ghc-${VER}/ contains target libraries
- # but
- # usr/lib/${CTARGET}-ghc-${VER}/bin/ directory
- # containst host binaries (modulo bugs).
-
- # Portage's stripping mechanism does not skip stripping
- # foreign binaries. This frequently causes binaries to be
- # broken.
- #
- # Thus below we disable stripping of target libraries and allow
- # stripping hosts executables.
- dostrip -x "/usr/$(get_libdir)/$(cross)${GHC_P}"
- dostrip "/usr/$(get_libdir)/$(cross)${GHC_P}/bin"
- fi
-}
-
-pkg_preinst() {
- # have we got an earlier version of ghc installed?
- if has_version "<${CATEGORY}/${PF}"; then
- haskell_updater_warn="1"
- fi
-}
-
-pkg_postinst() {
- ghc-reregister
-
- # path to the package.cache
- PKGCACHE="${EROOT}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d/package.cache"
-
- # give the cache a new timestamp, it must be as recent as
- # the package.conf.d directory.
- touch "${PKGCACHE}"
-
- if [[ "${haskell_updater_warn}" == "1" ]]; then
- ewarn
- ewarn "\e[1;31m************************************************************************\e[0m"
- ewarn
- ewarn "You have just upgraded from an older version of GHC."
- ewarn "You may have to run"
- ewarn " 'haskell-updater'"
- ewarn "to rebuild all ghc-based Haskell libraries."
- ewarn
- ewarn "\e[1;31m************************************************************************\e[0m"
- ewarn
- fi
-}
-
-pkg_prerm() {
- PKGCACHE="${EROOT}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d/package.cache"
- rm -rf "${PKGCACHE}"
-
- cp -p "${PKGCACHE}"{.shipped,}
-}
-
-pkg_postrm() {
- ghc-package_pkg_postrm
-}
diff --git a/dev-lang/ghc/ghc-8.8.4.ebuild b/dev-lang/ghc/ghc-8.8.4.ebuild
deleted file mode 100644
index 0ad88139e259..000000000000
--- a/dev-lang/ghc/ghc-8.8.4.ebuild
+++ /dev/null
@@ -1,809 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-# to make make a crosscompiler use crossdev and symlink ghc tree into
-# cross overlay. result would look like 'cross-sparc-unknown-linux-gnu/ghc'
-export CBUILD=${CBUILD:-${CHOST}}
-export CTARGET=${CTARGET:-${CHOST}}
-if [[ ${CTARGET} = ${CHOST} ]] ; then
- if [[ ${CATEGORY/cross-} != ${CATEGORY} ]] ; then
- export CTARGET=${CATEGORY/cross-}
- fi
-fi
-
-inherit autotools bash-completion-r1 eutils flag-o-matic ghc-package
-inherit multilib multiprocessing pax-utils toolchain-funcs prefix
-inherit check-reqs
-DESCRIPTION="The Glasgow Haskell Compiler"
-HOMEPAGE="https://www.haskell.org/ghc/"
-
-# we don't have any binaries yet
-arch_binaries=""
-
-BIN_PV=${PV}
-# sorted!
-#arch_binaries="$arch_binaries alpha? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-alpha.tbz2 )"
-#arch_binaries="$arch_binaries arm? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-armv7a-hardfloat-linux-gnueabi.tbz2 )"
-#arch_binaries="$arch_binaries arm64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-aarch64-unknown-linux-gnu.tbz2 )"
-arch_binaries="$arch_binaries amd64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-x86_64-pc-linux-gnu.tbz2 )"
-#arch_binaries="$arch_binaries ia64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ia64-fixed-fiw.tbz2 )"
-#arch_binaries="$arch_binaries ppc? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ppc.tbz2 )"
-#arch_binaries="$arch_binaries ppc64? ( !big-endian? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-powerpc64le-unknown-linux-gnu.tbz2 ) )"
-#arch_binaries="$arch_binaries sparc? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-sparc.tbz2 )"
-arch_binaries="$arch_binaries x86? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-i686-pc-linux-gnu.tbz2 )"
-
-# various ports:
-#arch_binaries="$arch_binaries x86-fbsd? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-x86-fbsd.tbz2 )"
-
-# 0 - yet
-yet_binary() {
- case "${ARCH}" in
- #alpha) return 0 ;;
- #arm64) return 0 ;;
- #arm) return 0 ;;
- amd64) return 0 ;;
- #ia64) return 0 ;;
- #ppc) return 0 ;;
- #ppc64)
- # use big-endian && return 1
- # return 0
- # ;;
- #sparc) return 0 ;;
- x86) return 0 ;;
- *) return 1 ;;
- esac
-}
-
-GHC_PV=${PV}
-#GHC_PV=8.6.0.20180810 # uncomment only for -alpha, -beta, -rc ebuilds
-GHC_P=${PN}-${GHC_PV} # using ${P} is almost never correct
-
-SRC_URI="!binary? (
- https://downloads.haskell.org/~ghc/${PV/_/-}/${GHC_P}-src.tar.xz
- test? ( https://downloads.haskell.org/~ghc/${PV/_/-}/${GHC_P}-testsuite.tar.xz )
-)"
-S="${WORKDIR}"/${GHC_P}
-
-[[ -n $arch_binaries ]] && SRC_URI+=" !ghcbootstrap? ( $arch_binaries )"
-
-BUMP_LIBRARIES=(
- # "hackage-name hackage-version"
-)
-
-LICENSE="BSD"
-SLOT="0/${PV}"
-KEYWORDS="~amd64 ~x86"
-IUSE="big-endian doc elfutils ghcbootstrap ghcmakebinary +gmp numa profile test"
-IUSE+=" binary"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- >=dev-lang/perl-5.6.1
- dev-libs/gmp:0=
- sys-libs/ncurses:0=[unicode]
- elfutils? ( dev-libs/elfutils )
- !ghcmakebinary? ( dev-libs/libffi:= )
- numa? ( sys-process/numactl )
-"
-
-# This set of dependencies is needed to run
-# prebuilt ghc. We specifically avoid ncurses
-# dependency with:
-# utils/ghc-pkg_HC_OPTS += -DBOOTSTRAPPING
-PREBUILT_BINARY_DEPENDS="
- !prefix? ( elibc_glibc? ( >=sys-libs/glibc-2.17 ) )
-"
-# This set of dependencies is needed to install
-# ghc[binary] in system. terminfo package is linked
-# against ncurses.
-PREBUILT_BINARY_RDEPENDS="${PREBUILT_BINARY_DEPENDS}
- sys-libs/ncurses:0/6
-"
-
-RDEPEND+="binary? ( ${PREBUILT_BINARY_RDEPENDS} )"
-
-DEPEND="${RDEPEND}
- doc? ( app-text/docbook-xml-dtd:4.2
- app-text/docbook-xml-dtd:4.5
- app-text/docbook-xsl-stylesheets
- dev-python/sphinx
- >=dev-libs/libxslt-1.1.2 )
- !ghcbootstrap? ( ${PREBUILT_BINARY_DEPENDS} )"
-
-# we build binaries without profiling support
-REQUIRED_USE="
- ?? ( ghcbootstrap binary )
- ?? ( profile binary )
-"
-
-# haskell libraries built with cabal in configure mode, #515354
-QA_CONFIGURE_OPTIONS+=" --with-compiler --with-gcc"
-
-is_crosscompile() {
- [[ ${CHOST} != ${CTARGET} ]]
-}
-
-is_native() {
- [[ ${CHOST} == ${CBUILD} ]] && [[ ${CHOST} == ${CTARGET} ]]
-}
-
-if ! is_crosscompile; then
- PDEPEND="!ghcbootstrap? ( >=app-admin/haskell-updater-1.2 )"
-fi
-
-# returns tool prefix for crosscompiler.
-# Example:
-# CTARGET=armv7a-unknown-linux-gnueabi
-# CHOST=x86_64-pc-linux-gnu
-# "armv7a-unknown-linux-gnueabi-"
-# CTARGET=${CHOST}
-# ""
-# Used in tools and library prefix:
-# "${ED}"/usr/bin/$(cross)haddock
-# "${ED}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d"
-
-cross() {
- if is_crosscompile; then
- echo "${CTARGET}-"
- else
- echo ""
- fi
-}
-
-append-ghc-cflags() {
- local persistent compile assemble link
- local flag ghcflag
-
- for flag in $*; do
- case ${flag} in
- persistent) persistent="yes";;
- compile) compile="yes";;
- assemble) assemble="yes";;
- link) link="yes";;
- *)
- [[ ${compile} ]] && ghcflag="-optc${flag}" CFLAGS+=" ${flag}" && GHC_FLAGS+=" ${ghcflag}" &&
- [[ ${persistent} ]] && GHC_PERSISTENT_FLAGS+=" ${ghcflag}"
- [[ ${assemble} ]] && ghcflag="-opta${flag}" CFLAGS+=" ${flag}" && GHC_FLAGS+=" ${ghcflag}" &&
- [[ ${persistent} ]] && GHC_PERSISTENT_FLAGS+=" ${ghcflag}"
- [[ ${link} ]] && ghcflag="-optl${flag}" LDFLAGS+=" ${flag}" && GHC_FLAGS+=" ${ghcflag}" &&
- [[ ${persistent} ]] && GHC_PERSISTENT_FLAGS+=" ${ghcflag}"
- ;;
- esac
- done
-}
-
-# $1 - lib name (under libraries/)
-# $2 - lib version
-# example: bump_lib "transformers" "0.4.2.0"
-bump_lib() {
- local pn=$1 pv=$2
- local p=${pn}-${pv}
- local f
-
- einfo "Bumping ${pn} up to ${pv}"
-
- for f in ghc.mk GNUmakefile; do
- mv libraries/"${pn}"/$f "${WORKDIR}"/"${p}"/$f || die
- done
- mv libraries/"${pn}" "${WORKDIR}"/"${pn}".old || die
- mv "${WORKDIR}"/"${p}" libraries/"${pn}" || die
-}
-
-update_SRC_URI() {
- local p pn pv
- for p in "${BUMP_LIBRARIES[@]}"; do
- set -- $p
- pn=$1 pv=$2
-
- SRC_URI+=" https://hackage.haskell.org/package/${pn}-${pv}/${pn}-${pv}.tar.gz"
- done
-}
-
-update_SRC_URI
-
-bump_libs() {
- local p pn pv
- for p in "${BUMP_LIBRARIES[@]}"; do
- set -- $p
- pn=$1 pv=$2
-
- bump_lib "${pn}" "${pv}"
- done
-}
-
-ghc_setup_cflags() {
- # TODO: plumb CFLAGS and BUILD_CFLAGS to respective CONF_CC_OPTS_STAGE<N>
- if ! is_native; then
- export CFLAGS=${GHC_CFLAGS-"-O2 -pipe"}
- export LDFLAGS=${GHC_LDFLAGS-"-Wl,-O1"}
- einfo "Crosscompiling mode:"
- einfo " CHOST: ${CHOST}"
- einfo " CTARGET: ${CTARGET}"
- einfo " CFLAGS: ${CFLAGS}"
- einfo " LDFLAGS: ${LDFLAGS}"
- einfo " prefix: $(cross)"
- return
- fi
- # We need to be very careful with the CFLAGS we ask ghc to pass through to
- # gcc. There are plenty of flags which will make gcc produce output that
- # breaks ghc in various ways. The main ones we want to pass through are
- # -mcpu / -march flags. These are important for arches like alpha & sparc.
- # We also use these CFLAGS for building the C parts of ghc, ie the rts.
- strip-flags
- strip-unsupported-flags
-
- # Cmm can't parse line numbers #482086
- replace-flags -ggdb[3-9] -ggdb2
-
- GHC_FLAGS=""
- GHC_PERSISTENT_FLAGS=""
- for flag in ${CFLAGS}; do
- case ${flag} in
-
- # Ignore extra optimisation (ghc passes -O to gcc anyway)
- # -O2 and above break on too many systems
- -O*) ;;
-
- # Arch and ABI flags are what we're really after
- -m*) append-ghc-cflags compile assemble ${flag};;
-
- # Sometimes it's handy to see backtrace of RTS
- # to get an idea what happens there
- -g*) append-ghc-cflags compile ${flag};;
-
- # Ignore all other flags, including all -f* flags
- esac
- done
-
- for flag in ${LDFLAGS}; do
- append-ghc-cflags link ${flag}
- done
-
- # GHC uses ${CBUILD}-gcc, ${CHOST}-gcc and ${CTARGET}-gcc at a single build.
- # Skip any gentoo-specific tweaks for cross-case to avoid passing unsupported
- # options to gcc.
- if is_native; then
- # hardened-gcc needs to be disabled, because our prebuilt binaries/libraries
- # are not built with fPIC, bug #606666
- gcc-specs-pie && append-ghc-cflags persistent compile link -nopie
- tc-is-gcc && ver_test $(gcc-version) -ge 6.3 && if ! use ghcbootstrap; then
- # gcc-6.3 has support for -no-pie upstream, but spelling differs from
- # gentoo-specific '-nopie'. We enable it in non-bootstrap to allow
- # hardened users try '-pie' in USE=ghcbootstrap mode.
- append-ghc-cflags compile link -no-pie
- fi
-
- # prevent from failing to build unregisterised ghc:
- # https://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg171602.html
- use ppc64 && append-ghc-cflags persistent compile -mminimal-toc
- fi
-}
-
-# substitutes string $1 to $2 in files $3 $4 ...
-relocate_path() {
- local from=$1
- local to=$2
- shift 2
- local file=
- for file in "$@"
- do
- sed -i -e "s|$from|$to|g" \
- "$file" || die "path relocation failed for '$file'"
- done
-}
-
-# changes hardcoded ghc paths and updates package index
-# $1 - new absolute root path
-relocate_ghc() {
- local to=$1 ghc_v=${BIN_PV}
-
- # libdir for prebuilt binary and for current system may mismatch
- # It does for prefix installation for example: bug #476998
- local bin_ghc_prefix=${WORKDIR}/usr
- local bin_libpath=$(echo "${bin_ghc_prefix}"/lib*)
- local bin_libdir=${bin_libpath#${bin_ghc_prefix}/}
-
- # backup original script to use it later after relocation
- local gp_back="${T}/ghc-pkg-${ghc_v}-orig"
- cp "${WORKDIR}/usr/bin/ghc-pkg-${ghc_v}" "$gp_back" || die "unable to backup ghc-pkg wrapper"
-
- if [[ ${bin_libdir} != $(get_libdir) ]]; then
- einfo "Relocating '${bin_libdir}' to '$(get_libdir)' (bug #476998)"
- # moving the dir itself is not strictly needed
- # but then USE=binary would result in installing
- # in '${bin_libdir}'
- mv "${bin_ghc_prefix}/${bin_libdir}" "${bin_ghc_prefix}/$(get_libdir)" || die
-
- relocate_path "/usr/${bin_libdir}" "/usr/$(get_libdir)" \
- "${WORKDIR}/usr/bin/ghc-${ghc_v}" \
- "${WORKDIR}/usr/bin/ghci-${ghc_v}" \
- "${WORKDIR}/usr/bin/ghc-pkg-${ghc_v}" \
- "${WORKDIR}/usr/bin/hsc2hs" \
- "${WORKDIR}/usr/bin/runghc-${ghc_v}" \
- "$gp_back" \
- "${WORKDIR}/usr/$(get_libdir)/${PN}-${ghc_v}/package.conf.d/"*
- fi
-
- # Relocate from /usr to ${EPREFIX}/usr
- relocate_path "/usr" "${to}/usr" \
- "${WORKDIR}/usr/bin/ghc-${ghc_v}" \
- "${WORKDIR}/usr/bin/ghci-${ghc_v}" \
- "${WORKDIR}/usr/bin/ghc-pkg-${ghc_v}" \
- "${WORKDIR}/usr/bin/haddock-ghc-${ghc_v}" \
- "${WORKDIR}/usr/bin/hp2ps" \
- "${WORKDIR}/usr/bin/hpc" \
- "${WORKDIR}/usr/bin/hsc2hs" \
- "${WORKDIR}/usr/bin/runghc-${ghc_v}" \
- "${WORKDIR}/usr/$(get_libdir)/${PN}-${ghc_v}/package.conf.d/"*
-
- # this one we will use to regenerate cache
- # so it should point to current tree location
- relocate_path "/usr" "${WORKDIR}/usr" "$gp_back"
-
- if use prefix; then
- hprefixify "${bin_libpath}"/${PN}*/settings
- fi
-
- # regenerate the binary package cache
- "$gp_back" recache || die "failed to update cache after relocation"
- rm "$gp_back"
-}
-
-ghc-check-reqs() {
- # These are pessimistic values (slightly bigger than worst-case)
- # Worst case is UNREG USE=profile ia64. See bug #611866 for some
- # numbers on various arches.
- CHECKREQS_DISK_BUILD=8G
- CHECKREQS_DISK_USR=2G
- # USE=binary roughly takes
- use binary && CHECKREQS_DISK_BUILD=4G
-
- "$@"
-}
-
-pkg_pretend() {
- ghc-check-reqs check-reqs_pkg_pretend
-}
-
-pkg_setup() {
- ghc-check-reqs check-reqs_pkg_setup
-
- # quiet portage about prebuilt binaries
- use binary && QA_PREBUILT="*"
-
- [[ ${MERGE_TYPE} == binary ]] && return
-
- if use ghcbootstrap; then
- ewarn "You requested ghc bootstrapping, this is usually only used"
- ewarn "by Gentoo developers to make binary .tbz2 packages."
-
- [[ -z $(type -P ghc) ]] && \
- die "Could not find a ghc to bootstrap with."
- else
- if ! yet_binary; then
- eerror "Please try emerging with USE=ghcbootstrap and report build"
- eerror "sucess or failure to the haskell team (haskell@gentoo.org)"
- die "No binary available for '${ARCH}' arch yet, USE=ghcbootstrap"
- fi
- fi
-}
-
-src_unpack() {
- # Create the ${S} dir if we're using the binary version
- use binary && mkdir "${S}"
-
- # the Solaris and Darwin binaries from ghc (maeder) need to be
- # unpacked separately, so prevent them from being unpacked
- local ONLYA=${A}
- case ${CHOST} in
- *-darwin* | *-solaris*) ONLYA=${GHC_P}-src.tar.xz ;;
- esac
- unpack ${ONLYA}
-}
-
-src_prepare() {
- ghc_setup_cflags
-
- if ! use ghcbootstrap && [[ ${CHOST} != *-darwin* && ${CHOST} != *-solaris* ]]; then
- # Modify the wrapper script from the binary tarball to use GHC_PERSISTENT_FLAGS.
- # See bug #313635.
- sed -i -e "s|\"\$topdir\"|\"\$topdir\" ${GHC_PERSISTENT_FLAGS}|" \
- "${WORKDIR}/usr/bin/ghc-${BIN_PV}"
-
- # allow hardened users use vanilla binary to bootstrap ghc
- # ghci uses mmap with rwx protection at it implements dynamic
- # linking on it's own (bug #299709)
- pax-mark -m "${WORKDIR}/usr/$(get_libdir)/${PN}-${BIN_PV}/bin/ghc"
- fi
-
- if use binary; then
- if use prefix; then
- relocate_ghc "${EPREFIX}"
- fi
-
- # Move unpacked files to the expected place
- mv "${WORKDIR}/usr" "${S}"
- eapply_user
- else
- if ! use ghcbootstrap; then
- case ${CHOST} in
- *-darwin* | *-solaris*)
- # UPDATE ME for ghc-7
- mkdir "${WORKDIR}"/ghc-bin-installer || die
- pushd "${WORKDIR}"/ghc-bin-installer > /dev/null || die
- use sparc-solaris && unpack ghc-6.10.4-sparc-sun-solaris2.tar.bz2
- use x86-solaris && unpack ghc-7.0.3-i386-unknown-solaris2.tar.bz2
- use x64-macos && unpack ghc-7.4.1-x86_64-apple-darwin.tar.bz2
- popd > /dev/null
-
- pushd "${WORKDIR}"/ghc-bin-installer/ghc-[67].?*.? > /dev/null || die
- # fix the binaries so they run, on Solaris we need an
- # LD_LIBRARY_PATH which has our prefix libdirs, on
- # Darwin we need to replace the frameworks with our libs
- # from the prefix fix before installation, because some
- # of the tools are actually used during configure/make
- if [[ ${CHOST} == *-solaris* ]] ; then
- export LD_LIBRARY_PATH="${EPREFIX}/$(get_libdir):${EPREFIX}/usr/$(get_libdir):${LD_LIBRARY_PATH}"
- elif [[ ${CHOST} == *-darwin* ]] ; then
- local readline_framework=GNUreadline.framework/GNUreadline
- local gmp_framework=/opt/local/lib/libgmp.10.dylib
- local ncurses_file=/opt/local/lib/libncurses.5.dylib
- for binary in $(scanmacho -BRE MH_EXECUTE -F '%F' .) ; do
- install_name_tool -change \
- ${readline_framework} \
- "${EPREFIX}"/lib/libreadline.dylib \
- ${binary} || die
- install_name_tool -change \
- ${gmp_framework} \
- "${EPREFIX}"/usr/lib/libgmp.dylib \
- ${binary} || die
- install_name_tool -change \
- ${ncurses_file} \
- "${EPREFIX}"/usr/lib/libncurses.dylib \
- ${binary} || die
- done
- # we don't do frameworks!
- sed -i \
- -e 's/\(frameworks = \)\["GMP"\]/\1[]/g' \
- -e 's/\(extraLibraries = \)\["m"\]/\1["m","gmp"]/g' \
- rts/package.conf.in || die
- fi
-
- # it is autoconf, but we really don't want to give it too
- # many arguments, in fact we do the make in-place anyway
- ./configure --prefix="${WORKDIR}"/usr || die
- make install || die
- popd > /dev/null
- ;;
- *)
- relocate_ghc "${WORKDIR}"
- ;;
- esac
- fi
-
- sed -i -e "s|\"\$topdir\"|\"\$topdir\" ${GHC_PERSISTENT_FLAGS}|" \
- "${S}/ghc/ghc.wrapper"
-
- cd "${S}" # otherwise eapply will break
-
- eapply "${FILESDIR}"/${PN}-7.0.4-CHOST-prefix.patch
- eapply "${FILESDIR}"/${PN}-8.2.1-darwin.patch
- eapply "${FILESDIR}"/${PN}-7.8.3-prim-lm.patch
- eapply "${FILESDIR}"/${PN}-8.0.2-no-relax-everywhere.patch
- eapply "${FILESDIR}"/${PN}-8.4.2-allow-cross-bootstrap.patch
- # fixed in 8.8.4. See https://gitlab.haskell.org/ghc/ghc/-/blob/ghc-8.8.4-release/configure.ac#L1273
- # eapply "${FILESDIR}"/${PN}-8.6.5-numa.patch
- # rumors say this is fixed properly in 8.8.3. Let's check!
- #eapply "${FILESDIR}"/${PN}-8.8.1-revert-CPP.patch
-
- # a bunch of crosscompiler patches
- # needs newer version:
- #eapply "${FILESDIR}"/${PN}-8.2.1_rc1-hp2ps-cross.patch
-
- # mingw32 target
- pushd "${S}/libraries/Win32"
- eapply "${FILESDIR}"/${PN}-8.2.1_rc1-win32-cross-2-hack.patch # bad workaround
- popd
-
- bump_libs
-
- eapply_user
- # as we have changed the build system
- eautoreconf
- fi
-}
-
-src_configure() {
- if ! use binary; then
- # initialize build.mk
- echo '# Gentoo changes' > mk/build.mk
-
- # Put docs into the right place, ie /usr/share/doc/ghc-${GHC_PV}
- echo "docdir = ${EPREFIX}/usr/share/doc/$(cross)${P}" >> mk/build.mk
- echo "htmldir = ${EPREFIX}/usr/share/doc/$(cross)${P}" >> mk/build.mk
-
- # We also need to use the GHC_FLAGS flags when building ghc itself
- echo "SRC_HC_OPTS+=${HCFLAGS} ${GHC_FLAGS}" >> mk/build.mk
- echo "SRC_CC_OPTS+=${CFLAGS}" >> mk/build.mk
- echo "SRC_LD_OPTS+=${LDFLAGS}" >> mk/build.mk
- # Speed up initial Cabal bootstrap
- echo "utils/ghc-cabal_dist_EXTRA_HC_OPTS+=$(ghc-make-args)" >> mk/build.mk
-
- # We can't depend on haddock except when bootstrapping when we
- # must build docs and include them into the binary .tbz2 package
- # app-text/dblatex is not in portage, can not build PDF or PS
- echo "BUILD_SPHINX_PDF = NO" >> mk/build.mk
- echo "BUILD_SPHINX_HTML = $(usex doc YES NO)" >> mk/build.mk
- echo "BUILD_MAN = $(usex doc YES NO)" >> mk/build.mk
-
- # this controls presence on 'xhtml' and 'haddock' in final install
- echo "HADDOCK_DOCS = YES" >> mk/build.mk
-
- # not used outside of ghc's test
- if [[ -n ${GHC_BUILD_DPH} ]]; then
- echo "BUILD_DPH = YES" >> mk/build.mk
- else
- echo "BUILD_DPH = NO" >> mk/build.mk
- fi
-
- # Any non-native build has to skip as it needs
- # target haddock binary to be runnabine.
- if ! is_native; then
- # disable docs generation as it requires running stage2
- echo "HADDOCK_DOCS=NO" >> mk/build.mk
- echo "BUILD_SPHINX_HTML=NO" >> mk/build.mk
- echo "BUILD_SPHINX_PDF=NO" >> mk/build.mk
- fi
-
- if is_crosscompile; then
- # Install ghc-stage1 crosscompiler instead of
- # ghc-stage2 cross-built compiler.
- echo "Stage1Only=YES" >> mk/build.mk
- fi
-
- # allows overriding build flavours for libraries:
- # v - vanilla (static libs)
- # p - profiled
- # dyn - shared libraries
- # example: GHC_LIBRARY_WAYS="v dyn"
- if [[ -n ${GHC_LIBRARY_WAYS} ]]; then
- echo "GhcLibWays=${GHC_LIBRARY_WAYS}" >> mk/build.mk
- fi
- echo "BUILD_PROF_LIBS = $(usex profile YES NO)" >> mk/build.mk
-
- # Get ghc from the unpacked binary .tbz2
- # except when bootstrapping we just pick ghc up off the path
- if ! use ghcbootstrap; then
- export PATH="${WORKDIR}/usr/bin:${PATH}"
- fi
-
- echo "INTEGER_LIBRARY = $(usex gmp integer-gmp integer-simple)" >> mk/build.mk
-
- # don't strip anything. Very useful when stage2 SIGSEGVs on you
- echo "STRIP_CMD = :" >> mk/build.mk
-
- local econf_args=()
-
- # GHC embeds toolchain it was built by and uses it later.
- # Don't allow things like ccache or versioned binary slip.
- # We use stable thing across gcc upgrades.
- # User can use EXTRA_ECONF=CC=... to override this default.
- econf_args+=(
- AR=${CTARGET}-ar
- CC=${CTARGET}-gcc
- # these should be inferred by GHC but ghc defaults
- # to using bundled tools on windows.
- Windres=${CTARGET}-windres
- DllWrap=${CTARGET}-dllwrap
- # we set the linker explicitly below
- --disable-ld-override
- )
- case ${CTARGET} in
- arm*)
- # ld.bfd-2.28 does not work for ghc. Force ld.gold
- # instead. This should be removed once gentoo gets
- # a fix for R_ARM_COPY bug: https://sourceware.org/PR16177
- econf_args+=(LD=${CTARGET}-ld.gold)
- ;;
- sparc*)
- # ld.gold-2.28 does not work for ghc. Force ld.bfd
- # instead. This should be removed once gentoo gets
- # a fix for missing --no-relax support bug:
- # https://sourceware.org/ml/binutils/2017-07/msg00183.html
- econf_args+=(LD=${CTARGET}-ld.bfd)
- ;;
- *)
- econf_args+=(LD=${CTARGET}-ld)
- esac
-
- if [[ ${CBUILD} != ${CHOST} ]]; then
- # GHC bug: ghc claims not to support cross-building.
- # It does, but does not distinct --host= value
- # for stage1 and stage2 compiler.
- econf_args+=(--host=${CBUILD})
- fi
-
- if use ghcmakebinary; then
- # When building booting libary we are trying to
- # bundle or restrict most of external depends
- # with unstable ABI:
- # - embed libffi (default GHC behaviour)
- # - disable ncurses support for ghci (via haskeline)
- # https://bugs.gentoo.org/557478
- # - disable ncurses support for ghc-pkg
- echo "libraries/haskeline_CONFIGURE_OPTS += --flag=-terminfo" >> mk/build.mk
- echo "utils/ghc-pkg_HC_OPTS += -DBOOTSTRAPPING" >> mk/build.mk
- elif is_native; then
- # using ${GTARGET}'s libffi is not supported yet:
- # GHC embeds full path for ffi includes without /usr/${CTARGET} account.
- econf_args+=(--with-system-libffi)
- econf_args+=(--with-ffi-includes=$($(tc-getPKG_CONFIG) libffi --cflags-only-I | sed -e 's@^-I@@'))
- fi
-
- einfo "Final mk/build.mk:"
- cat mk/build.mk || die
-
- econf ${econf_args[@]} \
- --enable-bootstrap-with-devel-snapshot \
- $(use elfutils && echo --enable-dwarf-unwind) \
- $(use_enable numa)
-
- if [[ ${PV} == *9999* ]]; then
- GHC_PV="$(grep 'S\[\"PACKAGE_VERSION\"\]' config.status | sed -e 's@^.*=\"\(.*\)\"@\1@')"
- GHC_P=${PN}-${GHC_PV}
- fi
- fi # ! use binary
-}
-
-src_compile() {
- if ! use binary; then
- # Stage1Only crosscompiler does not build stage2
- if ! is_crosscompile; then
- # 1. build/pax-mark compiler binary first
- emake ghc/stage2/build/tmp/ghc-stage2
- # 2. pax-mark (bug #516430)
- pax-mark -m ghc/stage2/build/tmp/ghc-stage2
- # 2. build/pax-mark haddock using ghc-stage2
- if is_native; then
- # non-native build does not build haddock
- # due to HADDOCK_DOCS=NO, but it could.
- emake utils/haddock/dist/build/tmp/haddock
- pax-mark -m utils/haddock/dist/build/tmp/haddock
- fi
- fi
- # 3. and then all the rest
- emake all
- fi # ! use binary
-}
-
-src_test() {
- # TODO: deal with:
- # - sandbox (pollutes environment)
- # - extra packages (to extend testsuite coverage)
- # bits are taken from 'validate'
- local make_test_target='test' # can be fulltest
- # not 'emake' as testsuite uses '$MAKE' without jobserver available
- make $make_test_target stage=2 THREADS=$(makeopts_jobs)
-}
-
-src_install() {
- if use binary; then
- use prefix && mkdir -p "${ED}"
- mv "${S}/usr" "${ED}"
- else
- [[ -f VERSION ]] || emake VERSION
-
- # -j1 due to a rare race in install script:
- # make --no-print-directory -f ghc.mk phase=final install
- # /usr/lib/portage/python3.4/ebuild-helpers/xattr/install -c -m 755 \
- # -d "/tmp/portage-tmpdir/portage/cross-armv7a-unknown-linux-gnueabi/ghc-9999/image/usr/lib64/armv7a-unknown-linux-gnueabi-ghc-8.3.20170404/include"
- # /usr/lib/portage/python3.4/ebuild-helpers/xattr/install -c -m 644 utils/hsc2hs/template-hsc.h \
- # "/tmp/portage-tmpdir/portage/cross-armv7a-unknown-linux-gnueabi/ghc-9999/image/usr/lib64/armv7a-unknown-linux-gnueabi-ghc-8.3.20170404"
- # /usr/bin/install: cannot create regular file \
- # '/tmp/portage-tmpdir/portage/cross-armv7a-unknown-linux-gnueabi/ghc-9999/image/usr/lib64/armv7a-unknown-linux-gnueabi-ghc-8.3.20170404': No such file or directory
- emake -j1 install DESTDIR="${D}"
-
- # Skip for cross-targets as they all share target location:
- # /usr/share/doc/ghc-9999/
- if ! is_crosscompile; then
- dodoc "distrib/README" "ANNOUNCE" "LICENSE" "VERSION"
- fi
-
- # rename ghc-shipped files to avoid collision
- # of external packages. Motivating example:
- # user had installed:
- # dev-lang/ghc-7.8.4-r0 (with transformers-0.3.0.0)
- # dev-haskell/transformers-0.4.2.0
- # then user tried to update to
- # dev-lang/ghc-7.8.4-r1 (with transformers-0.4.2.0)
- # this will lead to single .conf file collision.
- local shipped_conf renamed_conf
- local package_confdir="${ED}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d"
- for shipped_conf in "${package_confdir}"/*.conf; do
- # rename 'pkg-ver-id.conf' to 'pkg-ver-id-gentoo-${PF}.conf'
- renamed_conf=${shipped_conf%.conf}-gentoo-${PF}.conf
- mv "${shipped_conf}" "${renamed_conf}" || die
- done
-
- # remove link, but leave 'haddock-${GHC_P}'
- rm -f "${ED}"/usr/bin/$(cross)haddock
-
- if ! is_crosscompile; then
- newbashcomp "${FILESDIR}"/ghc-bash-completion ghc-pkg
- newbashcomp utils/completion/ghc.bash ghc
- fi
- fi
-
- # path to the package.cache
- local package_confdir="${ED}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d"
- PKGCACHE="${package_confdir}"/package.cache
- # copy the package.conf.d, including timestamp, save it so we can help
- # users that have a broken package.conf.d
- cp -pR "${package_confdir}"{,.initial} || die "failed to backup intial package.conf.d"
-
- # copy the package.conf, including timestamp, save it so we later can put it
- # back before uninstalling, or when upgrading.
- cp -p "${PKGCACHE}"{,.shipped} \
- || die "failed to copy package.conf.d/package.cache"
-
- if is_crosscompile; then
- # When we build a cross-compiler the layout is the following:
- # usr/lib/${CTARGET}-ghc-${VER}/ contains target libraries
- # but
- # usr/lib/${CTARGET}-ghc-${VER}/bin/ directory
- # containst host binaries (modulo bugs).
-
- # Portage's stripping mechanism does not skip stripping
- # foreign binaries. This frequently causes binaries to be
- # broken.
- #
- # Thus below we disable stripping of target libraries and allow
- # stripping hosts executables.
- dostrip -x "/usr/$(get_libdir)/$(cross)${GHC_P}"
- dostrip "/usr/$(get_libdir)/$(cross)${GHC_P}/bin"
- fi
-}
-
-pkg_preinst() {
- # have we got an earlier version of ghc installed?
- if has_version "<${CATEGORY}/${PF}"; then
- haskell_updater_warn="1"
- fi
-}
-
-pkg_postinst() {
- ghc-reregister
-
- # path to the package.cache
- PKGCACHE="${EROOT}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d/package.cache"
-
- # give the cache a new timestamp, it must be as recent as
- # the package.conf.d directory.
- touch "${PKGCACHE}"
-
- if [[ "${haskell_updater_warn}" == "1" ]]; then
- ewarn
- ewarn "\e[1;31m************************************************************************\e[0m"
- ewarn
- ewarn "You have just upgraded from an older version of GHC."
- ewarn "You may have to run"
- ewarn " 'haskell-updater'"
- ewarn "to rebuild all ghc-based Haskell libraries."
- ewarn
- ewarn "\e[1;31m************************************************************************\e[0m"
- ewarn
- fi
-}
-
-pkg_prerm() {
- PKGCACHE="${EROOT}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d/package.cache"
- rm -rf "${PKGCACHE}"
-
- cp -p "${PKGCACHE}"{.shipped,}
-}
-
-pkg_postrm() {
- ghc-package_pkg_postrm
-}
diff --git a/dev-lang/ghc/ghc-8.10.3.ebuild b/dev-lang/ghc/ghc-9.0.2-r4.ebuild
index 4b91c85afe92..a02446080d36 100644
--- a/dev-lang/ghc/ghc-8.10.3.ebuild
+++ b/dev-lang/ghc/ghc-9.0.2-r4.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -13,9 +13,11 @@ if [[ ${CTARGET} = ${CHOST} ]] ; then
fi
fi
-inherit autotools bash-completion-r1 eutils flag-o-matic ghc-package
-inherit multilib multiprocessing pax-utils toolchain-funcs prefix
-inherit check-reqs
+PYTHON_COMPAT=( python3_{9..12} )
+inherit python-any-r1
+inherit autotools bash-completion-r1 flag-o-matic ghc-package
+inherit multiprocessing pax-utils toolchain-funcs prefix
+inherit check-reqs llvm unpacker
DESCRIPTION="The Glasgow Haskell Compiler"
HOMEPAGE="https://www.haskell.org/ghc/"
@@ -23,36 +25,77 @@ HOMEPAGE="https://www.haskell.org/ghc/"
arch_binaries=""
BIN_PV=${PV}
-# sorted!
-#arch_binaries="$arch_binaries alpha? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-alpha.tbz2 )"
-#arch_binaries="$arch_binaries arm? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-armv7a-hardfloat-linux-gnueabi.tbz2 )"
-#arch_binaries="$arch_binaries arm64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-aarch64-unknown-linux-gnu.tbz2 )"
-arch_binaries="$arch_binaries amd64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-x86_64-pc-linux-gnu.tbz2 )"
-#arch_binaries="$arch_binaries ia64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ia64-fixed-fiw.tbz2 )"
-#arch_binaries="$arch_binaries ppc? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ppc.tbz2 )"
-#arch_binaries="$arch_binaries ppc64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ppc64.tbz2 )"
-#arch_binaries="$arch_binaries ppc64? ( !big-endian? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-powerpc64le-unknown-linux-gnu.tbz2 ) )"
-#arch_binaries="$arch_binaries sparc? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-sparc.tbz2 )"
-arch_binaries="$arch_binaries x86? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-i686-pc-linux-gnu.tbz2 )"
+[[ $PR != r0 ]] && BIN_REV=${PR}
+
+# Differentiate glibc/musl
+
+#glibc_binaries="$glibc_binaries alpha? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-alpha.tbz2 )"
+glibc_binaries+=" amd64? ( https://eidetic.codes/${PN}-bin-${PVR}-x86_64-pc-linux-gnu.gpkg.tar )"
+#glibc_binaries="$glibc_binaries arm? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-armv7a-hardfloat-linux-gnueabi.tbz2 )"
+glibc_binaries="$glibc_binaries arm64? ( https://github.com/matoro/ghc/releases/download/${PVR}/ghc-bin-${PVR}-aarch64-unknown-linux-gnu.tar.gz )"
+#glibc_binaries="$glibc_binaries ia64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ia64-fixed-fiw.tbz2 )"
+#glibc_binaries="$glibc_binaries ppc? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ppc.tbz2 )"
+glibc_binaries="$glibc_binaries ppc64? (
+ big-endian? ( https://github.com/matoro/ghc/releases/download/${PVR}/ghc-bin-${PVR}-powerpc64-unknown-linux-gnu.tar.gz )
+ !big-endian? ( https://github.com/matoro/ghc/releases/download/${PVR}/ghc-bin-${PVR}-powerpc64le-unknown-linux-gnu.tar.gz )
+)"
+glibc_binaries="$glibc_binaries riscv? ( https://github.com/matoro/ghc/releases/download/${PVR}/ghc-bin-${PVR}-riscv64-unknown-linux-gnu.tar.gz )"
+#glibc_binaries="$glibc_binaries sparc? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-sparc.tbz2 )"
+glibc_binaries+=" x86? ( https://eidetic.codes/${PN}-bin-${PVR}-i686-pc-linux-gnu.gpkg.tar )"
+
+#musl_binaries="$musl_binaries alpha? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-alpha.tbz2 )"
+#musl_binaries="$musl_binaries amd64? ( https://eidetic.codes/ghc-bin-${PV}-x86_64-pc-linux-musl.tbz2 )"
+#musl_binaries="$musl_binaries arm? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-armv7a-hardfloat-linux-musl.tbz2 )"
+#musl_binaries="$musl_binaries arm64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-aarch64-unknown-linux-musl.tbz2 )"
+#musl_binaries="$musl_binaries ia64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ia64-fixed-fiw.tbz2 )"
+#musl_binaries="$musl_binaries ppc? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ppc.tbz2 )"
+#musl_binaries="$musl_binaries ppc64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ppc64.tbz2 )"
+#musl_binaries="$musl_binaries ppc64? ( !big-endian? ( https://github.com/matoro/ghc/releases/download/${PV}/ghc-bin-${PV}-powerpc64le-unknown-linux-musl.tar.gz ) )"
+#musl_binaries="$musl_binaries riscv? ( https://github.com/matoro/ghc/releases/download/${PV}/ghc-bin-${PV}-riscv64-unknown-linux-musl.tar.gz )"
+#musl_binaries="$musl_binaries sparc? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-sparc.tbz2 )"
+#musl_binaries="$musl_binaries x86? ( https://eidetic.codes/ghc-bin-${PV}-i686-pc-linux-musl.tbz2 )"
+
+[[ -n $glibc_binaries ]] && arch_binaries+=" elibc_glibc? ( $glibc_binaries )"
+[[ -n $musl_binaries ]] && arch_binaries+=" elibc_musl? ( $musl_binaries )"
# various ports:
#arch_binaries="$arch_binaries x86-fbsd? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-x86-fbsd.tbz2 )"
# 0 - yet
yet_binary() {
- case "${ARCH}" in
- #alpha) return 0 ;;
- #arm64) return 0 ;;
- #arm) return 0 ;;
- amd64) return 0 ;;
- #ia64) return 0 ;;
- #ppc) return 0 ;;
- #ppc64)
- # use big-endian && return 0
- # return 0
- # ;;
- #sparc) return 0 ;;
- x86) return 0 ;;
+ case "${ELIBC}" in
+ glibc)
+ case "${ARCH}" in
+ #alpha) return 0 ;;
+ arm64) return 0 ;;
+ #arm) return 0 ;;
+ amd64) return 0 ;;
+ #ia64) return 0 ;;
+ #ppc) return 0 ;;
+ ppc64) return 0 ;;
+ riscv) return 0 ;;
+ #sparc) return 0 ;;
+ x86) return 0 ;;
+ *) return 1 ;;
+ esac
+ ;;
+ musl)
+ case "${ARCH}" in
+ #alpha) return 0 ;;
+ #arm64) return 0 ;;
+ #arm) return 0 ;;
+ #amd64) return 0 ;;
+ #ia64) return 0 ;;
+ #ppc) return 0 ;;
+ #ppc64)
+ # use big-endian || return 0
+ # ;;
+ #riscv) return 0 ;;
+ #sparc) return 0 ;;
+ #x86) return 0 ;;
+ *) return 1 ;;
+ esac
+ ;;
*) return 1 ;;
esac
}
@@ -65,28 +108,38 @@ SRC_URI="!binary? (
https://downloads.haskell.org/ghc/${PV/_/-}/${GHC_P}-src.tar.xz
test? ( https://downloads.haskell.org/ghc/${PV/_/-}/${GHC_P}-testsuite.tar.xz )
)"
+SRC_URI+=" https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}-riscv64-llvm.patch.xz"
+
S="${WORKDIR}"/${GHC_P}
[[ -n $arch_binaries ]] && SRC_URI+=" !ghcbootstrap? ( $arch_binaries )"
BUMP_LIBRARIES=(
# "hackage-name hackage-version"
+ "process 1.6.16.0"
)
LICENSE="BSD"
SLOT="0/${PV}"
-#KEYWORDS="~amd64 ~x86"
-IUSE="big-endian doc elfutils ghcbootstrap ghcmakebinary +gmp numa profile test"
+KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv ~x86"
+IUSE="big-endian doc elfutils ghcbootstrap ghcmakebinary +gmp llvm numa profile test unregisterised"
IUSE+=" binary"
RESTRICT="!test? ( test )"
+LLVM_MAX_SLOT="14"
RDEPEND="
>=dev-lang/perl-5.6.1
dev-libs/gmp:0=
- sys-libs/ncurses:0=[unicode]
+ sys-libs/ncurses:=[unicode(+)]
elfutils? ( dev-libs/elfutils )
!ghcmakebinary? ( dev-libs/libffi:= )
numa? ( sys-process/numactl )
+ llvm? (
+ <sys-devel/llvm-$((${LLVM_MAX_SLOT} + 1)):=
+ || (
+ sys-devel/llvm:14
+ )
+ )
"
# This set of dependencies is needed to run
@@ -105,23 +158,51 @@ PREBUILT_BINARY_RDEPENDS="${PREBUILT_BINARY_DEPENDS}
RDEPEND+="binary? ( ${PREBUILT_BINARY_RDEPENDS} )"
-DEPEND="${RDEPEND}
- doc? ( app-text/docbook-xml-dtd:4.2
+DEPEND="${RDEPEND}"
+BDEPEND="
+ virtual/pkgconfig
+ doc? (
+ $(python_gen_any_dep '
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}]
+ ')
+ app-text/docbook-xml-dtd:4.2
app-text/docbook-xml-dtd:4.5
app-text/docbook-xsl-stylesheets
- dev-python/sphinx
- >=dev-libs/libxslt-1.1.2 )
- !ghcbootstrap? ( ${PREBUILT_BINARY_DEPENDS} )"
+ >=dev-libs/libxslt-1.1.2
+ )
+ !ghcbootstrap? (
+ ${PREBUILT_BINARY_DEPENDS}
+ )
+ test? (
+ ${PYTHON_DEPS}
+ )
+"
+
+needs_python() {
+ # test driver is written in python
+ use test && return 0
+ use doc && return 0
+ return 1
+}
# we build binaries without profiling support
REQUIRED_USE="
?? ( ghcbootstrap binary )
?? ( profile binary )
+ ?? ( llvm unregisterised )
"
# haskell libraries built with cabal in configure mode, #515354
QA_CONFIGURE_OPTIONS+=" --with-compiler --with-gcc"
+python_check_deps() {
+ if use doc; then
+ python_has_version "dev-python/sphinx[${PYTHON_USEDEP}]" &&
+ python_has_version "dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}]"
+ fi
+}
+
is_crosscompile() {
[[ ${CHOST} != ${CTARGET} ]]
}
@@ -261,15 +342,6 @@ ghc_setup_cflags() {
for flag in ${LDFLAGS}; do
append-ghc-cflags link ${flag}
done
-
- # GHC uses ${CBUILD}-gcc, ${CHOST}-gcc and ${CTARGET}-gcc at a single build.
- # Skip any gentoo-specific tweaks for cross-case to avoid passing unsupported
- # options to gcc.
- if is_native; then
- # prevent from failing to build unregisterised ghc:
- # https://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg171602.html
- use ppc64 && append-ghc-cflags persistent compile -mminimal-toc
- fi
}
# substitutes string $1 to $2 in files $3 $4 ...
@@ -354,6 +426,15 @@ ghc-check-reqs() {
"$@"
}
+llvmize() {
+ [[ -z "${1}" ]] && return
+ ( find "${1}" -type f \
+ | file -if- \
+ | grep "text/x-shellscript" \
+ | awk -F: '{print $1}' \
+ | xargs sed -i "s#^exec #PATH=\"$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin:\${PATH}\" exec #") || die
+}
+
pkg_pretend() {
ghc-check-reqs check-reqs_pkg_pretend
}
@@ -375,10 +456,16 @@ pkg_setup() {
else
if ! yet_binary; then
eerror "Please try emerging with USE=ghcbootstrap and report build"
- eerror "sucess or failure to the haskell team (haskell@gentoo.org)"
+ eerror "success or failure to the haskell team (haskell@gentoo.org)"
die "No binary available for '${ARCH}' arch yet, USE=ghcbootstrap"
fi
fi
+
+ if needs_python; then
+ python-any-r1_pkg_setup
+ fi
+
+ use llvm && llvm_pkg_setup
}
src_unpack() {
@@ -391,23 +478,56 @@ src_unpack() {
case ${CHOST} in
*-darwin* | *-solaris*) ONLYA=${GHC_P}-src.tar.xz ;;
esac
- unpack ${ONLYA}
+ unpacker ${ONLYA}
}
src_prepare() {
+ # Force the use of C.utf8 locale
+ # <https://github.com/gentoo-haskell/gentoo-haskell/issues/1287>
+ # <https://github.com/gentoo-haskell/gentoo-haskell/issues/1289>
+ export LC_ALL=C.utf8
+
ghc_setup_cflags
- if ! use ghcbootstrap && [[ ${CHOST} != *-darwin* && ${CHOST} != *-solaris* ]]; then
- # Modify the wrapper script from the binary tarball to use GHC_PERSISTENT_FLAGS.
- # See bug #313635.
- sed -i -e "s|\"\$topdir\"|\"\$topdir\" ${GHC_PERSISTENT_FLAGS}|" \
- "${WORKDIR}/usr/bin/ghc-${BIN_PV}"
+ # ghc-9.0.2 release anomaly
+ # https://www.mail-archive.com/search?l=ghc-devs@haskell.org&q=subject:%22Re%5C%3A+%5C%5BHaskell%5C%5D+%5C%5BANNOUNCE%5C%5D+GHC+9.0.2+released%22&o=newest&f=1
+ # https://src.fedoraproject.org/rpms/ghc9.0/blob/rawhide/f/ghc9.0.spec#_327
+ rm -rf "libraries/containers/containers/dist-install" || die
+
+ if ! use ghcbootstrap; then
+ # The switch to gpkg binaries means that they are unpacked in the wrong
+ # location. They are now unnpacked in the $orig_bindir and need to be
+ # moved so that usr/ is in $WORKDIR.
+ local orig_bindir="${WORKDIR}/${PN}-${BIN_PV}${BIN_REV:+-${BIN_REV}}"
+ mv -v "${orig_bindir}/image/usr" "${WORKDIR}" || die
+
+ if [[ ${CHOST} != *-darwin* && ${CHOST} != *-solaris* ]]; then
+ # Modify the wrapper script from the binary tarball to use GHC_PERSISTENT_FLAGS.
+ # See bug #313635.
+ sed -i -e "s|\"\$topdir\"|\"\$topdir\" ${GHC_PERSISTENT_FLAGS}|" \
+ "${WORKDIR}/usr/bin/ghc-${BIN_PV}"
+
+ # allow hardened users use vanilla binary to bootstrap ghc
+ # ghci uses mmap with rwx protection at it implements dynamic
+ # linking on it's own (bug #299709)
+ pax-mark -m "${WORKDIR}/usr/$(get_libdir)/${PN}-${BIN_PV}/bin/ghc"
+ fi
+ fi
+
+ use llvm && ! use ghcbootstrap && llvmize "${WORKDIR}/usr/bin"
- # allow hardened users use vanilla binary to bootstrap ghc
- # ghci uses mmap with rwx protection at it implements dynamic
- # linking on it's own (bug #299709)
- pax-mark -m "${WORKDIR}/usr/$(get_libdir)/${PN}-${BIN_PV}/bin/ghc"
+ # binpkg may have been built with FEATURES=splitdebug
+ if [[ -d "${WORKDIR}/usr/lib/debug" ]] ; then
+ rm -rf "${WORKDIR}/usr/lib/debug" || die
fi
+ find "${WORKDIR}/usr/lib" -type d -empty -delete 2>/dev/null # do not die on failure here
+
+ # ffi headers don't get included in the binpkg for some reason
+ for f in "${WORKDIR}/usr/$(get_libdir)/${PN}-${BIN_PV}/include/"{ffi.h,ffitarget.h}
+ do
+ mkdir -p "$(dirname "${f}")"
+ [[ -e "${f}" ]] || ln -sf "$($(tc-getPKG_CONFIG) --cflags-only-I libffi | sed "s/-I//g" | tr -d " ")/$(basename "${f}")" "${f}" || die
+ done
if use binary; then
if use prefix; then
@@ -424,8 +544,6 @@ src_prepare() {
# UPDATE ME for ghc-7
mkdir "${WORKDIR}"/ghc-bin-installer || die
pushd "${WORKDIR}"/ghc-bin-installer > /dev/null || die
- use sparc-solaris && unpack ghc-6.10.4-sparc-sun-solaris2.tar.bz2
- use x86-solaris && unpack ghc-7.0.3-i386-unknown-solaris2.tar.bz2
use x64-macos && unpack ghc-7.4.1-x86_64-apple-darwin.tar.bz2
popd > /dev/null
@@ -479,15 +597,38 @@ src_prepare() {
cd "${S}" # otherwise eapply will break
- eapply "${FILESDIR}"/${PN}-7.0.4-CHOST-prefix.patch
- eapply "${FILESDIR}"/${PN}-8.2.1-darwin.patch
- eapply "${FILESDIR}"/${PN}-7.8.3-prim-lm.patch
- eapply "${FILESDIR}"/${PN}-8.8.1-revert-CPP.patch
+ eapply "${FILESDIR}"/${PN}-9.0.2-CHOST-prefix.patch
+ eapply "${FILESDIR}"/${PN}-9.0.2-darwin.patch
+ # Fixes panic when compiling some packages
+ # https://github.com/gentoo-haskell/gentoo-haskell/issues/1250#issuecomment-1044257595
+ # https://gitlab.haskell.org/ghc/ghc/-/issues/21097
+ eapply "${FILESDIR}/${PN}-9.0.2-modorigin-semigroup.patch"
+ # Needed for testing with python-3.10
+ use test && eapply "${FILESDIR}/${PN}-9.0.2-fix-tests-python310.patch"
eapply "${FILESDIR}"/${PN}-8.10.1-allow-cross-bootstrap.patch
-
- # a bunch of crosscompiler patches
- # needs newer version:
- #eapply "${FILESDIR}"/${PN}-8.2.1_rc1-hp2ps-cross.patch
+ eapply "${FILESDIR}"/${PN}-9.0.2-disable-unboxed-arrays.patch
+ eapply "${FILESDIR}"/${PN}-9.0.2-llvm-13.patch
+ eapply "${FILESDIR}"/${PN}-9.0.2-llvm-14.patch
+ eapply "${FILESDIR}"/latomic-subword
+ eapply "${WORKDIR}"/${P}-riscv64-llvm.patch
+ eapply "${FILESDIR}"/${PN}-9.0.2-fptools.patch # clang-16 workaround
+ eapply "${FILESDIR}"/${PN}-9.0.2-sphinx-6.patch
+
+ # FIXME: A hack that allows dev-python/sphinx-7 to build the docs
+ #
+ # GHC has updated the bundled version here:
+ # <https://gitlab.haskell.org/ghc/ghc/-/commit/70526f5bd8886126f49833ef20604a2c6477780a>
+ # However, the patch is difficult to apply and our versions of GHC don't
+ # have the update, so we symlink to the system version instead.
+ if use doc; then
+ local python_str="import sphinx_rtd_theme; print(sphinx_rtd_theme.__file__)"
+ local rtd_theme_dir="$(dirname $("${EPYTHON}" -c "$python_str"))"
+ local orig_rtd_theme_dir="${S}/docs/users_guide/rtd-theme"
+
+ einfo "Replacing bundled rtd-theme with dev-python/sphinx-rtd-theme"
+ rm -r "${orig_rtd_theme_dir}" || die
+ ln -s "${rtd_theme_dir}" "${orig_rtd_theme_dir}" || die
+ fi
# mingw32 target
pushd "${S}/libraries/Win32"
@@ -504,12 +645,16 @@ src_prepare() {
src_configure() {
if ! use binary; then
+ # No upstream LTO support. bug #855596
+ filter-lto
+ append-flags -fno-strict-aliasing
+
# initialize build.mk
echo '# Gentoo changes' > mk/build.mk
# Put docs into the right place, ie /usr/share/doc/ghc-${GHC_PV}
- echo "docdir = ${EPREFIX}/usr/share/doc/$(cross)${P}" >> mk/build.mk
- echo "htmldir = ${EPREFIX}/usr/share/doc/$(cross)${P}" >> mk/build.mk
+ echo "docdir = ${EPREFIX}/usr/share/doc/$(cross)${PF}" >> mk/build.mk
+ echo "htmldir = ${EPREFIX}/usr/share/doc/$(cross)${PF}" >> mk/build.mk
# We also need to use the GHC_FLAGS flags when building ghc itself
echo "SRC_HC_OPTS+=${HCFLAGS} ${GHC_FLAGS}" >> mk/build.mk
@@ -566,7 +711,7 @@ src_configure() {
export PATH="${WORKDIR}/usr/bin:${PATH}"
fi
- echo "INTEGER_LIBRARY = $(usex gmp integer-gmp integer-simple)" >> mk/build.mk
+ echo "BIGNUM_BACKEND = $(usex gmp gmp native)" >> mk/build.mk
# don't strip anything. Very useful when stage2 SIGSEGVs on you
echo "STRIP_CMD = :" >> mk/build.mk
@@ -613,7 +758,7 @@ src_configure() {
fi
if use ghcmakebinary; then
- # When building booting libary we are trying to
+ # When building booting library we are trying to
# bundle or restrict most of external depends
# with unstable ABI:
# - embed libffi (default GHC behaviour)
@@ -635,7 +780,8 @@ src_configure() {
econf ${econf_args[@]} \
--enable-bootstrap-with-devel-snapshot \
$(use_enable elfutils dwarf-unwind) \
- $(use_enable numa)
+ $(use_enable numa) \
+ $(use_enable unregisterised)
if [[ ${PV} == *9999* ]]; then
GHC_PV="$(grep 'S\[\"PACKAGE_VERSION\"\]' config.status | sed -e 's@^.*=\"\(.*\)\"@\1@')"
@@ -692,6 +838,8 @@ src_install() {
# '/tmp/portage-tmpdir/portage/cross-armv7a-unknown-linux-gnueabi/ghc-9999/image/usr/lib64/armv7a-unknown-linux-gnueabi-ghc-8.3.20170404': No such file or directory
emake -j1 install DESTDIR="${D}"
+ use llvm && llvmize "${ED}/usr/bin"
+
# Skip for cross-targets as they all share target location:
# /usr/share/doc/ghc-9999/
if ! is_crosscompile; then
@@ -728,7 +876,7 @@ src_install() {
PKGCACHE="${package_confdir}"/package.cache
# copy the package.conf.d, including timestamp, save it so we can help
# users that have a broken package.conf.d
- cp -pR "${package_confdir}"{,.initial} || die "failed to backup intial package.conf.d"
+ cp -pR "${package_confdir}"{,.initial} || die "failed to backup initial package.conf.d"
# copy the package.conf, including timestamp, save it so we later can put it
# back before uninstalling, or when upgrading.
diff --git a/dev-lang/ghc/ghc-8.10.2.ebuild b/dev-lang/ghc/ghc-9.2.8.ebuild
index fc819806ed06..446380516229 100644
--- a/dev-lang/ghc/ghc-8.10.2.ebuild
+++ b/dev-lang/ghc/ghc-9.2.8.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -13,46 +13,110 @@ if [[ ${CTARGET} = ${CHOST} ]] ; then
fi
fi
-inherit autotools bash-completion-r1 eutils flag-o-matic ghc-package
-inherit multilib multiprocessing pax-utils toolchain-funcs prefix
-inherit check-reqs
+PYTHON_COMPAT=( python3_{9..12} )
+inherit python-any-r1
+inherit autotools bash-completion-r1 flag-o-matic ghc-package
+inherit multiprocessing pax-utils toolchain-funcs prefix
+inherit check-reqs llvm unpacker
DESCRIPTION="The Glasgow Haskell Compiler"
HOMEPAGE="https://www.haskell.org/ghc/"
-# we don't have any binaries yet
-arch_binaries=""
-
BIN_PV=${PV}
-# sorted!
-#arch_binaries="$arch_binaries alpha? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-alpha.tbz2 )"
-#arch_binaries="$arch_binaries arm? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-armv7a-hardfloat-linux-gnueabi.tbz2 )"
-#arch_binaries="$arch_binaries arm64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-aarch64-unknown-linux-gnu.tbz2 )"
-arch_binaries="$arch_binaries amd64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-x86_64-pc-linux-gnu.tbz2 )"
-#arch_binaries="$arch_binaries ia64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ia64-fixed-fiw.tbz2 )"
-#arch_binaries="$arch_binaries ppc? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ppc.tbz2 )"
-#arch_binaries="$arch_binaries ppc64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ppc64.tbz2 )"
-#arch_binaries="$arch_binaries ppc64? ( !big-endian? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-powerpc64le-unknown-linux-gnu.tbz2 ) )"
-#arch_binaries="$arch_binaries sparc? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-sparc.tbz2 )"
-arch_binaries="$arch_binaries x86? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-i686-pc-linux-gnu.tbz2 )"
+[[ $PR != r0 ]] && BIN_REV=${PR}
+BIN_PVR="${BIN_PV}${BIN_REV:+-${BIN_REV}}"
+
+# >=ghc-9.2 can only be built with <=ghc-9.0 until hadrian is supported
+BUILD_BIN_PV=9.0.2
+BUILD_BIN_REV=r4
+BUILD_BIN_PVR="${BUILD_BIN_PV}${BUILD_BIN_REV:+-${BUILD_BIN_REV}}"
+
+# Binaries created and uploaded by hololeap
+SRC_URL_HOLOLEAP="https://eidetic.codes"
+ghc_binaries_hololeap() {
+ echo "
+ binary? ( ${SRC_URL_HOLOLEAP}/${PN}-bin-${BIN_PVR}-${1}.gpkg.tar )
+ !binary? ( ${SRC_URL_HOLOLEAP}/${PN}-bin-${BUILD_BIN_PVR}-${1}.gpkg.tar )
+ "
+}
+
+# Binaries created and uploaded by matoro
+SRC_URL_MATORO="https://github.com/matoro/${PN}/releases/download"
+ghc_binaries_matoro() {
+ echo "
+ binary? ( ${SRC_URL_MATORO}/${BIN_PVR}/${PN}-bin-${BIN_PVR}-${1}.gpkg.tar )
+ !binary? ( ${SRC_URL_MATORO}/${BUILD_BIN_PVR}/${PN}-bin-${BUILD_BIN_PVR}-${1}.tar.gz )
+ "
+}
+
+# Differentiate glibc/musl
+
+#glibc_binaries="$glibc_binaries alpha? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-alpha.tbz2 )"
+glibc_binaries+=" amd64? ( $(ghc_binaries_hololeap x86_64-pc-linux-gnu) )"
+#glibc_binaries="$glibc_binaries arm? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-armv7a-hardfloat-linux-gnueabi.tbz2 )"
+glibc_binaries+=" arm64? ( $(ghc_binaries_matoro aarch64-unknown-linux-gnu) )"
+#glibc_binaries="$glibc_binaries ia64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ia64-fixed-fiw.tbz2 )"
+#glibc_binaries="$glibc_binaries ppc? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ppc.tbz2 )"
+glibc_binaries+=" ppc64? (
+ big-endian? ( $(ghc_binaries_matoro powerpc64-unknown-linux-gnu) )
+ !big-endian? ( $(ghc_binaries_matoro powerpc64le-unknown-linux-gnu) )
+)"
+glibc_binaries+=" riscv? ( $(ghc_binaries_matoro riscv64-unknown-linux-gnu) )"
+#glibc_binaries="$glibc_binaries sparc? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-sparc.tbz2 )"
+glibc_binaries+=" x86? ( $(ghc_binaries_hololeap i686-pc-linux-gnu) )"
+
+#musl_binaries="$musl_binaries alpha? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-alpha.tbz2 )"
+#musl_binaries="$musl_binaries amd64? ( https://eidetic.codes/ghc-bin-${PV}-x86_64-pc-linux-musl.tbz2 )"
+#musl_binaries="$musl_binaries arm? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-armv7a-hardfloat-linux-musl.tbz2 )"
+#musl_binaries="$musl_binaries arm64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-aarch64-unknown-linux-musl.tbz2 )"
+#musl_binaries="$musl_binaries ia64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ia64-fixed-fiw.tbz2 )"
+#musl_binaries="$musl_binaries ppc? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ppc.tbz2 )"
+#musl_binaries="$musl_binaries ppc64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ppc64.tbz2 )"
+#musl_binaries="$musl_binaries ppc64? ( !big-endian? ( https://github.com/matoro/ghc/releases/download/${PV}/ghc-bin-${PV}-powerpc64le-unknown-linux-musl.tar.gz ) )"
+#musl_binaries="$musl_binaries riscv? ( https://github.com/matoro/ghc/releases/download/${PV}/ghc-bin-${PV}-riscv64-unknown-linux-musl.tar.gz )"
+#musl_binaries="$musl_binaries sparc? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-sparc.tbz2 )"
+#musl_binaries="$musl_binaries x86? ( https://eidetic.codes/ghc-bin-${PV}-i686-pc-linux-musl.tbz2 )"
+
+[[ -n $glibc_binaries ]] && arch_binaries+=" elibc_glibc? ( $glibc_binaries )"
+[[ -n $musl_binaries ]] && arch_binaries+=" elibc_musl? ( $musl_binaries )"
# various ports:
#arch_binaries="$arch_binaries x86-fbsd? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-x86-fbsd.tbz2 )"
# 0 - yet
yet_binary() {
- case "${ARCH}" in
- #alpha) return 0 ;;
- #arm64) return 0 ;;
- #arm) return 0 ;;
- amd64) return 0 ;;
- #ia64) return 0 ;;
- #ppc) return 0 ;;
- #ppc64)
- # use big-endian && return 0
- # return 0
- # ;;
- #sparc) return 0 ;;
- x86) return 0 ;;
+ case "${ELIBC}" in
+ glibc)
+ case "${ARCH}" in
+ #alpha) return 0 ;;
+ arm64) return 0 ;;
+ #arm) return 0 ;;
+ amd64) return 0 ;;
+ #ia64) return 0 ;;
+ #ppc) return 0 ;;
+ ppc64) return 0 ;;
+ riscv) return 0 ;;
+ #sparc) return 0 ;;
+ x86) return 0 ;;
+ *) return 1 ;;
+ esac
+ ;;
+ musl)
+ case "${ARCH}" in
+ #alpha) return 0 ;;
+ #arm64) return 0 ;;
+ #arm) return 0 ;;
+ #amd64) return 0 ;;
+ #ia64) return 0 ;;
+ #ppc) return 0 ;;
+ #ppc64)
+ # use big-endian || return 0
+ # ;;
+ #riscv) return 0 ;;
+ #sparc) return 0 ;;
+ #x86) return 0 ;;
+ *) return 1 ;;
+ esac
+ ;;
*) return 1 ;;
esac
}
@@ -75,18 +139,25 @@ BUMP_LIBRARIES=(
LICENSE="BSD"
SLOT="0/${PV}"
-KEYWORDS=""
-IUSE="big-endian doc elfutils ghcbootstrap ghcmakebinary +gmp numa profile test"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
+IUSE="big-endian doc elfutils ghcbootstrap ghcmakebinary +gmp llvm numa profile test unregisterised"
IUSE+=" binary"
RESTRICT="!test? ( test )"
+LLVM_MAX_SLOT="14"
RDEPEND="
>=dev-lang/perl-5.6.1
dev-libs/gmp:0=
- sys-libs/ncurses:0=[unicode]
+ sys-libs/ncurses:=[unicode(+)]
elfutils? ( dev-libs/elfutils )
!ghcmakebinary? ( dev-libs/libffi:= )
numa? ( sys-process/numactl )
+ llvm? (
+ <sys-devel/llvm-$((${LLVM_MAX_SLOT} + 1)):=
+ || (
+ sys-devel/llvm:14
+ )
+ )
"
# This set of dependencies is needed to run
@@ -105,23 +176,51 @@ PREBUILT_BINARY_RDEPENDS="${PREBUILT_BINARY_DEPENDS}
RDEPEND+="binary? ( ${PREBUILT_BINARY_RDEPENDS} )"
-DEPEND="${RDEPEND}
- doc? ( app-text/docbook-xml-dtd:4.2
+DEPEND="${RDEPEND}"
+BDEPEND="
+ virtual/pkgconfig
+ doc? (
+ $(python_gen_any_dep '
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}]
+ ')
+ app-text/docbook-xml-dtd:4.2
app-text/docbook-xml-dtd:4.5
app-text/docbook-xsl-stylesheets
- dev-python/sphinx
- >=dev-libs/libxslt-1.1.2 )
- !ghcbootstrap? ( ${PREBUILT_BINARY_DEPENDS} )"
+ >=dev-libs/libxslt-1.1.2
+ )
+ !ghcbootstrap? (
+ ${PREBUILT_BINARY_DEPENDS}
+ )
+ test? (
+ ${PYTHON_DEPS}
+ )
+"
+
+needs_python() {
+ # test driver is written in python
+ use test && return 0
+ use doc && return 0
+ return 1
+}
# we build binaries without profiling support
REQUIRED_USE="
?? ( ghcbootstrap binary )
?? ( profile binary )
+ ?? ( llvm unregisterised )
"
# haskell libraries built with cabal in configure mode, #515354
QA_CONFIGURE_OPTIONS+=" --with-compiler --with-gcc"
+python_check_deps() {
+ if use doc; then
+ python_has_version "dev-python/sphinx[${PYTHON_USEDEP}]" &&
+ python_has_version "dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}]"
+ fi
+}
+
is_crosscompile() {
[[ ${CHOST} != ${CTARGET} ]]
}
@@ -261,15 +360,6 @@ ghc_setup_cflags() {
for flag in ${LDFLAGS}; do
append-ghc-cflags link ${flag}
done
-
- # GHC uses ${CBUILD}-gcc, ${CHOST}-gcc and ${CTARGET}-gcc at a single build.
- # Skip any gentoo-specific tweaks for cross-case to avoid passing unsupported
- # options to gcc.
- if is_native; then
- # prevent from failing to build unregisterised ghc:
- # https://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg171602.html
- use ppc64 && append-ghc-cflags persistent compile -mminimal-toc
- fi
}
# substitutes string $1 to $2 in files $3 $4 ...
@@ -287,8 +377,9 @@ relocate_path() {
# changes hardcoded ghc paths and updates package index
# $1 - new absolute root path
+# $2 - ghc version unpacked in ${WORKDIR}
relocate_ghc() {
- local to=$1 ghc_v=${BIN_PV}
+ local to=$1 ghc_v=$2
# libdir for prebuilt binary and for current system may mismatch
# It does for prefix installation for example: bug #476998
@@ -354,7 +445,38 @@ ghc-check-reqs() {
"$@"
}
+llvmize() {
+ [[ -z "${1}" ]] && return
+ ( find "${1}" -type f \
+ | file -if- \
+ | grep "text/x-shellscript" \
+ | awk -F: '{print $1}' \
+ | xargs sed -i "s#^exec #PATH=\"$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin:\${PATH}\" exec #") || die
+}
+
+ghc-check-bootstrap-version () {
+ local diemsg version python_output
+ ebegin "Checking for appropriate installed GHC version for bootstrapping"
+ if version=$(ghc-version); then
+ if ver_test "${version}" -lt "9.1.0"; then
+ eend 0
+ return 0
+ else
+ diemsg="Inappropriate GHC version for bootstrapping: ${version}"
+ fi
+ else
+ diemsg="Could not find installed GHC for bootstrapping"
+ fi
+
+ eend 1
+ eerror "USE=ghcbootstrap _requires_ an existing GHC already installed on the system."
+ eerror "Furthermore, current technical limitations require that ghc-9.2.* _must_ be"
+ eerror "bootstrapped by ghc-9.0.* or earlier. This may be changed in a later update."
+ die "$diemsg"
+}
+
pkg_pretend() {
+ [[ ${MERGE_TYPE} != binary ]] && use ghcbootstrap && ghc-check-bootstrap-version
ghc-check-reqs check-reqs_pkg_pretend
}
@@ -375,10 +497,16 @@ pkg_setup() {
else
if ! yet_binary; then
eerror "Please try emerging with USE=ghcbootstrap and report build"
- eerror "sucess or failure to the haskell team (haskell@gentoo.org)"
+ eerror "success or failure to the haskell team (haskell@gentoo.org)"
die "No binary available for '${ARCH}' arch yet, USE=ghcbootstrap"
fi
fi
+
+ if needs_python; then
+ python-any-r1_pkg_setup
+ fi
+
+ use llvm && llvm_pkg_setup
}
src_unpack() {
@@ -391,27 +519,63 @@ src_unpack() {
case ${CHOST} in
*-darwin* | *-solaris*) ONLYA=${GHC_P}-src.tar.xz ;;
esac
- unpack ${ONLYA}
+ unpacker ${ONLYA}
}
src_prepare() {
+ # Force the use of C.utf8 locale
+ # <https://github.com/gentoo-haskell/gentoo-haskell/issues/1287>
+ # <https://github.com/gentoo-haskell/gentoo-haskell/issues/1289>
+ export LC_ALL=C.utf8
+
+ if use binary; then
+ local bin_pv="${BIN_PV}"
+ local bin_pvr="${BIN_PVR}"
+ else
+ local bin_pv="${BUILD_BIN_PV}"
+ local bin_pvr="${BUILD_BIN_PVR}"
+ fi
+
ghc_setup_cflags
- if ! use ghcbootstrap && [[ ${CHOST} != *-darwin* && ${CHOST} != *-solaris* ]]; then
- # Modify the wrapper script from the binary tarball to use GHC_PERSISTENT_FLAGS.
- # See bug #313635.
- sed -i -e "s|\"\$topdir\"|\"\$topdir\" ${GHC_PERSISTENT_FLAGS}|" \
- "${WORKDIR}/usr/bin/ghc-${BIN_PV}"
+ if ! use ghcbootstrap; then
+ # The switch to gpkg binaries means that they are unpacked in the wrong
+ # location. They are now unnpacked in the $orig_bindir and need to be
+ # moved so that usr/ is in $WORKDIR.
+ local orig_bindir="${WORKDIR}/${PN}-${bin_pvr}"
+ mv -v "${orig_bindir}/image/usr" "${WORKDIR}" || die
+
+ if [[ ${CHOST} != *-darwin* && ${CHOST} != *-solaris* ]]; then
+ # Modify the wrapper script from the binary tarball to use GHC_PERSISTENT_FLAGS.
+ # See bug #313635.
+ sed -i -e "s|\"\$topdir\"|\"\$topdir\" ${GHC_PERSISTENT_FLAGS}|" \
+ "${WORKDIR}/usr/bin/ghc-${bin_pv}"
+
+ # allow hardened users use vanilla binary to bootstrap ghc
+ # ghci uses mmap with rwx protection at it implements dynamic
+ # linking on it's own (bug #299709)
+ pax-mark -m "${WORKDIR}/usr/$(get_libdir)/${PN}-${bin_pv}/bin/ghc"
+ fi
+ fi
+
+ use llvm && ! use ghcbootstrap && llvmize "${WORKDIR}/usr/bin"
- # allow hardened users use vanilla binary to bootstrap ghc
- # ghci uses mmap with rwx protection at it implements dynamic
- # linking on it's own (bug #299709)
- pax-mark -m "${WORKDIR}/usr/$(get_libdir)/${PN}-${BIN_PV}/bin/ghc"
+ # binpkg may have been built with FEATURES=splitdebug
+ if [[ -d "${WORKDIR}/usr/lib/debug" ]] ; then
+ rm -rf "${WORKDIR}/usr/lib/debug" || die
fi
+ find "${WORKDIR}/usr/lib" -type d -empty -delete 2>/dev/null # do not die on failure here
+
+ # ffi headers don't get included in the binpkg for some reason
+ for f in "${WORKDIR}/usr/$(get_libdir)/${PN}-${bin_pv}/include/"{ffi.h,ffitarget.h}
+ do
+ mkdir -p "$(dirname "${f}")"
+ [[ -e "${f}" ]] || ln -sf "$($(tc-getPKG_CONFIG) --cflags-only-I libffi | sed "s/-I//g" | tr -d " ")/$(basename "${f}")" "${f}" || die
+ done
if use binary; then
if use prefix; then
- relocate_ghc "${EPREFIX}"
+ relocate_ghc "${EPREFIX}" "${bin_pv}"
fi
# Move unpacked files to the expected place
@@ -424,8 +588,6 @@ src_prepare() {
# UPDATE ME for ghc-7
mkdir "${WORKDIR}"/ghc-bin-installer || die
pushd "${WORKDIR}"/ghc-bin-installer > /dev/null || die
- use sparc-solaris && unpack ghc-6.10.4-sparc-sun-solaris2.tar.bz2
- use x86-solaris && unpack ghc-7.0.3-i386-unknown-solaris2.tar.bz2
use x64-macos && unpack ghc-7.4.1-x86_64-apple-darwin.tar.bz2
popd > /dev/null
@@ -469,7 +631,7 @@ src_prepare() {
popd > /dev/null
;;
*)
- relocate_ghc "${WORKDIR}"
+ relocate_ghc "${WORKDIR}" "${bin_pv}"
;;
esac
fi
@@ -479,17 +641,52 @@ src_prepare() {
cd "${S}" # otherwise eapply will break
- eapply "${FILESDIR}"/${PN}-7.0.4-CHOST-prefix.patch
- eapply "${FILESDIR}"/${PN}-8.2.1-darwin.patch
- eapply "${FILESDIR}"/${PN}-7.8.3-prim-lm.patch
- eapply "${FILESDIR}"/${PN}-8.8.1-revert-CPP.patch
+ #eapply "${FILESDIR}"/${PN}-9.0.2-CHOST-prefix.patch
+ #eapply "${FILESDIR}"/${PN}-9.0.2-darwin.patch
+
+ # ModUnusable pretty-printing should include the reason
+ eapply "${FILESDIR}/${PN}-9.0.2-verbose-modunusable.patch"
+
+ # Fixes panic when compiling some packages
+ # https://github.com/gentoo-haskell/gentoo-haskell/issues/1250#issuecomment-1044257595
+ # https://gitlab.haskell.org/ghc/ghc/-/issues/21097
+ eapply "${FILESDIR}/${PN}-9.2.7-modorigin-semigroup.patch"
+
+ # Needed for testing with python-3.10
+ #use test && eapply "${FILESDIR}/${PN}-9.0.2-fix-tests-python310.patch"
+
+ #needs a port?
+ #eapply "${FILESDIR}"/${PN}-8.8.1-revert-CPP.patch
eapply "${FILESDIR}"/${PN}-8.10.1-allow-cross-bootstrap.patch
- eapply "${FILESDIR}"/${PN}-8.10.2-revert-linker-rtsSymbols_more_linker_symbols.patch
+ #eapply "${FILESDIR}"/${PN}-8.10.3-C99-typo-ac270.patch
+ eapply "${FILESDIR}"/${PN}-9.0.2-disable-unboxed-arrays.patch
+ eapply "${FILESDIR}"/${PN}-9.0.2-llvm-13.patch
+ eapply "${FILESDIR}"/${PN}-9.0.2-llvm-14.patch
# a bunch of crosscompiler patches
# needs newer version:
#eapply "${FILESDIR}"/${PN}-8.2.1_rc1-hp2ps-cross.patch
+ # https://gitlab.haskell.org/ghc/ghc/-/issues/22965
+ #eapply "${FILESDIR}/${PN}-9.2.6-fix-alignment-of-capability.patch"
+ eapply "${FILESDIR}"/${PN}-9.0.2-sphinx-6.patch
+
+ # FIXME: A hack that allows dev-python/sphinx-7 to build the docs
+ #
+ # GHC has updated the bundled version here:
+ # <https://gitlab.haskell.org/ghc/ghc/-/commit/70526f5bd8886126f49833ef20604a2c6477780a>
+ # However, the patch is difficult to apply and our versions of GHC don't
+ # have the update, so we symlink to the system version instead.
+ if use doc; then
+ local python_str="import sphinx_rtd_theme; print(sphinx_rtd_theme.__file__)"
+ local rtd_theme_dir="$(dirname $("${EPYTHON}" -c "$python_str"))"
+ local orig_rtd_theme_dir="${S}/docs/users_guide/rtd-theme"
+
+ einfo "Replacing bundled rtd-theme with dev-python/sphinx-rtd-theme"
+ rm -r "${orig_rtd_theme_dir}" || die
+ ln -s "${rtd_theme_dir}" "${orig_rtd_theme_dir}" || die
+ fi
+
# mingw32 target
pushd "${S}/libraries/Win32"
eapply "${FILESDIR}"/${PN}-8.2.1_rc1-win32-cross-2-hack.patch # bad workaround
@@ -505,12 +702,16 @@ src_prepare() {
src_configure() {
if ! use binary; then
+ # No upstream LTO support. bug #855596
+ filter-lto
+ append-flags -fno-strict-aliasing
+
# initialize build.mk
echo '# Gentoo changes' > mk/build.mk
# Put docs into the right place, ie /usr/share/doc/ghc-${GHC_PV}
- echo "docdir = ${EPREFIX}/usr/share/doc/$(cross)${P}" >> mk/build.mk
- echo "htmldir = ${EPREFIX}/usr/share/doc/$(cross)${P}" >> mk/build.mk
+ echo "docdir = ${EPREFIX}/usr/share/doc/$(cross)${PF}" >> mk/build.mk
+ echo "htmldir = ${EPREFIX}/usr/share/doc/$(cross)${PF}" >> mk/build.mk
# We also need to use the GHC_FLAGS flags when building ghc itself
echo "SRC_HC_OPTS+=${HCFLAGS} ${GHC_FLAGS}" >> mk/build.mk
@@ -567,7 +768,7 @@ src_configure() {
export PATH="${WORKDIR}/usr/bin:${PATH}"
fi
- echo "INTEGER_LIBRARY = $(usex gmp integer-gmp integer-simple)" >> mk/build.mk
+ echo "BIGNUM_BACKEND = $(usex gmp gmp native)" >> mk/build.mk
# don't strip anything. Very useful when stage2 SIGSEGVs on you
echo "STRIP_CMD = :" >> mk/build.mk
@@ -614,7 +815,7 @@ src_configure() {
fi
if use ghcmakebinary; then
- # When building booting libary we are trying to
+ # When building booting library we are trying to
# bundle or restrict most of external depends
# with unstable ABI:
# - embed libffi (default GHC behaviour)
@@ -636,7 +837,8 @@ src_configure() {
econf ${econf_args[@]} \
--enable-bootstrap-with-devel-snapshot \
$(use_enable elfutils dwarf-unwind) \
- $(use_enable numa)
+ $(use_enable numa) \
+ $(use_enable unregisterised)
if [[ ${PV} == *9999* ]]; then
GHC_PV="$(grep 'S\[\"PACKAGE_VERSION\"\]' config.status | sed -e 's@^.*=\"\(.*\)\"@\1@')"
@@ -693,6 +895,8 @@ src_install() {
# '/tmp/portage-tmpdir/portage/cross-armv7a-unknown-linux-gnueabi/ghc-9999/image/usr/lib64/armv7a-unknown-linux-gnueabi-ghc-8.3.20170404': No such file or directory
emake -j1 install DESTDIR="${D}"
+ use llvm && llvmize "${ED}/usr/bin"
+
# Skip for cross-targets as they all share target location:
# /usr/share/doc/ghc-9999/
if ! is_crosscompile; then
@@ -729,7 +933,7 @@ src_install() {
PKGCACHE="${package_confdir}"/package.cache
# copy the package.conf.d, including timestamp, save it so we can help
# users that have a broken package.conf.d
- cp -pR "${package_confdir}"{,.initial} || die "failed to backup intial package.conf.d"
+ cp -pR "${package_confdir}"{,.initial} || die "failed to backup initial package.conf.d"
# copy the package.conf, including timestamp, save it so we later can put it
# back before uninstalling, or when upgrading.
diff --git a/dev-lang/ghc/metadata.xml b/dev-lang/ghc/metadata.xml
index eef249cad285..45f221d2455f 100644
--- a/dev-lang/ghc/metadata.xml
+++ b/dev-lang/ghc/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>haskell@gentoo.org</email>
@@ -11,6 +11,11 @@
<flag name="ghcbootstrap">Internal: Bootstrap GHC from an existing GHC installation.</flag>
<flag name="ghcmakebinary">Internal: Build binary friendly for redistribution.</flag>
<flag name="gmp">Use <pkg>dev-libs/gmp</pkg> for integer operations (works faster, but an external depend).</flag>
+ <flag name="llvm">Pull in dependencies for the <pkg>sys-devel/llvm</pkg> codegen backend.</flag>
<flag name="numa">Enable NUMA thread balancing policy using <pkg>sys-process/numactl</pkg>.</flag>
+ <flag name="unregisterised">Create an unregisterised build in which only the C codegen backend will be available.</flag>
</use>
+ <upstream>
+ <remote-id type="github">ghc/ghc</remote-id>
+ </upstream>
</pkgmetadata>
diff --git a/dev-lang/gleam/Manifest b/dev-lang/gleam/Manifest
new file mode 100644
index 000000000000..9367b0aa35be
--- /dev/null
+++ b/dev-lang/gleam/Manifest
@@ -0,0 +1,2 @@
+DIST gleam-1.1.0-crates.tar.xz 28586380 BLAKE2B edecdff51966a0091bc915d7e3d4f8d1530f62dd4cb6b2b5d235e0512103c614df028351e61b6793bc56a79f469567a95224cbae3dee7b4932df23d21a5f3c5f SHA512 221675cab2b1ca6e61bbe1a87976640d25e741de4578a8d7ed5be3e552d784596bac1905af2ea06d1b3c5c6efb1ec189aa682d3e9e3f6462fd09d8b31af9603d
+DIST gleam-1.1.0.tar.gz 882622 BLAKE2B 7f3ff5ce346e3f1b8d7a13723ea649f5b6e325a563cd3f4e4c0b227f3d9e4643e1e9cd403dbe9c5e8c93e47c2ae6fe1f137250c0155f8b4acbe324fdcf9efc91 SHA512 265867096b758ab554f0b4228d95b40a30d5796499b29775465d8dc3cc3ad37cf517cf979f33d906229dd33e424708e40a13ea6cf9932b54c573cd2335788695
diff --git a/dev-lang/gleam/gleam-1.1.0.ebuild b/dev-lang/gleam/gleam-1.1.0.ebuild
new file mode 100644
index 000000000000..050a8cc09d08
--- /dev/null
+++ b/dev-lang/gleam/gleam-1.1.0.ebuild
@@ -0,0 +1,33 @@
+# Copyright 2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cargo optfeature
+
+DESCRIPTION="A friendly language for building type-safe, scalable systems!"
+HOMEPAGE="https://gleam.run https://github.com/gleam-lang/gleam"
+SRC_URI="
+ https://github.com/gleam-lang/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz
+ https://dev.gentoo.org/~matthew/distfiles/${P}-crates.tar.xz
+"
+
+LICENSE="0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD Boost-1.0 CC0-1.0 ISC MIT MPL-2.0 Unicode-DFS-2016 Unlicense ZLIB openssl"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="dev-lang/erlang:*"
+
+# rust does not use *FLAGS from make.conf, silence portage warning
+# update with proper path to binaries this crate installs, omit leading /
+QA_FLAGS_IGNORED="usr/bin/${PN}"
+
+src_install() {
+ dodoc CHANGELOG.md
+ cargo_src_install --path compiler-cli
+}
+
+pkg_postinst() {
+ optfeature "erlang package support" dev-util/rebar:3
+ optfeature "javascript runtime" net-libs/nodejs
+}
diff --git a/dev-lang/gleam/metadata.xml b/dev-lang/gleam/metadata.xml
new file mode 100644
index 000000000000..09685248ad85
--- /dev/null
+++ b/dev-lang/gleam/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>matthew@gentoo.org</email>
+ <name>Matthew Smith</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">gleam-lang/gleam</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-lang/gnat-gpl/Manifest b/dev-lang/gnat-gpl/Manifest
index 13cdef5417f9..76a2910ce921 100644
--- a/dev-lang/gnat-gpl/Manifest
+++ b/dev-lang/gnat-gpl/Manifest
@@ -1,23 +1,7 @@
-DIST ecj-4.5.jar 1470676 BLAKE2B 793c10ba09fd8040c0e1181204141aea16780c9c9088e07126e00da2b510af2ad6f58d876357d7e98cbb02d783a3be434469d5de1df134ccb8cc508e45028d80 SHA512 d4e1bf7538ace56e3d69fa91da5bbd16c272923b4de0a9d8dee23ea2b75f9f38c603de72fc4061df49285c450b63f3df211cee5270e9fffc5447445d1a9c9e4e
-DIST gcc-4.4.3-specs-0.2.0.tar.bz2 2004 BLAKE2B 96f5ba2028bc6e0ef71e009857c37118a54d13d30de24d697c85e5772f9f2b7853615648cf2e4ee81d8385f6518c64588c0b56675c00f95ef39fca2a808f075e SHA512 779ecb0a064d2138b54569c8ae501975b8a6b72e5a3acbf8597619a8db77ee42ef9b0e62608d5192a15e4393e7dfc009bb50b994782236faa744b2c46b5fe517
-DIST gcc-4.9-gpl-2016-src.tar.gz 76361760 BLAKE2B 681aac3dd2e04110f58637cc9fe1eb663ce55af16a929a446eb59ce338bec9357e65517890f7fa01d61eec9c5041336722b2b94a5fea27a55ade686fe1fe9fbc SHA512 da1e26b4dbbe0ec634eab4e64d1cdb2632300c24f0885bc72fb57edba6ce29ab92b04eaedd8f8077ea623f1ef1428f53616e8c8d6630328d9790d968b60c67cf
-DIST gcc-4.9.4-patches-1.4.tar.bz2 27240 BLAKE2B 26b7d08bad4b617ede2564f77ded67cc87ec6b9f6b4d4ff78b5b75c1d5739fc4049480c716075d74c9b8e23a4a3c1889796cacb3456a3982ab04a0781fe3cd04 SHA512 efa60a7f86e684710848182c7d040565c9cec7666e897adc02e5dea9d4c76117deece7b1f7e1f8772cdec9697bb92b762f93408824e47b3f63b4f35029f50a4b
-DIST gcc-4.9.4-piepatches-v0.6.4.tar.bz2 14414 BLAKE2B 2eccd4f2a164fbb32d13c7fe91627a2424c0a5570fe0cac97c2bb1c95294ba3d770832da7c445f75c91791466c5139a1e13753a3a40d87ff5e44e42749adee27 SHA512 243fa272ea0e49f700a76508bab3e03bbb353bcb930581b2f87f9a47df5cd3880e29f20b71612b21190adc463849e1e6ac2a38a49c0002b562d93d436f538285
-DIST gcc-4.9.4-uclibc-patches-1.0.tar.bz2 2618 BLAKE2B bff85a4088fb94fdb7a8b0bd552be98ace3e6d145889b6f8b4a1f2db2dad14342d155890ab159b42d5b55d88dfb7c392eb7f92590084e1958f6284c561da30f1 SHA512 5a1f44caa9261f4947101379628143869b31dec67fa28605e8e1f3894d4b7120c3f68ba6deb59da7a74fa906e27ab32cd3767761837dc3dfebc37865d349d6db
-DIST gcc-4.9.4.tar.bz2 90097606 BLAKE2B 373ff939ea72d6c4a7f3ab899b852b4c919481af2cfe3291281d9354c58a270d2eba73a0f301d90840dfabf423c82b368e113df7a2cb6cc28b2a703b0b6eb585 SHA512 93abb78e16277454f41a8e9810f41f66c0fdffdc539a762ff6b67d3037f78db971378683fd2ebf707d1d51c059fad2161fe42d110c330027f40214b7db0f3efe
-DIST gcc-6-gpl-2017-src.tar.gz 88045488 BLAKE2B 5df712eadef723df9057653e49d215cef6b59032e4b4a62c8622a7b735c660f42ec4135dba628a2080a7540d407186a4e4b1eb373e937374bc4e407dc9afe97d SHA512 bf8f786b5ad28a6b7d184fb5263424b7ed62154e308e259b61c24a577efdae56939fbaabc1fc53a0f467702c1e6d8598dc6e489ce074724799130a793cfb146e
-DIST gcc-6.3.0-patches-1.0.tar.bz2 7596 BLAKE2B e3c298bd80b83e72d6ea9b4ec777d4f28153bf959da1e54307909383efecd2bf0e7e0cc9d9b27529e5f00b2e27132bf5ff6afd2129d061d3b111f9cfe732a874 SHA512 8fc96086bd3da3726687ee9d180d3b5d0a7d5814141d44eac8eb01566a783ec780c8fb8f55f75d6e9c9006b2e407e20cdb5835d541b0b66a47dd60642861734c
-DIST gcc-7-gpl-2018-src.tar.gz 90302033 BLAKE2B 2f79137e176bff04c4fb17ab863302943588226d5b599dfa1acf0e495111be1c581f4e130f911c312916669c4f2707eec5218601db090d5060248b2fe481d710 SHA512 79f06deca5753251de82a703f4a9698c117706290df779291a5405edb06f1c225d1d2416bda0e67dcd87cc308bf79504e89d4bd8e22aa0eedfbf06d88bc37f33
-DIST gcc-7.3.0-patches-1.8.tar.bz2 14435 BLAKE2B 3e5c1abad56ccd6e0aa7739cb7cd651ec07ef9bf25be554343f1fa0444f251de41bde5fe6f8bb9e85e3f7a5cf8b2b83515647d93d62f338fa7843581fcaff2f8 SHA512 4d9d76b3d47f1af4f23cae15278d165b22065a3d1512323d1e31b5e0cb47e4654733dc43fa11906a3bd18e827621c9a5ec62b73563f8e5ead663c29f7d0d7345
-DIST gcc-8-2019-20190517-18C94-src.tar.gz 95266904 BLAKE2B 8dc1983317517e9d7221ffd3d1c804367c98a7142b3964e6382ee037da2cfebc9e044640549c77905646727e97ba108445b00f36916a65c326e862230608a7dc SHA512 50933d7eab927a2d118e01c5cb85336203544f6fbc3f245a148e952320d6f8452fcd5d355019a144e8af03357d129bb145397506db0a62fddf1f746b6671e7fc
-DIST gcc-8.3.0-patches-4.tar.bz2 17095 BLAKE2B 449d83371bf5a70020f4caad38d7b8f79bc4b3aeb13b060d28b56506fdd33e15527ab38c41baa3134dc9a25208dadfafab5992e93b2e9719dda420f830e7a8bf SHA512 0dcc5ce887b5c1dd9977ca1b1d8760563edf7ce2d39644f6212397c55c325ee441e1e02aea623bff157d95827db25528791137edc24931a88baad6499d0d15d5
-DIST gcc-interface-4.9-gpl-2016-src.tar.gz 339037 BLAKE2B 8218ea3a3e3ddb11febb5f2fbcfad69ec25251d3ed6bf4f9c70dc9b3720cc2fb3310d704db40bd0c749be89b17a2b3766ddae3d6158313480073856057ad4bcf SHA512 507df314d1890c228c19f458bd51197377deaaa2d6082fe1e71b62b683252ee5fba4adfe2386246e14618b1c77288e0dcb5bf501e2daaca249b6299462c2f6bd
-DIST gcc-interface-6-gpl-2017-src.tar.gz 347016 BLAKE2B 934c6dac491abece9a6868d28fe9d2a6a1109238fe25c9b94abe83dfc22a1085489f0e0384626da0a3abeebe7537c5715df49a7e2d40577c96eb7ac897b84fd8 SHA512 5833303fce5bf812ccbc71f3d3726c0cb877937d75327edb15097c0b7dba58024a52688392906695ab92fb4e5d7a6623671eac9a05d17937dc0270bafcde920a
-DIST gcc-interface-7-gpl-2018-src.tar.gz 339461 BLAKE2B e6009c0b287b1cd8f055226e6919c12f2ba08f8ef24101608691b05b70a7fb0ca708e2ecd126499fb84a126436d3841f1a13be0b6d3442ef3bd3871391f8e1d5 SHA512 9dc942a39dd983778756be2951b4c66ac3835bf456dc389f80ffbafdacde4ebcb80720ac9eca8fef8734d6d052c061db37c88dba642d85add10940164d120381
-DIST gcc-interface-8-2019-20190510-18F59-src.tar.gz 352408 BLAKE2B d08867737fd5a2e8aa87e61efff47757b587baff67810eb9193fe72b68578bcb130f0c1491599588d130663d908b9c6c9a604b1352aeccb79e9dd3bfef4b9f61 SHA512 c4a048725517e674cc43b7b72e3b1bdb4f1cf9d81fe3b84dd177a2fda8c7af11c3135e883072b640c8aa351625f49573727c859064683e8b5f096fdbd3990c38
-DIST gnat-2019-20190517-18C94-src.tar.gz 8950160 BLAKE2B ce6b8ca0687b3d345db72a8b3216e67ba706cfd7f6ca98f45ec2ae356d9c5b3a42a4b3aac5e89285871157ddaca3aff1b970934de88f8190d84aff060bf1fc4b SHA512 4d57c97fc1f3d5274e0c4ffa536ec056e7c3f1619010affff008cd07a0bfa638d18fee1705a5dd76f12d168baef85677cc34ef40f5e52fd5292ac886c0d4c5ee
+DIST gcc-10-2021-20210519-19A74-src.tar.gz 109157702 BLAKE2B 8ec307e4fde35c8726bc7b9702717329695bad928d5222a7bb691cce47500de31a60bcfcbb925129a57cb81d3d7ea92e60599aa7383d5358e63cc087b0482550 SHA512 2e2cc0ec9a3a82816a5d399d2db261c356e106b82a44efd54a1ac882b96549ab8de79c69858127c4397de6e9e9463ce6fb9994fc2e426e7d3d2f98d5efa2edb6
+DIST gcc-10.3.0-patches-4.tar.xz 18460 BLAKE2B 7c4b91c3beebc5fd91c0fdbeec6512c141bd78759a02aa7fff32dd30025ef41db1d57280e50db575f46cc0061a480ced9259410e9875b1dc0048886df469c4c9 SHA512 3befbcdec84e583966aad37d1a08c1863f39eb877296c5991348db9d37cc8359197f23cb3b8fa1b0f4d01497dfd2ebaa393e1a459267c19a0976fb535e463ec8
+DIST gcc-interface-10-2021-20210519-19A75-src.tar.gz 359085 BLAKE2B 75f941a7635f2880cc0192acb49d8e7f567baca7530fb981be14dc6cb1bf46fda0e3c043c8703cdbeeb242b548894e0bc6787adfff0f27198354d150e6e36386 SHA512 0251a93d20c59cc4705963438880fe265e2e0bb94a35b7ddaaf03e9efae60e044e585a2204d0773a46f17b3b774e4d0c73adf852f5d06ba17373d26ed580ca8d
+DIST gcc-validate-failures-a447cd6dee206facb66720bdacf0c765a8b09f33.py 27537 BLAKE2B 96c7474de0bc50ab890a91551412398c979396c43aa237a4b6d8baa98ce7fda2cc9f5a755a03fd9d055d885ee2fb40ba29644a0649c24398361ce75a20fae634 SHA512 409434953351cf1f2287f1e4a4fbde5b28a27add35ddd284080acec71b33cb4ec5e1c07f41a79fac060bd6f1eedd198812495141923e410ded907429fe515f83
+DIST gnat-2021-20210519-19A70-src.tar.gz 8765762 BLAKE2B ef48f54c6109566e37bfa5dee9262305d0529b3dfd333ee28bc4e66f4709a0673f673d742bc04deb15dc145404f7618d350dbdf3f2a7ab37c861e57d011946fa SHA512 3cb79be024fdd9b738d99ffc8e224d32bb382b5da2d02b97b2061a5ea58456f33d4564c92e224af2713ce15fd5481edd715e5b9a52abc74fdc142f27e103c201
DIST gnat-gpl-2014-x86-linux-bin.tar.gz 233049287 BLAKE2B 2e8bab113f6a319533ec12fdf71c481f72aee227c22bd0cc42a53bd727b323caba1e7b6298053db8b4d3016236b31649b0b255f4ebcbb81a08a69f29f78f13fc SHA512 ac7f53fb4bd71b0e8fbd62abc45de76f7f8f2f405b80e9b60b4b65a6cef6ee98e3b06848e4b752af3c8268237e5a0529cf6145ebc5b33cd6e5cf4928d85f5be2
DIST gnat-gpl-2014-x86_64-linux-bin.tar.gz 236253400 BLAKE2B c1db70db9442ba24688b8e323d5a02e2e9707ba1f02835ea551038d0a09aafede93a224091e5186f2f2a9d0f96144027af2184ee05ca1c19cc997a6cf3902df7 SHA512 5e40a251baac3d0ace78352956ca21a7d294d902d344a9ed7a8d376e900468c283721ebfb773adfedbf4d623ace02536505c0147815a0c1908933ad611ea085e
-DIST gnat-gpl-2016-src.tar.gz 8857249 BLAKE2B 3ff0fe247990e2a612ac989aa389e9ccae2e29c16177975c327b53ae1471030d0a70e5a2e3af219ad9a3288c241f2d18da349d0650f7fde01d439f4e4720de88 SHA512 4a5cb58ede5b4ae2887e64f0f2e12e0e06470d320796f06d02f7ddd932ff0d3b40e6d3e98a81138fff6906548a55153c2a186ff4a6e3d23b9dbe01ca582da1f8
-DIST gnat-gpl-2017-src.tar.gz 8783473 BLAKE2B b0415b42f4d3a5e8675591a5602ff0a96945670104064671a232c0c12271ee141a3a5d148b8507bdab83cb8a0677c57b78e690060088308c51732bad3715964f SHA512 ae7314a2241107ed4d962dce08306eeb34c5f11e26183935bbb1ccf3a5eb011d6457c1b6fcded93dd0ee9ba31d791971ebe2a5a5a0ae04ff80d87a670325a098
-DIST gnat-gpl-2018-src.tar.gz 8706578 BLAKE2B ba245fd91cc5263d5b8c159d9e75caf6bed21dcaa5fa43734af8775a4008ce5f96bfb84a8b5e6e734ff883314ab3219dacec3fe95a5baa33fb712bfb5ff8bce8 SHA512 0ff7e848ef77f7e772e2a1b01905307a91c332f32329456f5238c4b7eb46cc118709e8682a5fc826d98a7d99fd15a92c194f4a278f04bc465165cfa616cc3c2e
diff --git a/dev-lang/gnat-gpl/files/gcc-configure-LANG.patch b/dev-lang/gnat-gpl/files/gcc-configure-LANG.patch
deleted file mode 100644
index d1b1b0353662..000000000000
--- a/dev-lang/gnat-gpl/files/gcc-configure-LANG.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-The LANG vars aren't reset early enough so when sed tries to use [a-zA-Z] in
-option parsing, it may break.
-
-http://bugs.gentoo.org/103483
-
---- configure
-+++ configure
-@@ -54,6 +54,19 @@
- infodir='${prefix}/info'
- mandir='${prefix}/man'
-
-+# NLS nuisances.
-+for as_var in \
-+ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
-+ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
-+ LC_TELEPHONE LC_TIME
-+do
-+ if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
-+ eval $as_var=C; export $as_var
-+ else
-+ unset $as_var
-+ fi
-+done
-+
- # Initialize some other variables.
- subdirs=
- MFLAGS= MAKEFLAGS=
-@@ -452,16 +463,6 @@
- esac
- done
-
--# NLS nuisances.
--# Only set these to C if already set. These must not be set unconditionally
--# because not all systems understand e.g. LANG=C (notably SCO).
--# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
--# Non-C LC_CTYPE values break the ctype check.
--if test "${LANG+set}" = set; then LANG=C; export LANG; fi
--if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
--if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
--if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi
--
- # confdefs.h avoids OS command line length limits that DEFS can exceed.
- rm -rf conftest* confdefs.h
- # AIX cpp loses on an empty file, so make sure it contains at least a newline.
-@@ -1850,6 +1850,19 @@
- # Compiler output produced by configure, useful for debugging
- # configure, is in ./config.log if it exists.
-
-+# NLS nuisances.
-+for as_var in \
-+ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
-+ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
-+ LC_TELEPHONE LC_TIME
-+do
-+ if (set +x; test -z "`(eval \$as_var=C; export \$as_var) 2>&1`"); then
-+ eval \$as_var=C; export \$as_var
-+ else
-+ unset \$as_var
-+ fi
-+done
-+
- ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
- for ac_option
- do
diff --git a/dev-lang/gnat-gpl/files/gcc-spec-env-r1.patch b/dev-lang/gnat-gpl/files/gcc-spec-env-r1.patch
deleted file mode 100644
index a58926836e4e..000000000000
--- a/dev-lang/gnat-gpl/files/gcc-spec-env-r1.patch
+++ /dev/null
@@ -1,87 +0,0 @@
-2013-08-22 Magnus Granberg <zorry@gentoo.org>
-
- * gcc/gcc.c (main): Add support for external spec file via the GCC_SPECS env var
- and move the process of the user specifed specs.
-
- This allows us to easily control pie/ssp defaults with gcc-config profiles.
- Original patch by Rob Holland
- Extended to support multiple entries separated by ':' by Kevin F. Quinn
- Modified to use getenv instead of poisoned GET_ENVIRONMENT by Ryan Hill
- Modified to process the GCC_SPECS env var befor DRIVER_SELF_SPECS by Magnus Granberg
-
---- gcc-4.8-20130210/gcc/gcc.c 2013-02-05 16:55:31.000000000 +0100
-+++ gcc-4.8-20130210-work/gcc/gcc.c 2013-07-26 02:32:14.625089864 +0200
-@@ -6427,6 +6428,48 @@ main (int argc, char **argv)
- do_option_spec (option_default_specs[i].name,
- option_default_specs[i].spec);
-
-+#if !(defined (__MSDOS__) || defined (OS2) || defined (VMS) || defined (WIN32))
-+ /* Add specs listed in GCC_SPECS. Note; in the process of separating
-+ * each spec listed, the string is overwritten at token boundaries
-+ * (':') with '\0', an effect of strtok_r().
-+ */
-+ specs_file = getenv ("GCC_SPECS");
-+ if (specs_file && (strlen(specs_file) > 0))
-+ {
-+ char *spec, *saveptr;
-+ for (spec=strtok_r(specs_file,":",&saveptr);
-+ spec!=NULL;
-+ spec=strtok_r(NULL,":",&saveptr))
-+ {
-+ struct user_specs *user = (struct user_specs *)
-+ xmalloc (sizeof (struct user_specs));
-+ user->next = (struct user_specs *) 0;
-+ user->filename = spec;
-+ if (user_specs_tail)
-+ user_specs_tail->next = user;
-+ else
-+ user_specs_head = user;
-+ user_specs_tail = user;
-+ }
-+ }
-+#endif
-+ /* Process any user specified specs in the order given on the command
-+ * line. */
-+ for (uptr = user_specs_head; uptr; uptr = uptr->next)
-+ {
-+ char *filename = find_a_file (&startfile_prefixes, uptr->filename,
-+ R_OK, true);
-+ read_specs (filename ? filename : uptr->filename, false, true);
-+ }
-+ /* Process any user self specs. */
-+ {
-+ struct spec_list *sl;
-+ for (sl = specs; sl; sl = sl->next)
-+ if (sl->name_len == sizeof "self_spec" - 1
-+ && !strcmp (sl->name, "self_spec"))
-+ do_self_spec (*sl->ptr_spec);
-+ }
-+
- /* Process DRIVER_SELF_SPECS, adding any new options to the end
- of the command line. */
-
-@@ -6535,24 +6578,6 @@ main (int argc, char **argv)
- PREFIX_PRIORITY_LAST, 0, 1);
- }
-
-- /* Process any user specified specs in the order given on the command
-- line. */
-- for (uptr = user_specs_head; uptr; uptr = uptr->next)
-- {
-- char *filename = find_a_file (&startfile_prefixes, uptr->filename,
-- R_OK, true);
-- read_specs (filename ? filename : uptr->filename, false, true);
-- }
--
-- /* Process any user self specs. */
-- {
-- struct spec_list *sl;
-- for (sl = specs; sl; sl = sl->next)
-- if (sl->name_len == sizeof "self_spec" - 1
-- && !strcmp (sl->name, "self_spec"))
-- do_self_spec (*sl->ptr_spec);
-- }
--
- if (compare_debug)
- {
- enum save_temps save;
diff --git a/dev-lang/gnat-gpl/files/gnat-gpl-2016-bootstrap.patch b/dev-lang/gnat-gpl/files/gnat-gpl-2016-bootstrap.patch
deleted file mode 100644
index aed1ad0e90be..000000000000
--- a/dev-lang/gnat-gpl/files/gnat-gpl-2016-bootstrap.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-From 41a4aa66eac45c8862a79351647ec06dd03bd1f5 Mon Sep 17 00:00:00 2001
-From: jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
-Date: Sat, 13 Dec 2014 11:24:37 +0000
-Subject: [PATCH] PR bootstrap/64023 * Makefile.tpl
- (EXTRA_TARGET_FLAGS): Set STAGE1_LDFLAGS to POSTSTAGE1_LDFLAGS and
- STAGE1_LIBS to POSTSTAGE1_LIBS. Add -B to libstdc++-v3/src/.libs and
- libstdc++-v3/libsupc++/.libs to CXX. * Makefile.in: Regenerated.
-
-git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@218705 138bc75d-0d04-0410-961f-82ee72b054a4
----
- ChangeLog | 9 +++++++++
- Makefile.in | 6 +++++-
- Makefile.tpl | 6 +++++-
- 3 files changed, 19 insertions(+), 2 deletions(-)
-
-diff --git a/Makefile.in b/Makefile.in
-index ba5ae4c2ecb..8ffc313f157 100644
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -835,7 +835,9 @@ EXTRA_TARGET_FLAGS = \
- 'AS=$(COMPILER_AS_FOR_TARGET)' \
- 'CC=$$(CC_FOR_TARGET) $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \
- 'CFLAGS=$$(CFLAGS_FOR_TARGET)' \
-- 'CXX=$$(CXX_FOR_TARGET) $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \
-+ 'CXX=$$(CXX_FOR_TARGET) -B$$r/$$(TARGET_SUBDIR)/libstdc++-v3/src/.libs \
-+ -B$$r/$$(TARGET_SUBDIR)/libstdc++-v3/libsupc++/.libs \
-+ $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \
- 'CXXFLAGS=$$(CXXFLAGS_FOR_TARGET)' \
- 'DLLTOOL=$$(DLLTOOL_FOR_TARGET)' \
- 'GCJ=$$(GCJ_FOR_TARGET) $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \
-@@ -853,6 +855,8 @@ EXTRA_TARGET_FLAGS = \
- 'WINDRES=$$(WINDRES_FOR_TARGET)' \
- 'WINDMC=$$(WINDMC_FOR_TARGET)' \
- 'XGCC_FLAGS_FOR_TARGET=$(XGCC_FLAGS_FOR_TARGET)' \
-+ 'STAGE1_LDFLAGS=$$(POSTSTAGE1_LDFLAGS)' \
-+ 'STAGE1_LIBS=$$(POSTSTAGE1_LIBS)' \
- "TFLAGS=$$TFLAGS"
-
- TARGET_FLAGS_TO_PASS = $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS)
-diff --git a/Makefile.tpl b/Makefile.tpl
-index dcbc6b1b143..bb8227eaafa 100644
---- a/Makefile.tpl
-+++ b/Makefile.tpl
-@@ -641,7 +641,9 @@ EXTRA_TARGET_FLAGS = \
- 'AS=$(COMPILER_AS_FOR_TARGET)' \
- 'CC=$$(CC_FOR_TARGET) $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \
- 'CFLAGS=$$(CFLAGS_FOR_TARGET)' \
-- 'CXX=$$(CXX_FOR_TARGET) $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \
-+ 'CXX=$$(CXX_FOR_TARGET) -B$$r/$$(TARGET_SUBDIR)/libstdc++-v3/src/.libs \
-+ -B$$r/$$(TARGET_SUBDIR)/libstdc++-v3/libsupc++/.libs \
-+ $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \
- 'CXXFLAGS=$$(CXXFLAGS_FOR_TARGET)' \
- 'DLLTOOL=$$(DLLTOOL_FOR_TARGET)' \
- 'GCJ=$$(GCJ_FOR_TARGET) $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \
-@@ -659,6 +661,8 @@ EXTRA_TARGET_FLAGS = \
- 'WINDRES=$$(WINDRES_FOR_TARGET)' \
- 'WINDMC=$$(WINDMC_FOR_TARGET)' \
- 'XGCC_FLAGS_FOR_TARGET=$(XGCC_FLAGS_FOR_TARGET)' \
-+ 'STAGE1_LDFLAGS=$$(POSTSTAGE1_LDFLAGS)' \
-+ 'STAGE1_LIBS=$$(POSTSTAGE1_LIBS)' \
- "TFLAGS=$$TFLAGS"
-
- TARGET_FLAGS_TO_PASS = $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS)
---
-2.15.0
-
diff --git a/dev-lang/gnat-gpl/files/gnat-gpl-2016-finalization.patch b/dev-lang/gnat-gpl/files/gnat-gpl-2016-finalization.patch
deleted file mode 100644
index 44503ae6b72e..000000000000
--- a/dev-lang/gnat-gpl/files/gnat-gpl-2016-finalization.patch
+++ /dev/null
@@ -1,220 +0,0 @@
---- a/gcc/ada/exp_attr.adb 2018-11-16 20:23:21.775906196 +0100
-+++ b/gcc/ada/exp_attr.adb 2018-11-16 20:25:57.418211404 +0100
-@@ -3121,6 +3121,121 @@
- Analyze_And_Resolve (N, Standard_String);
- end External_Tag;
-
-+ -----------------------
-+ -- Finalization_Size --
-+ -----------------------
-+
-+ when Attribute_Finalization_Size => Finalization_Size : declare
-+ function Calculate_Header_Size return Node_Id;
-+ -- Generate a runtime call to calculate the size of the hidden header
-+ -- along with any added padding which would precede a heap-allocated
-+ -- object of the prefix type.
-+
-+ ---------------------------
-+ -- Calculate_Header_Size --
-+ ---------------------------
-+
-+ function Calculate_Header_Size return Node_Id is
-+ begin
-+ -- Generate:
-+ -- Universal_Integer
-+ -- (Header_Size_With_Padding (Pref'Alignment))
-+
-+ return
-+ Convert_To (Universal_Integer,
-+ Make_Function_Call (Loc,
-+ Name =>
-+ New_Occurrence_Of (RTE (RE_Header_Size_With_Padding), Loc),
-+
-+ Parameter_Associations => New_List (
-+ Make_Attribute_Reference (Loc,
-+ Prefix => New_Copy_Tree (Pref),
-+ Attribute_Name => Name_Alignment))));
-+ end Calculate_Header_Size;
-+
-+ -- Local variables
-+
-+ Size : Entity_Id;
-+
-+ -- Start of Finalization_Size
-+
-+ begin
-+ -- An object of a class-wide type first requires a runtime check to
-+ -- determine whether it is actually controlled or not. Depending on
-+ -- the outcome of this check, the Finalization_Size of the object
-+ -- may be zero or some positive value.
-+ --
-+ -- In this scenario, Pref'Finalization_Size is expanded into
-+ --
-+ -- Size : Integer := 0;
-+ --
-+ -- if Needs_Finalization (Pref'Tag) then
-+ -- Size :=
-+ -- Universal_Integer
-+ -- (Header_Size_With_Padding (Pref'Alignment));
-+ -- end if;
-+ --
-+ -- and the attribute reference is replaced with a reference to Size.
-+
-+ if Is_Class_Wide_Type (Ptyp) then
-+ Size := Make_Temporary (Loc, 'S');
-+
-+ Insert_Actions (N, New_List (
-+
-+ -- Generate:
-+ -- Size : Integer := 0;
-+
-+ Make_Object_Declaration (Loc,
-+ Defining_Identifier => Size,
-+ Object_Definition =>
-+ New_Occurrence_Of (Standard_Integer, Loc),
-+ Expression => Make_Integer_Literal (Loc, 0)),
-+
-+ -- Generate:
-+ -- if Needs_Finalization (Pref'Tag) then
-+ -- Size :=
-+ -- Universal_Integer
-+ -- (Header_Size_With_Padding (Pref'Alignment));
-+ -- end if;
-+
-+ Make_If_Statement (Loc,
-+ Condition =>
-+ Make_Function_Call (Loc,
-+ Name =>
-+ New_Occurrence_Of (RTE (RE_Needs_Finalization), Loc),
-+
-+ Parameter_Associations => New_List (
-+ Make_Attribute_Reference (Loc,
-+ Prefix => New_Copy_Tree (Pref),
-+ Attribute_Name => Name_Tag))),
-+
-+ Then_Statements => New_List (
-+ Make_Assignment_Statement (Loc,
-+ Name => New_Occurrence_Of (Size, Loc),
-+ Expression => Calculate_Header_Size)))));
-+
-+ Rewrite (N, New_Occurrence_Of (Size, Loc));
-+
-+ -- The prefix is known to be controlled at compile time. Calculate
-+ -- Finalization_Size by calling function Header_Size_With_Padding.
-+
-+ elsif Needs_Finalization (Ptyp) then
-+ Rewrite (N, Calculate_Header_Size);
-+
-+ -- The prefix is not an object with controlled parts, so its
-+ -- Finalization_Size is zero.
-+
-+ else
-+ Rewrite (N, Make_Integer_Literal (Loc, 0));
-+ end if;
-+
-+ -- Due to cases where the entity type of the attribute is already
-+ -- resolved the rewritten N must get re-resolved to its appropriate
-+ -- type.
-+
-+ Analyze_And_Resolve (N, Typ);
-+ end Finalization_Size;
-+
- -----------
- -- First --
- -----------
---- a/gcc/ada/snames.ads-tmpl 2016-05-16 11:29:28.000000000 +0200
---- b/gcc/ada/snames.ads-tmpl 2016-05-16 11:29:28.000000000 +0200
-@@ -884,6 +884,7 @@
- Name_Exponent : constant Name_Id := N + $;
- Name_External_Tag : constant Name_Id := N + $;
- Name_Fast_Math : constant Name_Id := N + $; -- GNAT
-+ Name_Finalization_Size : constant Name_Id := N + $; -- GNAT
- Name_First : constant Name_Id := N + $;
- Name_First_Bit : constant Name_Id := N + $;
- Name_First_Valid : constant Name_Id := N + $; -- Ada 12
-@@ -1523,6 +1524,7 @@
- Attribute_Exponent,
- Attribute_External_Tag,
- Attribute_Fast_Math,
-+ Attribute_Finalization_Size,
- Attribute_First,
- Attribute_First_Bit,
- Attribute_First_Valid,
---- a/gcc/ada/sem_attr.ads 2018-11-16 21:35:46.821279875 +0100
-+++ b/gcc/ada/sem_attr.ads 2018-11-16 21:36:00.028057464 +0100
-@@ -242,6 +242,16 @@
- -- enumeration value. Constraint_Error is raised if no value of the
- -- enumeration type corresponds to the given integer value.
-
-+ -----------------------
-+ -- Finalization_Size --
-+ -----------------------
-+
-+ Attribute_Finalization_Size => True,
-+ -- For every object or non-class-wide-type, Finalization_Size returns
-+ -- the size of the hidden header used for finalization purposes as if
-+ -- the object or type was allocated on the heap. The size of the header
-+ -- does take into account any extra padding due to alignment issues.
-+
- -----------------
- -- Fixed_Value --
- -----------------
---- a/gcc/ada/sem_attr.adb 2018-11-16 21:35:49.698231429 +0100
-+++ b/gcc/ada/sem_attr.adb 2018-11-16 21:36:00.028057464 +0100
-@@ -3828,6 +3828,42 @@
- Check_Standard_Prefix;
- Rewrite (N, New_Occurrence_Of (Boolean_Literals (Fast_Math), Loc));
-
-+ -----------------------
-+ -- Finalization_Size --
-+ -----------------------
-+
-+ when Attribute_Finalization_Size =>
-+ Check_E0;
-+
-+ -- The prefix denotes an object
-+
-+ if Is_Object_Reference (P) then
-+ Check_Object_Reference (P);
-+
-+ -- The prefix denotes a type
-+
-+ elsif Is_Entity_Name (P) and then Is_Type (Entity (P)) then
-+ Check_Type;
-+ Check_Not_Incomplete_Type;
-+
-+ -- Attribute 'Finalization_Size is not defined for class-wide
-+ -- types because it is not possible to know statically whether
-+ -- a definite type will have controlled components or not.
-+
-+ if Is_Class_Wide_Type (Etype (P)) then
-+ Error_Attr_P
-+ ("prefix of % attribute cannot denote a class-wide type");
-+ end if;
-+
-+ -- The prefix denotes an illegal construct
-+
-+ else
-+ Error_Attr_P
-+ ("prefix of % attribute must be a definite type or an object");
-+ end if;
-+
-+ Set_Etype (N, Universal_Integer);
-+
- -----------
- -- First --
- -----------
-@@ -8264,6 +8300,13 @@
- Fold_Uint (N,
- Eval_Fat.Exponent (P_Base_Type, Expr_Value_R (E1)), Static);
-
-+ -----------------------
-+ -- Finalization_Size --
-+ -----------------------
-+
-+ when Attribute_Finalization_Size =>
-+ null;
-+
- -----------
- -- First --
- -----------
diff --git a/dev-lang/gnat-gpl/files/gnat-gpl-2016-gentoo.patch b/dev-lang/gnat-gpl/files/gnat-gpl-2016-gentoo.patch
deleted file mode 100644
index 959ed5183124..000000000000
--- a/dev-lang/gnat-gpl/files/gnat-gpl-2016-gentoo.patch
+++ /dev/null
@@ -1,57 +0,0 @@
---- a/patch/09_all_default-ssp.patch 2017-01-08 16:14:09.377755019 +0100
-+++ b/patch/09_all_default-ssp.patch 2017-01-08 16:15:48.792764201 +0100
-@@ -78,14 +78,14 @@
- optimizing. The default value is 32.
- --- a/gcc/cp/lang-specs.h
- +++ b/gcc/cp/lang-specs.h
--@@ -46,7 +46,7 @@ along with GCC; see the file COPYING3. If not see
-+@@ -46,7 +46,7 @@
- %(cpp_options) %2 -o %{save-temps*:%b.ii} %{!save-temps*:%g.ii} \n}\
- cc1plus %{save-temps*|no-integrated-cpp:-fpreprocessed %{save-temps*:%b.ii} %{!save-temps*:%g.ii}}\
- %{!save-temps*:%{!no-integrated-cpp:%(cpp_unique_options)}}\
- - %(cc1_options) %2\
- + %(cc1_options) %(ssp_default) %2\
-- %{!fsyntax-only:%{!fdump-ada-spec*:-o %g.s %{!o*:--output-pch=%i.gch}\
-- %W{o*:--output-pch=%*}}%V}}}}",
-+ %{!fsyntax-only:-o %g.s %{!fdump-ada-spec*:%{!fdump-xref*:%{!o*:--output-pch=%i.gch}\
-+ %W{o*:--output-pch=%*}}}%V}}}}",
- CPLUSPLUS_CPP_SPEC, 0, 0},
- @@ -57,11 +57,11 @@ along with GCC; see the file COPYING3. If not see
- %(cpp_options) %2 -o %{save-temps*:%b.ii} %{!save-temps*:%g.ii} \n}\
-@@ -151,14 +151,14 @@
- /* This contains cpp options which are not passed when the preprocessor
- output will be used by another program. */
- @@ -1015,9 +1024,9 @@ static const struct compiler default_compilers[] =
-- %{save-temps*|traditional-cpp|no-integrated-cpp:%(trad_capable_cpp) \
-+ %{save-temps*|fdump-scos|traditional-cpp|no-integrated-cpp:%(trad_capable_cpp) \
- %(cpp_options) -o %{save-temps*:%b.i} %{!save-temps*:%g.i} \n\
- cc1 -fpreprocessed %{save-temps*:%b.i} %{!save-temps*:%g.i} \
- - %(cc1_options)}\
- + %(cc1_options) %(ssp_default)}\
-- %{!save-temps*:%{!traditional-cpp:%{!no-integrated-cpp:\
--- cc1 %(cpp_unique_options) %(cc1_options)}}}\
--+ cc1 %(cpp_unique_options) %(cc1_options) %(ssp_default)}}}\
-+ %{!save-temps*:%{!fdump-scos:%{!traditional-cpp:%{!no-integrated-cpp:\
-+- cc1 %(cpp_unique_options) %(cc1_options)}}}}\
-++ cc1 %(cpp_unique_options) %(cc1_options) %(ssp_default)}}}}\
- %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 1},
- {"-",
- "%{!E:%e-E or -x required when input is from standard input}\
---- a/gcc-4.9-gpl-2016-src/gcc/ada/osint.adb 2017-03-10 21:58:02.600710156 +0100
-+++ b/gcc-4.9-gpl-2016-src/gcc/ada/osint.adb 2017-03-10 21:59:38.033983293 +0100
-@@ -2229,14 +2229,11 @@
- for J in Start_Of_Prefix .. Name_Len - Prog'Length + 1 loop
- if Name_Buffer (J .. J + Prog'Length - 1) = Prog then
- End_Of_Prefix := J - 1;
-+ Start_Of_Suffix := J + Prog'Length;
- exit;
- end if;
- end loop;
-
-- if End_Of_Prefix > 1 then
-- Start_Of_Suffix := End_Of_Prefix + Prog'Length + 1;
-- end if;
--
- -- Create the new program name
-
- return new String'
diff --git a/dev-lang/gnat-gpl/files/gnat-gpl-2016-profile.patch b/dev-lang/gnat-gpl/files/gnat-gpl-2016-profile.patch
deleted file mode 100644
index 561c012a23e6..000000000000
--- a/dev-lang/gnat-gpl/files/gnat-gpl-2016-profile.patch
+++ /dev/null
@@ -1,113 +0,0 @@
---- a/gcc/ada/s-rident.ads 2018-11-18 18:47:39.042412895 +0100
-+++ b/gcc/ada/s-rident.ads 2018-11-18 19:02:31.736559044 +0100
-@@ -378,15 +378,17 @@
- type Profile_Name is
- (No_Profile,
- No_Implementation_Extensions,
-+ Restricted_Tasking,
-+ Restricted,
- Ravenscar,
- GNAT_Extended_Ravenscar,
-- Restricted);
-+ GNAT_Ravenscar_EDF);
- -- Names of recognized profiles. No_Profile is used to indicate that a
- -- restriction came from pragma Restrictions[_Warning], as opposed to
- -- pragma Profile[_Warning].
-
- subtype Profile_Name_Actual is Profile_Name
-- range No_Implementation_Extensions .. Restricted;
-+ range No_Implementation_Extensions .. Profile_Name'Last;
- -- Actual used profile names
-
- type Profile_Data is record
-@@ -456,6 +458,40 @@
- Max_Task_Entries => 0,
- others => 0)),
-
-+ -- Restricted_Tasking Profile
-+
-+ Restricted_Tasking =>
-+
-+ -- Restrictions for Restricted_Tasking profile
-+
-+ (Set =>
-+ (No_Abort_Statements => True,
-+ No_Asynchronous_Control => True,
-+ No_Dynamic_Attachment => True,
-+ No_Dynamic_Priorities => True,
-+ No_Entry_Queue => True,
-+ No_Local_Protected_Objects => True,
-+ No_Protected_Type_Allocators => True,
-+ No_Requeue_Statements => True,
-+ No_Task_Allocators => True,
-+ No_Task_Attributes_Package => True,
-+ No_Task_Hierarchy => True,
-+ No_Terminate_Alternatives => True,
-+ Max_Asynchronous_Select_Nesting => True,
-+ Max_Protected_Entries => True,
-+ Max_Select_Alternatives => True,
-+ Max_Task_Entries => True,
-+ others => False),
-+
-+ -- Value settings for Restricted profile
-+
-+ Value =>
-+ (Max_Asynchronous_Select_Nesting => 0,
-+ Max_Protected_Entries => 1,
-+ Max_Select_Alternatives => 0,
-+ Max_Task_Entries => 0,
-+ others => 0)),
-+
- -- Ravenscar Profile
-
- -- Note: the table entries here only represent the
-@@ -509,6 +545,49 @@
- Max_Task_Entries => 0,
- others => 0)),
-
-+ GNAT_Ravenscar_EDF =>
-+
-+ -- Restrictions for Ravenscar = Restricted profile ..
-+
-+ (Set =>
-+ (No_Abort_Statements => True,
-+ No_Asynchronous_Control => True,
-+ No_Dynamic_Attachment => True,
-+ No_Dynamic_Priorities => True,
-+ No_Entry_Queue => True,
-+ No_Local_Protected_Objects => True,
-+ No_Protected_Type_Allocators => True,
-+ No_Requeue_Statements => True,
-+ No_Task_Allocators => True,
-+ No_Task_Attributes_Package => True,
-+ No_Task_Hierarchy => True,
-+ No_Terminate_Alternatives => True,
-+ Max_Asynchronous_Select_Nesting => True,
-+ Max_Protected_Entries => True,
-+ Max_Select_Alternatives => True,
-+ Max_Task_Entries => True,
-+
-+ -- plus these additional restrictions:
-+
-+ No_Calendar => True,
-+ No_Implicit_Heap_Allocations => True,
-+ No_Local_Timing_Events => True,
-+ No_Relative_Delay => True,
-+ No_Select_Statements => True,
-+ No_Specific_Termination_Handlers => True,
-+ No_Task_Termination => True,
-+ Simple_Barriers => True,
-+ others => False),
-+
-+ -- Value settings for Ravenscar (same as Restricted)
-+
-+ Value =>
-+ (Max_Asynchronous_Select_Nesting => 0,
-+ Max_Protected_Entries => 1,
-+ Max_Select_Alternatives => 0,
-+ Max_Task_Entries => 0,
-+ others => 0)),
-+
- GNAT_Extended_Ravenscar =>
-
- -- Restrictions for GNAT_Extended_Ravenscar =
diff --git a/dev-lang/gnat-gpl/files/gnat-gpl-2017-gentoo.patch b/dev-lang/gnat-gpl/files/gnat-gpl-2017-gentoo.patch
deleted file mode 100644
index de013cdc0d3a..000000000000
--- a/dev-lang/gnat-gpl/files/gnat-gpl-2017-gentoo.patch
+++ /dev/null
@@ -1,98 +0,0 @@
---- a/patch/13_all_default-ssp-fix.patch 2017-06-14 11:29:28.997183865 +0200
-+++ b/patch/13_all_default-ssp-fix.patch 2017-06-14 12:24:15.042271863 +0200
-@@ -39,9 +39,9 @@
- %{!fsyntax-only:%{S:%W{o*}%{!o*:-o %b.s}}}\
- %{fsyntax-only:-o %j} %{-param*}\
- + %{nostdlib:-nostdlib}\
-- %{coverage:-fprofile-arcs -ftest-coverage}";
-+ %{coverage:-fprofile-arcs -ftest-coverage}\
-+ %{fdump-scos:-fpreserve-decisions-generic}";
-
-- static const char *asm_options =
- --- a/gcc/params.def 2016-03-30 09:47:40.000000000 +0200
- +++ b/gcc/params.def 2016-09-19 12:56:58.443179039 +0200
- @@ -673,7 +673,7 @@ DEFPARAM (PARAM_INTEGER_SHARE_LIMIT,
---- a/gcc-6-gpl-2017-src/gcc/ada/osint.adb 2017-03-10 21:58:02.600710156 +0100
-+++ b/gcc-6-gpl-2017-src/gcc/ada/osint.adb 2017-03-10 21:59:38.033983293 +0100
-@@ -2229,14 +2229,11 @@
- for J in Start_Of_Prefix .. Name_Len - Prog'Length + 1 loop
- if Name_Buffer (J .. J + Prog'Length - 1) = Prog then
- End_Of_Prefix := J - 1;
-+ Start_Of_Suffix := J + Prog'Length;
- exit;
- end if;
- end loop;
-
-- if End_Of_Prefix > 1 then
-- Start_Of_Suffix := End_Of_Prefix + Prog'Length + 1;
-- end if;
--
- -- Create the new program name
-
- return new String'
---- a/gcc-6-gpl-2017-src/libgcc/config/i386/linux-unwind.h 2017-12-07 20:57:02.737224515 +0100
-+++ b/gcc-6-gpl-2017-src/libgcc/config/i386/linux-unwind.h 2017-12-07 21:01:59.431929926 +0100
-@@ -58,7 +58,7 @@
- if (*(unsigned char *)(pc+0) == 0x48
- && *(unsigned long long *)(pc+1) == RT_SIGRETURN_SYSCALL)
- {
-- struct ucontext *uc_ = context->cfa;
-+ ucontext_t *uc_ = context->cfa;
- /* The void * cast is necessary to avoid an aliasing warning.
- The aliasing warning is correct, but should not be a problem
- because it does not alias anything. */
-@@ -138,7 +138,7 @@
- siginfo_t *pinfo;
- void *puc;
- siginfo_t info;
-- struct ucontext uc;
-+ ucontext_t uc;
- } *rt_ = context->cfa;
- /* The void * cast is necessary to avoid an aliasing warning.
- The aliasing warning is correct, but should not be a problem
---- a/gcc-6-gpl-2017-src/libsanitizer/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc 2017-12-07 22:05:30.512328872 +0100
-+++ b/gcc-6-gpl-2017-src/libsanitizer/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc 2017-12-07 22:05:53.104950070 +0100
-@@ -267,7 +267,7 @@
-
- // Alternate stack for signal handling.
- InternalScopedBuffer<char> handler_stack_memory(kHandlerStackSize);
-- struct sigaltstack handler_stack;
-+ stack_t handler_stack;
- internal_memset(&handler_stack, 0, sizeof(handler_stack));
- handler_stack.ss_sp = handler_stack_memory.data();
- handler_stack.ss_size = kHandlerStackSize;
---- a/gcc-6-gpl-2017-src/libsanitizer/sanitizer_common/sanitizer_linux.cc 2017-12-07 22:09:04.912731275 +0100
-+++ b/gcc-6-gpl-2017-src/libsanitizer/sanitizer_common/sanitizer_linux.cc 2017-12-07 22:10:03.150754764 +0100
-@@ -546,8 +546,7 @@
- }
- #endif
-
--uptr internal_sigaltstack(const struct sigaltstack *ss,
-- struct sigaltstack *oss) {
-+uptr internal_sigaltstack(const void *ss, void *oss) {
- return internal_syscall(SYSCALL(sigaltstack), (uptr)ss, (uptr)oss);
- }
-
---- a/gcc-6-gpl-2017-src/libsanitizer/sanitizer_common/sanitizer_linux.h 2017-12-07 22:10:10.109638062 +0100
-+++ b/gcc-6-gpl-2017-src/libsanitizer/sanitizer_common/sanitizer_linux.h 2017-12-07 22:10:30.991287828 +0100
-@@ -28,8 +28,7 @@
-
- // Syscall wrappers.
- uptr internal_getdents(fd_t fd, struct linux_dirent *dirp, unsigned int count);
--uptr internal_sigaltstack(const struct sigaltstack* ss,
-- struct sigaltstack* oss);
-+uptr internal_sigaltstack(const void* ss, void* oss);
- uptr internal_sigprocmask(int how, __sanitizer_sigset_t *set,
- __sanitizer_sigset_t *oldset);
- void internal_sigfillset(__sanitizer_sigset_t *set);
---- a/gcc-6-gpl-2017-src/libsanitizer/tsan/tsan_platform_linux.cc 2017-12-07 22:15:09.626608907 +0100
-+++ b/gcc-6-gpl-2017-src/libsanitizer/tsan/tsan_platform_linux.cc 2017-12-07 22:15:28.825286145 +0100
-@@ -291,7 +291,7 @@
- int ExtractResolvFDs(void *state, int *fds, int nfd) {
- #if SANITIZER_LINUX
- int cnt = 0;
-- __res_state *statp = (__res_state*)state;
-+ struct __res_state *statp = (struct __res_state*)state;
- for (int i = 0; i < MAXNS && cnt < nfd; i++) {
- if (statp->_u._ext.nsaddrs[i] && statp->_u._ext.nssocks[i] != -1)
- fds[cnt++] = statp->_u._ext.nssocks[i];
diff --git a/dev-lang/gnat-gpl/files/gnat-gpl-2017-libatomic-Werror.patch b/dev-lang/gnat-gpl/files/gnat-gpl-2017-libatomic-Werror.patch
deleted file mode 100644
index 0550722d170b..000000000000
--- a/dev-lang/gnat-gpl/files/gnat-gpl-2017-libatomic-Werror.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-libatomic does not respect --disable-werror
-
-https://bugs.gentoo.org/475350
---- a/libatomic/configure.ac
-+++ b/libatomic/configure.ac
-@@ -4282,4 +4282,4 @@ save_CFLAGS="$CFLAGS"
- # Add -Wall -Werror if we are using GCC.
- if test "x$GCC" = "xyes"; then
-- XCFLAGS="$XCFLAGS -Wall -Werror"
-+ XCFLAGS="$XCFLAGS -Wall"
- fi
---- a/libatomic/configure
-+++ b/libatomic/configure
-@@ -4282,4 +4282,4 @@ save_CFLAGS="$CFLAGS"
- # Add -Wall -Werror if we are using GCC.
- if test "x$GCC" = "xyes"; then
-- XCFLAGS="$XCFLAGS -Wall -Werror"
-+ XCFLAGS="$XCFLAGS -Wall"
- fi
diff --git a/dev-lang/gnat-gpl/files/gnat-gpl-2017-libgomp-Werror.patch b/dev-lang/gnat-gpl/files/gnat-gpl-2017-libgomp-Werror.patch
deleted file mode 100644
index 416808a63b15..000000000000
--- a/dev-lang/gnat-gpl/files/gnat-gpl-2017-libgomp-Werror.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-libgomp does not respect --disable-werror
-
-https://bugs.gentoo.org/229059
-http://gcc.gnu.org/PR38436
---- a/libgomp/configure.ac
-+++ b/libgomp/configure.ac
-@@ -4282,4 +4282,4 @@ save_CFLAGS="$CFLAGS"
- # Add -Wall -Werror if we are using GCC.
- if test "x$GCC" = "xyes"; then
-- XCFLAGS="$XCFLAGS -Wall -Werror"
-+ XCFLAGS="$XCFLAGS -Wall"
- fi
---- a/libgomp/configure
-+++ b/libgomp/configure
-@@ -4282,4 +4282,4 @@ save_CFLAGS="$CFLAGS"
- # Add -Wall -Werror if we are using GCC.
- if test "x$GCC" = "xyes"; then
-- XCFLAGS="$XCFLAGS -Wall -Werror"
-+ XCFLAGS="$XCFLAGS -Wall"
- fi
diff --git a/dev-lang/gnat-gpl/files/gnat-gpl-2017-libitm-Werror.patch b/dev-lang/gnat-gpl/files/gnat-gpl-2017-libitm-Werror.patch
deleted file mode 100644
index 27181e02cfbd..000000000000
--- a/dev-lang/gnat-gpl/files/gnat-gpl-2017-libitm-Werror.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-libitm does not respect --disable-werror
-
-https://bugs.gentoo.org/475350
---- a/libitm/configure.ac
-+++ b/libitm/configure.ac
-@@ -4282,4 +4282,4 @@ save_CFLAGS="$CFLAGS"
- # Add -Wall -Werror if we are using GCC.
- if test "x$GCC" = "xyes"; then
-- XCFLAGS="$XCFLAGS -Wall -Werror"
-+ XCFLAGS="$XCFLAGS -Wall"
- fi
---- a/libitm/configure
-+++ b/libitm/configure
-@@ -4282,4 +4282,4 @@ save_CFLAGS="$CFLAGS"
- # Add -Wall -Werror if we are using GCC.
- if test "x$GCC" = "xyes"; then
-- XCFLAGS="$XCFLAGS -Wall -Werror"
-+ XCFLAGS="$XCFLAGS -Wall"
- fi
diff --git a/dev-lang/gnat-gpl/files/gnat-gpl-2017-ustat.patch b/dev-lang/gnat-gpl/files/gnat-gpl-2017-ustat.patch
deleted file mode 100644
index 4c57b814ce57..000000000000
--- a/dev-lang/gnat-gpl/files/gnat-gpl-2017-ustat.patch
+++ /dev/null
@@ -1,31 +0,0 @@
---- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc 2019-04-19 20:53:11.382114157 +0200
-+++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc 2019-04-19 20:57:10.725037767 +0200
-@@ -150,7 +150,6 @@
- # include <sys/procfs.h>
- #endif
- #include <sys/user.h>
--#include <sys/ustat.h>
- #include <linux/cyclades.h>
- #include <linux/if_eql.h>
- #include <linux/if_plip.h>
-@@ -243,7 +242,19 @@
- #endif // SANITIZER_LINUX || SANITIZER_FREEBSD
-
- #if SANITIZER_LINUX && !SANITIZER_ANDROID
-- unsigned struct_ustat_sz = sizeof(struct ustat);
-+ // Use pre-computed size of struct ustat to avoid <sys/ustat.h> which
-+ // has been removed from glibc 2.28.
-+#if defined(__aarch64__) || defined(__s390x__) || defined (__mips64) \
-+ || defined(__powerpc64__) || defined(__arch64__) || defined(__sparcv9) \
-+ || defined(__x86_64__)
-+#define SIZEOF_STRUCT_USTAT 32
-+#elif defined(__arm__) || defined(__i386__) || defined(__mips__) \
-+ || defined(__powerpc__) || defined(__s390__) || defined(__sparc__)
-+#define SIZEOF_STRUCT_USTAT 20
-+#else
-+#error Unknown size of struct ustat
-+#endif
-+ unsigned struct_ustat_sz = SIZEOF_STRUCT_USTAT;
- unsigned struct_rlimit64_sz = sizeof(struct rlimit64);
- unsigned struct_statvfs64_sz = sizeof(struct statvfs64);
- #endif // SANITIZER_LINUX && !SANITIZER_ANDROID
diff --git a/dev-lang/gnat-gpl/files/gnat-gpl-2018-gentoo.patch b/dev-lang/gnat-gpl/files/gnat-gpl-2018-gentoo.patch
deleted file mode 100644
index 5d6a38af14e3..000000000000
--- a/dev-lang/gnat-gpl/files/gnat-gpl-2018-gentoo.patch
+++ /dev/null
@@ -1,18 +0,0 @@
---- a/gcc-7-gpl-2018-src/gcc/ada/osint.adb 2017-03-10 21:58:02.600710156 +0100
-+++ b/gcc-7-gpl-2018-src/gcc/ada/osint.adb 2017-03-10 21:59:38.033983293 +0100
-@@ -2229,14 +2229,11 @@
- for J in Start_Of_Prefix .. Name_Len - Prog'Length + 1 loop
- if Name_Buffer (J .. J + Prog'Length - 1) = Prog then
- End_Of_Prefix := J - 1;
-+ Start_Of_Suffix := J + Prog'Length;
- exit;
- end if;
- end loop;
-
-- if End_Of_Prefix > 1 then
-- Start_Of_Suffix := End_Of_Prefix + Prog'Length + 1;
-- end if;
--
- -- Create the new program name
-
- return new String'
diff --git a/dev-lang/gnat-gpl/files/gnat-gpl-2018-libsanitizer-p1.patch b/dev-lang/gnat-gpl/files/gnat-gpl-2018-libsanitizer-p1.patch
deleted file mode 100644
index 80cc074d7f34..000000000000
--- a/dev-lang/gnat-gpl/files/gnat-gpl-2018-libsanitizer-p1.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 54d87ffe4b34052f159ac5b72b250129ce813b2a Mon Sep 17 00:00:00 2001
-From: Jakub Jelinek <jakub@redhat.com>
-Date: Fri, 14 Feb 2020 12:33:27 +0100
-Subject: [PATCH] backport: re PR sanitizer/92154 (new glibc breaks arm
- bootstrap due to libsanitizer)
-
- Backported from mainline
- 2019-10-22 Tamar Christina <tamar.christina@arm.com>
-
- PR sanitizer/92154
- * sanitizer_common/sanitizer_platform_limits_posix.cc:
- Cherry-pick compiler-rt revision r375220.
----
---- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc
-+++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc
-@@ -1147,8 +1147,12 @@ CHECK_SIZE_AND_OFFSET(ipc_perm, uid);
- CHECK_SIZE_AND_OFFSET(ipc_perm, gid);
- CHECK_SIZE_AND_OFFSET(ipc_perm, cuid);
- CHECK_SIZE_AND_OFFSET(ipc_perm, cgid);
--#if !defined(__aarch64__) || !SANITIZER_LINUX || __GLIBC_PREREQ (2, 21)
-+#if (!defined(__aarch64__) || !SANITIZER_LINUX || __GLIBC_PREREQ (2, 21)) && \
-+ !defined(__arm__)
- /* On aarch64 glibc 2.20 and earlier provided incorrect mode field. */
-+/* On Arm glibc 2.31 and later provide a different mode field, this field is
-+ never used by libsanitizer so we can simply ignore this assert for all glibc
-+ versions. */
- CHECK_SIZE_AND_OFFSET(ipc_perm, mode);
- #endif
-
---
-2.25.2
-
diff --git a/dev-lang/gnat-gpl/files/gnat-gpl-2018-libsanitizer-p2.patch b/dev-lang/gnat-gpl/files/gnat-gpl-2018-libsanitizer-p2.patch
deleted file mode 100644
index bdd8dcbe3d02..000000000000
--- a/dev-lang/gnat-gpl/files/gnat-gpl-2018-libsanitizer-p2.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From dbdf86838aaaef76620c00c53096cfe157d5af6e Mon Sep 17 00:00:00 2001
-From: Jakub Jelinek <jakub@redhat.com>
-Date: Fri, 14 Feb 2020 12:38:30 +0100
-Subject: [PATCH] backport: re PR sanitizer/92154 (new glibc breaks arm
- bootstrap due to libsanitizer)
-
- Backported from mainline
- 2019-11-26 Jakub Jelinek <jakub@redhat.com>
-
- PR sanitizer/92154
- * sanitizer_common/sanitizer_platform_limits_posix.h: Cherry-pick
- llvm-project revision 947f9692440836dcb8d88b74b69dd379d85974ce.
- * sanitizer_common/sanitizer_platform_limits_posix.cc: Likewise.
----
---- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc
-+++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc
-@@ -1147,12 +1147,9 @@ CHECK_SIZE_AND_OFFSET(ipc_perm, uid);
- CHECK_SIZE_AND_OFFSET(ipc_perm, gid);
- CHECK_SIZE_AND_OFFSET(ipc_perm, cuid);
- CHECK_SIZE_AND_OFFSET(ipc_perm, cgid);
--#if (!defined(__aarch64__) || !SANITIZER_LINUX || __GLIBC_PREREQ (2, 21)) && \
-- !defined(__arm__)
--/* On aarch64 glibc 2.20 and earlier provided incorrect mode field. */
--/* On Arm glibc 2.31 and later provide a different mode field, this field is
-- never used by libsanitizer so we can simply ignore this assert for all glibc
-- versions. */
-+#if !SANITIZER_LINUX || __GLIBC_PREREQ (2, 31)
-+/* glibc 2.30 and earlier provided 16-bit mode field instead of 32-bit
-+ on many architectures. */
- CHECK_SIZE_AND_OFFSET(ipc_perm, mode);
- #endif
-
---- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
-+++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
-@@ -210,20 +210,13 @@ namespace __sanitizer {
- unsigned long __unused1;
- unsigned long __unused2;
- #elif defined(__sparc__)
--# if defined(__arch64__)
- unsigned mode;
-- unsigned short __pad1;
--# else
-- unsigned short __pad1;
-- unsigned short mode;
- unsigned short __pad2;
--# endif
- unsigned short __seq;
- unsigned long long __unused1;
- unsigned long long __unused2;
- #else
-- unsigned short mode;
-- unsigned short __pad1;
-+ unsigned int mode;
- unsigned short __seq;
- unsigned short __pad2;
- #if defined(__x86_64__) && !defined(_LP64)
---
-2.25.2
-
diff --git a/dev-lang/gnat-gpl/files/gnat-gpl-2019-gentoo.patch b/dev-lang/gnat-gpl/files/gnat-gpl-2019-gentoo.patch
deleted file mode 100644
index 36befaafc0f8..000000000000
--- a/dev-lang/gnat-gpl/files/gnat-gpl-2019-gentoo.patch
+++ /dev/null
@@ -1,42 +0,0 @@
---- a/patch/15_all_disable-systemtap-switch.patch 2019-05-28 09:25:40.556754095 +0200
-+++ b/patch/15_all_disable-systemtap-switch.patch 2019-05-28 09:25:00.731426775 +0200
-@@ -42,8 +42,8 @@
- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
- lt_status=$lt_dlunknown
- cat > conftest.$ac_ext <<_LT_EOF
---#line 18451 "configure"
--+#line 18453 "configure"
-+-#line 18497 "configure"
-++#line 18499 "configure"
- #include "confdefs.h"
-
- #if HAVE_DLFCN_H
-@@ -51,8 +51,8 @@
- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
- lt_status=$lt_dlunknown
- cat > conftest.$ac_ext <<_LT_EOF
---#line 18557 "configure"
--+#line 18559 "configure"
-+-#line 18603 "configure"
-++#line 18605 "configure"
- #include "confdefs.h"
-
- #if HAVE_DLFCN_H
---- a/gcc-8-2019-20190517-18C94-src/gcc/ada/osint.adb 2017-03-10 21:58:02.600710156 +0100
-+++ b/gcc-8-2019-20190517-18C94-src/gcc/ada/osint.adb 2017-03-10 21:59:38.033983293 +0100
-@@ -2229,14 +2229,11 @@
- for J in Start_Of_Prefix .. Name_Len - Prog'Length + 1 loop
- if Name_Buffer (J .. J + Prog'Length - 1) = Prog then
- End_Of_Prefix := J - 1;
-+ Start_Of_Suffix := J + Prog'Length;
- exit;
- end if;
- end loop;
-
-- if End_Of_Prefix > 1 then
-- Start_Of_Suffix := End_Of_Prefix + Prog'Length + 1;
-- end if;
--
- -- Create the new program name
-
- return new String'
diff --git a/dev-lang/gnat-gpl/files/gnat-gpl-2021-gentoo.patch b/dev-lang/gnat-gpl/files/gnat-gpl-2021-gentoo.patch
new file mode 100644
index 000000000000..681fd47262da
--- /dev/null
+++ b/dev-lang/gnat-gpl/files/gnat-gpl-2021-gentoo.patch
@@ -0,0 +1,95 @@
+--- a/gcc-10-2021-20210519-19A74-src/gcc/ada/osint.adb 2017-03-10 21:58:02.600710156 +0100
++++ b/gcc-10-2021-20210519-19A74-src/gcc/ada/osint.adb 2017-03-10 21:59:38.033983293 +0100
+@@ -2229,14 +2229,11 @@
+ for J in Start_Of_Prefix .. Name_Len - Prog'Length + 1 loop
+ if Name_Buffer (J .. J + Prog'Length - 1) = Prog then
+ End_Of_Prefix := J - 1;
++ Start_Of_Suffix := J + Prog'Length;
+ exit;
+ end if;
+ end loop;
+
+- if End_Of_Prefix > 1 then
+- Start_Of_Suffix := End_Of_Prefix + Prog'Length + 1;
+- end if;
+-
+ -- Create the new program name
+
+ return new String'
+--- a/patch/04_all_nossp-on-nostdlib.patch 2021-05-10 21:37:05.733985417 +0200
++++ b/patch/04_all_nossp-on-nostdlib.patch 2021-05-10 21:38:02.925029050 +0200
+@@ -4,7 +4,7 @@
+ --- a/gcc/gcc.c 2017-07-04 09:15:57.740793000 +0200
+ +++ b/gcc/gcc.c 2018-03-02 13:58:44.387741114 +0100
+ @@ -857,6 +857,12 @@ proper position among the other output f
+- #define LINK_GCC_C_SEQUENCE_SPEC "%G %L %G"
++ #define LINK_GCC_C_SEQUENCE_SPEC "%G %{!nolibc:%L %G}"
+ #endif
+
+ +#ifdef ENABLE_DEFAULT_SSP
+@@ -19,9 +19,9 @@
+ @@ -1131,7 +1148,7 @@ static const char *cc1_options =
+ %{-version:--version}\
+ %{-help=*:--help=%*}\
+- %{!fsyntax-only:%{S:%W{o*}%{!o*:-o %b.s}}}\
++ %{!fsyntax-only:%{S:%W{o*}%{!o*:-o %w%b.s}}}\
+ - %{fsyntax-only:-o %j} %{-param*}\
+ + %{fsyntax-only:-o %j} %{-param*} " NO_SSP_SPEC "\
+ %{coverage:-fprofile-arcs -ftest-coverage}\
++ %{fdump-scos:-fpreserve-decisions-generic}\
+ %{fprofile-arcs|fprofile-generate*|coverage:\
+- %{!fprofile-update=singel:\
+--- a/gcc-10-2021-20210519-19A74-src/config/cet.m4 2022-01-01 11:18:09.663425422 +0100
++++ b/gcc-10-2021-20210519-19A74-src/config/cet.m4 2022-01-01 11:18:14.809345911 +0100
+@@ -62,7 +62,6 @@
+ i[[34567]]86-*-linux* | x86_64-*-linux*)
+ may_have_cet=yes
+ save_CFLAGS="$CFLAGS"
+- CFLAGS="$CFLAGS -fcf-protection"
+ case "$enable_cet" in
+ auto)
+ # Check if target supports multi-byte NOPs
+--- a/gcc-10-2021-20210519-19A74-src/libiberty/configure 2024-03-02 19:45:34.658271627 +0100
++++ b/gcc-10-2021-20210519-19A74-src/libiberty/configure 2024-03-02 19:54:48.013538533 +0100
+@@ -6709,6 +6709,9 @@
+ if test "$cross_compiling" = yes; then :
+ ac_cv_c_stack_direction=0
+ else
++ cat >>confdefs.h <<_ACEOF
++extern void exit(int status);
++_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+ find_stack_direction ()
+@@ -7539,6 +7542,11 @@
+ if test "$cross_compiling" = yes; then :
+ ac_cv_func_strncmp_works=yes
+ else
++ cat >>confdefs.h <<_ACEOF
++ extern long unsigned int strlen(const char *s);
++ extern char *strcpy(char *dst, const char *src);
++ extern int strncmp(const char *s1, const char *s2, long unsigned int n);
++_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+
+--- a/gcc-10-2021-20210519-19A74-src/libsanitizer/configure 2024-03-02 20:41:56.810707374 +0100
++++ b/gcc-10-2021-20210519-19A74-src/libsanitizer/configure 2024-03-02 20:43:00.189080219 +0100
+@@ -16073,6 +16073,7 @@
+ sanitizer_supported=no
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+ #include <sys/syscall.h>
++#include <unistd.h>
+ int
+ main ()
+--- a/gcc-10-2021-20210519-19A74-src/libgfortran/configure 2024-03-02 21:57:47.282939696 +0100
++++ b/gcc-10-2021-20210519-19A74-src/libgfortran/configure 2024-03-02 21:58:34.702446345 +0100
+@@ -26391,6 +26391,7 @@
+ #if HAVE_IEEEFP_H
+ # include <ieeefp.h>
+ #endif /* HAVE_IEEEFP_H */
++extern void fpsetmask(int);
+ int
+ main ()
+ {
diff --git a/dev-lang/gnat-gpl/gnat-gpl-2016-r4.ebuild b/dev-lang/gnat-gpl/gnat-gpl-2016-r4.ebuild
deleted file mode 100644
index eeeeaf2c0388..000000000000
--- a/dev-lang/gnat-gpl/gnat-gpl-2016-r4.ebuild
+++ /dev/null
@@ -1,161 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PATCH_GCC_VER=4.9.4
-PATCH_VER="1.4"
-UCLIBC_VER="1.0"
-
-# Hardened gcc 4 stuff
-PIE_VER="0.6.4"
-SPECS_VER="0.2.0"
-SPECS_GCC_VER="4.4.3"
-# arch/libc configurations known to be stable with {PIE,SSP}-by-default
-PIE_GLIBC_STABLE="x86 amd64 mips ppc ppc64 arm ia64"
-PIE_UCLIBC_STABLE="x86 arm amd64 mips ppc ppc64"
-SSP_STABLE="amd64 x86 mips ppc ppc64 arm"
-# uclibc need tls and nptl support for SSP support
-# uclibc need to be >= 0.9.33
-SSP_UCLIBC_STABLE="x86 amd64 mips ppc ppc64 arm"
-#end Hardened stuff
-
-TOOLCHAIN_GCC_PV=4.9.4
-
-REL=4.9
-MYP=gcc-${REL}-gpl-${PV}-src
-BTSTRP_X86=gnat-gpl-2014-x86-linux-bin
-BTSTRP_AMD64=gnat-gpl-2014-x86_64-linux-bin
-
-inherit toolchain-funcs toolchain
-
-DESCRIPTION="GNAT Ada Compiler - GPL version"
-HOMEPAGE="http://libre.adacore.com/"
-# we provide own tarball below
-SRC_URI+="
- http://mirrors.cdn.adacore.com/art/57399304c7a447658e0aff7f
- -> ${P}-src.tar.gz
- http://mirrors.cdn.adacore.com/art/573992d4c7a447658d00e1db
- -> ${MYP}.tar.gz
- http://mirrors.cdn.adacore.com/art/57399232c7a447658e0aff7d
- -> gcc-interface-${REL}-gpl-${PV}-src.tar.gz
- bootstrap? (
- amd64? (
- http://mirrors.cdn.adacore.com/art/564b3ebec8e196b040fbe66c ->
- ${BTSTRP_AMD64}.tar.gz
- )
- x86? (
- http://mirrors.cdn.adacore.com/art/564b3e9dc8e196b040fbe248 ->
- ${BTSTRP_X86}.tar.gz
- )
- )"
-
-LICENSE+=" GPL-2 GPL-3"
-SLOT="${TOOLCHAIN_GCC_PV}"
-KEYWORDS="amd64 x86"
-IUSE="+ada +bootstrap"
-RESTRICT="!test? ( test )"
-
-RDEPEND="!sys-devel/gcc:${TOOLCHAIN_GCC_PV}"
-DEPEND="${RDEPEND}
- elibc_glibc? ( >=sys-libs/glibc-2.8 )
- >=sys-devel/binutils-2.20"
-
-PDEPEND="${PDEPEND} elibc_glibc? ( >=sys-libs/glibc-2.8 )"
-
-S="${WORKDIR}"/${MYP}
-
-FSFGCC=gcc-${TOOLCHAIN_GCC_PV}
-
-pkg_setup() {
- toolchain_pkg_setup
-
- if use amd64; then
- BTSTRP=${BTSTRP_AMD64}
- else
- BTSTRP=${BTSTRP_X86}
- fi
- if use bootstrap; then
- GCC="${WORKDIR}"/${BTSTRP}/bin/gcc
- else
- GCC=${ADA:-$(tc-getCC)}
- fi
- CC=${GCC}
- local base=$(basename ${GCC})
- CXX="${base/gcc/g++}"
- GNATMAKE="${base/gcc/gnatmake}"
- GNATBIND="${base/gcc/gnatbind}"
- if [[ ${base} != ${GCC} ]] ; then
- local path=$(dirname ${GCC})
- GNATMAKE="${path}/${GNATMAKE}"
- GNATBIND="${path}/${GNATBIND}"
- CXX="${path}/${CXX}"
- fi
-}
-
-src_unpack() {
- if ! use bootstrap && [[ -z "$(type ${GNATMAKE} 2>/dev/null)" ]] ; then
- eerror "You need a gcc compiler that provides the Ada Compiler:"
- eerror "1) use gcc-config to select the right compiler or"
- eerror "2) set the bootstrap use flag"
- die "ada compiler not available"
- fi
-
- toolchain_src_unpack
- if use bootstrap; then
- rm ${BTSTRP}/libexec/gcc/*/4.7.4/ld || die
- fi
-}
-
-src_prepare() {
- cd ..
-
- sed -i \
- -e "s:gnatmake:${GNATMAKE}:g" \
- ${P}-src/src/ada/Make-generated.in || die "sed failed"
- sed -i \
- -e "/xoscons/s:gnatmake:${GNATMAKE}:g" \
- gcc-interface-${REL}-gpl-${PV}-src/Makefile.in || die "sed failed"
-
- mv ${P}-src/src/ada ${MYP}/gcc/ || die
- mv gcc-interface-${REL}-gpl-${PV}-src ${MYP}/gcc/ada/gcc-interface || die
- mv ${FSFGCC}/gcc/doc/gcc.info ${MYP}/gcc/doc/ || die
- mv ${FSFGCC}/libjava ${MYP} || die
- rm -r ${FSFGCC} || die
- eapply "${FILESDIR}"/${P}-gentoo.patch
- cd -
-
- # Bug 638056
- eapply "${FILESDIR}/${P}-bootstrap.patch"
- # add Finalization_Size Attribute
- eapply "${FILESDIR}/${P}-finalization.patch"
- # add profile for gnat_util compatibility
- eapply "${FILESDIR}/${P}-profile.patch"
-
- EPATCH_EXCLUDE+=" 34_all_gcc48_config_i386.patch"
- EPATCH_EXCLUDE+=" 10_all_default-fortify-source.patch"
-
- toolchain_src_prepare
-
- use vanilla && return 0
- # Use -r1 for newer piepatchet that use DRIVER_SELF_SPECS for the hardened specs.
- [[ ${CHOST} == ${CTARGET} ]] && eapply "${FILESDIR}"/gcc-spec-env-r1.patch
-}
-
-src_configure() {
- downgrade_arch_flags "$(gcc-version)"
- toolchain_src_configure \
- CC=${GCC} \
- GNATBIND=${GNATBIND} \
- GNATMAKE=yes
-}
-
-pkg_postinst() {
- toolchain_pkg_postinst
- einfo "This provide the GNAT compiler with gcc for ada/c/c++ and more"
- einfo "The compiler binary is gcc-${TOOLCHAIN_GCC_PV}"
- einfo "Even if the c/c++ compilers are using almost the same patched"
- einfo "source as the sys-devel/gcc package its use is not extensively"
- einfo "tested, and not supported for updating your system, except for ada"
- einfo "related packages"
-}
diff --git a/dev-lang/gnat-gpl/gnat-gpl-2017-r1.ebuild b/dev-lang/gnat-gpl/gnat-gpl-2017-r1.ebuild
deleted file mode 100644
index bff11256c1f6..000000000000
--- a/dev-lang/gnat-gpl/gnat-gpl-2017-r1.ebuild
+++ /dev/null
@@ -1,147 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PATCH_GCC_VER=6.3.0
-PATCH_VER="1.0"
-
-TOOLCHAIN_GCC_PV=6.3.0 # upstream is 6.3.1 but ada.eclass already assumes 6.3.0
-
-REL=6
-MYP=gcc-${REL}-gpl-${PV}-src
-BTSTRP_X86=gnat-gpl-2014-x86-linux-bin
-BTSTRP_AMD64=gnat-gpl-2014-x86_64-linux-bin
-
-# we provide own tarball below
-GCC_TARBALL_SRC_URI="
- http://mirrors.cdn.adacore.com/art/591adbb4c7a4473fcc4532a3
- -> ${P}-src.tar.gz
- http://mirrors.cdn.adacore.com/art/591adb65c7a4473fcbb153ac
- -> ${MYP}.tar.gz
- http://mirrors.cdn.adacore.com/art/591adbc5c7a4473fcbb153ae
- -> gcc-interface-${REL}-gpl-${PV}-src.tar.gz
- bootstrap? (
- amd64? (
- http://mirrors.cdn.adacore.com/art/564b3ebec8e196b040fbe66c ->
- ${BTSTRP_AMD64}.tar.gz
- )
- x86? (
- http://mirrors.cdn.adacore.com/art/564b3e9dc8e196b040fbe248 ->
- ${BTSTRP_X86}.tar.gz
- )
- )"
-
-inherit toolchain-funcs toolchain
-
-DESCRIPTION="GNAT Ada Compiler - GPL version"
-HOMEPAGE="http://libre.adacore.com/"
-
-LICENSE+=" GPL-2 GPL-3"
-SLOT="${TOOLCHAIN_GCC_PV}"
-KEYWORDS="amd64 x86"
-IUSE="+ada +bootstrap"
-RESTRICT="!test? ( test )"
-
-RDEPEND="!sys-devel/gcc:${TOOLCHAIN_GCC_PV}"
-DEPEND="${RDEPEND}
- elibc_glibc? ( >=sys-libs/glibc-2.13 )
- >=sys-devel/binutils-2.20"
-
-S="${WORKDIR}"/${MYP}
-PDEPEND="${PDEPEND} elibc_glibc? ( >=sys-libs/glibc-2.13 )"
-
-pkg_setup() {
- toolchain_pkg_setup
-
- if use amd64; then
- BTSTRP=${BTSTRP_AMD64}
- else
- BTSTRP=${BTSTRP_X86}
- fi
-
- if use bootstrap; then
- GCC="${WORKDIR}"/${BTSTRP}/bin/gcc
- else
- GCC=${ADA:-$(tc-getCC)}
- fi
-
- gnatbase=$(basename ${GCC})
- gnatpath=$(dirname ${GCC})
-
- GNATMAKE=${gnatbase/gcc/gnatmake}
- if [[ ${gnatpath} != "." ]] ; then
- GNATMAKE="${gnatpath}/${GNATMAKE}"
- fi
-}
-
-src_unpack() {
- if ! use bootstrap && [[ -z "$(type ${GNATMAKE} 2>/dev/null)" ]] ; then
- eerror "You need a gcc compiler that provides the Ada Compiler:"
- eerror "1) use gcc-config to select the right compiler or"
- eerror "2) set the bootstrap use flag"
- die "ada compiler not available"
- fi
-
- toolchain_src_unpack
- if use bootstrap; then
- rm ${BTSTRP}/libexec/gcc/*/4.7.4/ld || die
- fi
-}
-
-src_prepare() {
- CC=${GCC}
- CXX="${gnatbase/gcc/g++}"
- GNATBIND="${gnatbase/gcc/gnatbind}"
- GNATLINK="${gnatbase/gcc/gnatlink}"
- GNATLS="${gnatbase/gcc/gnatls}"
- if [[ ${gnatpath} != "." ]] ; then
- CXX="${gnatpath}/${CXX}"
- GNATBIND="${gnatpath}/${GNATBIND}"
- GNATLINK="${gnatpath}/${GNATLINK}"
- GNATLS="${gnatpath}/${GNATLS}"
- fi
- mkdir bin || die
- ln -s $(which ${GCC}) bin/gcc || die
- ln -s $(which ${CXX}) bin/g++ || die
- ln -s $(which ${GNATMAKE}) bin/gnatmake || die
- ln -s $(which ${GNATBIND}) bin/gnatbind || die
- ln -s $(which ${GNATLINK}) bin/gnatlink || die
- ln -s $(which ${GNATLS}) bin/gnatls || die
-
- # upstream is 6.3.1 but ada.eclass already assumes 6.3.0
- echo ${TOOLCHAIN_GCC_PV} > gcc/BASE-VER
-
- cd ..
- mv ${P}-src/src/ada ${MYP}/gcc/ || die
- mv gcc-interface-${REL}-gpl-${PV}-src ${MYP}/gcc/ada/gcc-interface || die
- eapply "${FILESDIR}"/${P}-gentoo.patch
- cd -
- sed -i \
- -e 's:$(P) ::g' \
- gcc/ada/gcc-interface/Makefile.in \
- || die "sed failed"
- # fix missing ustat.h
- eapply "${FILESDIR}/${P}-ustat.patch"
-
- toolchain_src_prepare
- eapply "${FILESDIR}"/${P}-libgomp-Werror.patch
- eapply "${FILESDIR}"/${P}-libatomic-Werror.patch
- eapply "${FILESDIR}"/${P}-libitm-Werror.patch
-}
-
-src_configure() {
- export PATH=${PWD}/bin:${PATH}
- downgrade_arch_flags "$(gcc-version)"
- toolchain_src_configure
-}
-
-pkg_postinst() {
- toolchain_pkg_postinst
- einfo "This provide the GNAT compiler with gcc for ada/c/c++ and more"
- einfo "The compiler binary is ${CTARGET}-gcc-${TOOLCHAIN_GCC_PV}"
- einfo "Even if the c/c++ compilers are using almost the same patched"
- einfo "source as the sys-devel/gcc package its use is not extensively"
- einfo "tested, and not supported for updating your system, except for ada"
- einfo "related packages"
-}
diff --git a/dev-lang/gnat-gpl/gnat-gpl-2018-r3.ebuild b/dev-lang/gnat-gpl/gnat-gpl-2018-r3.ebuild
deleted file mode 100644
index bb4782b8d4be..000000000000
--- a/dev-lang/gnat-gpl/gnat-gpl-2018-r3.ebuild
+++ /dev/null
@@ -1,144 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PATCH_GCC_VER=7.3.0
-PATCH_VER="1.8"
-
-TOOLCHAIN_GCC_PV=7.3.1
-
-REL=7
-MYP=gcc-${REL}-gpl-${PV}-src
-BTSTRP_X86=gnat-gpl-2014-x86-linux-bin
-BTSTRP_AMD64=gnat-gpl-2014-x86_64-linux-bin
-
-# we provide own tarball below
-GCC_TARBALL_SRC_URI="
- http://mirrors.cdn.adacore.com/art/5b0819dfc7a447df26c27aa5
- -> ${P}-src.tar.gz
- http://mirrors.cdn.adacore.com/art/5b0819dfc7a447df26c27aa7
- -> ${MYP}.tar.gz
- http://mirrors.cdn.adacore.com/art/5b0819dfc7a447df26c27aa6
- -> gcc-interface-${REL}-gpl-${PV}-src.tar.gz
- bootstrap? (
- amd64? (
- http://mirrors.cdn.adacore.com/art/564b3ebec8e196b040fbe66c ->
- ${BTSTRP_AMD64}.tar.gz
- )
- x86? (
- http://mirrors.cdn.adacore.com/art/564b3e9dc8e196b040fbe248 ->
- ${BTSTRP_X86}.tar.gz
- )
- )"
-
-inherit toolchain-funcs toolchain
-
-DESCRIPTION="GNAT Ada Compiler - GPL version"
-HOMEPAGE="http://libre.adacore.com/"
-
-LICENSE+=" GPL-2 GPL-3"
-KEYWORDS="amd64 x86"
-IUSE="+ada +bootstrap"
-RESTRICT="!test? ( test )"
-
-RDEPEND="!sys-devel/gcc:${TOOLCHAIN_GCC_PV}"
-DEPEND="${RDEPEND}
- elibc_glibc? ( >=sys-libs/glibc-2.13 )
- >=sys-devel/binutils-2.20"
-
-S="${WORKDIR}"/${MYP}
-PDEPEND="${PDEPEND} elibc_glibc? ( >=sys-libs/glibc-2.13 )"
-
-pkg_setup() {
- toolchain_pkg_setup
-
- if use amd64; then
- BTSTRP=${BTSTRP_AMD64}
- else
- BTSTRP=${BTSTRP_X86}
- fi
-
- if use bootstrap; then
- GCC="${WORKDIR}"/${BTSTRP}/bin/gcc
- else
- GCC=${ADA:-$(tc-getCC)}
- fi
-
- gnatbase=$(basename ${GCC})
- gnatpath=$(dirname ${GCC})
-
- GNATMAKE=${gnatbase/gcc/gnatmake}
- if [[ ${gnatpath} != "." ]] ; then
- GNATMAKE="${gnatpath}/${GNATMAKE}"
- fi
-}
-
-src_unpack() {
- if ! use bootstrap && [[ -z "$(type ${GNATMAKE} 2>/dev/null)" ]] ; then
- eerror "You need a gcc compiler that provides the Ada Compiler:"
- eerror "1) use gcc-config to select the right compiler or"
- eerror "2) set the bootstrap use flag"
- die "ada compiler not available"
- fi
-
- toolchain_src_unpack
- if use bootstrap; then
- rm ${BTSTRP}/libexec/gcc/*/4.7.4/ld || die
- fi
-}
-
-src_prepare() {
- CC=${GCC}
- CXX="${gnatbase/gcc/g++}"
- GNATBIND="${gnatbase/gcc/gnatbind}"
- GNATLINK="${gnatbase/gcc/gnatlink}"
- GNATLS="${gnatbase/gcc/gnatls}"
- if [[ ${gnatpath} != "." ]] ; then
- CXX="${gnatpath}/${CXX}"
- GNATBIND="${gnatpath}/${GNATBIND}"
- GNATLINK="${gnatpath}/${GNATLINK}"
- GNATLS="${gnatpath}/${GNATLS}"
- fi
- mkdir bin || die
- ln -s $(which ${GCC}) bin/gcc || die
- ln -s $(which ${CXX}) bin/g++ || die
- ln -s $(which ${GNATMAKE}) bin/gnatmake || die
- ln -s $(which ${GNATBIND}) bin/gnatbind || die
- ln -s $(which ${GNATLINK}) bin/gnatlink || die
- ln -s $(which ${GNATLS}) bin/gnatls || die
-
- cd ..
- sed -i \
- -e 's:$(P) ::g' \
- gcc-interface-${REL}-gpl-${PV}-src/Makefile.in \
- || die "sed failed"
- mv ${P}-src/src/ada ${MYP}/gcc/ || die
- mv gcc-interface-${REL}-gpl-${PV}-src ${MYP}/gcc/ada/gcc-interface || die
- eapply "${FILESDIR}"/${P}-gentoo.patch
- cd -
-
- EPATCH_EXCLUDE+=" 91_all_bmi-i386-PR-target-81763.patch"
- EPATCH_EXCLUDE+=" 93_all_copy-constructible-fix.patch"
- EPATCH_EXCLUDE+=" 95_all_libsanitizer-avoidustat.h-glibc-2.28-part-1.patch"
- EPATCH_EXCLUDE+=" 98_all_msp430-partial-int.patch"
- toolchain_src_prepare
- eapply "${FILESDIR}"/${P}-libsanitizer-p1.patch
- eapply "${FILESDIR}"/${P}-libsanitizer-p2.patch
-}
-
-src_configure() {
- export PATH=${PWD}/bin:${PATH}
- downgrade_arch_flags "$(gcc-version)"
- toolchain_src_configure
-}
-
-pkg_postinst() {
- toolchain_pkg_postinst
- einfo "This provide the GNAT compiler with gcc for ada/c/c++ and more"
- einfo "The compiler binary is ${CTARGET}-gcc-${TOOLCHAIN_GCC_PV}"
- einfo "Even if the c/c++ compilers are using almost the same patched"
- einfo "source as the sys-devel/gcc package its use is not extensively"
- einfo "tested, and not supported for updating your system, except for ada"
- einfo "related packages"
-}
diff --git a/dev-lang/gnat-gpl/gnat-gpl-2019-r2.ebuild b/dev-lang/gnat-gpl/gnat-gpl-2019-r2.ebuild
deleted file mode 100644
index 397ec960074f..000000000000
--- a/dev-lang/gnat-gpl/gnat-gpl-2019-r2.ebuild
+++ /dev/null
@@ -1,141 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PATCH_GCC_VER=8.3.0
-PATCH_VER="4"
-
-TOOLCHAIN_GCC_PV=8.3.1
-
-REL=8
-MYP=gcc-${REL}-${PV}-20190517-18C94-src
-GNATDIR=gnat-${PV}-20190517-18C94-src
-INTFDIR=gcc-interface-${REL}-${PV}-20190510-18F59-src
-BTSTRP_X86=gnat-gpl-2014-x86-linux-bin
-BTSTRP_AMD64=gnat-gpl-2014-x86_64-linux-bin
-
-# we provide own tarball below
-GCC_TARBALL_SRC_URI="
- http://mirrors.cdn.adacore.com/art/5cdf865331e87aa2cdf16b49
- -> ${GNATDIR}.tar.gz
- http://mirrors.cdn.adacore.com/art/5cdf8a0731e87a8f1d425049
- -> ${MYP}.tar.gz
- http://mirrors.cdn.adacore.com/art/5cdf87cc31e87aa2cdf16b50
- -> ${INTFDIR}.tar.gz
- bootstrap? (
- amd64? (
- http://mirrors.cdn.adacore.com/art/564b3ebec8e196b040fbe66c ->
- ${BTSTRP_AMD64}.tar.gz
- )
- x86? (
- http://mirrors.cdn.adacore.com/art/564b3e9dc8e196b040fbe248 ->
- ${BTSTRP_X86}.tar.gz
- )
- )"
-
-inherit toolchain-funcs toolchain
-
-DESCRIPTION="GNAT Ada Compiler - GPL version"
-HOMEPAGE="http://libre.adacore.com/"
-
-LICENSE+=" GPL-2 GPL-3"
-KEYWORDS="amd64 x86"
-IUSE="+ada +bootstrap"
-RESTRICT="test"
-
-RDEPEND="!sys-devel/gcc:${TOOLCHAIN_GCC_PV}"
-DEPEND="${RDEPEND}
- elibc_glibc? ( >=sys-libs/glibc-2.13 )
- >=sys-devel/binutils-2.20"
-
-S="${WORKDIR}"/${MYP}
-PDEPEND="${PDEPEND} elibc_glibc? ( >=sys-libs/glibc-2.13 )"
-
-pkg_setup() {
- toolchain_pkg_setup
-
- if use amd64; then
- BTSTRP=${BTSTRP_AMD64}
- else
- BTSTRP=${BTSTRP_X86}
- fi
-
- if use bootstrap; then
- GCC="${WORKDIR}"/${BTSTRP}/bin/gcc
- else
- GCC=${ADA:-$(tc-getCC)}
- fi
-
- gnatbase=$(basename ${GCC})
- gnatpath=$(dirname ${GCC})
-
- GNATMAKE=${gnatbase/gcc/gnatmake}
- if [[ ${gnatpath} != "." ]] ; then
- GNATMAKE="${gnatpath}/${GNATMAKE}"
- fi
-}
-
-src_unpack() {
- if ! use bootstrap && [[ -z "$(type ${GNATMAKE} 2>/dev/null)" ]] ; then
- eerror "You need a gcc compiler that provides the Ada Compiler:"
- eerror "1) use gcc-config to select the right compiler or"
- eerror "2) set the bootstrap use flag"
- die "ada compiler not available"
- fi
-
- toolchain_src_unpack
- if use bootstrap; then
- rm ${BTSTRP}/libexec/gcc/*/4.7.4/ld || die
- fi
-}
-
-src_prepare() {
- CC=${GCC}
- CXX="${gnatbase/gcc/g++}"
- GNATBIND="${gnatbase/gcc/gnatbind}"
- GNATLINK="${gnatbase/gcc/gnatlink}"
- GNATLS="${gnatbase/gcc/gnatls}"
- if [[ ${gnatpath} != "." ]] ; then
- CXX="${gnatpath}/${CXX}"
- GNATBIND="${gnatpath}/${GNATBIND}"
- GNATLINK="${gnatpath}/${GNATLINK}"
- GNATLS="${gnatpath}/${GNATLS}"
- fi
- mkdir bin || die
- ln -s $(which ${GCC}) bin/gcc || die
- ln -s $(which ${CXX}) bin/g++ || die
- ln -s $(which ${GNATMAKE}) bin/gnatmake || die
- ln -s $(which ${GNATBIND}) bin/gnatbind || die
- ln -s $(which ${GNATLINK}) bin/gnatlink || die
- ln -s $(which ${GNATLS}) bin/gnatls || die
-
- cd ..
- mv ${GNATDIR}/src/ada ${MYP}/gcc/ || die
- mv ${INTFDIR} ${MYP}/gcc/ada/gcc-interface || die
- eapply "${FILESDIR}"/${P}-gentoo.patch
- rm patch/27*.patch || die
- rm patch/28*.patch || die
- cd -
- sed -i \
- -e 's:$(P) ::g' \
- gcc/ada/gcc-interface/Makefile.in \
- || die "sed failed"
- toolchain_src_prepare
-}
-
-src_configure() {
- export PATH=${PWD}/bin:${PATH}
- downgrade_arch_flags "$(gcc-version)"
- toolchain_src_configure
-}
-
-pkg_postinst() {
- toolchain_pkg_postinst
- einfo "This provide the GNAT compiler with gcc for ada/c/c++ and more"
- einfo "The compiler binary is ${CTARGET}-gcc-${TOOLCHAIN_GCC_PV}"
- einfo "Even if the c/c++ compilers are using almost the same patched"
- einfo "source as the sys-devel/gcc package its use is not extensively"
- einfo "tested, and not supported for updating your system, except for ada"
- einfo "related packages"
-}
diff --git a/dev-lang/gnat-gpl/gnat-gpl-2021-r5.ebuild b/dev-lang/gnat-gpl/gnat-gpl-2021-r5.ebuild
new file mode 100644
index 000000000000..de1fe0daf352
--- /dev/null
+++ b/dev-lang/gnat-gpl/gnat-gpl-2021-r5.ebuild
@@ -0,0 +1,161 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PATCH_GCC_VER=10.3.0
+PATCH_VER="4"
+
+TOOLCHAIN_GCC_PV=10.3.1
+PYTHON_COMPAT=( python3_{10..11} )
+
+REL=10
+MYP=gcc-${REL}-${PV}-20210519-19A74-src
+GNATDIR=gnat-${PV}-20210519-19A70-src
+INTFDIR=gcc-interface-${REL}-${PV}-20210519-19A75-src
+
+BTSTRP_X86=gnat-gpl-2014-x86-linux-bin
+BTSTRP_AMD64=gnat-gpl-2014-x86_64-linux-bin
+BASE_URI=https://community.download.adacore.com/v1
+# we provide own tarball below
+GCC_TARBALL_SRC_URI="
+ ${BASE_URI}/005d2b2eff627177986d2517eb31e1959bec6f3a?filename=${GNATDIR}.tar.gz
+ -> ${GNATDIR}.tar.gz
+ ${BASE_URI}/44cd393be0b468cc253bf2cf9cf7804c993e7b5b?filename=${MYP}.tar.gz
+ -> ${MYP}.tar.gz
+ ${BASE_URI}/8ace7d06e469d36d726cc8badb0ed78411e727f3?filename=${INTFDIR}.tar.gz
+ -> ${INTFDIR}.tar.gz
+ bootstrap? (
+ amd64? (
+ ${BASE_URI}/6eb6eef6bb897e4c743a519bfebe0b1d6fc409c6?filename=${BTSTRP_AMD64}.tar.gz&rand=1193
+ -> ${BTSTRP_AMD64}.tar.gz
+ )
+ x86? (
+ ${BASE_URI}/c5e9e6fdff5cb77ed90cf8c62536653e27c0bed6?filename=${BTSTRP_X86}.tar.gz&rand=436
+ -> ${BTSTRP_X86}.tar.gz
+ )
+ )"
+
+inherit toolchain-funcs toolchain
+
+DESCRIPTION="GNAT Ada Compiler - GPL version"
+HOMEPAGE="http://libre.adacore.com/"
+
+LICENSE+=" GPL-2 GPL-3"
+KEYWORDS="amd64 x86"
+IUSE="+ada +bootstrap"
+RESTRICT="test"
+
+RDEPEND="!=sys-devel/gcc-${TOOLCHAIN_GCC_PV}*"
+BDEPEND=sys-devel/binutils
+
+S="${WORKDIR}"/${MYP}
+
+pkg_pretend() {
+ toolchain_pkg_pretend
+ if tc-is-clang; then
+ die "${P} does not build with clang. It is bootstrapped."
+ fi
+}
+
+src_prepare() {
+ if use amd64; then
+ BTSTRP=${BTSTRP_AMD64}
+ else
+ BTSTRP=${BTSTRP_X86}
+ fi
+
+ if use bootstrap; then
+ GCC="${WORKDIR}"/${BTSTRP}/bin/gcc
+ else
+ GCC=${ADA:-$(tc-getCC)}
+ fi
+
+ gnatbase=$(basename ${GCC})
+ gnatpath=$(dirname ${GCC})
+
+ GNATMAKE=${gnatbase/gcc/gnatmake}
+ if [[ ${gnatpath} != "." ]] ; then
+ GNATMAKE="${gnatpath}/${GNATMAKE}"
+ fi
+
+ if ! use bootstrap && [[ -z "$(type ${GNATMAKE} 2>/dev/null)" ]] ; then
+ eerror "You need a gcc compiler that provides the Ada Compiler:"
+ eerror "1) use gcc-config to select the right compiler or"
+ eerror "2) set the bootstrap use flag or"
+ eerror "3) set ADA to a working gcc ada compiler"
+ die "ada compiler not available"
+ fi
+
+ local bundledchost=""
+ use amd64 && local bundledchost="x86_64"
+ use x86 && local bundledchost="i686"
+ if use bootstrap; then
+ rm "${WORKDIR}"/${BTSTRP}/libexec/gcc/${bundledchost}-pc-linux-gnu/4.7.4/ld \
+ || die
+ ln -s /usr/bin/$CHOST-ld \
+ "${WORKDIR}"/${BTSTRP}/libexec/gcc/${bundledchost}-pc-linux-gnu/4.7.4/ld \
+ || die
+ rm "${WORKDIR}"/${BTSTRP}/libexec/gcc/${bundledchost}-pc-linux-gnu/4.7.4/as \
+ || die
+ ln -s /usr/bin/$CHOST-as \
+ "${WORKDIR}"/${BTSTRP}/libexec/gcc/${bundledchost}-pc-linux-gnu/4.7.4/as \
+ || die
+ fi
+
+ CC=${GCC}
+ CXX="${gnatbase/gcc/g++}"
+ GNATBIND="${gnatbase/gcc/gnatbind}"
+ GNATLINK="${gnatbase/gcc/gnatlink}"
+ GNATLS="${gnatbase/gcc/gnatls}"
+ if [[ ${gnatpath} != "." ]] ; then
+ CXX="${gnatpath}/${CXX}"
+ GNATBIND="${gnatpath}/${GNATBIND}"
+ GNATLINK="${gnatpath}/${GNATLINK}"
+ GNATLS="${gnatpath}/${GNATLS}"
+ fi
+ mkdir bin || die
+ ln -s $(type -P ${GCC}) bin/gcc || die
+ ln -s $(type -P ${CXX}) bin/g++ || die
+ ln -s $(type -P ${GNATMAKE}) bin/gnatmake || die
+ ln -s $(type -P ${GNATBIND}) bin/gnatbind || die
+ ln -s $(type -P ${GNATLINK}) bin/gnatlink || die
+ ln -s $(type -P ${GNATLS}) bin/gnatls || die
+ ln -s $(type -P ${GCC}) bin/${bundledchost}-pc-linux-gnu-gcc || die
+ ln -s $(type -P ${CXX}) bin/${bundledchost}-pc-linux-gnu-g++ || die
+ ln -s $(type -P ${GNATMAKE}) bin/${bundledchost}-pc-linux-gnu-gnatmake || die
+ ln -s $(type -P ${GNATBIND}) bin/${bundledchost}-pc-linux-gnu-gnatbind || die
+ ln -s $(type -P ${GNATLINK}) bin/${bundledchost}-pc-linux-gnu-gnatlink || die
+ ln -s $(type -P ${GNATLS}) bin/${bundledchost}-pc-linux-gnu-gnatls || die
+
+ cd ..
+ mv ${GNATDIR}/src/ada ${MYP}/gcc/ || die
+ mv ${INTFDIR} ${MYP}/gcc/ada/gcc-interface || die
+ eapply "${FILESDIR}"/${P}-gentoo.patch
+ cd -
+ sed -i \
+ -e 's:-fcf-protection":":' \
+ libiberty/configure \
+ lto-plugin/configure || die
+ sed -i \
+ -e 's:$(P) ::g' \
+ gcc/ada/gcc-interface/Makefile.in \
+ || die "sed failed"
+ toolchain_src_prepare
+}
+
+src_configure() {
+ export PATH=${PWD}/bin:${PATH}
+ downgrade_arch_flags "$(gcc-version)"
+ toolchain_src_configure
+}
+
+pkg_postinst() {
+ toolchain_pkg_postinst
+ einfo "This provide the GNAT compiler with gcc for ada/c/c++ and more"
+ einfo "The compiler binary is ${CTARGET}-gcc-${TOOLCHAIN_GCC_PV}"
+ einfo "Even if the c/c++ compilers are using almost the same patched"
+ einfo "source as the sys-devel/gcc package its use is not extensively"
+ einfo "tested, and not supported for updating your system, except for ada"
+ einfo "related packages"
+}
diff --git a/dev-lang/gnat-gpl/metadata.xml b/dev-lang/gnat-gpl/metadata.xml
index d3aadec0e515..45bf56ac30ee 100644
--- a/dev-lang/gnat-gpl/metadata.xml
+++ b/dev-lang/gnat-gpl/metadata.xml
@@ -1,35 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>ada@gentoo.org</email>
</maintainer>
<use>
<flag name="ada">Build the ADA language (GNAT) frontend</flag>
- <flag name="awt">Useful only when building GCJ, this enables Abstract
- Window Toolkit (AWT) peer support on top of GTK+</flag>
<flag name="bootstrap">Used to bootstrap gnat-gpl</flag>
- <flag name="cilk">Support the Cilk Plus language (C/C++ based languages for parallel programming)</flag>
+ <flag name="cet" restrict="&gt;=dev-lang/gnat-gpl-2021">Enable support for Intel Control Flow Enforcement Technology (CET)</flag>
+ <flag name="d">Enable support for the D programming language</flag>
+ <flag name="default-stack-clash-protection">Build packages with stack clash protection on by default</flag>
+ <flag name="default-znow">Request full relocation on start from ld.so by default</flag>
<flag name="fixed-point">Enable fixed-point arithmetic support for MIPS
targets in gcc (Warning: significantly increases compile time!)
</flag>
- <flag name="gcj">Build the GCJ Java language frontend.</flag>
<flag name="go">Build the GCC Go language frontend.</flag>
<flag name="graphite">Add support for the framework for loop
optimizations based on a polyhedral intermediate representation</flag>
- <flag name="mpx">Enable support for Intel Memory Protection Extensions (MPX)</flag>
<flag name="libssp">Build SSP support into a dedicated library rather
than use the code in the C library (DO NOT ENABLE THIS IF YOU DON'T
KNOW WHAT IT DOES)</flag>
- <flag name="nopie">Disable PIE support (NOT FOR GENERAL USE)</flag>
- <flag name="nossp">Disable SSP support (NOT FOR GENERAL USE)</flag>
- <flag name="nptl">Enable support for Native POSIX Threads Library, the new threading module (requires linux-2.6 or better usually)</flag>
+ <flag name="modula2">Build the GCC Modula-2 language frontend.</flag>
<flag name="objc">Build support for the Objective C code language
</flag>
<flag name="objc++">Build support for the Objective C++ language</flag>
<flag name="objc-gc">Build support for the Objective C code language
Garbage Collector</flag>
<flag name="pgo">Build GCC using Profile Guided Optimization (PGO)</flag>
+ <flag name="rust">Build support for the Rust language, installs gccrs.</flag>
<flag name="sanitize">Build support for various sanitizer functions (ASAN/TSAN/etc...)</flag>
<flag name="systemtap">enable systemtap static probe points</flag>
<flag name="ssp">Build packages with stack smashing protector on by default</flag>
diff --git a/dev-lang/gnucobol/Manifest b/dev-lang/gnucobol/Manifest
new file mode 100644
index 000000000000..6ac0ac4ea413
--- /dev/null
+++ b/dev-lang/gnucobol/Manifest
@@ -0,0 +1,2 @@
+DIST gnucobol-3.1.2.tar.xz 2198512 BLAKE2B ccf9252bc4d5e64e966cea483981da36155767a5879967be7226fbcd8f13d8b427558de3a25cc8638f9156882b6f368acbf3e84d5e2ee68bd5754a6a513ac7d6 SHA512 738149c9d3e01140e4036b041f4eaa6c7caf7848a87146a3dd9940a9f17006805fd3c6b169d346bf01a0c2e671655080978c0f3182a85389f8f8a373ca8c1435
+DIST gnucobol-3.2.tar.xz 2902828 BLAKE2B 66df93fe2f8772aebd807612c8e96be46f5605c316f374ae51b3a8c3f6ce760150af60777cd1d53f12f65ee48bc0a6225c506b813fdafcc87d949e609ff3273e SHA512 1aef3c1bf7283219a7cb1e7b38ba5c5e299c0a83666ab6afdbb5713f1f791b23575ca51d546c4f2f036217060269028bbce4b5babbeb4f721b57495d5f258ff7
diff --git a/dev-lang/gnucobol/files/gnucobol-3.1.2-gentoo.patch b/dev-lang/gnucobol/files/gnucobol-3.1.2-gentoo.patch
new file mode 100644
index 000000000000..64c33a2b1dee
--- /dev/null
+++ b/dev-lang/gnucobol/files/gnucobol-3.1.2-gentoo.patch
@@ -0,0 +1,10 @@
+--- a/extras/Makefile.am 2022-11-26 16:51:38.799201541 +0100
++++ b/extras/Makefile.am 2022-11-26 16:52:00.112873141 +0100
+@@ -30,6 +30,6 @@
+
+ SUFFIXES = .cob .$(COB_MODULE_EXT)
+ .cob.$(COB_MODULE_EXT):
+- ("$(top_builddir)/pre-inst-env" $(COBC) -m -Wall -O2 -o "$@" "$<" || \
++ ("$(top_builddir)/pre-inst-env" $(COBC) -m -Wall -O2 -g -o "$@" "$<" || \
+ "$(top_builddir)/pre-inst-env" $(COBC) -m -Wall -o "$@" "$<" || \
+ "$(top_builddir)/pre-inst-env" $(COBC) -m -Wall -vv -o "$@" "$<")
diff --git a/dev-lang/gnucobol/files/gnucobol-3.1.2-ncurses.patch b/dev-lang/gnucobol/files/gnucobol-3.1.2-ncurses.patch
new file mode 100644
index 000000000000..b778f57764b1
--- /dev/null
+++ b/dev-lang/gnucobol/files/gnucobol-3.1.2-ncurses.patch
@@ -0,0 +1,20 @@
+--- a/configure.ac 2023-12-20 22:48:44.764596449 +0100
++++ b/configure.ac 2023-12-20 22:50:10.493170634 +0100
+@@ -1109,7 +1109,7 @@
+ USE_CURSES="missing_header"
+ fi], [])], [])
+ if test "$USE_CURSES" = "ncursesw"; then
+- LIBCOB_LIBS="$LIBCOB_LIBS -lncursesw"
++ LIBCOB_LIBS="$LIBCOB_LIBS $(ncursesw6-config --libs)"
+ fi
+ else
+ if test "$USE_CURSES" = "ncursesw"; then
+@@ -1128,7 +1128,7 @@
+ USE_CURSES="missing_header"
+ fi], [])], [])], [])
+ if test "$USE_CURSES" = "ncurses"; then
+- LIBCOB_LIBS="$LIBCOB_LIBS -lncurses"
++ LIBCOB_LIBS="$LIBCOB_LIBS $(ncurses6-config --libs)"
+ fi
+ else
+ if test "$USE_CURSES" = "ncurses"; then
diff --git a/dev-lang/gnucobol/files/gnucobol-3.2-libxml.patch b/dev-lang/gnucobol/files/gnucobol-3.2-libxml.patch
new file mode 100644
index 000000000000..b6c4f5002565
--- /dev/null
+++ b/dev-lang/gnucobol/files/gnucobol-3.2-libxml.patch
@@ -0,0 +1,10 @@
+--- a/libcob/common.c 2024-03-10 11:12:23.253391905 +0100
++++ b/libcob/common.c 2024-03-10 11:12:46.433130551 +0100
+@@ -136,6 +136,7 @@
+ #if defined (WITH_XML2)
+ #include <libxml/xmlversion.h>
+ #include <libxml/xmlwriter.h>
++#include <libxml/parser.h>
+ #endif
+
+ #if defined (WITH_CJSON)
diff --git a/dev-lang/gnucobol/gnucobol-3.1.2.ebuild b/dev-lang/gnucobol/gnucobol-3.1.2.ebuild
new file mode 100644
index 000000000000..1222244af391
--- /dev/null
+++ b/dev-lang/gnucobol/gnucobol-3.1.2.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+DESCRIPTION="A free/libre COBOL compiler"
+HOMEPAGE="https://gnucobol.sourceforge.io/"
+SRC_URI="https://downloads.sourceforge.net/${PN}/$(ver_cut 1-2)/${P}.tar.xz"
+
+LICENSE="GPL-3 LGPL-3 FDL-1.3"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE="berkdb json nls xml"
+
+RDEPEND="
+ dev-libs/gmp:=
+ sys-libs/ncurses:=
+ json? ( dev-libs/json-c:= )
+ xml? ( dev-libs/libxml2 )
+ berkdb? ( sys-libs/db:4.8= )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="dev-build/libtool"
+
+DOCS=( AUTHORS ChangeLog NEWS README README.md )
+
+PATCHES=(
+ "${FILESDIR}"/${P}-gentoo.patch
+ "${FILESDIR}"/${P}-ncurses.patch
+)
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+src_configure() {
+ econf \
+ $(use_with berkdb db) \
+ $(use_with json) \
+ $(use_with xml xml2) \
+ $(use_enable nls)
+}
+
+src_install() {
+ default
+ find "${ED}" -name '*.la' -delete || die
+}
diff --git a/dev-lang/gnucobol/gnucobol-3.2.ebuild b/dev-lang/gnucobol/gnucobol-3.2.ebuild
new file mode 100644
index 000000000000..910c85c94b96
--- /dev/null
+++ b/dev-lang/gnucobol/gnucobol-3.2.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+DESCRIPTION="A free/libre COBOL compiler"
+HOMEPAGE="https://gnucobol.sourceforge.io/"
+SRC_URI="https://downloads.sourceforge.net/${PN}/$(ver_cut 1-2)/${P}.tar.xz"
+
+LICENSE="GPL-3 LGPL-3 FDL-1.3"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE="berkdb json nls xml"
+
+RDEPEND="
+ dev-libs/gmp:=
+ sys-libs/ncurses:=
+ json? ( dev-libs/json-c:= )
+ xml? ( dev-libs/libxml2 )
+ berkdb? ( sys-libs/db:4.8= )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="dev-build/libtool"
+
+DOCS=( AUTHORS ChangeLog NEWS README README.md )
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-3.1.2-gentoo.patch
+ "${FILESDIR}"/${P}-libxml.patch
+)
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+src_configure() {
+ econf \
+ $(use_with berkdb db) \
+ $(use_with json) \
+ $(use_with xml xml2) \
+ $(use_enable nls) \
+ --with-curses=ncursesw \
+ CURSES_LIBS="$(ncursesw6-config --libs)"
+}
+
+src_install() {
+ default
+ find "${ED}" -name '*.la' -delete || die
+}
diff --git a/dev-lang/gnucobol/metadata.xml b/dev-lang/gnucobol/metadata.xml
new file mode 100644
index 000000000000..d9f88e1f25d0
--- /dev/null
+++ b/dev-lang/gnucobol/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>tupone@gentoo.org</email>
+ <name>Alfredo Tupone</name>
+ </maintainer>
+ <use>
+ <flag name="json">Enable support for JSON template formatting via <pkg>dev-libs/json-c</pkg></flag>
+ </use>
+ <upstream>
+ <remote-id type="sourceforge">gnucobol</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-lang/gnuprologjava/gnuprologjava-0.2.6-r1.ebuild b/dev-lang/gnuprologjava/gnuprologjava-0.2.6-r1.ebuild
deleted file mode 100644
index 989c17893b61..000000000000
--- a/dev-lang/gnuprologjava/gnuprologjava-0.2.6-r1.ebuild
+++ /dev/null
@@ -1,46 +0,0 @@
-# Copyright 2016-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit eutils java-pkg-2 java-ant-2
-
-DESCRIPTION="GNU Prolog for Java is an implementation of ISO Prolog as a Java library"
-HOMEPAGE="https://www.gnu.org/software/gnuprologjava"
-SRC_URI="mirror://gnu/gnuprologjava/${P}-src.zip"
-
-LICENSE="LGPL-3+"
-SLOT="0"
-KEYWORDS="amd64 x86"
-IUSE="doc"
-
-BDEPEND="app-arch/unzip"
-RDEPEND=">=virtual/jdk-1.6:="
-DEPEND="${RDEPEND}
- dev-java/ant-core"
-
-S="${WORKDIR}"
-
-src_prepare() {
- eapply "${FILESDIR}"/${P}-manual.patch
- eapply_user
-}
-
-src_compile() {
- eant jar
- if use doc ; then
- eant doc
- fi
- mv build/${P}.jar build/${PN}.jar || die
-}
-
-src_install() {
- java-pkg_dojar build/${PN}.jar
-
- if use doc ; then
- java-pkg_dohtml -r build/api || die
- java-pkg_dohtml -r build/manual || die
- fi
-
- dodoc NEWS.txt docs/readme.txt
-}
diff --git a/dev-lang/gnuprologjava/gnuprologjava-0.2.6-r2.ebuild b/dev-lang/gnuprologjava/gnuprologjava-0.2.6-r2.ebuild
new file mode 100644
index 000000000000..556d0c83474e
--- /dev/null
+++ b/dev-lang/gnuprologjava/gnuprologjava-0.2.6-r2.ebuild
@@ -0,0 +1,54 @@
+# Copyright 2016-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+JAVA_PKG_IUSE="doc source"
+
+inherit java-pkg-2 java-pkg-simple
+
+DESCRIPTION="GNU Prolog for Java is an implementation of ISO Prolog as a Java library"
+HOMEPAGE="https://www.gnu.org/software/gnuprologjava/"
+SRC_URI="mirror://gnu/gnuprologjava/${P}-src.zip"
+
+LICENSE="LGPL-3+"
+SLOT="0"
+KEYWORDS="amd64 x86"
+
+BDEPEND="app-arch/unzip"
+CP_DEPEND="dev-java/java-getopt:1"
+DEPEND="${CP_DEPEND}
+ >=virtual/jdk-1.8:*
+ doc? ( sys-apps/texinfo )"
+RDEPEND="${CP_DEPEND}
+ >=virtual/jre-1.8:*"
+
+DOCS=( NEWS.txt docs/readme.txt )
+PATCHES=( "${FILESDIR}/${P}-manual.patch" )
+
+JAVA_RESOURCE_DIRS="res"
+JAVA_SRC_DIR="src"
+
+src_prepare() {
+ default #780585
+ java-pkg-2_src_prepare
+ rm -r src/gnu/getopt || die
+ mkdir res || die
+ pushd src > /dev/null || die
+ find -type f \
+ ! -name '*.java' \
+ | xargs cp --parent -t ../res || die
+ popd > /dev/null || die
+ if use doc; then
+ mkdir manual || die
+ makeinfo --html docs/manual.texinfo --output=manual
+ fi
+}
+
+src_install() {
+ java-pkg-simple_src_install
+ if use doc; then
+ docinto html
+ dodoc -r manual || die
+ fi
+}
diff --git a/dev-lang/gnuprologjava/metadata.xml b/dev-lang/gnuprologjava/metadata.xml
index 96eff3ea40c0..7339a2f9106e 100644
--- a/dev-lang/gnuprologjava/metadata.xml
+++ b/dev-lang/gnuprologjava/metadata.xml
@@ -1,8 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
-<maintainer type="project">
- <email>prolog@gentoo.org</email>
- <name>Prolog</name>
-</maintainer>
+ <maintainer type="project">
+ <email>prolog@gentoo.org</email>
+ <name>Prolog</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="savannah">gnuprologjava</remote-id>
+ </upstream>
</pkgmetadata>
diff --git a/dev-lang/go-bootstrap/Manifest b/dev-lang/go-bootstrap/Manifest
index 2c91e51b2892..4720d69dde07 100644
--- a/dev-lang/go-bootstrap/Manifest
+++ b/dev-lang/go-bootstrap/Manifest
@@ -1,9 +1,16 @@
-DIST go-darwin-amd64-bootstrap-1.13.6.tbz 119340642 BLAKE2B 93d1d2fdd24e6a56d9583d90e64788fe28284302d1e1346a2009dcba8f80917bf113398f269922277bd066b068f62fffa146523bd57a5b7b178f0008f3c4d154 SHA512 1f27885d454963e88f73d3b6ef4d0167a5df6ad81c4725fb3b2be19e2c7bad13ef36ff6c100b8788fa2085285e462f0d2b3dfaf8bd67b0804a137969054cb5ae
-DIST go-linux-386-bootstrap-1.13.6.tbz 116991833 BLAKE2B e15c4dd3c9bfb233f81d318591df5cb2a73e033a088cd652371f6933b8732c7d5c1292ec8110b23f85b30d5afdea97e798b264c61f5651db08c7ac903e8dcbb6 SHA512 114c2f670f21624f0dfefabb99b7263e2133e58c2072ce341a6ea604278e22361779f2e0d3771b7a427e979d7e34f3fc3afcd0f8297d778c3552858ce64ec0c8
-DIST go-linux-amd64-bootstrap-1.13.6.tbz 116924754 BLAKE2B 3a28ded6df7e04081c727ad90ad2c8b67e1171aea8cd86b9570d65b275c2a4f1a84084d65a6c3e2efbece5594ba1aad3efc1a2fba36aa2dc68902c5c228c05e8 SHA512 3ade49da050d132309357a190628c3ff3a93cffa88f56e1d771f53358c825f210b6870870a96fdbc27717f1b464d904a6f605073377de2f0516cf635a1ce8241
-DIST go-linux-arm-bootstrap-1.13.6.tbz 112324731 BLAKE2B 18166e279b1d30f48e08007df8639775b58081805a7e5799dae14e0b357330cf69997f4a5c844bd10a9eeef44225d52f26197e07d16bb7a42fe5a6185634f4b5 SHA512 4d502e2231c1822dacb62cd00b435d52710b1511715385c0b3ddf9f66a446ae90e9b1628b501ba8e1d1a94ca5c28249a323da56f869e88480aa6c249ca001c6e
-DIST go-linux-arm64-bootstrap-1.13.6.tbz 110290994 BLAKE2B dc8985a305d1ef3ae683de9787333f0be3d43d5e642a3b5a315cf003311fb47e55588eb1acf816e5eb4215802832a43445ebecedfd2d680d350cb65e0ce7394f SHA512 bc5f4c4554987a5df735bb96c9b8ae78624169d847ab17ea9b0e969ecaab109311892cf1985d576cd46bf271562b724c6a3796472e197a2c8bb48da0d51128a9
-DIST go-linux-ppc64-bootstrap-1.13.6.tbz 110762916 BLAKE2B 19d44da5bcd1f4832772469beed509475f9a38ab55b386490faf1b270ffd7cc13d315dfe4746b3b9ca6a324c0e6f2e0144a3146d43bd6210d0479063f8627e34 SHA512 2a76c6168d7ba0c7eb020a1af4eccb2a5aee510a1f8e4bb438f5ea769677724c1450209c2fc9a4ccff1084f1a091a568e667ec33a5d537539a09ece426cf82d8
-DIST go-linux-ppc64le-bootstrap-1.13.6.tbz 110086770 BLAKE2B a3f2c1b840f85d7726336285a56d1850fd10f32d90341836a4124a7d181778c3a1cff1d576e4a19a4f3556e961d84fa77202891725b5237121040bdd020af339 SHA512 6c4bd54fafea65fbb16a3e6c57b721c10654a5f18879c164f6889a01ec6581b13b450622e83897032ab3ed43a9ff4a7edb6d30c56d41dd23991e8453c1bae359
-DIST go-linux-s390x-bootstrap-1.13.6.tbz 115641137 BLAKE2B 7ab94a8f7c839ee8fb58673ed5ad00a569a0bae7a13bb214098154aedb1c272837d0903c226cb87b5eb46475589ddcd56e1afafc81ddaea988ce3c3ddca686d1 SHA512 794b72f48634a7f7dfb41c64607d66974ef9413a68e39a3959a981e2aaf356fd2cec9e2eb0c25d1b7b3d179c0a72ce053dc9c69463bde0ec893ab472f7076204
-DIST go-solaris-amd64-bootstrap-1.13.6.tbz 116214396 BLAKE2B 3f5d6fcf2131a0944b2846eab2fc069f5d90fea1e7d98e8bd50ba5091d4b2ae01964fa71c29310fa7ff7c990ca0dd1afc83577174a46552d58d611716fedb854 SHA512 2d2c281c196729dd97f338fe3bd7396268c0b6fcfc8241b99a939f647201ed39929a5b0a096b9d1f7ffb20f79fd7b3cc25127d7a93f9836f6f0d1e5dbc2c6235
+DIST go-1.20.14-darwin-amd64-bootstrap.tbz 94549781 BLAKE2B 604d6b183b6be19f98f330a73fd07db1824442b14c3870447340e628b3fd13c87972d9a192f888e329b1d0337a48d66651f35c0237e4a5a609091e73385925d7 SHA512 ef2b179a096319dca8cd3907ad7c9d80bc61d409ce198a323073fbceb3b6ab3f5752eaeeb8f37f9287ba1c009f5e37da341e359228d0509ab766340f61a10c68
+DIST go-1.20.14-darwin-arm64-bootstrap.tbz 92159553 BLAKE2B 28a95dafd3126e95fd997744ca20385bf634c3bc08be5698bc314c8e902e261d66ebae754492997562ba3bd2635f68ad8173cbd84aa6e59bcf38fe0c2cd35a65 SHA512 1f39a132037f9b1141cac752c20c34da0f87583dba9094965ffb7f65015d3d5273a1b63201e1f68e00d436aa1b1d79972f6f50a195a3d5799f012fb3fbaa20b6
+DIST go-1.20.14-linux-386-bootstrap.tbz 96049477 BLAKE2B 63e52312a2ea5edf9fc3aa2f6dbcf7438ddaa5d41705426ee6e1060d56ff7837e6b16e74e90567aa96b1e1b90088503936614caf5d41f3a83dd278cc252975f1 SHA512 c9fc51ce495b3b48915e8da2bb404adfe59c957480dbf174491c63b528f7e0fc4bcadbfb8395a2885cc83523e9245c0e4718637313b4fbaeb53bf0f18be0c7ce
+DIST go-1.20.14-linux-amd64-bootstrap.tbz 95467194 BLAKE2B d0d016a1f6334db056342432f401edf17c9ea0032ed13f3a1ab127b4697fcc18e471cd133ed306ccd98d62779bc2d0304a97a7100f91c566ca064237dab109d0 SHA512 638103faca6d913a8b774a00b1846e746c1f6272f1d3d0343942e81886aee84b6a8b10befab5d1e9e9ad7c3f1a3cbf72a2ff223fd236c21a6ef05ed63ae4c495
+DIST go-1.20.14-linux-arm-bootstrap.tbz 92749037 BLAKE2B 4a58c00132c84510cff0cbca9ed910b565220dfd2f7ef2080b40b3bb35f94b1d3d05e36e964ebf715261c13b38763be0c4df1ac8675f7bd27e9f087a710236b5 SHA512 94aa1264ac11243959d2768e67d29e405ec1a63daef3efdea695950fcbacb0e5bfad68eae71e5bca31e74415fc8fce90de2de9ac440e67921221a1b166cf9b23
+DIST go-1.20.14-linux-arm64-bootstrap.tbz 90313482 BLAKE2B 839f7e2a30944c622cdd3ebbcda8cbbaff6070b0c6bff3c2cdb5429f65df5cd830ed211d05df81d5f25c798e8d113d6bfe605e12b25f271ab35f9a7e98e6a95e SHA512 b7336febe2f687c8b91a885885a5f85e9a25333120fec38c08b96e115cbd1f66bd054d8c8a69891c210f60609828dc8cd9d188ac06d98d97fcec75730c97b5c9
+DIST go-1.20.14-linux-loong64-bootstrap.tbz 91910305 BLAKE2B e470bed6fdcae3e5baf9e8079bfaa211814cee00a9bebf2bfef24a27e249b2b2251b1400389b5844ed1f7631a4d8306b358bdf43f92bc96c2d071e79949b4e26 SHA512 2c878541d02cadd7cbe66647ef1cbec2ef1c9b43c4798adfd8cdf3ad800c6cc2bd2c702af221e133fa03099029e740362c9f490b1ace6c530462b27d73fb9d50
+DIST go-1.20.14-linux-mips-bootstrap.tbz 89723945 BLAKE2B c3ac0d9de529f4d033cf3942726124013f9772aa62174d185e1883e359bc195aca531170a4ba25c40de8d5b8c74d7553b461aabeeca31f76737d38fe86d7ca9a SHA512 461b043acece310ac3c4750086092d4ba6e56c5dcfa2eef1e2d626e8f4d18796dc8d13e9d4e36a2bea500422c7b6aeba863a0da74305ad7952cf2d05fd371c8b
+DIST go-1.20.14-linux-mips64-bootstrap.tbz 90162590 BLAKE2B f3fc550a6f2b05dd99fcb1a2437a3c2a4db7d13d434bad9478c400449286a78ea8f824fc40ba2e7e88646d9220ae0508ca57f2cad277b0fcc444d20e0ec8f594 SHA512 046baa51362abfa0865fea437d4b80e90b113387d2603661d1ca96c819237b459d3fc50d69acfc0b41b906baed56da031801ec913e55baf0db389ddf10d93d3b
+DIST go-1.20.14-linux-mips64le-bootstrap.tbz 89241603 BLAKE2B 1708a4d82376ea34dc3c569b2b44e34cb0a6698a4bfb1c04da89da6c2b660e93372926c4d88ca9cc8185c2b5949265779038882b84ff9ea99ddbb709cf7dac91 SHA512 ce95ca20b66bea1f4faa2edede7082858689cb50d5579225c635ba7987db7d0627453ae06eb141678cc46720d0bc050ae87d4fc3fbbbaaa16f4db7fd0234b6d2
+DIST go-1.20.14-linux-mipsle-bootstrap.tbz 89478289 BLAKE2B e09bf90783a11dda0ed81a2a1f8998bd7ea6ef4c7dc06e0e1abfc885a4cf0622bf40ae9d74d2bb3683ecb96b9a93a3064a8783a609cd88ef3f319af6332bf52d SHA512 5246e8da2fe58053bbdfa861d527b119227eacd055a7e69ffbb1e5c3dd2f477a286951c0577632c492f34ffc3ef4c015b1b7affdf5cca03b22bb0ef1ddea52de
+DIST go-1.20.14-linux-ppc64-bootstrap.tbz 91456774 BLAKE2B b4a7ca37f7bfe4c13dbfcb94cbd0521e924ba322eb49a49c6934dbb3b00c7f4929828dde3f18e1c26421c684f4a63bcf7f0834a30d58918b53fd13fc908860ee SHA512 28d9c6b33ab7f72f840fd06b0219845638c3df50b7741152f303288a3b4ab55e7bdb083dbd668e95563e459950e4e89ae9edf7ad604687afe5247781330e2fb1
+DIST go-1.20.14-linux-ppc64le-bootstrap.tbz 90575770 BLAKE2B 0c76ba27d41d329a7c58ae5c2c168e021a4fbb01800cdc7e61baf50de57b146578aef123755b09df5a4aa405452e2b3cc9ff1960cdc34c3a38442691e7cd0422 SHA512 d3ecb191f73f157a09252c50ffb8249040bfb4ba39dc0a462c992830eba3eeadb18b7851410a1f9f2d6d362ee37fcb210c815d7b01cc632e10d962cb2c2769e9
+DIST go-1.20.14-linux-riscv64-bootstrap.tbz 93091456 BLAKE2B 197811a57c728ef546b9660328ab6624b87ae085e98264e5b3317fc66581fc0ee8ef95af3040c07a6cebfe30da88d209bf5bdb8ee11a647b716fa3122031724a SHA512 a3faaeaac90354a9be130d01108c8fdb178a0427d7dab0362c570428216ddd362f55044021082cbbb466f3a69458869d4978bd28652f7a4e55295d357c9c7c54
+DIST go-1.20.14-linux-s390x-bootstrap.tbz 94671247 BLAKE2B 7ff60a7c1245b66cbe852662589fe3a87c4fc29a1134dd46ad76272b9bc619b7ffba823374658a0f8d54a440d808d3eb8d97788483bbe69628bda167f4377109 SHA512 bc6c7efddfcc90fe2f1bbb2dee7f4396eb5b478eee7236216ca00c5bd4ce1dc0e3315edb58bf6ef3f7a7e5c45950e6f5be9163cfffd1cf5c36004aaa4916a1b7
+DIST go-1.20.14-solaris-amd64-bootstrap.tbz 95085901 BLAKE2B aed378201db555121bae1ab049d44b297dc922d7cd977c3d6f2dbff1b3cc46f59a697a211c244ed2f012d5c8ea6211501527512325188e34a3ccd2946ef6dbe8 SHA512 22a8b79ab2eb08319d1d9fb517458cdafd1a4fcbba2da70935d65ccdcc3808978ca0dbb045a7cfde2ca43eb6effd3ce687d2f99ee24dedcae9967b414fd6fe57
diff --git a/dev-lang/go-bootstrap/files/make-go-bootstraps b/dev-lang/go-bootstrap/files/make-go-bootstraps
new file mode 100755
index 000000000000..8340dbaecfd8
--- /dev/null
+++ b/dev-lang/go-bootstrap/files/make-go-bootstraps
@@ -0,0 +1,55 @@
+#!/bin/bash
+set -e
+
+# This creates go bootstrap tarballs for the version of go currently
+# installed on your system.
+# It should be run as part of bumping dev-lang/go when a newer version
+# of go is required for bootstrapping.
+# Make sure the version of go required for bootstrapping is installed
+# then run this script.
+# The script will output the location where the bootstrap tarballs are
+# stored.
+# Next, update the GO_BV variable in the new version of the dev-lang/go
+# ebuild to the version in the bootstrap tarballs file name.
+
+go_tuples=(
+ darwin-amd64
+ darwin-arm64
+ linux-386
+ linux-amd64
+ linux-arm
+ linux-arm64
+ linux-loong64
+ linux-mips
+ linux-mipsle
+ linux-mips64
+ linux-mips64le
+ linux-ppc64
+ linux-ppc64le
+ linux-riscv64
+ linux-s390x
+ solaris-amd64
+)
+
+go_version=$(go version)
+go_version=${go_version##*go}
+go_version=${go_version%% *}
+build_path=$(mktemp -d /tmp/go-bootstraps-XXXXXX)
+pushd "${build_path}"
+git clone https://github.com/golang/go.git
+cd go
+git checkout go"${go_version}"
+cd src
+for tuple in ${go_tuples[@]}; do
+ printf "Building go version %s bootstrap tarball for %s\n" "${go_version}" "${tuple}"
+ GO386=softfloat GOOS=${tuple%%-*} GOARCH=${tuple##*-} ./bootstrap.bash
+ rm -fr ../../go-${tuple}-bootstrap
+done
+cd ../..
+rm -fr go
+for f in *tbz; do
+ mv "${f}" "${f/go/go-${go_version}}"
+ done
+popd
+mv "${build_path}" "${build_path%-*}"
+printf "The bootstrap tarballs are stored in %s\n" "${build_path%-*}"
diff --git a/dev-lang/go-bootstrap/go-bootstrap-1.13.6.ebuild b/dev-lang/go-bootstrap/go-bootstrap-1.13.6.ebuild
deleted file mode 100644
index 5016ef7341e1..000000000000
--- a/dev-lang/go-bootstrap/go-bootstrap-1.13.6.ebuild
+++ /dev/null
@@ -1,35 +0,0 @@
-# Copyright 2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-DESCRIPTION="Bootstrap package for dev-lang/go"
-HOMEPAGE="https://golang.org"
-BOOTSTRAP_DIST="https://dev.gentoo.org/~williamh/dist"
-SRC_URI="
- amd64? ( ${BOOTSTRAP_DIST}/go-linux-amd64-bootstrap-${PV}.tbz )
- arm? ( ${BOOTSTRAP_DIST}/go-linux-arm-bootstrap-${PV}.tbz )
- arm64? ( ${BOOTSTRAP_DIST}/go-linux-arm64-bootstrap-${PV}.tbz )
- ppc64? (
- big-endian? ( ${BOOTSTRAP_DIST}/go-linux-ppc64-bootstrap-${PV}.tbz )
- !big-endian? ( ${BOOTSTRAP_DIST}/go-linux-ppc64le-bootstrap-${PV}.tbz )
- )
- s390? ( ${BOOTSTRAP_DIST}/go-linux-s390x-bootstrap-${PV}.tbz )
- x86? ( ${BOOTSTRAP_DIST}/go-linux-386-bootstrap-${PV}.tbz )
- x64-macos? ( ${BOOTSTRAP_DIST}/go-darwin-amd64-bootstrap-${PV}.tbz )
- x64-solaris? ( ${BOOTSTRAP_DIST}/go-solaris-amd64-bootstrap-${PV}.tbz )
-"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="amd64 arm arm64 ppc64 ~s390 x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris"
-IUSE="big-endian"
-RESTRICT="strip"
-QA_PREBUILT="*"
-
-S="${WORKDIR}"
-
-src_install() {
- dodir /usr/lib
- mv go-*-bootstrap "${ED}/usr/lib/go-bootstrap" || die
-}
diff --git a/dev-lang/go-bootstrap/go-bootstrap-1.20.14.ebuild b/dev-lang/go-bootstrap/go-bootstrap-1.20.14.ebuild
new file mode 100644
index 000000000000..1de686a27655
--- /dev/null
+++ b/dev-lang/go-bootstrap/go-bootstrap-1.20.14.ebuild
@@ -0,0 +1,51 @@
+# Copyright 2020-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="Bootstrap package for dev-lang/go"
+HOMEPAGE="https://golang.org"
+BOOTSTRAP_DIST="https://dev.gentoo.org/~williamh/dist"
+SRC_URI="
+ amd64? ( ${BOOTSTRAP_DIST}/go-${PV}-linux-amd64-bootstrap.tbz )
+ arm? ( ${BOOTSTRAP_DIST}/go-${PV}-linux-arm-bootstrap.tbz )
+ arm64? ( ${BOOTSTRAP_DIST}/go-${PV}-linux-arm64-bootstrap.tbz )
+ loong? ( ${BOOTSTRAP_DIST}/go-${PV}-linux-loong64-bootstrap.tbz )
+ mips? (
+ abi_mips_o32? (
+ big-endian? ( ${BOOTSTRAP_DIST}/go-${PV}-linux-mips-bootstrap.tbz )
+ !big-endian? ( ${BOOTSTRAP_DIST}/go-${PV}-linux-mipsle-bootstrap.tbz )
+ )
+ abi_mips_n64? (
+ big-endian? ( ${BOOTSTRAP_DIST}/go-${PV}-linux-mips64-bootstrap.tbz )
+ !big-endian? ( ${BOOTSTRAP_DIST}/go-${PV}-linux-mips64le-bootstrap.tbz )
+ )
+ )
+ ppc64? (
+ big-endian? ( ${BOOTSTRAP_DIST}/go-${PV}-linux-ppc64-bootstrap.tbz )
+ !big-endian? ( ${BOOTSTRAP_DIST}/go-${PV}-linux-ppc64le-bootstrap.tbz )
+ )
+ riscv? ( ${BOOTSTRAP_DIST}/go-${PV}-linux-riscv64-bootstrap.tbz )
+ s390? ( ${BOOTSTRAP_DIST}/go-${PV}-linux-s390x-bootstrap.tbz )
+ x86? ( ${BOOTSTRAP_DIST}/go-${PV}-linux-386-bootstrap.tbz )
+ x64-macos? ( ${BOOTSTRAP_DIST}/go-${PV}-darwin-amd64-bootstrap.tbz )
+ arm64-macos? ( ${BOOTSTRAP_DIST}/go-${PV}-darwin-arm64-bootstrap.tbz )
+ x64-solaris? ( ${BOOTSTRAP_DIST}/go-${PV}-solaris-amd64-bootstrap.tbz )
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="-* amd64 arm arm64 ~loong ~mips ppc64 ~riscv ~s390 x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos ~x64-solaris"
+IUSE="abi_mips_n64 abi_mips_o32 big-endian"
+RESTRICT="strip"
+QA_PREBUILT="*"
+
+S="${WORKDIR}"
+
+src_install() {
+ dodir /usr/lib
+ mv go-*-bootstrap "${ED}/usr/lib/go-bootstrap" || die
+
+ # testdata directories are not needed on the installed system
+ rm -fr $(find "${ED}"/usr/lib/go-bootstrap -iname testdata -type d -print)
+}
diff --git a/dev-lang/go-bootstrap/metadata.xml b/dev-lang/go-bootstrap/metadata.xml
index bf9239d9ce53..311b2b3e4663 100644
--- a/dev-lang/go-bootstrap/metadata.xml
+++ b/dev-lang/go-bootstrap/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>williamh@gentoo.org</email>
diff --git a/dev-lang/go/Manifest b/dev-lang/go/Manifest
index 85fdcd7caf02..24ea573a84fe 100644
--- a/dev-lang/go/Manifest
+++ b/dev-lang/go/Manifest
@@ -1,4 +1,2 @@
-DIST go1.14.13.src.tar.gz 22553900 BLAKE2B 35aed1c43a59e06c1d5feaa91a6c4120c586958257cb3e4f83ab4e767159e20ae953d70bc0debabd80722bca0965d1b129531a2bd89f558df0a8700cadc09edc SHA512 b54a0bc3b85809a78d4704fe2e97ad7417a2027608ec0f90c2784e2ddb28b505df3cda862dc6f1b99af2d136363cbb9b120e2fd6ed985cb300c43f8e539a5e28
-DIST go1.14.14.src.tar.gz 22557733 BLAKE2B aa3638c7a20f89e90bf17e9da1b12323cc8c0f52fb0a92ca6a850f7b2c94e406ea50a57fc28cc34b951bf7ecee0a9bb1ce884ad86dfc23241d7b62cd9435f881 SHA512 76213b19eeec66ca6c6b5bdef875bea0b64c3877c70eec64dd65f7869ceb8db016ff19193f01771f8944fd5f0ae3b54c68185e158f2622d1db5552fec1f37976
-DIST go1.15.6.src.tar.gz 23019337 BLAKE2B d328401af9843f4a099dee7d82433ad2a0b349add0f2ecb609635814cca610e17a6fc50215e9928b8cb0d8ea8dd6ae9d84ffca125e1362dfb18ba08783bb4264 SHA512 f20e495204f32170d6554e8f4b64763dae8302a7859005020f650d1d53a5b15de3afbaff28e0b6418287396166c67bdc4c6bee7a0fd7ba8a87bb79b6c1d38326
-DIST go1.15.7.src.tar.gz 23017978 BLAKE2B 15b0827fb56b8e9208c65e8f7f11c7f67820efce1627b4123e937301bb437c597e87adfff9a2eee9aaf53ba0f22eb2f10746bafb7247b4250566f20181b7a2a0 SHA512 7b3e8bcd2fc95baad41f8b5f0456c009e01896d160e65c2670d51c23d8cfcf7a6801e831e6f9a8877fe58c8f54ac8f75bf6e7935b38ba7aaa51dc8e46cf76ddb
+DIST go1.21.9.src.tar.gz 26993426 BLAKE2B 08eb5a78e1d4933de63105a886e0b0d9d8582edbd18b2a40f7655628a3d5627102abf8d25b3190751109273962b731d16c25bdc58b370b6a39faa6e5c3ef3736 SHA512 e1cf7e458d41f8b343c34b7d35dc4a1696bacbad2ad64abac36dbbeaf1e0a1b71cdb32cebb1686c6e5c90bf0ad3474714d09acea010d6c074730c59d71e79f4e
+DIST go1.22.2.src.tar.gz 27551470 BLAKE2B f8994f7868f14b68d5b57a251ff4b79f26cd2dbee69e93887165a37dbdb74a0004998c2666e0bb1673a0f0efcbe58b10e2437f6ce06340fad004628e3a9cca1c SHA512 f2491d2b5d4ef2dd86ca7820503a2534cd1860822049dc01a6cb40b556a0812cfc4196fa83173765816060253ac949f4165b0fb4b2bed5d45e30d03bb69e434d
diff --git a/dev-lang/go/files/go-never-download-newer-toolchains.patch b/dev-lang/go/files/go-never-download-newer-toolchains.patch
new file mode 100644
index 000000000000..74e85f80b63a
--- /dev/null
+++ b/dev-lang/go/files/go-never-download-newer-toolchains.patch
@@ -0,0 +1,13 @@
+diff --git a/go.env b/go.env
+index 6ff2b921d4..1112a19c9b 100644
+--- a/go.env
++++ b/go.env
+@@ -7,6 +7,6 @@
+ GOPROXY=https://proxy.golang.org,direct
+ GOSUMDB=sum.golang.org
+
+-# Automatically download newer toolchains as directed by go.mod files.
++# Never download newer toolchains.
+ # See https://go.dev/doc/toolchain for details.
+-GOTOOLCHAIN=auto
++GOTOOLCHAIN=local
diff --git a/dev-lang/go/files/go-sets.conf b/dev-lang/go/files/go-sets.conf
index 01ad4a8b3d4f..f38edb71a6fc 100644
--- a/dev-lang/go/files/go-sets.conf
+++ b/dev-lang/go/files/go-sets.conf
@@ -1,7 +1,7 @@
-# Installed packages that inherit from known Go related eclasses.
+# Installed packages for which vdb *DEPEND includes dev-lang/go.
# This is useful after a dev-lang/go version change to rebuild all
# software written in Go.
[golang-rebuild]
class = portage.sets.dbapi.VariableSet
-variable = INHERITED
-includes = golang-base golang-build golang-vcs golang-vcs-snapshot go-module
+variable = BDEPEND
+includes = dev-lang/go
diff --git a/dev-lang/go/go-1.14.14.ebuild b/dev-lang/go/go-1.14.14.ebuild
deleted file mode 100644
index 07cd0d903d5f..000000000000
--- a/dev-lang/go/go-1.14.14.ebuild
+++ /dev/null
@@ -1,197 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-export CBUILD=${CBUILD:-${CHOST}}
-export CTARGET=${CTARGET:-${CHOST}}
-
-MY_PV=${PV/_/}
-
-inherit toolchain-funcs
-
-case ${PV} in
-*9999*)
- EGIT_REPO_URI="https://github.com/golang/go.git"
- inherit git-r3
- ;;
-*)
- SRC_URI="https://storage.googleapis.com/golang/go${MY_PV}.src.tar.gz "
- S="${WORKDIR}"/go
- case ${PV} in
- *_beta*|*_rc*) ;;
- *)
- KEYWORDS="-* amd64 ~arm ~arm64 ~ppc64 ~s390 ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris"
- ;;
- esac
-esac
-
-DESCRIPTION="A concurrent garbage collected and typesafe programming language"
-HOMEPAGE="https://golang.org"
-
-LICENSE="BSD"
-SLOT="0/${PV}"
-
-BDEPEND="|| (
- dev-lang/go
- dev-lang/go-bootstrap )"
-RDEPEND="!<dev-go/go-tools-0_pre20150902"
-
-# Do not complain about CFLAGS, etc, since Go doesn't use them.
-QA_FLAGS_IGNORED='.*'
-
-# The tools in /usr/lib/go should not cause the multilib-strict check to fail.
-QA_MULTILIB_PATHS="usr/lib/go/pkg/tool/.*/.*"
-
-# Do not strip this package. Stripping is unsupported upstream and may
-# fail.
-RESTRICT+=" strip"
-
-DOCS=(
-AUTHORS
-CONTRIBUTING.md
-CONTRIBUTORS
-PATENTS
-README.md
-)
-
-go_arch()
-{
- # By chance most portage arch names match Go
- local portage_arch=$(tc-arch $@)
- case "${portage_arch}" in
- x86) echo 386;;
- x64-*) echo amd64;;
- ppc64) [[ $(tc-endian $@) = big ]] && echo ppc64 || echo ppc64le ;;
- s390) echo s390x ;;
- *) echo "${portage_arch}";;
- esac
-}
-
-go_arm()
-{
- case "${1:-${CHOST}}" in
- armv5*) echo 5;;
- armv6*) echo 6;;
- armv7*) echo 7;;
- *)
- die "unknown GOARM for ${1:-${CHOST}}"
- ;;
- esac
-}
-
-go_os()
-{
- case "${1:-${CHOST}}" in
- *-linux*) echo linux;;
- *-darwin*) echo darwin;;
- *-freebsd*) echo freebsd;;
- *-netbsd*) echo netbsd;;
- *-openbsd*) echo openbsd;;
- *-solaris*) echo solaris;;
- *-cygwin*|*-interix*|*-winnt*)
- echo windows
- ;;
- *)
- die "unknown GOOS for ${1:-${CHOST}}"
- ;;
- esac
-}
-
-go_tuple()
-{
- echo "$(go_os $@)_$(go_arch $@)"
-}
-
-go_cross_compile()
-{
- [[ $(go_tuple ${CBUILD}) != $(go_tuple) ]]
-}
-
-src_compile()
-{
- if has_version -b dev-lang/go; then
- export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go"
- elif has_version -b dev-lang/go-bootstrap; then
- export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go-bootstrap"
- else
- eerror "Go cannot be built without go or go-bootstrap installed"
- die "Should not be here, please report a bug"
- fi
-
- export GOROOT_FINAL="${EPREFIX}"/usr/lib/go
- export GOROOT="$(pwd)"
- export GOBIN="${GOROOT}/bin"
-
- # Go's build script does not use BUILD/HOST/TARGET consistently. :(
- export GOHOSTARCH=$(go_arch ${CBUILD})
- export GOHOSTOS=$(go_os ${CBUILD})
- export CC=$(tc-getBUILD_CC)
-
- export GOARCH=$(go_arch)
- export GOOS=$(go_os)
- export CC_FOR_TARGET=$(tc-getCC)
- export CXX_FOR_TARGET=$(tc-getCXX)
- if [[ ${ARCH} == arm ]]; then
- export GOARM=$(go_arm)
- fi
-
- cd src
- bash -x ./make.bash || die "build failed"
-}
-
-src_test()
-{
- go_cross_compile && return 0
-
- cd src
- PATH="${GOBIN}:${PATH}" \
- ./run.bash -no-rebuild || die "tests failed"
- cd ..
- rm -fr pkg/*_race || die
- rm -fr pkg/obj/go-build || die
-}
-
-src_install()
-{
- # There is a known issue which requires the source tree to be installed [1].
- # Once this is fixed, we can consider using the doc use flag to control
- # installing the doc and src directories.
- # The use of cp is deliberate in order to retain permissions
- # [1] https://golang.org/issue/2775
- dodir /usr/lib/go
- cp -R api bin doc lib pkg misc src test "${ED}"/usr/lib/go
- einstalldocs
-
- # testdata directories are not needed on the installed system
- rm -fr $(find "${ED}"/usr/lib/go -iname testdata -type d -print)
-
- local bin_path
- if go_cross_compile; then
- bin_path="bin/$(go_tuple)"
- else
- bin_path=bin
- fi
- local f x
- for x in ${bin_path}/*; do
- f=${x##*/}
- dosym ../lib/go/${bin_path}/${f} /usr/bin/${f}
- done
-
- # install the @golang-rebuild set for Portage
- insinto /usr/share/portage/config/sets
- newins "${FILESDIR}"/go-sets.conf go.conf
-}
-
-pkg_postinst() {
- [[ -z ${REPLACING_VERSIONS} ]] && return
- einfo "After ${CATEGORY}/${PN} is updated it is recommended to rebuild"
- einfo "all packages compiled with previous versions of ${CATEGORY}/${PN}"
- einfo "due to the static linking nature of go."
- einfo "If this is not done, the packages compiled with the older"
- einfo "version of the compiler will not be updated until they are"
- einfo "updated individually, which could mean they will have"
- einfo "vulnerabilities."
- einfo "Run 'emerge @golang-rebuild' to rebuild all 'go' packages"
- einfo "See https://bugs.gentoo.org/752153 for more info"
-}
diff --git a/dev-lang/go/go-1.15.6-r1.ebuild b/dev-lang/go/go-1.15.6-r1.ebuild
deleted file mode 100644
index 55fd0c4f6bf1..000000000000
--- a/dev-lang/go/go-1.15.6-r1.ebuild
+++ /dev/null
@@ -1,197 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-export CBUILD=${CBUILD:-${CHOST}}
-export CTARGET=${CTARGET:-${CHOST}}
-
-MY_PV=${PV/_/}
-
-inherit toolchain-funcs
-
-case ${PV} in
-*9999*)
- EGIT_REPO_URI="https://github.com/golang/go.git"
- inherit git-r3
- ;;
-*)
- SRC_URI="https://storage.googleapis.com/golang/go${MY_PV}.src.tar.gz "
- S="${WORKDIR}"/go
- case ${PV} in
- *_beta*|*_rc*) ;;
- *)
- KEYWORDS="-* amd64 arm arm64 ppc64 ~s390 x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris"
- ;;
- esac
-esac
-
-DESCRIPTION="A concurrent garbage collected and typesafe programming language"
-HOMEPAGE="https://golang.org"
-
-LICENSE="BSD"
-SLOT="0/${PV}"
-
-BDEPEND="|| (
- dev-lang/go
- dev-lang/go-bootstrap )"
-RDEPEND="!<dev-go/go-tools-0_pre20150902"
-
-# Do not complain about CFLAGS, etc, since Go doesn't use them.
-QA_FLAGS_IGNORED='.*'
-
-# The tools in /usr/lib/go should not cause the multilib-strict check to fail.
-QA_MULTILIB_PATHS="usr/lib/go/pkg/tool/.*/.*"
-
-# Do not strip this package. Stripping is unsupported upstream and may
-# fail.
-RESTRICT+=" strip"
-
-DOCS=(
-AUTHORS
-CONTRIBUTING.md
-CONTRIBUTORS
-PATENTS
-README.md
-)
-
-go_arch()
-{
- # By chance most portage arch names match Go
- local portage_arch=$(tc-arch $@)
- case "${portage_arch}" in
- x86) echo 386;;
- x64-*) echo amd64;;
- ppc64) [[ $(tc-endian $@) = big ]] && echo ppc64 || echo ppc64le ;;
- s390) echo s390x ;;
- *) echo "${portage_arch}";;
- esac
-}
-
-go_arm()
-{
- case "${1:-${CHOST}}" in
- armv5*) echo 5;;
- armv6*) echo 6;;
- armv7*) echo 7;;
- *)
- die "unknown GOARM for ${1:-${CHOST}}"
- ;;
- esac
-}
-
-go_os()
-{
- case "${1:-${CHOST}}" in
- *-linux*) echo linux;;
- *-darwin*) echo darwin;;
- *-freebsd*) echo freebsd;;
- *-netbsd*) echo netbsd;;
- *-openbsd*) echo openbsd;;
- *-solaris*) echo solaris;;
- *-cygwin*|*-interix*|*-winnt*)
- echo windows
- ;;
- *)
- die "unknown GOOS for ${1:-${CHOST}}"
- ;;
- esac
-}
-
-go_tuple()
-{
- echo "$(go_os $@)_$(go_arch $@)"
-}
-
-go_cross_compile()
-{
- [[ $(go_tuple ${CBUILD}) != $(go_tuple) ]]
-}
-
-src_compile()
-{
- if has_version -b dev-lang/go; then
- export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go"
- elif has_version -b dev-lang/go-bootstrap; then
- export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go-bootstrap"
- else
- eerror "Go cannot be built without go or go-bootstrap installed"
- die "Should not be here, please report a bug"
- fi
-
- export GOROOT_FINAL="${EPREFIX}"/usr/lib/go
- export GOROOT="$(pwd)"
- export GOBIN="${GOROOT}/bin"
-
- # Go's build script does not use BUILD/HOST/TARGET consistently. :(
- export GOHOSTARCH=$(go_arch ${CBUILD})
- export GOHOSTOS=$(go_os ${CBUILD})
- export CC=$(tc-getBUILD_CC)
-
- export GOARCH=$(go_arch)
- export GOOS=$(go_os)
- export CC_FOR_TARGET=$(tc-getCC)
- export CXX_FOR_TARGET=$(tc-getCXX)
- if [[ ${ARCH} == arm ]]; then
- export GOARM=$(go_arm)
- fi
-
- cd src
- bash -x ./make.bash || die "build failed"
-}
-
-src_test()
-{
- go_cross_compile && return 0
-
- cd src
- PATH="${GOBIN}:${PATH}" \
- ./run.bash -no-rebuild || die "tests failed"
- cd ..
- rm -fr pkg/*_race || die
- rm -fr pkg/obj/go-build || die
-}
-
-src_install()
-{
- # There is a known issue which requires the source tree to be installed [1].
- # Once this is fixed, we can consider using the doc use flag to control
- # installing the doc and src directories.
- # The use of cp is deliberate in order to retain permissions
- # [1] https://golang.org/issue/2775
- dodir /usr/lib/go
- cp -R api bin doc lib pkg misc src test "${ED}"/usr/lib/go
- einstalldocs
-
- # testdata directories are not needed on the installed system
- rm -fr $(find "${ED}"/usr/lib/go -iname testdata -type d -print)
-
- local bin_path
- if go_cross_compile; then
- bin_path="bin/$(go_tuple)"
- else
- bin_path=bin
- fi
- local f x
- for x in ${bin_path}/*; do
- f=${x##*/}
- dosym ../lib/go/${bin_path}/${f} /usr/bin/${f}
- done
-
- # install the @golang-rebuild set for Portage
- insinto /usr/share/portage/config/sets
- newins "${FILESDIR}"/go-sets.conf go.conf
-}
-
-pkg_postinst() {
- [[ -z ${REPLACING_VERSIONS} ]] && return
- einfo "After ${CATEGORY}/${PN} is updated it is recommended to rebuild"
- einfo "all packages compiled with previous versions of ${CATEGORY}/${PN}"
- einfo "due to the static linking nature of go."
- einfo "If this is not done, the packages compiled with the older"
- einfo "version of the compiler will not be updated until they are"
- einfo "updated individually, which could mean they will have"
- einfo "vulnerabilities."
- einfo "Run 'emerge @golang-rebuild' to rebuild all 'go' packages"
- einfo "See https://bugs.gentoo.org/752153 for more info"
-}
diff --git a/dev-lang/go/go-1.14.13-r1.ebuild b/dev-lang/go/go-1.21.9.ebuild
index 55fd0c4f6bf1..7588d8461f60 100644
--- a/dev-lang/go/go-1.14.13-r1.ebuild
+++ b/dev-lang/go/go-1.21.9.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -6,6 +6,8 @@ EAPI=7
export CBUILD=${CBUILD:-${CHOST}}
export CTARGET=${CTARGET:-${CHOST}}
+# See "Bootstrap" in release notes
+GO_BOOTSTRAP_MIN=1.17.13
MY_PV=${PV/_/}
inherit toolchain-funcs
@@ -21,21 +23,27 @@ case ${PV} in
case ${PV} in
*_beta*|*_rc*) ;;
*)
- KEYWORDS="-* amd64 arm arm64 ppc64 ~s390 x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris"
+ KEYWORDS="-* amd64 arm arm64 ~loong ~mips ppc64 ~riscv ~s390 x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris"
;;
esac
esac
DESCRIPTION="A concurrent garbage collected and typesafe programming language"
-HOMEPAGE="https://golang.org"
+HOMEPAGE="https://go.dev"
LICENSE="BSD"
SLOT="0/${PV}"
+IUSE="abi_mips_o32 abi_mips_n64 cpu_flags_x86_sse2"
+RDEPEND="
+arm? ( sys-devel/binutils[gold] )
+arm64? ( sys-devel/binutils[gold] )"
BDEPEND="|| (
- dev-lang/go
- dev-lang/go-bootstrap )"
-RDEPEND="!<dev-go/go-tools-0_pre20150902"
+ >=dev-lang/go-${GO_BOOTSTRAP_MIN}
+ >=dev-lang/go-bootstrap-${GO_BOOTSTRAP_MIN} )"
+
+# the *.syso files have writable/executable stacks
+QA_EXECSTACK='*.syso'
# Do not complain about CFLAGS, etc, since Go doesn't use them.
QA_FLAGS_IGNORED='.*'
@@ -43,33 +51,41 @@ QA_FLAGS_IGNORED='.*'
# The tools in /usr/lib/go should not cause the multilib-strict check to fail.
QA_MULTILIB_PATHS="usr/lib/go/pkg/tool/.*/.*"
+# This package triggers "unrecognized elf file(s)" notices on riscv.
+# https://bugs.gentoo.org/794046
+QA_PREBUILT='.*'
+
# Do not strip this package. Stripping is unsupported upstream and may
# fail.
RESTRICT+=" strip"
DOCS=(
-AUTHORS
-CONTRIBUTING.md
-CONTRIBUTORS
-PATENTS
-README.md
+ CONTRIBUTING.md
+ PATENTS
+ README.md
+ SECURITY.md
)
-go_arch()
-{
+go_arch() {
# By chance most portage arch names match Go
- local portage_arch=$(tc-arch $@)
- case "${portage_arch}" in
+ local tc_arch=$(tc-arch $@)
+ case "${tc_arch}" in
x86) echo 386;;
x64-*) echo amd64;;
+ loong) echo loong64;;
+ mips) if use abi_mips_o32; then
+ [[ $(tc-endian $@) = big ]] && echo mips || echo mipsle
+ elif use abi_mips_n64; then
+ [[ $(tc-endian $@) = big ]] && echo mips64 || echo mips64le
+ fi ;;
ppc64) [[ $(tc-endian $@) = big ]] && echo ppc64 || echo ppc64le ;;
+ riscv) echo riscv64 ;;
s390) echo s390x ;;
- *) echo "${portage_arch}";;
+ *) echo "${tc_arch}";;
esac
}
-go_arm()
-{
+go_arm() {
case "${1:-${CHOST}}" in
armv5*) echo 5;;
armv6*) echo 6;;
@@ -80,8 +96,7 @@ go_arm()
esac
}
-go_os()
-{
+go_os() {
case "${1:-${CHOST}}" in
*-linux*) echo linux;;
*-darwin*) echo darwin;;
@@ -98,21 +113,22 @@ go_os()
esac
}
-go_tuple()
-{
+go_tuple() {
echo "$(go_os $@)_$(go_arch $@)"
}
-go_cross_compile()
-{
+go_cross_compile() {
[[ $(go_tuple ${CBUILD}) != $(go_tuple) ]]
}
-src_compile()
-{
- if has_version -b dev-lang/go; then
+PATCHES=(
+ "${FILESDIR}"/go-never-download-newer-toolchains.patch
+)
+
+src_compile() {
+ if has_version -b ">=dev-lang/go-${GO_BOOTSTRAP_MIN}"; then
export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go"
- elif has_version -b dev-lang/go-bootstrap; then
+ elif has_version -b ">=dev-lang/go-bootstrap-${GO_BOOTSTRAP_MIN}"; then
export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go-bootstrap"
else
eerror "Go cannot be built without go or go-bootstrap installed"
@@ -120,7 +136,7 @@ src_compile()
fi
export GOROOT_FINAL="${EPREFIX}"/usr/lib/go
- export GOROOT="$(pwd)"
+ export GOROOT="${PWD}"
export GOBIN="${GOROOT}/bin"
# Go's build script does not use BUILD/HOST/TARGET consistently. :(
@@ -132,37 +148,34 @@ src_compile()
export GOOS=$(go_os)
export CC_FOR_TARGET=$(tc-getCC)
export CXX_FOR_TARGET=$(tc-getCXX)
- if [[ ${ARCH} == arm ]]; then
- export GOARM=$(go_arm)
- fi
+ use arm && export GOARM=$(go_arm)
+ use x86 && export GO386=$(usex cpu_flags_x86_sse2 '' 'softfloat')
cd src
bash -x ./make.bash || die "build failed"
}
-src_test()
-{
+src_test() {
go_cross_compile && return 0
cd src
+
+ # https://github.com/golang/go/issues/42005
+ rm cmd/link/internal/ld/fallocate_test.go || die
+
PATH="${GOBIN}:${PATH}" \
- ./run.bash -no-rebuild || die "tests failed"
- cd ..
- rm -fr pkg/*_race || die
- rm -fr pkg/obj/go-build || die
+ ./run.bash -no-rebuild -k || die "tests failed"
}
-src_install()
-{
- # There is a known issue which requires the source tree to be installed [1].
- # Once this is fixed, we can consider using the doc use flag to control
- # installing the doc and src directories.
- # The use of cp is deliberate in order to retain permissions
- # [1] https://golang.org/issue/2775
+src_install() {
dodir /usr/lib/go
+ # The use of cp is deliberate in order to retain permissions
cp -R api bin doc lib pkg misc src test "${ED}"/usr/lib/go
einstalldocs
+ insinto /usr/lib/go
+ doins go.env VERSION
+
# testdata directories are not needed on the installed system
rm -fr $(find "${ED}"/usr/lib/go -iname testdata -type d -print)
@@ -185,13 +198,13 @@ src_install()
pkg_postinst() {
[[ -z ${REPLACING_VERSIONS} ]] && return
- einfo "After ${CATEGORY}/${PN} is updated it is recommended to rebuild"
- einfo "all packages compiled with previous versions of ${CATEGORY}/${PN}"
- einfo "due to the static linking nature of go."
- einfo "If this is not done, the packages compiled with the older"
- einfo "version of the compiler will not be updated until they are"
- einfo "updated individually, which could mean they will have"
- einfo "vulnerabilities."
- einfo "Run 'emerge @golang-rebuild' to rebuild all 'go' packages"
- einfo "See https://bugs.gentoo.org/752153 for more info"
+ elog "After ${CATEGORY}/${PN} is updated it is recommended to rebuild"
+ elog "all packages compiled with previous versions of ${CATEGORY}/${PN}"
+ elog "due to the static linking nature of go."
+ elog "If this is not done, the packages compiled with the older"
+ elog "version of the compiler will not be updated until they are"
+ elog "updated individually, which could mean they will have"
+ elog "vulnerabilities."
+ elog "Run 'emerge @golang-rebuild' to rebuild all 'go' packages"
+ elog "See https://bugs.gentoo.org/752153 for more info"
}
diff --git a/dev-lang/go/go-1.15.7.ebuild b/dev-lang/go/go-1.22.2.ebuild
index 07cd0d903d5f..38f5a0419240 100644
--- a/dev-lang/go/go-1.15.7.ebuild
+++ b/dev-lang/go/go-1.22.2.ebuild
@@ -1,11 +1,13 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
export CBUILD=${CBUILD:-${CHOST}}
export CTARGET=${CTARGET:-${CHOST}}
+# See "Bootstrap" in release notes
+GO_BOOTSTRAP_MIN=1.20.14
MY_PV=${PV/_/}
inherit toolchain-funcs
@@ -21,21 +23,27 @@ case ${PV} in
case ${PV} in
*_beta*|*_rc*) ;;
*)
- KEYWORDS="-* amd64 ~arm ~arm64 ~ppc64 ~s390 ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris"
+ KEYWORDS="-* amd64 arm arm64 ~loong ~mips ppc64 ~riscv ~s390 x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris"
;;
esac
esac
DESCRIPTION="A concurrent garbage collected and typesafe programming language"
-HOMEPAGE="https://golang.org"
+HOMEPAGE="https://go.dev"
LICENSE="BSD"
SLOT="0/${PV}"
+IUSE="abi_mips_o32 abi_mips_n64 cpu_flags_x86_sse2"
+RDEPEND="
+arm? ( sys-devel/binutils[gold] )
+arm64? ( sys-devel/binutils[gold] )"
BDEPEND="|| (
- dev-lang/go
- dev-lang/go-bootstrap )"
-RDEPEND="!<dev-go/go-tools-0_pre20150902"
+ >=dev-lang/go-${GO_BOOTSTRAP_MIN}
+ >=dev-lang/go-bootstrap-${GO_BOOTSTRAP_MIN} )"
+
+# the *.syso files have writable/executable stacks
+QA_EXECSTACK='*.syso'
# Do not complain about CFLAGS, etc, since Go doesn't use them.
QA_FLAGS_IGNORED='.*'
@@ -43,33 +51,41 @@ QA_FLAGS_IGNORED='.*'
# The tools in /usr/lib/go should not cause the multilib-strict check to fail.
QA_MULTILIB_PATHS="usr/lib/go/pkg/tool/.*/.*"
+# This package triggers "unrecognized elf file(s)" notices on riscv.
+# https://bugs.gentoo.org/794046
+QA_PREBUILT='.*'
+
# Do not strip this package. Stripping is unsupported upstream and may
# fail.
-RESTRICT+=" strip"
+RESTRICT=" strip"
DOCS=(
-AUTHORS
-CONTRIBUTING.md
-CONTRIBUTORS
-PATENTS
-README.md
+ CONTRIBUTING.md
+ PATENTS
+ README.md
+ SECURITY.md
)
-go_arch()
-{
+go_arch() {
# By chance most portage arch names match Go
- local portage_arch=$(tc-arch $@)
- case "${portage_arch}" in
+ local tc_arch=$(tc-arch $@)
+ case "${tc_arch}" in
x86) echo 386;;
x64-*) echo amd64;;
+ loong) echo loong64;;
+ mips) if use abi_mips_o32; then
+ [[ $(tc-endian $@) = big ]] && echo mips || echo mipsle
+ elif use abi_mips_n64; then
+ [[ $(tc-endian $@) = big ]] && echo mips64 || echo mips64le
+ fi ;;
ppc64) [[ $(tc-endian $@) = big ]] && echo ppc64 || echo ppc64le ;;
+ riscv) echo riscv64 ;;
s390) echo s390x ;;
- *) echo "${portage_arch}";;
+ *) echo "${tc_arch}";;
esac
}
-go_arm()
-{
+go_arm() {
case "${1:-${CHOST}}" in
armv5*) echo 5;;
armv6*) echo 6;;
@@ -80,8 +96,7 @@ go_arm()
esac
}
-go_os()
-{
+go_os() {
case "${1:-${CHOST}}" in
*-linux*) echo linux;;
*-darwin*) echo darwin;;
@@ -98,21 +113,22 @@ go_os()
esac
}
-go_tuple()
-{
+go_tuple() {
echo "$(go_os $@)_$(go_arch $@)"
}
-go_cross_compile()
-{
+go_cross_compile() {
[[ $(go_tuple ${CBUILD}) != $(go_tuple) ]]
}
-src_compile()
-{
- if has_version -b dev-lang/go; then
+PATCHES=(
+ "${FILESDIR}"/go-never-download-newer-toolchains.patch
+)
+
+src_compile() {
+ if has_version -b ">=dev-lang/go-${GO_BOOTSTRAP_MIN}"; then
export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go"
- elif has_version -b dev-lang/go-bootstrap; then
+ elif has_version -b ">=dev-lang/go-bootstrap-${GO_BOOTSTRAP_MIN}"; then
export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go-bootstrap"
else
eerror "Go cannot be built without go or go-bootstrap installed"
@@ -120,7 +136,7 @@ src_compile()
fi
export GOROOT_FINAL="${EPREFIX}"/usr/lib/go
- export GOROOT="$(pwd)"
+ export GOROOT="${PWD}"
export GOBIN="${GOROOT}/bin"
# Go's build script does not use BUILD/HOST/TARGET consistently. :(
@@ -132,37 +148,37 @@ src_compile()
export GOOS=$(go_os)
export CC_FOR_TARGET=$(tc-getCC)
export CXX_FOR_TARGET=$(tc-getCXX)
- if [[ ${ARCH} == arm ]]; then
- export GOARM=$(go_arm)
- fi
+ use arm && export GOARM=$(go_arm)
+ use x86 && export GO386=$(usex cpu_flags_x86_sse2 '' 'softfloat')
cd src
bash -x ./make.bash || die "build failed"
}
-src_test()
-{
+src_test() {
go_cross_compile && return 0
cd src
+
+ # https://github.com/golang/go/issues/42005
+ rm cmd/link/internal/ld/fallocate_test.go || die
+
PATH="${GOBIN}:${PATH}" \
- ./run.bash -no-rebuild || die "tests failed"
+ ./run.bash -no-rebuild -k || die "tests failed"
cd ..
rm -fr pkg/*_race || die
rm -fr pkg/obj/go-build || die
}
-src_install()
-{
- # There is a known issue which requires the source tree to be installed [1].
- # Once this is fixed, we can consider using the doc use flag to control
- # installing the doc and src directories.
- # The use of cp is deliberate in order to retain permissions
- # [1] https://golang.org/issue/2775
+src_install() {
dodir /usr/lib/go
+ # The use of cp is deliberate in order to retain permissions
cp -R api bin doc lib pkg misc src test "${ED}"/usr/lib/go
einstalldocs
+ insinto /usr/lib/go
+ doins go.env VERSION*
+
# testdata directories are not needed on the installed system
rm -fr $(find "${ED}"/usr/lib/go -iname testdata -type d -print)
@@ -185,13 +201,13 @@ src_install()
pkg_postinst() {
[[ -z ${REPLACING_VERSIONS} ]] && return
- einfo "After ${CATEGORY}/${PN} is updated it is recommended to rebuild"
- einfo "all packages compiled with previous versions of ${CATEGORY}/${PN}"
- einfo "due to the static linking nature of go."
- einfo "If this is not done, the packages compiled with the older"
- einfo "version of the compiler will not be updated until they are"
- einfo "updated individually, which could mean they will have"
- einfo "vulnerabilities."
- einfo "Run 'emerge @golang-rebuild' to rebuild all 'go' packages"
- einfo "See https://bugs.gentoo.org/752153 for more info"
+ elog "After ${CATEGORY}/${PN} is updated it is recommended to rebuild"
+ elog "all packages compiled with previous versions of ${CATEGORY}/${PN}"
+ elog "due to the static linking nature of go."
+ elog "If this is not done, the packages compiled with the older"
+ elog "version of the compiler will not be updated until they are"
+ elog "updated individually, which could mean they will have"
+ elog "vulnerabilities."
+ elog "Run 'emerge @golang-rebuild' to rebuild all 'go' packages"
+ elog "See https://bugs.gentoo.org/752153 for more info"
}
diff --git a/dev-lang/go/go-9999.ebuild b/dev-lang/go/go-9999.ebuild
index 39d69abc7b52..fc36a2d33ae9 100644
--- a/dev-lang/go/go-9999.ebuild
+++ b/dev-lang/go/go-9999.ebuild
@@ -1,11 +1,13 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
export CBUILD=${CBUILD:-${CHOST}}
export CTARGET=${CTARGET:-${CHOST}}
+# See "Bootstrap" in release notes
+GO_BOOTSTRAP_MIN=1.20.14
MY_PV=${PV/_/}
inherit toolchain-funcs
@@ -21,21 +23,27 @@ case ${PV} in
case ${PV} in
*_beta*|*_rc*) ;;
*)
- KEYWORDS="-* ~amd64 ~arm ~arm64 ~ppc64 ~s390 ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris"
+ KEYWORDS="-* ~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~s390 ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris"
;;
esac
esac
DESCRIPTION="A concurrent garbage collected and typesafe programming language"
-HOMEPAGE="https://golang.org"
+HOMEPAGE="https://go.dev"
LICENSE="BSD"
SLOT="0/${PV}"
+IUSE="abi_mips_o32 abi_mips_n64 cpu_flags_x86_sse2"
+RDEPEND="
+arm? ( sys-devel/binutils[gold] )
+arm64? ( sys-devel/binutils[gold] )"
BDEPEND="|| (
- dev-lang/go
- dev-lang/go-bootstrap )"
-RDEPEND="!<dev-go/go-tools-0_pre20150902"
+ >=dev-lang/go-${GO_BOOTSTRAP_MIN}
+ >=dev-lang/go-bootstrap-${GO_BOOTSTRAP_MIN} )"
+
+# the *.syso files have writable/executable stacks
+QA_EXECSTACK='*.syso'
# Do not complain about CFLAGS, etc, since Go doesn't use them.
QA_FLAGS_IGNORED='.*'
@@ -43,33 +51,41 @@ QA_FLAGS_IGNORED='.*'
# The tools in /usr/lib/go should not cause the multilib-strict check to fail.
QA_MULTILIB_PATHS="usr/lib/go/pkg/tool/.*/.*"
+# This package triggers "unrecognized elf file(s)" notices on riscv.
+# https://bugs.gentoo.org/794046
+QA_PREBUILT='.*'
+
# Do not strip this package. Stripping is unsupported upstream and may
# fail.
-RESTRICT+=" strip"
+RESTRICT=" strip"
DOCS=(
-AUTHORS
-CONTRIBUTING.md
-CONTRIBUTORS
-PATENTS
-README.md
+ CONTRIBUTING.md
+ PATENTS
+ README.md
+ SECURITY.md
)
-go_arch()
-{
+go_arch() {
# By chance most portage arch names match Go
- local portage_arch=$(tc-arch $@)
- case "${portage_arch}" in
+ local tc_arch=$(tc-arch $@)
+ case "${tc_arch}" in
x86) echo 386;;
x64-*) echo amd64;;
+ loong) echo loong64;;
+ mips) if use abi_mips_o32; then
+ [[ $(tc-endian $@) = big ]] && echo mips || echo mipsle
+ elif use abi_mips_n64; then
+ [[ $(tc-endian $@) = big ]] && echo mips64 || echo mips64le
+ fi ;;
ppc64) [[ $(tc-endian $@) = big ]] && echo ppc64 || echo ppc64le ;;
+ riscv) echo riscv64 ;;
s390) echo s390x ;;
- *) echo "${portage_arch}";;
+ *) echo "${tc_arch}";;
esac
}
-go_arm()
-{
+go_arm() {
case "${1:-${CHOST}}" in
armv5*) echo 5;;
armv6*) echo 6;;
@@ -80,8 +96,7 @@ go_arm()
esac
}
-go_os()
-{
+go_os() {
case "${1:-${CHOST}}" in
*-linux*) echo linux;;
*-darwin*) echo darwin;;
@@ -98,21 +113,22 @@ go_os()
esac
}
-go_tuple()
-{
+go_tuple() {
echo "$(go_os $@)_$(go_arch $@)"
}
-go_cross_compile()
-{
+go_cross_compile() {
[[ $(go_tuple ${CBUILD}) != $(go_tuple) ]]
}
-src_compile()
-{
- if has_version -b dev-lang/go; then
+PATCHES=(
+ "${FILESDIR}"/go-never-download-newer-toolchains.patch
+)
+
+src_compile() {
+ if has_version -b ">=dev-lang/go-${GO_BOOTSTRAP_MIN}"; then
export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go"
- elif has_version -b dev-lang/go-bootstrap; then
+ elif has_version -b ">=dev-lang/go-bootstrap-${GO_BOOTSTRAP_MIN}"; then
export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go-bootstrap"
else
eerror "Go cannot be built without go or go-bootstrap installed"
@@ -120,7 +136,7 @@ src_compile()
fi
export GOROOT_FINAL="${EPREFIX}"/usr/lib/go
- export GOROOT="$(pwd)"
+ export GOROOT="${PWD}"
export GOBIN="${GOROOT}/bin"
# Go's build script does not use BUILD/HOST/TARGET consistently. :(
@@ -132,37 +148,37 @@ src_compile()
export GOOS=$(go_os)
export CC_FOR_TARGET=$(tc-getCC)
export CXX_FOR_TARGET=$(tc-getCXX)
- if [[ ${ARCH} == arm ]]; then
- export GOARM=$(go_arm)
- fi
+ use arm && export GOARM=$(go_arm)
+ use x86 && export GO386=$(usex cpu_flags_x86_sse2 '' 'softfloat')
cd src
bash -x ./make.bash || die "build failed"
}
-src_test()
-{
+src_test() {
go_cross_compile && return 0
cd src
+
+ # https://github.com/golang/go/issues/42005
+ rm cmd/link/internal/ld/fallocate_test.go || die
+
PATH="${GOBIN}:${PATH}" \
- ./run.bash -no-rebuild || die "tests failed"
+ ./run.bash -no-rebuild -k || die "tests failed"
cd ..
rm -fr pkg/*_race || die
rm -fr pkg/obj/go-build || die
}
-src_install()
-{
- # There is a known issue which requires the source tree to be installed [1].
- # Once this is fixed, we can consider using the doc use flag to control
- # installing the doc and src directories.
- # The use of cp is deliberate in order to retain permissions
- # [1] https://golang.org/issue/2775
+src_install() {
dodir /usr/lib/go
+ # The use of cp is deliberate in order to retain permissions
cp -R api bin doc lib pkg misc src test "${ED}"/usr/lib/go
einstalldocs
+ insinto /usr/lib/go
+ doins go.env VERSION*
+
# testdata directories are not needed on the installed system
rm -fr $(find "${ED}"/usr/lib/go -iname testdata -type d -print)
@@ -185,13 +201,13 @@ src_install()
pkg_postinst() {
[[ -z ${REPLACING_VERSIONS} ]] && return
- einfo "After ${CATEGORY}/${PN} is updated it is recommended to rebuild"
- einfo "all packages compiled with previous versions of ${CATEGORY}/${PN}"
- einfo "due to the static linking nature of go."
- einfo "If this is not done, the packages compiled with the older"
- einfo "version of the compiler will not be updated until they are"
- einfo "updated individually, which could mean they will have"
- einfo "vulnerabilities."
- einfo "Run 'emerge @golang-rebuild' to rebuild all 'go' packages"
- einfo "See https://bugs.gentoo.org/752153 for more info"
+ elog "After ${CATEGORY}/${PN} is updated it is recommended to rebuild"
+ elog "all packages compiled with previous versions of ${CATEGORY}/${PN}"
+ elog "due to the static linking nature of go."
+ elog "If this is not done, the packages compiled with the older"
+ elog "version of the compiler will not be updated until they are"
+ elog "updated individually, which could mean they will have"
+ elog "vulnerabilities."
+ elog "Run 'emerge @golang-rebuild' to rebuild all 'go' packages"
+ elog "See https://bugs.gentoo.org/752153 for more info"
}
diff --git a/dev-lang/go/metadata.xml b/dev-lang/go/metadata.xml
index 1050d935da86..5e00214a73f6 100644
--- a/dev-lang/go/metadata.xml
+++ b/dev-lang/go/metadata.xml
@@ -1,13 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>williamh@gentoo.org</email>
<name>William Hubbs</name>
</maintainer>
<longdescription lang="en">
- Go is a new systems programming language developped at google by
+ Go is a new systems programming language developed at google by
Rob Pike. It has garbage collection, coroutines, communication
channels and a clean syntax.
</longdescription>
+ <upstream>
+ <remote-id type="cpe">cpe:/a:golang:go</remote-id>
+ <remote-id type="github">golang/go</remote-id>
+ </upstream>
</pkgmetadata>
diff --git a/dev-lang/gprolog/Manifest b/dev-lang/gprolog/Manifest
index a0bddf84cdf4..c39f0b3c5d47 100644
--- a/dev-lang/gprolog/Manifest
+++ b/dev-lang/gprolog/Manifest
@@ -1 +1,2 @@
DIST gprolog-1.4.5.tar.gz 3587361 BLAKE2B c0c73ce249d7c26b914a3f831c6ac93aeb884bded6c5ebbe51223f0685de0be2e746533aade1633a953b93e88a30796fa52ecd5e609d05bc051363cbf34e0477 SHA512 425103bc9e5bdbdb4ae331f5be0cf49524fbdb4f5e2809fb973360de9e7ad9935c1b28f3603e0be696a647153d9f0d3dacdc87251098ac99faf7d0b3c652fc60
+DIST gprolog-1.5.0.tar.gz 3813899 BLAKE2B e1d82393f122f37b1e139732c1b954b8a407feac4973b56c2e39dcf907424acca67bd10ea0e833ebbd6764a47b075911a29e05b51c37d3751a5d5fc751a08789 SHA512 7ef1a3555ffa58d3fb0db2b55ffc1d00868021f0f9f3d63dd1f43b5b833e6e00ecc74abfc0573828a3d53f20c134dffaf7fe79ab21b3e16dccfca8c73b5dfb8d
diff --git a/dev-lang/gprolog/files/gprolog-1.4.5-links.patch b/dev-lang/gprolog/files/gprolog-1.4.5-links.patch
index c39a1cf9a28c..573e27910bd0 100644
--- a/dev-lang/gprolog/files/gprolog-1.4.5-links.patch
+++ b/dev-lang/gprolog/files/gprolog-1.4.5-links.patch
@@ -9,7 +9,7 @@
if test $(LINKS_DIR) != none; then \
./mkinstalldirs $(LINKS_DIR); \
- (cd $(LINKS_DIR) ; $(LN_S) $(INSTALL_DIR)/bin/* .); \
-+ (cd $(LINKS_DIR); for i in $(BIN_FILES); do $(LN_S) $(INSTALL_DIR)/bin/$$i .; done); \
++ (cd $(LINKS_DIR); for i in $(BIN_FILES); do $(LN_S) -r $(INSTALL_DIR)/bin/$$i .; done); \
fi
uninstall-links:
diff --git a/dev-lang/gprolog/files/gprolog-1.4.5-llvm-as.patch b/dev-lang/gprolog/files/gprolog-1.4.5-llvm-as.patch
new file mode 100644
index 000000000000..6adc8feb2720
--- /dev/null
+++ b/dev-lang/gprolog/files/gprolog-1.4.5-llvm-as.patch
@@ -0,0 +1,38 @@
+--- gprolog-1.4.5.orig/src/configure.in 2018-07-14 08:19:12.000000000 -0000
++++ gprolog-1.4.5/src/configure.in 2021-06-27 10:13:31.004977355 -0000
+@@ -334,15 +334,26 @@
+ dnl we use AS0 instead of AS else AC_CHECK_TOOL does not work
+ dnl (instead of testing a prefix like x86_64-w64-mingw32- it will
+ dnl think the user wants to override the test)
+- AS0=as
+- case "$host" in
+- sparc64*bsd*) ASFLAGS='-Av9a -64 -K PIC';;
+- i*86*darwin1*) ASFLAGS='-arch i686';;
+- i*86*linux*) ASFLAGS='--32';;
+- x86_64*solaris*) AS0=gas; ASFLAGS='--64';;
+- x86_64*darwin*) ASFLAGS='-arch x86_64';;
+- x86_64*linux*) ASFLAGS='--64';;
+- *) if test "$with_gas" = yes; then AS0=gas; fi;;
++ case "$CC" in
++ *cc)
++ AS0=as
++ case "$host" in
++ sparc64*bsd*) ASFLAGS='-Av9a -64 -K PIC';;
++ i*86*darwin1*) ASFLAGS='-arch i686';;
++ i*86*linux*) ASFLAGS='--32';;
++ x86_64*solaris*) AS0=gas; ASFLAGS='--64';;
++ x86_64*darwin*) ASFLAGS='-arch x86_64';;
++ x86_64*linux*) ASFLAGS='--64';;
++ *) if test "$with_gas" = yes; then AS0=gas; fi;;
++ esac
++ ;;
++ *clang)
++ AS0=$CC
++ ASFLAGS='-c'
++ ;;
++ *)
++ AC_MSG_ERROR([unsupported compiler $CC])
++ ;;
+ esac
+ AC_CHECK_TOOL([AS],[$AS0])
+ AC_PROG_RANLIB
diff --git a/dev-lang/gprolog/files/gprolog-1.5.0-destdir.patch b/dev-lang/gprolog/files/gprolog-1.5.0-destdir.patch
new file mode 100644
index 000000000000..c875edd0ec18
--- /dev/null
+++ b/dev-lang/gprolog/files/gprolog-1.5.0-destdir.patch
@@ -0,0 +1,61 @@
+--- gprolog-1.5.0.orig/src/Makefile.in 2021-07-07 16:06:16.000000000 -0000
++++ gprolog-1.5.0/src/Makefile.in 2021-07-10 12:49:40.967172260 -0000
+@@ -85,13 +85,13 @@
+ # --- Links --- #
+
+ install-links: install-system uninstall-links
+- if test $(LINKS_DIR) != none; then \
++ if test @LINKS_DIR@ != none; then \
+ ./mkinstalldirs $(LINKS_DIR); \
+ (cd $(LINKS_DIR) ; $(LN_S) -r $(wildcard $(INSTALL_DIR)/bin/*) .); \
+ fi
+
+ uninstall-links:
+- -if test $(LINKS_DIR) != none; then \
++ -if test @LINKS_DIR@ != none; then \
+ (cd $(LINKS_DIR) 2>/dev/null && rm -f $(BIN_FILES)); \
+ rmdir $(LINKS_DIR) 2>/dev/null; \
+ fi || exit 0;
+@@ -100,14 +100,14 @@
+ # --- Documentation --- #
+
+ install-doc:
+- if test $(DOC_DIR) != none; then \
++ if test @DOC_DIR@ != none; then \
+ ./mkinstalldirs $(DOC_DIR); \
+ (F=`cd ../doc; echo $(DOC_FILES)`; \
+ for i in $$F; do $(INSTALL_DATA) ../doc/$$i $(DOC_DIR); done); \
+ fi
+
+ uninstall-doc:
+- -if test $(DOC_DIR) != none; then \
++ -if test @DOC_DIR@ != none; then \
+ (cd $(DOC_DIR); rm -f $(DOC_FILES)); \
+ rmdir $(DOC_DIR) 2>/dev/null; \
+ fi || exit 0;
+@@ -116,14 +116,14 @@
+ # --- HTML --- #
+
+ install-html:
+- if test $(HTML_DIR) != none; then \
++ if test @HTML_DIR@ != none; then \
+ ./mkinstalldirs $(HTML_DIR); \
+ (F=`cd ../doc/html_node; echo $(HTML_FILES)`; \
+ for i in $$F; do $(INSTALL_DATA) ../doc/html_node/$$i $(HTML_DIR); done); \
+ fi
+
+ uninstall-html:
+- -if test $(HTML_DIR) != none; then \
++ -if test @HTML_DIR@ != none; then \
+ (cd $(HTML_DIR); rm -f $(HTML_FILES)); \
+ rmdir $(HTML_DIR) 2>/dev/null; \
+ fi || exit 0;
+@@ -132,7 +132,7 @@
+ # --- Examples --- #
+
+ install-examples:
+- if test $(EXAMPLES_DIR) != none; then \
++ if test @EXAMPLES_DIR@ != none; then \
+ ./mkinstalldirs $(EXAMPLES_DIR)/ExamplesPl; \
+ (F=`cd ../examples/ExamplesPl; echo $(EXPL_FILES)`; \
+ for i in $$F; do $(INSTALL_DATA) ../examples/ExamplesPl/$$i $(EXAMPLES_DIR)/ExamplesPl; done); \
diff --git a/dev-lang/gprolog/files/gprolog-1.5.0-ldflags.patch b/dev-lang/gprolog/files/gprolog-1.5.0-ldflags.patch
new file mode 100644
index 000000000000..5d53a69a657b
--- /dev/null
+++ b/dev-lang/gprolog/files/gprolog-1.5.0-ldflags.patch
@@ -0,0 +1,104 @@
+diff -ur gprolog-1.5.0.orig/src/EnginePl/Makefile.in gprolog-1.5.0/src/EnginePl/Makefile.in
+--- gprolog-1.5.0.orig/src/EnginePl/Makefile.in 2021-07-10 10:13:23.046564472 -0000
++++ gprolog-1.5.0/src/EnginePl/Makefile.in 2021-07-10 10:41:59.585492681 -0000
+@@ -2,6 +2,7 @@
+ GPLC = @GPLC@
+ CC = @CC@ @CFLAGS_MACHINE@
+ CFLAGS = @CFLAGS@
++LDFLAGS = @LDFLAGS@
+ AR_RC = @AR_RC@
+ RANLIB = @RANLIB@
+
+@@ -35,7 +36,7 @@
+ config: pl_config@EXE_SUFFIX@ wam_regs.h
+
+ pl_config@EXE_SUFFIX@: pl_config.c gp_config.h machine.h stacks_sigsegv.h wam_archi.def
+- $(CC) $(CFLAGS) $(LFLAGS) @CC_EXE_NAME_OPT@pl_config@EXE_SUFFIX@ pl_config.c
++ $(CC) $(CFLAGS) $(LDFLAGS) @CC_EXE_NAME_OPT@pl_config@EXE_SUFFIX@ pl_config.c
+
+
+ wam_regs.h: pl_config@EXE_SUFFIX@ machine.h stacks_sigsegv.h wam_archi.def
+@@ -49,10 +50,10 @@
+
+
+ cpp_headers@EXE_SUFFIX@: cpp_headers.c
+- $(CC) $(CFLAGS) $(LFLAGS) @CC_EXE_NAME_OPT@cpp_headers@EXE_SUFFIX@ cpp_headers.c
++ $(CC) $(CFLAGS) $(LDFLAGS) @CC_EXE_NAME_OPT@cpp_headers@EXE_SUFFIX@ cpp_headers.c
+
+ try_sigaction@EXE_SUFFIX@: try_sigaction.c
+- $(CC) $(CFLAGS) $(LFLAGS) @CC_EXE_NAME_OPT@try_sigaction@EXE_SUFFIX@ try_sigaction.c
++ $(CC) $(CFLAGS) $(LDFLAGS) @CC_EXE_NAME_OPT@try_sigaction@EXE_SUFFIX@ try_sigaction.c
+
+
+
+diff -ur gprolog-1.5.0.orig/src/Ma2Asm/Makefile.in gprolog-1.5.0/src/Ma2Asm/Makefile.in
+--- gprolog-1.5.0.orig/src/Ma2Asm/Makefile.in 2021-07-07 10:13:02.000000000 -0000
++++ gprolog-1.5.0/src/Ma2Asm/Makefile.in 2021-07-10 10:40:22.683496734 -0000
+@@ -1,7 +1,8 @@
+-GPLC = @GPLC@
+-CC = @CC@ @CFLAGS_MACHINE@
+-CFLAGS = @CFLAGS@
+-LDLIBS = @LDLIBS@
++GPLC = @GPLC@
++CC = @CC@ @CFLAGS_MACHINE@
++CFLAGS = @CFLAGS@
++LDFLAGS = @LDFLAGS@
++LDLIBS = @LDLIBS@
+
+ # set by mappers.sh
+ FORCE_MAP =
+@@ -25,7 +26,7 @@
+
+ ma2asm@EXE_SUFFIX@: ma2asm@OBJ_SUFFIX@ ma_parser@OBJ_SUFFIX@ \
+ ma2asm_inst@OBJ_SUFFIX@ ma2asm_inst.c
+- $(CC) $(CFLAGS) @CC_EXE_NAME_OPT@ma2asm@EXE_SUFFIX@ ma2asm@OBJ_SUFFIX@ ma2asm_inst@OBJ_SUFFIX@ ma_parser@OBJ_SUFFIX@
++ $(CC) $(LDFLAGS) @CC_EXE_NAME_OPT@ma2asm@EXE_SUFFIX@ ma2asm@OBJ_SUFFIX@ ma2asm_inst@OBJ_SUFFIX@ ma_parser@OBJ_SUFFIX@
+
+
+ clean:
+diff -ur gprolog-1.5.0.orig/src/TopComp/Makefile.in gprolog-1.5.0/src/TopComp/Makefile.in
+--- gprolog-1.5.0.orig/src/TopComp/Makefile.in 2021-07-07 10:13:02.000000000 -0000
++++ gprolog-1.5.0/src/TopComp/Makefile.in 2021-07-10 10:41:31.081493873 -0000
+@@ -4,7 +4,7 @@
+ CFLAGS = @CFLAGS@
+ HEXGPLC = @HEXGPLC@
+ CC = @CC@ @CFLAGS_MACHINE@
+-CFLAGS = @CFLAGS@
++LDFLAGS = @LDFLAGS@
+ LDLIBS = @LDLIBS@
+ TOP_LEVEL_LIBS = @TOP_LEVEL_LIBS@
+
+@@ -24,10 +24,10 @@
+
+ $(GPLC)@EXE_SUFFIX@: top_comp.c copying.c ../EnginePl/wam_regs.h \
+ ../EnginePl/gp_config.h ../EnginePl/machine1.c decode_hexa.c copying.c prolog_path.c
+- $(CC) $(CFLAGS) @CC_EXE_NAME_OPT@$(GPLC)@EXE_SUFFIX@ top_comp.c $(LDLIBS)
++ $(CC) $(CFLAGS) $(LDFLAGS) @CC_EXE_NAME_OPT@$(GPLC)@EXE_SUFFIX@ top_comp.c $(LDLIBS)
+
+ $(HEXGPLC)@EXE_SUFFIX@: hexfilter.c decode_hexa.c
+- $(CC) $(CFLAGS) @CC_EXE_NAME_OPT@$(HEXGPLC)@EXE_SUFFIX@ hexfilter.c
++ $(CC) $(CFLAGS) $(LDFLAGS) @CC_EXE_NAME_OPT@$(HEXGPLC)@EXE_SUFFIX@ hexfilter.c
+
+
+
+diff -ur gprolog-1.5.0.orig/src/Wam2Ma/Makefile.in gprolog-1.5.0/src/Wam2Ma/Makefile.in
+--- gprolog-1.5.0.orig/src/Wam2Ma/Makefile.in 2021-05-03 13:55:34.000000000 -0000
++++ gprolog-1.5.0/src/Wam2Ma/Makefile.in 2021-07-10 10:40:30.134496422 -0000
+@@ -1,5 +1,6 @@
+-CC = @CC@ @CFLAGS_MACHINE@
+-CFLAGS = @CFLAGS@
++CC = @CC@ @CFLAGS_MACHINE@
++CFLAGS = @CFLAGS@
++LDFLAGS = @LDFLAGS@
+
+
+ all: wam2ma@EXE_SUFFIX@
+@@ -12,7 +13,7 @@
+ $(CC) $(CFLAGS) -c wam2ma.c
+
+ wam2ma@EXE_SUFFIX@: wam2ma@OBJ_SUFFIX@ wam_parser@OBJ_SUFFIX@
+- $(CC) $(CFLAGS) @CC_EXE_NAME_OPT@wam2ma@EXE_SUFFIX@ wam2ma@OBJ_SUFFIX@ wam_parser@OBJ_SUFFIX@
++ $(CC) $(LDFLAGS) @CC_EXE_NAME_OPT@wam2ma@EXE_SUFFIX@ wam2ma@OBJ_SUFFIX@ wam_parser@OBJ_SUFFIX@
+
+
+ clean:
diff --git a/dev-lang/gprolog/files/gprolog-1.5.0-links.patch b/dev-lang/gprolog/files/gprolog-1.5.0-links.patch
new file mode 100644
index 000000000000..70f18610f04b
--- /dev/null
+++ b/dev-lang/gprolog/files/gprolog-1.5.0-links.patch
@@ -0,0 +1,15 @@
+--- gprolog-1.5.0.orig/src/Makefile.in 2021-07-07 16:06:16.000000000 -0000
++++ gprolog-1.5.0/src/Makefile.in 2021-07-10 11:30:29.130370996 -0000
+@@ -84,10 +84,10 @@
+
+ # --- Links --- #
+
+-install-links: uninstall-links
++install-links: install-system uninstall-links
+ if test $(LINKS_DIR) != none; then \
+ ./mkinstalldirs $(LINKS_DIR); \
+- (cd $(LINKS_DIR) ; $(LN_S) $(INSTALL_DIR)/bin/* .); \
++ (cd $(LINKS_DIR) ; $(LN_S) -r $(wildcard $(INSTALL_DIR)/bin/*) .); \
+ fi
+
+ uninstall-links:
diff --git a/dev-lang/gprolog/files/gprolog-1.5.0-llvm-as.patch b/dev-lang/gprolog/files/gprolog-1.5.0-llvm-as.patch
new file mode 100644
index 000000000000..f3fa81ce13e8
--- /dev/null
+++ b/dev-lang/gprolog/files/gprolog-1.5.0-llvm-as.patch
@@ -0,0 +1,38 @@
+--- gprolog-1.5.0.orig/src/configure.in 2021-07-08 09:34:44.000000000 -0000
++++ gprolog-1.5.0/src/configure.in 2021-07-10 16:25:44.397630093 -0000
+@@ -342,15 +342,26 @@
+ dnl we use AS0 instead of AS else AC_CHECK_TOOL does not work
+ dnl (instead of testing a prefix like x86_64-w64-mingw32- it will
+ dnl think the user wants to override the test)
+- AS0=as
+- case "$host" in
+- sparc64*bsd*) ASFLAGS='-Av9a -64 -K PIC';;
+- i*86*darwin1*) ASFLAGS='-arch i686';;
+- i*86*linux*) ASFLAGS='--32';;
+- x86_64*solaris*) AS0=gas; ASFLAGS='--64';;
+- x86_64*darwin*) ASFLAGS='-arch x86_64';;
+- x86_64*linux*) ASFLAGS='--64';;
+- *) if test "$with_gas" = yes; then AS0=gas; fi;;
++ case "$CC" in
++ *cc)
++ AS0=as
++ case "$host" in
++ sparc64*bsd*) ASFLAGS='-Av9a -64 -K PIC';;
++ i*86*darwin1*) ASFLAGS='-arch i686';;
++ i*86*linux*) ASFLAGS='--32';;
++ x86_64*solaris*) AS0=gas; ASFLAGS='--64';;
++ x86_64*darwin*) ASFLAGS='-arch x86_64';;
++ x86_64*linux*) ASFLAGS='--64';;
++ *) if test "$with_gas" = yes; then AS0=gas; fi;;
++ esac
++ ;;
++ *clang)
++ AS0=$CC
++ ASFLAGS='-c'
++ ;;
++ *)
++ AC_MSG_ERROR([unsupported compiler $CC])
++ ;;
+ esac
+ AC_CHECK_TOOL([AS],[$AS0])
+ AC_PROG_RANLIB
diff --git a/dev-lang/gprolog/gprolog-1.4.5.ebuild b/dev-lang/gprolog/gprolog-1.4.5.ebuild
index 80e33c7e6183..355d3940417f 100644
--- a/dev-lang/gprolog/gprolog-1.4.5.ebuild
+++ b/dev-lang/gprolog/gprolog-1.4.5.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
-inherit eutils flag-o-matic multilib toolchain-funcs
+inherit autotools flag-o-matic toolchain-funcs
DESCRIPTION="A native Prolog compiler with constraint solving over finite domains (FD)"
HOMEPAGE="http://www.gprolog.org/"
@@ -12,26 +12,29 @@ S="${WORKDIR}"/${P}
LICENSE="|| ( GPL-2+ LGPL-3+ )"
SLOT="0"
-KEYWORDS="amd64 ppc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-solaris"
+KEYWORDS="amd64 ppc x86 ~amd64-linux ~x86-linux ~ppc-macos"
IUSE="debug doc examples"
-DEPEND=""
-RDEPEND=""
+PATCHES=(
+ "${FILESDIR}"/${P}-ldflags.patch
+ "${FILESDIR}"/${P}-links.patch
+ "${FILESDIR}"/${P}-nodocs.patch
+ "${FILESDIR}"/${P}-txt-file.patch
+ "${FILESDIR}"/${P}-check-boot.patch
+ "${FILESDIR}"/${P}-llvm-as.patch
+)
src_prepare() {
- epatch "${FILESDIR}"/${P}-ldflags.patch
- epatch "${FILESDIR}"/${P}-links.patch
- epatch "${FILESDIR}"/${P}-nodocs.patch
- epatch "${FILESDIR}"/${P}-txt-file.patch
- epatch "${FILESDIR}"/${P}-check-boot.patch
+ default
- eapply_user
+ cd "${S}"/src
+ eautoconf
}
src_configure() {
CFLAGS_MACHINE="`get-flag -march` `get-flag -mcpu` `get-flag -mtune`"
- # Work around -fno-common ( GCC10 default ), bug #71202
+ # Work around -fno-common (GCC 10 default), bug #71202
append-flags -fcommon
append-flags -fno-strict-aliasing
@@ -48,33 +51,35 @@ src_configure() {
gprolog_use_regs=no
fi
- cd "${S}"/src
+ cd "${S}"/src || die
econf \
CFLAGS_MACHINE="${CFLAGS_MACHINE}" \
--with-c-flags="${CFLAGS}" \
--with-install-dir="${EPREFIX}"/usr/$(get_libdir)/${P} \
--with-links-dir="${EPREFIX}"/usr/bin \
- --enable-regs=$gprolog_use_regs \
+ --enable-regs=${gprolog_use_regs} \
$(use_with doc doc-dir "${EPREFIX}"/usr/share/doc/${PF}) \
$(use_with doc html-dir "${EPREFIX}"/usr/share/doc/${PF}/html) \
$(use_with examples examples-dir "${EPREFIX}"/usr/share/doc/${PF}/examples)
}
src_compile() {
- cd "${S}"/src
+ cd "${S}"/src || die
+
# gprolog is compiled using gplc which cannot be run in parallel
emake -j1
}
src_test() {
- cd "${S}"/src
+ cd "${S}"/src || die
+
emake -j1 check
}
src_install() {
- cd "${S}"/src
+ cd "${S}"/src || die
emake DESTDIR="${D}" install
- cd "${S}"
+ cd "${S}" || die
dodoc ChangeLog NEWS PROBLEMS README
}
diff --git a/dev-lang/gprolog/gprolog-1.5.0-r1.ebuild b/dev-lang/gprolog/gprolog-1.5.0-r1.ebuild
new file mode 100644
index 000000000000..29233aa9547b
--- /dev/null
+++ b/dev-lang/gprolog/gprolog-1.5.0-r1.ebuild
@@ -0,0 +1,88 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools flag-o-matic toolchain-funcs
+
+DESCRIPTION="Native Prolog compiler with constraint solving over finite domains (FD)"
+HOMEPAGE="http://www.gprolog.org/"
+SRC_URI="http://www.gprolog.org/${P}.tar.gz"
+S="${WORKDIR}"/${P}
+
+LICENSE="|| ( GPL-2+ LGPL-3+ )"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86 ~amd64-linux ~x86-linux ~ppc-macos"
+IUSE="debug doc examples"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-ldflags.patch
+ "${FILESDIR}"/${P}-links.patch
+ "${FILESDIR}"/${P}-destdir.patch
+ "${FILESDIR}"/${P}-llvm-as.patch
+)
+
+src_prepare() {
+ default
+
+ cd "${S}"/src || die
+ eautoconf
+}
+
+src_configure() {
+ CFLAGS_MACHINE="$(get-flag -march) $(get-flag -mcpu) $(get-flag -mtune)"
+
+ use debug && append-flags -DDEBUG
+
+ if tc-enables-pie; then
+ # gplc generates its own native ASM; disable PIE
+ append-ldflags -no-pie
+ fi
+
+ if tc-is-gcc && ! use x86; then
+ gprolog_use_regs=yes
+ else
+ gprolog_use_regs=no
+ fi
+
+ if tc-is-clang; then
+ AS=$(tc-getCC)
+ else
+ AS=$(tc-getAS)
+ fi
+
+ cd "${S}"/src || die
+ local myeconfargs=(
+ AS="${AS}"
+ CFLAGS_MACHINE="${CFLAGS_MACHINE}"
+ --with-c-flags="${CFLAGS}"
+ --with-install-dir="${EPREFIX}"/usr/$(get_libdir)/${P}
+ --with-links-dir="${EPREFIX}"/usr/bin
+ --enable-regs=${gprolog_use_regs}
+ $(use_with doc doc-dir "${EPREFIX}"/usr/share/doc/${PF})
+ $(use_with doc html-dir "${EPREFIX}"/usr/share/doc/${PF}/html)
+ $(use_with examples examples-dir "${EPREFIX}"/usr/share/doc/${PF}/examples)
+ )
+ econf "${myeconfargs[@]}"
+}
+
+src_compile() {
+ cd "${S}"/src || die
+
+ # gprolog is compiled using gplc which cannot be run in parallel
+ emake -j1
+}
+
+src_test() {
+ cd "${S}"/src || die
+
+ emake -j1 check
+}
+
+src_install() {
+ cd "${S}"/src || die
+ emake DESTDIR="${D}" TXT_FILES= install
+
+ cd "${S}" || die
+ dodoc ChangeLog NEWS PROBLEMS README
+}
diff --git a/dev-lang/gprolog/metadata.xml b/dev-lang/gprolog/metadata.xml
index 96eff3ea40c0..feaa047cb2f9 100644
--- a/dev-lang/gprolog/metadata.xml
+++ b/dev-lang/gprolog/metadata.xml
@@ -1,8 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>prolog@gentoo.org</email>
<name>Prolog</name>
</maintainer>
+<upstream>
+ <remote-id type="github">didoudiaz/gprolog</remote-id>
+</upstream>
</pkgmetadata>
diff --git a/dev-lang/haxe/Manifest b/dev-lang/haxe/Manifest
new file mode 100644
index 000000000000..599e56f150fd
--- /dev/null
+++ b/dev-lang/haxe/Manifest
@@ -0,0 +1,2 @@
+DIST haxe-4.3.3.tar.gz 8405617 BLAKE2B 0c27eafd6af0615b47de8a7bdbff25fe15d8bbf80525ede273a4a430cedde6f0d6c9871ae581e2a7e8a87b56862f0c1b9f6f862a7cbfb68ac943ccbc3ae36878 SHA512 fea25ae2ba7433e2f39faae8e05538419e5dfbc519315c8e91b84a2d0a7c9e2ed380b92b21c23ff597797311cbb7a15276b5f4623fb65c6e3d4d8cc801a74e23
+DIST haxe-4.3.4.tar.gz 8409775 BLAKE2B 929797d71c23724c08c85957be8b39d6802d35990f70a85f8f7c309fa4505dae2b4b24e881ea8f55b02d68af4eb5fb7956c2562cdc5a8f201925a3029bd2cafd SHA512 77f08d5ecd2f0d08d4f44f186120a3f72eb51c712116d50d524f116d981b28fec4e5a03ef0d7c84bf0451caac76a37d642841202d01822cbb5f08981f12998ec
diff --git a/dev-lang/haxe/haxe-4.3.3.ebuild b/dev-lang/haxe/haxe-4.3.3.ebuild
new file mode 100644
index 000000000000..c0dfcd532325
--- /dev/null
+++ b/dev-lang/haxe/haxe-4.3.3.ebuild
@@ -0,0 +1,67 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="Multi-target universal programming language"
+HOMEPAGE="https://haxe.org/
+ https://github.com/HaxeFoundation/haxe/"
+
+if [[ "${PV}" == *9999* ]] ; then
+ inherit git-r3
+
+ EGIT_REPO_URI="https://github.com/HaxeFoundation/haxe.git"
+else
+ # Haxe-debian already contains correct git modules
+ SRC_URI="https://github.com/HaxeFoundation/haxe-debian/archive/upstream/${PV}.tar.gz
+ -> ${P}.tar.gz"
+ S="${WORKDIR}/haxe-debian-upstream-${PV}"
+
+ KEYWORDS="~amd64"
+fi
+
+LICENSE="GPL-2+ MIT"
+SLOT="0/${PV}"
+IUSE="+ocamlopt"
+RESTRICT="strip"
+
+RDEPEND="
+ >=dev-lang/ocaml-4:=[ocamlopt?]
+ >=dev-ml/luv-0.5.12:=
+ dev-ml/extlib:=
+ dev-ml/ocaml-sha:=
+ dev-ml/ptmap:=
+ dev-ml/sedlex:=
+ dev-ml/xml-light:=
+
+ dev-lang/neko:=
+ dev-libs/boehm-gc:=
+ dev-libs/libpcre:=
+ net-libs/mbedtls:=
+ sys-libs/zlib:=
+"
+DEPEND="
+ ${RDEPEND}
+"
+BDEPEND="
+ dev-ml/camlp5
+ dev-ml/dune
+ dev-ml/findlib
+"
+
+QA_FLAGS_IGNORED="usr/bin/haxelib"
+QA_PRESTRIPPED="usr/bin/haxelib"
+
+src_configure() {
+ export OCAMLOPT="$(usex ocamlopt ocamlopt.opt ocamlopt)"
+}
+
+src_compile() {
+ emake -j1 BRANCH="" COMMIT_DATE="" COMMIT_SHA="" \
+ OCAMLOPT="${OCAMLOPT}" INSTALL_DIR=/usr
+}
+
+src_install() {
+ emake DESTDIR="${D}" INSTALL_DIR=/usr install
+ dodoc *.md
+}
diff --git a/dev-lang/haxe/haxe-4.3.4.ebuild b/dev-lang/haxe/haxe-4.3.4.ebuild
new file mode 100644
index 000000000000..776b27a6ebe6
--- /dev/null
+++ b/dev-lang/haxe/haxe-4.3.4.ebuild
@@ -0,0 +1,67 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="Multi-target universal programming language"
+HOMEPAGE="https://haxe.org/
+ https://github.com/HaxeFoundation/haxe/"
+
+if [[ "${PV}" == *9999* ]] ; then
+ inherit git-r3
+
+ EGIT_REPO_URI="https://github.com/HaxeFoundation/haxe.git"
+else
+ # Haxe-debian is a distribution variant then contains the required git modules.
+ SRC_URI="https://github.com/HaxeFoundation/haxe-debian/archive/upstream/${PV}.tar.gz
+ -> ${P}.tar.gz"
+ S="${WORKDIR}/haxe-debian-upstream-${PV}"
+
+ KEYWORDS="~amd64"
+fi
+
+LICENSE="GPL-2+ MIT"
+SLOT="0/${PV}"
+IUSE="+ocamlopt"
+RESTRICT="strip"
+
+RDEPEND="
+ >=dev-lang/ocaml-4:=[ocamlopt?]
+ >=dev-ml/luv-0.5.12:=
+ dev-ml/extlib:=
+ dev-ml/ocaml-sha:=
+ dev-ml/ptmap:=
+ dev-ml/sedlex:=
+ dev-ml/xml-light:=
+
+ dev-lang/neko:=
+ dev-libs/boehm-gc:=
+ dev-libs/libpcre:=
+ net-libs/mbedtls:=
+ sys-libs/zlib:=
+"
+DEPEND="
+ ${RDEPEND}
+"
+BDEPEND="
+ dev-ml/camlp5
+ dev-ml/dune
+ dev-ml/findlib
+"
+
+QA_FLAGS_IGNORED="usr/bin/haxelib"
+QA_PRESTRIPPED="usr/bin/haxelib"
+
+src_configure() {
+ export OCAMLOPT="$(usex ocamlopt ocamlopt.opt ocamlopt)"
+}
+
+src_compile() {
+ emake -j1 BRANCH="" COMMIT_DATE="" COMMIT_SHA="" \
+ OCAMLOPT="${OCAMLOPT}" INSTALL_DIR="/usr"
+}
+
+src_install() {
+ emake DESTDIR="${D}" INSTALL_DIR="/usr" install
+ dodoc *.md
+}
diff --git a/dev-lang/haxe/metadata.xml b/dev-lang/haxe/metadata.xml
new file mode 100644
index 000000000000..127b9804c22d
--- /dev/null
+++ b/dev-lang/haxe/metadata.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+
+<pkgmetadata>
+ <maintainer type="project">
+ <email>ml@gentoo.org</email>
+ <name>ML</name>
+ </maintainer>
+ <longdescription>
+ Haxe is an open source toolkit based on a modern, high level, static-typed
+ programming language, a cross-compiler, a complete cross-platform standard
+ library and ways to access each platform's native capabilities.
+ </longdescription>
+ <upstream>
+ <bugs-to>https://github.com/HaxeFoundation/haxe/issues/</bugs-to>
+ <remote-id type="github">HaxeFoundation/haxe-debian</remote-id>
+ <remote-id type="github">HaxeFoundation/haxe</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-lang/hy/Manifest b/dev-lang/hy/Manifest
deleted file mode 100644
index 2af3a5fb0af3..000000000000
--- a/dev-lang/hy/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-DIST hy-0.17.0.tar.gz 438729 BLAKE2B f699198a3181592dc0a1c12ecb85defce5ee592eb3c949635f37af36f39f452b081b18b46a122d515a7246d448c1710eedd8015a14f18dc074c61f0cfccecf8f SHA512 18601bf47df2120f8833a1ae211c416dc90825f31cd50b259adfe0585089a623d0fea13512b2935b093e14d8595c93bc1610939d5f1d664f6acf7ddf7e341542
diff --git a/dev-lang/hy/files/hy-0.15.0-do-not-install-get_version.py.patch b/dev-lang/hy/files/hy-0.15.0-do-not-install-get_version.py.patch
deleted file mode 100644
index 088b382a8913..000000000000
--- a/dev-lang/hy/files/hy-0.15.0-do-not-install-get_version.py.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-Don't install get_version.py
-
-This reverts commit 7361b37a7580bb5caaf7696b7bff5954042fd52b.
-
-This file is not used at runtime, and the way it was installed violated FHS.
-
----
- setup.py | 3 ---
- 1 file changed, 3 deletions(-)
-
---- a/setup.py
-+++ b/setup.py
-@@ -58,9 +58,6 @@ def run(self):
- 'hy.core': ['*.hy', '__pycache__/*'],
- 'hy.extra': ['*.hy', '__pycache__/*'],
- },
-- data_files=[
-- ('get_version', ['get_version.py'])
-- ],
- author="Paul Tagliamonte",
- author_email="tag@pault.ag",
- long_description=long_description,
diff --git a/dev-lang/hy/hy-0.17.0.ebuild b/dev-lang/hy/hy-0.17.0.ebuild
deleted file mode 100644
index 694d004ed9b7..000000000000
--- a/dev-lang/hy/hy-0.17.0.ebuild
+++ /dev/null
@@ -1,45 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-RESTRICT="test" # needs some pointy sticks. Seriously.
-PYTHON_COMPAT=(python{3_6,3_7})
-
-inherit distutils-r1 eutils
-DESCRIPTION="A LISP dialect running in python"
-HOMEPAGE="http://hylang.org/"
-SRC_URI="https://github.com/hylang/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
-LICENSE="MIT"
-SLOT="0"
-
-KEYWORDS="~amd64 ~x86"
-IUSE="test doc"
-
-RDEPEND=">=dev-python/astor-0.7.1[${PYTHON_USEDEP}]
- >=dev-python/clint-0.4[${PYTHON_USEDEP}]
- dev-python/flake8[${PYTHON_USEDEP}]
- >=dev-python/funcparserlib-0.3.6[${PYTHON_USEDEP}]
- >=dev-python/rply-0.7.6[${PYTHON_USEDEP}]
- "
-DEPEND="${RDEPEND}
- doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
- test? (
- dev-python/nose[${PYTHON_USEDEP}]
- dev-python/sphinx[${PYTHON_USEDEP}]
- )"
-
-PATCHES=( "${FILESDIR}"/${PN}-0.15.0-do-not-install-get_version.py.patch )
-
-src_prepare() {
- default
- use doc && HTML_DOCS=( docs/_build/html/. )
-}
-
-python_compile_all() {
- use doc && emake docs
-}
-
-python_test() {
- nosetests -vv || die "Tests failed under ${EPYTHON}"
-}
diff --git a/dev-lang/hy/metadata.xml b/dev-lang/hy/metadata.xml
deleted file mode 100644
index c3656b2c2e2a..000000000000
--- a/dev-lang/hy/metadata.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
- <maintainer type="person">
- <email>patrick@gentoo.org</email>
- <name>Patrick Lauer</name>
- </maintainer>
- <upstream>
- <remote-id type="github">hylang/hy</remote-id>
- </upstream>
-</pkgmetadata>
diff --git a/dev-lang/icon/Manifest b/dev-lang/icon/Manifest
index ca1e99e8a185..c1c6b81ed42c 100644
--- a/dev-lang/icon/Manifest
+++ b/dev-lang/icon/Manifest
@@ -1,2 +1,3 @@
-DIST icon-9.5.20h.tar.gz 3137602 BLAKE2B 093290f7df4d0c1686b57c1debabdae5ab607fab00849885fd97b68b872db9d360e9ffe61b7be2e503f5ffa70a387011128c65586b0d48e298577d0ca690a729 SHA512 c3dec5d9d6f2e01fb27b09897cf9e54103749e64e64feb6503e1d25a00bf7da498e40207d8d220af8aca134df6fb281484bd8c8444d256f04ddc39de6a23ca1f
-DIST icon-v951src.tgz 3133040 BLAKE2B 790a66a8210c1b9c55514a560590f08d3e52d7c5115d60554183f1118b5705fc1754b8188dcc3b5b739318374d568b6eafc1e3c4266de5416709e7ce6056925b SHA512 032dc9cfa57af5af2eb84b2116d0537124b5efb87b7cf744ecace2ccf49e461d5be5f91df99d85e8a988520d144fe4ecf06a6e78f7fff997b78afa95355449ad
+DIST icon-9.5.20i.tar.gz 3138826 BLAKE2B adb4010926f2a7bbfc03c12c1c669ac202c41949556fafdf8f6e41be418e329c5c4b0697a1af0eddd0cb6acd65d03dedabf171be99ba6e5c80a92fac91323027 SHA512 31f43f0ff672e81b459c8364960b780733820000c31405ddcd13d14927f065b48d1fae47aeb90a2cd31b65340c77ec7f85e8da27797fb186fa49474e7c8be394
+DIST icon-9.5.21b.tar.gz 3138053 BLAKE2B dbd507e28d51458b4e7fcc47088e8e8a4b8e1ef06a03af95180f3398caf7a74215a379d4a1c19632a501849e9a9226bd129f6404d4d20385bd07f474908b0745 SHA512 db54b0f858c32877bd72dea8c3cec06de7faaa0393ae56a19f6d6a212337c99ef50d698ef0b486369955f86d657a2e888a8b1c4e0e95328f5a67fbd9dce5d74b
+DIST icon-9.5.22e.tar.gz 3088775 BLAKE2B 0f0019f4f4bc0ed695bcb99d927c57e1fe041047d2b2e74590d23b4cb032aa4d459f916e3571a294e6d98d68be16bc55828337320173abfb5220fc4470d54903 SHA512 2a718999e7fc3f1cc2ad745215a06fecb5865f890ff83e8e61c8408df0bec2dea0c3123ab1edc0c3a9ec3cd415ca0fd116c5ff93c8ce0797a5f2abf5ff79003c
diff --git a/dev-lang/icon/files/icon-9.5.1-flags.patch b/dev-lang/icon/files/icon-9.5.1-flags.patch
deleted file mode 100644
index ff659b28bbc2..000000000000
--- a/dev-lang/icon/files/icon-9.5.1-flags.patch
+++ /dev/null
@@ -1,75 +0,0 @@
---- icon-v951src/ipl/cfuncs/Makefile
-+++ icon-v951src/ipl/cfuncs/Makefile
-@@ -25,7 +25,7 @@
- # library
-
- $(FUNCLIB): $(FUNCS) mklib.sh
-- CC="$(CC)" CFLAGS="$(CFLAGS)" BIN="../../bin" \
-+ CC="$(CC)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" BIN="../../bin" \
- sh mklib.sh $(FUNCLIB) $(FUNCS)
- $(FUNCS): icall.h
-
---- icon-v951src/ipl/cfuncs/mklib.sh
-+++ icon-v951src/ipl/cfuncs/mklib.sh
-@@ -12,7 +12,7 @@
- set -x
- case "$SYS" in
- Linux*|*BSD*|GNU*)
-- $CC -shared -o $LIBNAME -fPIC "$@";;
-+ $CC -shared -o $LIBNAME $CFLAGS $LDFLAGS -fPIC "$@";;
- CYGWIN*)
- # move the win32 import library for iconx.exe callbacks
- # created when iconx.exe was built
---- icon-v951src/ipl/packs/loadfunc/Makefile
-+++ icon-v951src/ipl/packs/loadfunc/Makefile
-@@ -28,7 +28,7 @@
- echo '$$define FUNCLIB "./$(FUNCLIB)"' >libnames.icn
-
- $(FUNCLIB): $(FUNCS)
-- CC="$(CC)" CFLAGS="$(CFLAGS)" BIN="../../../bin" \
-+ CC="$(CC)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" BIN="../../../bin" \
- sh $(MKLIB) $(FUNCLIB) $(FUNCS)
-
-
---- icon-v951src/src/common/Makefile
-+++ icon-v951src/src/common/Makefile
-@@ -8,7 +8,7 @@
- common: $(OBJS) gpxmaybe
-
- patchstr: patchstr.c
-- $(CC) $(CFLAGS) -o patchstr patchstr.c
-+ $(CC) $(CFLAGS) $(LDFLAGS) -o patchstr patchstr.c
-
- gpxmaybe:
- -if [ "x$(XL)" != "x" ]; then $(MAKE) $(GDIR); fi
-@@ -25,7 +25,7 @@
- ../h/typedefs.h ../h/mproto.h ../h/cpuconf.h
-
- ../h/arch.h: infer.c
-- $(CC) $(CFLAGS) -o infer infer.c
-+ $(CC) $(CFLAGS) $(LDFLAGS) -o infer infer.c
- ./infer >../h/arch.h
-
- identify.o: ../h/version.h
---- icon-v951src/src/rtt/Makefile
-+++ icon-v951src/src/rtt/Makefile
-@@ -22,7 +22,7 @@
-
-
- rtt: $(OBJ)
-- $(CC) $(LDFLAGS) -o rtt $(OBJ)
-+ $(CC) $(CFLAGS) $(LDFLAGS) -o rtt $(OBJ)
-
- library: $(OBJ)
- rm -rf rtt.a
---- icon-v951src/src/runtime/Makefile
-+++ icon-v951src/src/runtime/Makefile
-@@ -30,7 +30,7 @@
-
- iconx: $(COBJS) $(XOBJS)
- cd ../common; $(MAKE)
-- $(CC) $(RLINK) -o iconx $(XOBJS) $(COBJS) $(XL) $(RLIBS) $(TLIBS)
-+ $(CC) $(CFLAGS) $(LDFLAGS) $(RLINK) -o iconx $(XOBJS) $(COBJS) $(XL) $(RLIBS) $(TLIBS)
- cp iconx ../../bin
- strip $(SFLAGS) ../../bin/iconx$(EXE)
-
diff --git a/dev-lang/icon/files/icon-9.5.1-fpoll.patch b/dev-lang/icon/files/icon-9.5.1-fpoll.patch
deleted file mode 100644
index d2a4d5f33d21..000000000000
--- a/dev-lang/icon/files/icon-9.5.1-fpoll.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-diff --git a/ipl/cfuncs/fpoll.c b/ipl/cfuncs/fpoll.c
-index 9230e18..33b8121 100644
---- a/ipl/cfuncs/fpoll.c
-+++ b/ipl/cfuncs/fpoll.c
-@@ -60,12 +60,9 @@ int fpoll(int argc, descriptor *argv) /*: await data from file */
-
- /* check for data already in buffer */
- /* there's no legal way to do this in C; we cheat */
--#if defined(__GLIBC__) && defined(_STDIO_USES_IOSTREAM) /* new GCC library */
-+#if defined(__GLIBC__) /* New GCC library */
- if (f->_IO_read_ptr < f->_IO_read_end)
- RetArg(1);
--#elif defined(__GLIBC__) /* old GCC library */
-- if (f->__bufp < f->__get_limit)
-- RetArg(1);
- #elif defined(_FSTDIO) /* new BSD library */
- if (f->_r > 0)
- RetArg(1);
-@@ -92,7 +89,7 @@ int fpoll(int argc, descriptor *argv) /*: await data from file */
-
- if (r > 0)
- RetArg(1); /* success */
-- else if (r == 0)
-+ else if (r == 0)
- Fail; /* timeout */
- else
- ArgError(1, 214); /* I/O error */
diff --git a/dev-lang/icon/files/icon-9.5.1-musl.patch b/dev-lang/icon/files/icon-9.5.1-musl.patch
deleted file mode 100644
index 16fc9df01738..000000000000
--- a/dev-lang/icon/files/icon-9.5.1-musl.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -uprN a/ipl/cfuncs/fpoll.c b/ipl/cfuncs/fpoll.c
---- a/ipl/cfuncs/fpoll.c 2020-05-10 21:46:39.730752626 -0600
-+++ b/ipl/cfuncs/fpoll.c 2020-05-10 21:50:41.613577816 -0600
-@@ -33,6 +33,10 @@
- #include <sys/types.h>
- #include <sys/time.h>
-
-+#if defined(_MUSL)
-+# include <stdio_ext.h>
-+#endif
-+
- #include "icall.h"
-
- int fpoll(int argc, descriptor *argv) /*: await data from file */
-@@ -66,6 +70,9 @@ int fpoll(int argc, descriptor *argv) /*
- #elif defined(_FSTDIO) /* new BSD library */
- if (f->_r > 0)
- RetArg(1);
-+#elif defined(_MUSL) /* MUSL library */
-+ if (__freadahead(f))
-+ RetArg(1);
- #else /* old AT&T library */
- if (f->_cnt > 0)
- RetArg(1);
diff --git a/dev-lang/icon/icon-9.5.1-r1.ebuild b/dev-lang/icon/icon-9.5.1-r1.ebuild
deleted file mode 100644
index 1979b93bc02e..000000000000
--- a/dev-lang/icon/icon-9.5.1-r1.ebuild
+++ /dev/null
@@ -1,108 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit flag-o-matic toolchain-funcs
-
-DESCRIPTION="very high level language"
-HOMEPAGE="http://www.cs.arizona.edu/icon/"
-
-MY_PV=${PV//./}
-SRC_URI="http://www.cs.arizona.edu/icon/ftp/packages/unix/icon-v${MY_PV}src.tgz"
-
-LICENSE="public-domain HPND"
-SLOT="0"
-KEYWORDS="~alpha amd64 ~hppa ~ia64 ~ppc ~ppc64 ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
-IUSE="X iplsrc"
-
-S="${WORKDIR}/icon-v${MY_PV}src"
-
-RDEPEND="
- X? ( x11-libs/libX11:= )"
-DEPEND="
- ${RDEPEND}
- X? (
- x11-libs/libXpm
- x11-libs/libXt
- )"
-
-PATCHES=( "${FILESDIR}"/${PN}-9.5.1-flags.patch )
-
-src_prepare() {
- default
-
- # do not prestrip files
- find src -name 'Makefile' | xargs sed -i -e "/strip/d" || die
-}
-
-src_configure() {
- # select the right compile target. Note there are many platforms
- # available
- local mytarget;
- if [[ ${CHOST} == *-darwin* ]]; then
- mytarget="macintosh"
- else
- mytarget="linux"
- fi
-
- # Fails if more then one make job process.
- # This is an upstream requirement.
- emake -j1 $(usex X X-Configure Configure) name=${mytarget}
-
- # sanitise the Makedefs file generated by Configure
- sed -i \
- -e 's:-L/usr/X11R6/lib64::g' \
- -e 's:-L/usr/X11R6/lib::g' \
- -e 's:-I/usr/X11R6/include::g' \
- Makedefs || die "sed of Makedefs failed"
-
- append-flags $(test-flags -fno-strict-aliasing -fwrapv)
-}
-
-src_compile() {
- # Fails if more then one make job process.
- # This is an upstream requirement.
- emake -j1 CC="$(tc-getCC)" CFLAGS="${CFLAGS}"
-}
-
-src_test() {
- emake Samples
- emake Test
-}
-
-src_install() {
- # Needed for make Install
- dodir /usr/$(get_libdir)
-
- emake Install dest="${D}/usr/$(get_libdir)/icon"
- dosym ../$(get_libdir)/icon/bin/icont /usr/bin/icont
- dosym ../$(get_libdir)/icon/bin/iconx /usr/bin/iconx
- dosym ../$(get_libdir)/icon/bin/icon /usr/bin/icon
- dosym ../$(get_libdir)/icon/bin/vib /usr/bin/vib
-
- cd "${S}/man/man1" || die
- doman "${PN}"t.1
- doman "${PN}".1
-
- cd "${S}/doc" || die
- DOCS=( *.txt ../README )
-
- HTML_DOCS=( *.{htm,gif,jpg,css} )
- einstalldocs
-
- # Clean up items from make Install that get installed elsewhere
- rm -rf "${ED}"/usr/$(get_libdir)/${PN}/man || die
- rm -rf "${ED}"/usr/$(get_libdir)/icon/{doc,README} || die
-
- # optional Icon Programming Library
- if use iplsrc; then
- cd "${S}" || die
-
- # Remove unneeded files before copy
- rm -fv ipl/{BuildBin,BuildExe,CheckAll,Makefile} || die
-
- insinto /usr/$(get_libdir)/icon
- doins -r ipl
- fi
-}
diff --git a/dev-lang/icon/icon-9.5.20i.ebuild b/dev-lang/icon/icon-9.5.20i.ebuild
new file mode 100644
index 000000000000..10b99668ef49
--- /dev/null
+++ b/dev-lang/icon/icon-9.5.20i.ebuild
@@ -0,0 +1,123 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit flag-o-matic toolchain-funcs
+
+DESCRIPTION="Very high level language"
+HOMEPAGE="http://www.cs.arizona.edu/icon/"
+
+SRC_URI="https://github.com/gtownsend/icon/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="public-domain HPND"
+SLOT="0"
+KEYWORDS="~alpha amd64 hppa ~ia64 ppc ppc64 ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
+IUSE="X"
+
+S="${WORKDIR}/icon-${PV}"
+
+RDEPEND="
+ X? ( x11-libs/libX11:= )"
+DEPEND="
+ ${RDEPEND}
+ X? (
+ x11-libs/libXpm
+ x11-libs/libXt
+ )"
+
+src_prepare() {
+ default
+ # Add CFLAGS and LDFLAGS to Makefiles as needed
+ sed -i -e 's/CFLAGS="$(CFLAGS)"/& LDFLAGS="$(LDFLAGS)"/g' ipl/cfuncs/Makefile || die
+ sed -i -e 's/^CFLAGS = \(.*\)/CFLAGS = $(CFLAGS) \1/g' ipl/packs/loadfunc/Makefile || die
+ sed -i -e 's/CFLAGS="$(CFLAGS)"/& LDFLAGS="$(LDFLAGS)"/g' ipl/packs/loadfunc/Makefile || die
+ sed -i -e 's/-o $LIBNAME $CFLAGS/& $LDFLAGS/g' ipl/cfuncs/mklib.sh || die
+ sed -i -e 's/$LIBNAME -fPIC/$LIBNAME -fPIC $LDFLAGS/g' ipl/cfuncs/mklib.sh || die
+ sed -i -e 's/$(RLINK)/& $(LDFLAGS)/g' src/runtime/Makefile || die
+
+ # executables in src/common are only used to prep the build
+ sed -i -e 's/$(CC) $(CFLAGS)/& $(LDFLAGS)/g' src/common/Makefile || die
+ # executables in src/rtt are only used to perform the build
+ sed -i -e 's/$(CC) $(CFLAGS)/& $(LDFLAGS)/g' src/rtt/Makefile || die
+
+ # do not prestrip files
+ find "src" -name 'Makefile' -exec sed -i -e '/strip/d' '{}' \; || die
+}
+
+src_configure() {
+ # select the right compile target. Note there are many platforms
+ # available
+ local mytarget;
+ if [[ ${CHOST} == *-darwin* ]]; then
+ mytarget="macintosh"
+ else
+ mytarget="linux"
+ fi
+
+ # Fails if more then one make job process.
+ # This is an upstream requirement.
+ emake -j1 $(usex X X-Configure Configure) name=${mytarget}
+
+ # sanitise the Makedefs file generated by 'make Configure'
+ sed -i \
+ -e 's:-L/usr/X11R6/lib64::g' \
+ -e 's:-L/usr/X11R6/lib::g' \
+ -e 's:-I/usr/X11R6/include::g' \
+ -e 's:-I/usr/X11R6/include::g' \
+ -e '/^CFLAGS/d' \
+ Makedefs || die "sed of Makedefs failed"
+
+ if use elibc_musl; then
+ append-flags "-D_MUSL"
+ fi
+ append-flags $(test-flags -fno-strict-aliasing -fwrapv)
+}
+
+src_compile() {
+ # Fails if more then one make job process.
+ # This is an upstream requirement.
+ emake -j1 CC="$(tc-getCC)" CFLAGS="${CFLAGS}"
+}
+
+src_test() {
+ emake Samples
+ emake Test
+}
+
+src_install() {
+ # Needed for make Install
+ dodir /usr/$(get_libdir)
+
+ emake Install dest="${D}/usr/$(get_libdir)/icon"
+ dosym ../$(get_libdir)/icon/bin/icont /usr/bin/icont
+ dosym ../$(get_libdir)/icon/bin/iconx /usr/bin/iconx
+ dosym ../$(get_libdir)/icon/bin/icon /usr/bin/icon
+ if use X; then
+ dosym ../$(get_libdir)/icon/bin/vib /usr/bin/vib
+ fi
+
+ cd "${S}/man/man1" || die
+ doman "${PN}"t.1
+ doman "${PN}".1
+
+ cd "${S}/doc" || die
+ local DOCS=( *.txt ../README )
+
+ local HTML_DOCS=( *.{htm,gif,jpg,css} )
+ einstalldocs
+
+ # Clean up items from make Install that get installed elsewhere
+ rm -r "${ED}"/usr/$(get_libdir)/${PN}/man || die
+ rm -r "${ED}"/usr/$(get_libdir)/icon/{doc,README} || die
+
+ cd "${S}" || die
+
+ # Install Icon Programming Library files
+
+ # Remove files only needed for building the library before copying
+ rm -v ipl/{BuildBin,BuildExe,CheckAll,Makefile} || die
+
+ insinto /usr/$(get_libdir)/icon
+ doins -r ipl
+}
diff --git a/dev-lang/icon/icon-9.5.20h.ebuild b/dev-lang/icon/icon-9.5.21b.ebuild
index ff1ccfcca93d..06cf626294d8 100644
--- a/dev-lang/icon/icon-9.5.20h.ebuild
+++ b/dev-lang/icon/icon-9.5.21b.ebuild
@@ -1,11 +1,11 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
inherit flag-o-matic toolchain-funcs
-DESCRIPTION="very high level language"
+DESCRIPTION="Very high level language"
HOMEPAGE="http://www.cs.arizona.edu/icon/"
SRC_URI="https://github.com/gtownsend/icon/archive/v${PV}.tar.gz -> ${P}.tar.gz"
@@ -13,7 +13,7 @@ SRC_URI="https://github.com/gtownsend/icon/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="public-domain HPND"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
-IUSE="X iplsrc"
+IUSE="X"
S="${WORKDIR}/icon-${PV}"
@@ -33,6 +33,7 @@ src_prepare() {
sed -i -e 's/^CFLAGS = \(.*\)/CFLAGS = $(CFLAGS) \1/g' ipl/packs/loadfunc/Makefile || die
sed -i -e 's/CFLAGS="$(CFLAGS)"/& LDFLAGS="$(LDFLAGS)"/g' ipl/packs/loadfunc/Makefile || die
sed -i -e 's/-o $LIBNAME $CFLAGS/& $LDFLAGS/g' ipl/cfuncs/mklib.sh || die
+ sed -i -e 's/$LIBNAME -fPIC/$LIBNAME -fPIC $LDFLAGS/g' ipl/cfuncs/mklib.sh || die
sed -i -e 's/$(RLINK)/& $(LDFLAGS)/g' src/runtime/Makefile || die
# executables in src/common are only used to prep the build
@@ -41,7 +42,7 @@ src_prepare() {
sed -i -e 's/$(CC) $(CFLAGS)/& $(LDFLAGS)/g' src/rtt/Makefile || die
# do not prestrip files
- find src -name 'Makefile' | xargs sed -i -e "/strip/d" || die
+ find "src" -name 'Makefile' -exec sed -i -e '/strip/d' '{}' \; || die
}
src_configure() {
@@ -58,7 +59,7 @@ src_configure() {
# This is an upstream requirement.
emake -j1 $(usex X X-Configure Configure) name=${mytarget}
- # sanitise the Makedefs file generated by Configure
+ # sanitise the Makedefs file generated by 'make Configure'
sed -i \
-e 's:-L/usr/X11R6/lib64::g' \
-e 's:-L/usr/X11R6/lib::g' \
@@ -101,23 +102,22 @@ src_install() {
doman "${PN}".1
cd "${S}/doc" || die
- DOCS=( *.txt ../README )
+ local DOCS=( *.txt ../README )
- HTML_DOCS=( *.{htm,gif,jpg,css} )
+ local HTML_DOCS=( *.{htm,gif,jpg,css} )
einstalldocs
# Clean up items from make Install that get installed elsewhere
- rm -rf "${ED}"/usr/$(get_libdir)/${PN}/man || die
- rm -rf "${ED}"/usr/$(get_libdir)/icon/{doc,README} || die
+ rm -r "${ED}"/usr/$(get_libdir)/${PN}/man || die
+ rm -r "${ED}"/usr/$(get_libdir)/icon/{doc,README} || die
- # optional Icon Programming Library
- if use iplsrc; then
- cd "${S}" || die
+ cd "${S}" || die
- # Remove unneeded files before copy
- rm -fv ipl/{BuildBin,BuildExe,CheckAll,Makefile} || die
+ # Install Icon Programming Library files
- insinto /usr/$(get_libdir)/icon
- doins -r ipl
- fi
+ # Remove files only needed for building the library before copying
+ rm -v ipl/{BuildBin,BuildExe,CheckAll,Makefile} || die
+
+ insinto /usr/$(get_libdir)/icon
+ doins -r ipl
}
diff --git a/dev-lang/icon/icon-9.5.1-r2.ebuild b/dev-lang/icon/icon-9.5.22e.ebuild
index 31a7c5566c0c..725a2f3acb18 100644
--- a/dev-lang/icon/icon-9.5.1-r2.ebuild
+++ b/dev-lang/icon/icon-9.5.22e.ebuild
@@ -1,50 +1,48 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=6
+EAPI=8
inherit flag-o-matic toolchain-funcs
-DESCRIPTION="very high level language"
+DESCRIPTION="Very high level language"
HOMEPAGE="http://www.cs.arizona.edu/icon/"
-MY_PV=${PV//./}
-SRC_URI="http://www.cs.arizona.edu/icon/ftp/packages/unix/icon-v${MY_PV}src.tgz"
+SRC_URI="https://github.com/gtownsend/icon/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="public-domain HPND"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
-IUSE="X iplsrc"
+IUSE="X"
-S="${WORKDIR}/icon-v${MY_PV}src"
+S="${WORKDIR}/icon-${PV}"
RDEPEND="
- X? ( x11-libs/libX11:= )"
-DEPEND="
- ${RDEPEND}
X? (
+ x11-libs/libX11
x11-libs/libXpm
- x11-libs/libXt
)"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-9.5.1-flags.patch
- # https://bugs.gentoo.org/669330
- # Fix glibc 2.28 problem.
- # Patch has been accepted upstream, but is not yet in a release
- "${FILESDIR}"/${PN}-9.5.1-fpoll.patch
-
- # https://bugs.gentoo.org/716212
- # Fix building with musl
- # Patch has been accepted upstream, but is not yet in a release
- "${FILESDIR}"/${PN}-9.5.1-musl.patch
-)
+DEPEND="
+ ${RDEPEND}
+ X? ( x11-libs/libXt )"
src_prepare() {
default
+ # Add CFLAGS and LDFLAGS to Makefiles as needed
+ sed -i -e 's/CFLAGS="$(CFLAGS)"/& LDFLAGS="$(LDFLAGS)"/g' ipl/cfuncs/Makefile || die
+ sed -i -e 's/^CFLAGS = \(.*\)/CFLAGS = $(CFLAGS) \1/g' ipl/packs/loadfunc/Makefile || die
+ sed -i -e 's/CFLAGS="$(CFLAGS)"/& LDFLAGS="$(LDFLAGS)"/g' ipl/packs/loadfunc/Makefile || die
+ sed -i -e 's/-o $LIBNAME $CFLAGS/& $LDFLAGS/g' ipl/cfuncs/mklib.sh || die
+ sed -i -e 's/$LIBNAME -fPIC/$LIBNAME -fPIC $LDFLAGS/g' ipl/cfuncs/mklib.sh || die
+ sed -i -e 's/$(RLINK)/& $(LDFLAGS)/g' src/runtime/Makefile || die
+
+ # executables in src/common are only used to prep the build
+ sed -i -e 's/$(CC) $(CFLAGS)/& $(LDFLAGS)/g' src/common/Makefile || die
+ # executables in src/rtt are only used to perform the build
+ sed -i -e 's/$(CC) $(CFLAGS)/& $(LDFLAGS)/g' src/rtt/Makefile || die
# do not prestrip files
- find src -name 'Makefile' | xargs sed -i -e "/strip/d" || die
+ find "src" -name 'Makefile' -exec sed -i -e '/strip/d' '{}' \; || die
}
src_configure() {
@@ -61,7 +59,7 @@ src_configure() {
# This is an upstream requirement.
emake -j1 $(usex X X-Configure Configure) name=${mytarget}
- # sanitise the Makedefs file generated by Configure
+ # sanitise the Makedefs file generated by 'make Configure'
sed -i \
-e 's:-L/usr/X11R6/lib64::g' \
-e 's:-L/usr/X11R6/lib::g' \
@@ -71,7 +69,7 @@ src_configure() {
Makedefs || die "sed of Makedefs failed"
if use elibc_musl; then
- append-flags "-D_MUSL"
+ append-flags "-D_MUSL"
fi
append-flags $(test-flags -fno-strict-aliasing -fwrapv)
}
@@ -104,23 +102,22 @@ src_install() {
doman "${PN}".1
cd "${S}/doc" || die
- DOCS=( *.txt ../README )
+ local DOCS=( *.txt ../README )
- HTML_DOCS=( *.{htm,gif,jpg,css} )
+ local HTML_DOCS=( *.{htm,gif,jpg,css} )
einstalldocs
# Clean up items from make Install that get installed elsewhere
- rm -rf "${ED}"/usr/$(get_libdir)/${PN}/man || die
- rm -rf "${ED}"/usr/$(get_libdir)/icon/{doc,README} || die
+ rm -r "${ED}"/usr/$(get_libdir)/${PN}/man || die
+ rm -r "${ED}"/usr/$(get_libdir)/icon/{doc,README} || die
- # optional Icon Programming Library
- if use iplsrc; then
- cd "${S}" || die
+ cd "${S}" || die
- # Remove unneeded files before copy
- rm -fv ipl/{BuildBin,BuildExe,CheckAll,Makefile} || die
+ # Install Icon Programming Library files
- insinto /usr/$(get_libdir)/icon
- doins -r ipl
- fi
+ # Remove files only needed for building the library before copying
+ rm -v ipl/{BuildBin,BuildExe,CheckAll,Makefile,cfuncs/*.o} || die
+
+ insinto /usr/$(get_libdir)/icon
+ doins -r ipl
}
diff --git a/dev-lang/icon/metadata.xml b/dev-lang/icon/metadata.xml
index 3a8dc81cb0aa..257ee9434302 100644
--- a/dev-lang/icon/metadata.xml
+++ b/dev-lang/icon/metadata.xml
@@ -1,15 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="person">
+ <maintainer type="person" proxied="yes">
<email>cwills@witznd.net</email>
<name>Cheyenne Wills</name>
</maintainer>
- <maintainer type="project">
+ <maintainer type="project" proxied="proxy">
<email>proxy-maint@gentoo.org</email>
<name>Gentoo Proxy Maintainers Project</name>
</maintainer>
- <use>
- <flag name="iplsrc">install the icon programming library source</flag>
- </use>
</pkgmetadata>
diff --git a/dev-lang/idris2/Manifest b/dev-lang/idris2/Manifest
new file mode 100644
index 000000000000..02ee2eb10e82
--- /dev/null
+++ b/dev-lang/idris2/Manifest
@@ -0,0 +1,2 @@
+DIST idris2-0.6.0.tar.gz 6706586 BLAKE2B 79c16120b5845047d510a6f75729f1999f5b468e27189bd806f772d07e1789622ca0182933d0ec0833f5c3af05e00f13edda2f595aa35b5d0fcb2301c5c25407 SHA512 342ab3d9e38c8150c7eec997e9cbadd4aa12ccb18994b6b008f165deb20fd5fc79f4944387316cbba03e56fa1545b0afbb277988449af5b21d20f81207f6f367
+DIST idris2-0.7.0.tar.gz 6987849 BLAKE2B 5a3df7eb4541830822c92bc76e616266e9535c7fe989e78db4477c724d25720ec46bb21625ab9c0541da52fbacc0b1f7d49c3316191f88b553ec8a4f8d22892c SHA512 3c645807d71ecf62bc66b674438ebf80ec6e7e4bbf473d86ec06bc7b59f8187618e0d56535380079837e15caebef02deba9beb3eb3c77da787befac88d7a6d2b
diff --git a/dev-lang/idris2/files/idris2-0.7.0-disable-allbackends-tests.patch b/dev-lang/idris2/files/idris2-0.7.0-disable-allbackends-tests.patch
new file mode 100644
index 000000000000..eb085ca765e6
--- /dev/null
+++ b/dev-lang/idris2/files/idris2-0.7.0-disable-allbackends-tests.patch
@@ -0,0 +1,10 @@
+--- a/tests/Main.idr
++++ b/tests/Main.idr
+@@ -233,7 +233,6 @@ main = runner $
+ , !codegenTests
+ ]
+ ++ !(traverse idrisTestsAllSchemes [Chez, Racket])
+- ++ map (testPaths "allbackends" . idrisTestsAllBackends) [Chez, Node, Racket, C]
+
+
+ where
diff --git a/dev-lang/idris2/idris2-0.6.0.ebuild b/dev-lang/idris2/idris2-0.6.0.ebuild
new file mode 100644
index 000000000000..50bb3b96c586
--- /dev/null
+++ b/dev-lang/idris2/idris2-0.6.0.ebuild
@@ -0,0 +1,104 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+DESCRIPTION="Purely functional programming language with first class types"
+HOMEPAGE="https://idris-lang.org/"
+
+if [[ "${PV}" == *9999* ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/idris-lang/${PN^}.git"
+else
+ SRC_URI="https://github.com/idris-lang/${PN^}/archive/v${PV}.tar.gz
+ -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+ S="${WORKDIR}"/${PN^}-${PV}
+fi
+
+LICENSE="BSD"
+SLOT="0"
+IUSE="+chez doc racket test-full"
+REQUIRED_USE="^^ ( chez racket )"
+
+RDEPEND="
+ dev-libs/gmp
+ chez? ( dev-scheme/chez:=[threads] )
+ racket? ( dev-scheme/racket:=[threads] )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ doc? ( dev-python/sphinx-rtd-theme )
+ test-full? (
+ dev-scheme/chez[threads]
+ dev-scheme/racket[threads]
+ net-libs/nodejs
+ )
+"
+
+# Generated via "SCHEME", not CC
+QA_FLAGS_IGNORED="
+ usr/lib/idris2/bin/idris2_app/idris2
+ usr/lib/idris2/bin/idris2_app/idris2-boot
+"
+QA_PRESTRIPPED="${QA_FLAGS_IGNORED}"
+
+src_prepare() {
+ # Clean up environment of Idris and Racket variables
+ unset IDRIS2_DATA IDRIS2_INC_CGS IDRIS2_LIBS IDRIS2_PACKAGE_PATH
+ unset IDRIS2_PATH IDRIS2_PREFIX
+ unset PLTUSERHOME
+
+ tc-export AR CC CXX LD RANLIB
+ export CFLAGS
+ sed -i '/^CFLAGS/d' ./support/*/Makefile || die
+
+ # Fix "PREFIX"
+ sed -i 's|$(HOME)/.idris2|/usr/lib/idris2|g' ./config.mk || die
+
+ # Bad tests
+ # Weird Racket Futures (parallelism) test, might need further investigation
+ sed -i 's|, "futures001"||g' ./tests/Main.idr || die
+
+ default
+}
+
+src_configure() {
+ export IDRIS2_VERSION=${PV}
+ export SCHEME=$(usex chez chezscheme racket)
+
+ if use chez ; then
+ export IDRIS2_CG=chez
+ export BOOTSTRAP_TARGET=bootstrap
+ elif use racket ; then
+ export IDRIS2_CG=racket
+ export BOOTSTRAP_TARGET=bootstrap-racket
+ else
+ die 'Neither "chez" nor "racket" was chosen'
+ fi
+}
+
+src_compile() {
+ # > jobserver unavailable
+ # This is caused by Makefile using a script which in turn calls make
+ # https://github.com/idris-lang/Idris2/issues/2152
+ emake SCHEME=${SCHEME} ${BOOTSTRAP_TARGET} -j1
+
+ use doc && emake -C ./docs html
+}
+
+src_test() {
+ emake SCHEME=${SCHEME} bootstrap-test
+}
+
+src_install() {
+ # "DESTDIR" variable is not respected, use "PREFIX" instead
+ emake IDRIS2_PREFIX="${D}"/usr/lib/idris2 PREFIX="${D}"/usr/lib/idris2 install
+ dosym ../lib/${PN}/bin/${PN} /usr/bin/${PN}
+
+ # Install documentation
+ use doc && dodoc -r ./docs/build/html
+ einstalldocs
+}
diff --git a/dev-lang/idris2/idris2-0.7.0.ebuild b/dev-lang/idris2/idris2-0.7.0.ebuild
new file mode 100644
index 000000000000..acc07f686ab7
--- /dev/null
+++ b/dev-lang/idris2/idris2-0.7.0.ebuild
@@ -0,0 +1,135 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit check-reqs toolchain-funcs
+
+DESCRIPTION="Purely functional programming language with first class types"
+HOMEPAGE="https://idris-lang.org/"
+
+if [[ "${PV}" == *9999* ]] ; then
+ inherit git-r3
+
+ EGIT_REPO_URI="https://github.com/idris-lang/${PN^}.git"
+else
+ SRC_URI="https://github.com/idris-lang/${PN^}/archive/v${PV}.tar.gz
+ -> ${P}.tar.gz"
+ S="${WORKDIR}/${PN^}-${PV}"
+
+ KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="BSD"
+SLOT="0"
+IUSE="+chez doc racket test-full"
+REQUIRED_USE="^^ ( chez racket )"
+
+RDEPEND="
+ dev-libs/gmp:=
+ chez? (
+ dev-scheme/chez:=[threads]
+ )
+ racket? (
+ dev-scheme/racket:=[threads]
+ )
+"
+DEPEND="
+ ${RDEPEND}
+"
+BDEPEND="
+ doc? (
+ dev-python/sphinx-rtd-theme
+ )
+ test-full? (
+ dev-scheme/chez[threads]
+ dev-scheme/racket[threads]
+ net-libs/nodejs
+ )
+"
+
+CHECKREQS_DISK_BUILD="800M"
+
+PATCHES=( "${FILESDIR}/${PN}-0.7.0-disable-allbackends-tests.patch" )
+
+# Generated via "SCHEME", not CC
+QA_FLAGS_IGNORED="
+ usr/lib/idris2/bin/idris2_app/idris2
+ usr/lib/idris2/bin/idris2_app/idris2-boot
+"
+QA_PRESTRIPPED="${QA_FLAGS_IGNORED}"
+
+src_prepare() {
+ # Clean up environment of Idris and Racket variables
+ unset IDRIS2_DATA IDRIS2_INC_CGS IDRIS2_LIBS IDRIS2_PACKAGE_PATH
+ unset IDRIS2_PATH IDRIS2_PREFIX
+ unset PLTUSERHOME
+
+ tc-export AR CC CXX LD RANLIB
+ export CFLAGS
+ sed -i '/^CFLAGS/d' ./support/*/Makefile || die
+
+ # Fix "PREFIX"
+ sed -i 's|$(HOME)/.idris2|/usr/lib/idris2|g' ./config.mk || die
+
+ # Bad tests
+ local -a bad_tests=(
+ allschemes/channels006
+ chez/futures001
+ refc/args
+ refc/buffer
+ refc/clock
+ refc/doubles
+ refc/garbageCollect
+ refc/integers
+ refc/issue1778
+ refc/issue2424
+ refc/refc002
+ refc/refc003
+ refc/strings
+ )
+ local bad_test
+ for bad_test in "${bad_tests[@]}" ; do
+ rm -r "tests/${bad_test}" || die
+ done
+
+ default
+}
+
+src_configure() {
+ export IDRIS2_VERSION="${PV}"
+ export SCHEME="$(usex chez chezscheme racket)"
+
+ if use chez ; then
+ export IDRIS2_CG=chez
+ export BOOTSTRAP_TARGET=bootstrap
+ elif use racket ; then
+ export IDRIS2_CG=racket
+ export BOOTSTRAP_TARGET=bootstrap-racket
+ else
+ die 'Neither "chez" nor "racket" was chosen'
+ fi
+}
+
+src_compile() {
+ # > jobserver unavailable
+ # This is caused by Makefile using a script which in turn calls make
+ # https://github.com/idris-lang/Idris2/issues/2152
+ emake SCHEME="${SCHEME}" "${BOOTSTRAP_TARGET}" -j1
+
+ use doc && emake -C ./docs html
+}
+
+src_test() {
+ emake SCHEME="${SCHEME}" bootstrap-test
+}
+
+src_install() {
+ # "DESTDIR" variable is not respected, use "PREFIX" instead
+ emake IDRIS2_PREFIX="${ED}/usr/lib/idris2" PREFIX="${ED}/usr/lib/idris2" install
+ dosym "../lib/${PN}/bin/${PN}" "/usr/bin/${PN}"
+
+ # Install documentation
+ use doc && dodoc -r ./docs/build/html
+ einstalldocs
+}
diff --git a/dev-lang/idris2/metadata.xml b/dev-lang/idris2/metadata.xml
new file mode 100644
index 000000000000..2ac8f2763bb1
--- /dev/null
+++ b/dev-lang/idris2/metadata.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+
+<pkgmetadata>
+ <maintainer type="project">
+ <email>scheme@gentoo.org</email>
+ <name>Gentoo Scheme Project</name>
+ </maintainer>
+ <longdescription>
+ Idris is a programming language designed to encourage Type-Driven
+ Development.
+ In type-driven development, types are tools for constructing programs.
+ We treat the type as the plan for a program, and use the compiler
+ and type checker as our assistant, guiding us to a complete program that
+ satisfies the type. The more expressive the type is that we give up front,
+ the more confidence we can have that the resulting program will be correct.
+ </longdescription>
+ <upstream>
+ <bugs-to>https://github.com/idris-lang/Idris2/issues/</bugs-to>
+ <changelog>
+ https://github.com/idris-lang/Idris2/blob/main/CHANGELOG.md
+ </changelog>
+ <remote-id type="github">idris-lang/Idris2</remote-id>
+ </upstream>
+ <use>
+ <flag name="chez">build using <pkg>dev-scheme/chez</pkg></flag>
+ <flag name="racket">build using <pkg>dev-scheme/racket</pkg></flag>
+ <flag name="test-full">pull in depedndencies to run all tests</flag>
+ </use>
+</pkgmetadata>
diff --git a/dev-lang/inform/Manifest b/dev-lang/inform/Manifest
index fc608436e98c..affbf7ed9449 100644
--- a/dev-lang/inform/Manifest
+++ b/dev-lang/inform/Manifest
@@ -1 +1,2 @@
DIST inform-6.33.1-b2.tar.gz 1822648 BLAKE2B e2ea59aa310b2f0122d1b834d98b0b827b945a8031a3e61c70bf502f7a746f43b81035cc22805ab351abf6f9df9ba898ea6ea83da863ef9aa313840ed974d725 SHA512 12cc10b7dae4118600a4d19d0aa44c3a7c93dfc8aa17bd56df7b9237f21df0ae99db6840eefaa5b11ff346369c6f6f2f128167b3479c8f540c29e3e36666c368
+DIST inform-6.35-r4.tar.gz 2307089 BLAKE2B 9864324fe29fe920e226a239f92f327678ed796e5f5a27b3814f62b1158673b2c14d6771abd7af6f9743bb0949c4c6de75a6b591337b0e99196f8ab4d9f0c9f7 SHA512 c30c7067786845e0c77783f7a03a151ae1238978f648f6036fe9535a33662c76abc11db21bab00fe60c4742cd4da46e4674081711b9b3852520bfb14c1b068a6
diff --git a/dev-lang/inform/inform-6.33.1_p2.ebuild b/dev-lang/inform/inform-6.33.1_p2.ebuild
index 939c464d7591..f07551c95d98 100644
--- a/dev-lang/inform/inform-6.33.1_p2.ebuild
+++ b/dev-lang/inform/inform-6.33.1_p2.ebuild
@@ -1,25 +1,31 @@
-# Copyright 1999-2015 Gentoo Foundation
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=5
-MY_P=${P/_p/-b}
-DESCRIPTION="design system for interactive fiction"
-HOMEPAGE="http://www.inform-fiction.org/"
-SRC_URI="http://mirror.ifarchive.org/if-archive/infocom/compilers/inform6/source/${MY_P}.tar.gz"
+EAPI=8
+
+MY_P="${P/_p/-b}"
+
+DESCRIPTION="Design system for interactive fiction"
+HOMEPAGE="https://www.inform-fiction.org/"
+SRC_URI="mirror://gentoo/${MY_P}.tar.gz"
+S="${WORKDIR}/${MY_P}"
LICENSE="Artistic-2 Inform"
SLOT="0"
KEYWORDS="amd64 ~ppc ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos"
IUSE="emacs"
-PDEPEND="emacs? ( app-emacs/inform-mode )"
-S=${WORKDIR}/${MY_P}
+PDEPEND="emacs? ( app-emacs/inform-mode )"
src_install() {
default
+
dodoc VERSION
+
docinto tutorial
dodoc tutor/README tutor/*.inf
- mv "${ED}"/usr/share/${PN}/manual "${ED}"/usr/share/doc/${PF}/html
- rmdir "${ED}"/usr/share/inform/{include,module}
+
+ mv "${ED}"/usr/share/{${PN}/manual,doc/${PF}/html} || die
+ rmdir "${ED}"/usr/share/inform/{include,module} || die
+ rm "${ED}"/usr/share/inform/6.33b2/include/SmartCantGo.h || die #723062
}
diff --git a/dev-lang/inform/inform-6.35_p4.ebuild b/dev-lang/inform/inform-6.35_p4.ebuild
new file mode 100644
index 000000000000..56506b5a25f1
--- /dev/null
+++ b/dev-lang/inform/inform-6.35_p4.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+MY_P="${P/_p/-r}"
+
+DESCRIPTION="Design system for interactive fiction"
+HOMEPAGE="https://www.inform-fiction.org/"
+SRC_URI="https://ifarchive.org/if-archive/infocom/compilers/inform6/source/${MY_P}.tar.gz"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="Artistic-2 Inform"
+SLOT="0"
+KEYWORDS="amd64 ~ppc ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos"
+IUSE="emacs tools"
+# non-interactive tests use ruby, seem broken, and return true even on failure
+RESTRICT="test"
+
+RDEPEND="
+ tools? (
+ dev-lang/perl
+ dev-perl/DateTime
+ )"
+PDEPEND="emacs? ( app-emacs/inform-mode )"
+
+src_compile() {
+ tc-export CC
+
+ emake PREFIX="${EPREFIX}"/usr OPTS="${CFLAGS} ${CPPFLAGS}"
+}
+
+src_install() {
+ local emakeargs=(
+ PREFIX="${ED}"/usr
+ REAL_PREFIX="${EPREFIX}"/usr
+ MANDIR="${ED}"/usr/share/man/man1
+ PUNYDOCS="${ED}"/usr/share/doc/${PF}/punyinform
+ PUNYTESTS="${T}" # don't install tests
+ )
+
+ emake -j1 "${emakeargs[@]}" install
+
+ dodoc AUTHORS NEWS README.md VERSION docs/README*
+
+ use tools || rm "${ED}"/usr/bin/*blorb* || die
+
+ find "${ED}"/usr/share/doc \( -name Makefile -o -name 'custom.*' \) -delete || die
+}
diff --git a/dev-lang/inform/metadata.xml b/dev-lang/inform/metadata.xml
index 42730dae3fb8..20f18c5cfb1b 100644
--- a/dev-lang/inform/metadata.xml
+++ b/dev-lang/inform/metadata.xml
@@ -1,44 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
-<maintainer type="project">
- <email>games@gentoo.org</email>
- <name>Gentoo Games Project</name>
- </maintainer>
- <longdescription>
-A Design System for Interactive Fiction
-
-Just as film might be called a form of literature which needs technology to be
-read (a cinema projector or a television set) and to be written (a camera),
-interactive fiction is read with the aid of a computer. On this analogy, Inform
-is a piece of software enabling any modern computer to be used as the camera, or
-the film studio, to create works of interactive fiction. To read the resulting
-works, you and your audience need only a simpler piece of software called an
-interpreter.
-
-In this genre of fiction, the computer describes a world and the player types
-instructions like touch the mirror for the protagonist character to follow; the
-computer responds by describing the result, and so on until a story is told.
-
-Interactive fiction emerged from the old-style "adventure game" (c.1975) and
-tends to be a playful genre, which must sometimes be teased out as though it were
-a cryptic crossword puzzle. But this doesn't prevent it from being an artistic
-medium, which has attracted (for instance) the former U.S. Poet Laureate, Robert
-Pinsky, and the novelists Thomas M. Disch and Michael Crichton. An interactive
-fiction is not a child's puzzle-book, with a maze on one page and a rebus on the
-next, but nor is it a novel. Neither pure interaction nor pure fiction, it lies
-in a strange and still largely unexplored land in between.
-
-Since its invention (by Graham Nelson in 1993), Inform has been used to design
-some hundreds of works of interactive fiction, in eight languages, reviewed in
-periodicals ranging in specialisation from XYZZYnews to The New York Times. It
-accounts for around ten thousand postings per year to Internet newsgroups.
-Commercially, Inform has been used as a multimedia games prototyping tool.
-Academically, it has turned up in syllabuses and seminars from computer science
-to theoretical architecture, and appears in books such as Cybertext: Perspectives
-on Ergodic Literature (E. J. Aarseth, Johns Hopkins Press, 1997). Having started
-as a revival of the then-disused Infocom adventure game format, the Z-Machine,
-Inform came full circle when it produced Infocom's only text game of the 1990s:
-Zork: The Undiscovered Underground, by Mike Berlyn and Marc Blank.
- </longdescription>
+ <maintainer type="project">
+ <email>games@gentoo.org</email>
+ <name>Gentoo Games Project</name>
+ </maintainer>
+ <use>
+ <flag name="tools">Install blorbtools for manipulating Blorb files</flag>
+ </use>
+ <upstream>
+ <remote-id type="gitlab">DavidGriffith/inform6unix</remote-id>
+ </upstream>
</pkgmetadata>
diff --git a/dev-lang/interprolog/files/interprolog-2.1.2-java17.patch b/dev-lang/interprolog/files/interprolog-2.1.2-java17.patch
new file mode 100644
index 000000000000..5c0ad07b8daa
--- /dev/null
+++ b/dev-lang/interprolog/files/interprolog-2.1.2-java17.patch
@@ -0,0 +1,13 @@
+--- interprolog212.orig/com/declarativa/interprolog/AbstractPrologEngine.java 2005-09-30 19:26:22.000000000 +0200
++++ interprolog212/com/declarativa/interprolog/AbstractPrologEngine.java 2022-05-27 19:26:35.059409877 +0200
+@@ -389,9 +389,7 @@
+ progressMessage("Cleaning path "+p);
+ if (System.getProperty("java.version").compareTo("1.4")>=0) {
+ try{
+- Method decode = URLDecoder.class.getMethod("decode", new
+- Class[]{String.class, String.class});
+- return (String)decode.invoke(new URLDecoder(),new Object[]{p,"UTF-8"});
++ return URLDecoder.decode(p,"UTF-8");
+ } catch (Exception e){
+ throw new IPException("Inconsistency in PrologEngine.cleanPath"+e);
+ }
diff --git a/dev-lang/interprolog/interprolog-2.1.2.ebuild b/dev-lang/interprolog/interprolog-2.1.2-r2.ebuild
index fbd13ff599a8..9c7632350f8b 100644
--- a/dev-lang/interprolog/interprolog-2.1.2.ebuild
+++ b/dev-lang/interprolog/interprolog-2.1.2-r2.ebuild
@@ -1,27 +1,27 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
inherit java-pkg-2 java-ant-2
MY_P="${PN}$(ver_rs 1- '')"
DESCRIPTION="InterProlog is a Java front-end and enhancement for Prolog"
-HOMEPAGE="http://www.declarativa.com/interprolog/"
-SRC_URI="http://www.declarativa.com/interprolog/interprolog212.zip"
+HOMEPAGE="https://declarativa.com/InterProlog/"
+SRC_URI="https://declarativa.com/InterProlog/${MY_P}.zip"
LICENSE="LGPL-2"
SLOT="0"
-KEYWORDS="~amd64 ~x86"
+KEYWORDS="amd64 x86"
IUSE="doc"
-RDEPEND=">=virtual/jdk-1.4:=
+RDEPEND=">=virtual/jdk-1.8:*
dev-java/junit:0"
DEPEND="${RDEPEND}
app-arch/unzip
- dev-java/ant-core
+ >=dev-java/ant-1.10.14-r3:0
|| (
dev-lang/xsb
dev-lang/swi-prolog
@@ -33,6 +33,7 @@ EANT_GENTOO_CLASSPATH="junit"
src_prepare() {
eapply "${FILESDIR}"/${P}-java1.4.patch
+ eapply "${FILESDIR}"/${P}-java17.patch
eapply_user
cp "${FILESDIR}"/build.xml "${S}" || die
diff --git a/dev-lang/interprolog/metadata.xml b/dev-lang/interprolog/metadata.xml
index 96eff3ea40c0..7b573c773244 100644
--- a/dev-lang/interprolog/metadata.xml
+++ b/dev-lang/interprolog/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>prolog@gentoo.org</email>
diff --git a/dev-lang/ispc/Manifest b/dev-lang/ispc/Manifest
index 27426f4de709..a843a6c1018c 100644
--- a/dev-lang/ispc/Manifest
+++ b/dev-lang/ispc/Manifest
@@ -1 +1 @@
-DIST ispc-1.14.1.tar.gz 19454189 BLAKE2B 615698e64ffbd2c82808d6ddd0b5b90f7c52bb8c202a04364d63af26f0e062631f4a8ad01895c1a4f1a8f11e7f91aec381354ddd873d0a4f2908431dcaabe383 SHA512 468e8a44408047ba7b43dc4baf05c2659093b986e131ebe973954ff3b9cf707a4ed22c705b6e01a9abc9a3911669ab31cd191449442c4ac73112a1297da32c5e
+DIST ispc-1.23.0.gh.tar.gz 19624959 BLAKE2B 08cf817bdd4cd76121dd6c9586ef5f3f9296e7a3b509c51db6413fb62aee0b462ae8baa9fd9497b20c67d4df90149eba16a48b61dd8793c5b64c95a21b13e5d8 SHA512 34cd2572cdaf38f7911ffe52dfb7346f1607de1f81635bdf94e365dee810b30ddeb090eee4a592d9331bb051498172bfd868cd8de9c38bed388d7207a30ac0d8
diff --git a/dev-lang/ispc/files/ispc-1.13.0-cmake-gentoo-release.patch b/dev-lang/ispc/files/ispc-1.13.0-cmake-gentoo-release.patch
deleted file mode 100644
index b89e61504008..000000000000
--- a/dev-lang/ispc/files/ispc-1.13.0-cmake-gentoo-release.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 13e66268..27ff8364 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -137,7 +137,7 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bin )
-
- if(CMAKE_BUILD_TYPE)
- # Validate build type
-- set(CONFIGURATION_TYPES "Debug;Release;RelWithDebInfo")
-+ set(CONFIGURATION_TYPES "Debug;Release;RelWithDebInfo;Gentoo")
-
- string(FIND "${CONFIGURATION_TYPES}" "${CMAKE_BUILD_TYPE}" MATCHED_CONFIG)
- if (${MATCHED_CONFIG} EQUAL -1)
diff --git a/dev-lang/ispc/files/ispc-1.13.0-werror.patch b/dev-lang/ispc/files/ispc-1.13.0-werror.patch
deleted file mode 100644
index 3fa144b78dbc..000000000000
--- a/dev-lang/ispc/files/ispc-1.13.0-werror.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 13e66268..27ff8364 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -352,7 +352,7 @@ target_include_directories(${PROJECT_NAME} PRIVATE
- ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR})
- # Compile options
- if (UNIX)
-- target_compile_options(${PROJECT_NAME} PRIVATE -Wall -Wno-sign-compare -Wno-unused-function -Werror ${LLVM_CPP_FLAGS})
-+ target_compile_options(${PROJECT_NAME} PRIVATE -Wall -Wno-sign-compare -Wno-unused-function ${LLVM_CPP_FLAGS})
- # Security options
- target_compile_options(${PROJECT_NAME} PRIVATE -fstack-protector -fdata-sections -ffunction-sections
- -Wformat -Wformat-security -fpie -fwrapv)
diff --git a/dev-lang/ispc/files/ispc-1.14.0-llvm-10.patch b/dev-lang/ispc/files/ispc-1.14.0-llvm-10.patch
deleted file mode 100644
index 7a76d99aca81..000000000000
--- a/dev-lang/ispc/files/ispc-1.14.0-llvm-10.patch
+++ /dev/null
@@ -1,106 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 13e66268..27ff8364 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -218,7 +218,7 @@ if (WASM_ENABLED)
- list(APPEND ISPC_TARGETS wasm-i32x4)
- endif()
-
--set(CLANG_LIBRARY_LIST clangFrontend clangDriver clangSerialization clangParse clangSema clangAnalysis clangAST clangBasic clangEdit clangLex)
-+set(CLANG_LIBRARY_LIST clang clang-cpp)
- set(LLVM_COMPONENTS engine ipo bitreader bitwriter instrumentation linker option)
-
- if (${LLVM_VERSION_NUMBER} VERSION_GREATER_EQUAL "10.0.0")
-@@ -402,11 +402,8 @@ if (ISPC_USE_ASAN)
- endif()
-
- # Link against Clang libraries
--foreach(clangLib ${CLANG_LIBRARY_LIST})
-- find_library(${clangLib}Path NAMES ${clangLib} HINTS ${LLVM_LIBRARY_DIRS})
-- list(APPEND CLANG_LIBRARY_FULL_PATH_LIST ${${clangLib}Path})
--endforeach()
--target_link_libraries(${PROJECT_NAME} ${CLANG_LIBRARY_FULL_PATH_LIST})
-+find_package(Clang REQUIRED)
-+target_link_libraries(${PROJECT_NAME} ${CLANG_LIBRARY_LIST})
-
- # Link against LLVM libraries
- target_link_libraries(${PROJECT_NAME} ${LLVM_LIBRARY_LIST})
-diff --git a/src/llvmutil.cpp b/src/llvmutil.cpp
-index 06fab989..57a7130f 100644
---- a/src/llvmutil.cpp
-+++ b/src/llvmutil.cpp
-@@ -42,6 +42,7 @@
- #include <llvm/IR/BasicBlock.h>
- #include <llvm/IR/Instructions.h>
- #include <llvm/IR/Module.h>
-+#include <llvm/Support/raw_ostream.h>
-
- #ifdef ISPC_GENX_ENABLED
- #include <llvm/GenXIntrinsics/GenXIntrinsics.h>
-@@ -1394,7 +1395,7 @@ static void lDumpValue(llvm::Value *v, std::set<llvm::Value *> &done) {
- return;
-
- fprintf(stderr, " ");
-- v->dump();
-+ v->print(llvm::outs(), false);
- done.insert(v);
-
- if (inst == NULL)
-diff --git a/src/opt.cpp b/src/opt.cpp
-index d78ac374..a607594a 100644
---- a/src/opt.cpp
-+++ b/src/opt.cpp
-@@ -142,7 +142,7 @@ static llvm::Pass *CreateFixBooleanSelectPass();
- getenv("FUNC"), strlen(getenv("FUNC")))))) { \
- fprintf(stderr, "Start of " NAME "\n"); \
- fprintf(stderr, "---------------\n"); \
-- bb.dump(); \
-+ bb.print(llvm::outs(), false); \
- fprintf(stderr, "---------------\n\n"); \
- } else /* eat semicolon */
-
-@@ -152,7 +152,7 @@ static llvm::Pass *CreateFixBooleanSelectPass();
- getenv("FUNC"), strlen(getenv("FUNC")))))) { \
- fprintf(stderr, "End of " NAME " %s\n", modifiedAny ? "** CHANGES **" : ""); \
- fprintf(stderr, "---------------\n"); \
-- bb.dump(); \
-+ bb.print(llvm::outs(), false); \
- fprintf(stderr, "---------------\n\n"); \
- } else /* eat semicolon */
- #else
-@@ -453,7 +453,7 @@ void Optimize(llvm::Module *module, int optLevel) {
- #ifndef ISPC_NO_DUMPS
- if (g->debugPrint) {
- printf("*** Code going into optimization ***\n");
-- module->dump();
-+ module->print(llvm::outs(), nullptr);
- }
- #endif
- DebugPassManager optPM;
-@@ -666,7 +666,7 @@ void Optimize(llvm::Module *module, int optLevel) {
- #ifndef ISPC_NO_DUMPS
- if (g->debugPrint) {
- printf("\n*****\nFINAL OUTPUT\n*****\n");
-- module->dump();
-+ module->print(llvm::outs(), nullptr);
- }
- #endif
- }
-@@ -4256,7 +4256,7 @@ char DebugPass::ID = 0;
- bool DebugPass::runOnModule(llvm::Module &module) {
- fprintf(stderr, "%s", str_output);
- fflush(stderr);
-- module.dump();
-+ module.print(llvm::outs(), nullptr);
- return true;
- }
-
-@@ -4303,7 +4303,7 @@ void DebugPassFile::run(llvm::Module &module, bool init) {
- snprintf(fname, sizeof(fname), "%s_%d_%s.ll", init ? "init" : "ir", pnum, sanitize(std::string(pname)).c_str());
- llvm::raw_fd_ostream OS(fname, EC, llvm::sys::fs::F_None);
- Assert(!EC && "IR dump file creation failed!");
-- module.print(OS, 0);
-+ module.print(OS, nullptr);
- }
-
- bool DebugPassFile::runOnModule(llvm::Module &module) {
diff --git a/dev-lang/ispc/ispc-1.14.1.ebuild b/dev-lang/ispc/ispc-1.14.1.ebuild
deleted file mode 100644
index 0dd7a8767786..000000000000
--- a/dev-lang/ispc/ispc-1.14.1.ebuild
+++ /dev/null
@@ -1,82 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_{6,7,8,9} )
-
-inherit cmake toolchain-funcs python-any-r1 llvm
-
-LLVM_MAX_SLOT=10
-
-DESCRIPTION="Intel SPMD Program Compiler"
-HOMEPAGE="https://ispc.github.com/"
-
-if [[ ${PV} = *9999 ]]; then
- inherit git-r3
- EGIT_REPO_URI="https://github.com/ispc/ispc.git"
-else
- SRC_URI="https://github.com/${PN}/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="~amd64 ~x86"
-fi
-
-LICENSE="BSD BSD-2 UoI-NCSA"
-SLOT="0"
-IUSE="examples"
-
-RDEPEND="<sys-devel/clang-11:="
-
-DEPEND="
- ${RDEPEND}
- ${PYTHON_DEPS}
- "
-BDEPEND="
- sys-devel/bison
- sys-devel/flex
- "
-
-PATCHES=(
- "${FILESDIR}/${PN}-1.13.0-cmake-gentoo-release.patch"
- "${FILESDIR}/${PN}-1.14.0-llvm-10.patch"
- "${FILESDIR}/${PN}-1.13.0-werror.patch"
-)
-
-llvm_check_deps() {
- has_version -d "sys-devel/clang:${LLVM_SLOT}"
-}
-
-src_prepare() {
- if use amd64; then
- # On amd64 systems, build system enables x86/i686 build too.
- # This ebuild doesn't even have multilib support, nor need it.
- # https://bugs.gentoo.org/730062
- elog "Removing auto-x86 build on amd64"
- sed -i -e 's:set(target_arch "i686"):return():' cmake/GenerateBuiltins.cmake || die
- fi
-
- cmake_src_prepare
-}
-
-src_configure() {
- local mycmakeargs=(
- "-DARM_ENABLED=$(usex arm)"
- "-DCMAKE_SKIP_RPATH=ON"
- )
- cmake_src_configure
-}
-
-src_install() {
- dobin "${BUILD_DIR}"/bin/ispc
- dodoc README.md
-
- if use examples; then
- insinto "/usr/share/doc/${PF}/examples"
- docompress -x "/usr/share/doc/${PF}/examples"
- doins -r "${BUILD_DIR}"/examples/*
- fi
-}
-
-src_test() {
- # Inject path to prevent using system ispc
- PATH="${BUILD_DIR}/bin:${PATH}" ${EPYTHON} run_tests.py || die "Testing failed under ${EPYTHON}"
-}
diff --git a/dev-lang/ispc/ispc-1.23.0.ebuild b/dev-lang/ispc/ispc-1.23.0.ebuild
new file mode 100644
index 000000000000..0bf8808f4f97
--- /dev/null
+++ b/dev-lang/ispc/ispc-1.23.0.ebuild
@@ -0,0 +1,101 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LLVM_COMPAT=( 17 )
+PYTHON_COMPAT=( python3_{10..12} )
+
+inherit cmake llvm-r1 multiprocessing python-any-r1 toolchain-funcs
+
+DESCRIPTION="Intel SPMD Program Compiler"
+HOMEPAGE="
+ https://ispc.github.io/
+ https://github.com/ispc/ispc/
+"
+SRC_URI="
+ https://github.com/ispc/ispc/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="BSD BSD-2 UoI-NCSA"
+SLOT="0"
+KEYWORDS="amd64 ~arm ~arm64 ~ppc64 ~x86"
+IUSE="examples gpu openmp test"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+ $(llvm_gen_dep '
+ sys-devel/clang:${LLVM_SLOT}
+ ')
+ sys-libs/ncurses:=
+ gpu? ( dev-libs/level-zero:= )
+ !openmp? ( dev-cpp/tbb:= )
+"
+RDEPEND="
+ ${DEPEND}
+"
+BDEPEND="
+ app-alternatives/yacc
+ app-alternatives/lex
+ ${PYTHON_DEPS}
+"
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+}
+
+pkg_setup() {
+ [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+ llvm-r1_pkg_setup
+ python-any-r1_pkg_setup
+}
+
+src_prepare() {
+ if use amd64; then
+ # On amd64 systems, build system enables x86/i686 build too.
+ # This ebuild doesn't even have multilib support, nor need it.
+ # https://bugs.gentoo.org/730062
+ einfo "Removing auto-x86 build on amd64"
+ sed -i -e 's:set(target_arch "i686"):return():' cmake/GenerateBuiltins.cmake || die
+ fi
+
+ # do not require bundled gtest
+ mkdir -p ispcrt/tests/vendor/google/googletest || die
+ cat > ispcrt/tests/vendor/google/googletest/CMakeLists.txt <<-EOF || die
+ find_package(GTest)
+ EOF
+ # remove hacks that break unbundling
+ sed -i -e '/gmock/d' -e '/install/,$d' ispcrt/tests/CMakeLists.txt || die
+
+ cmake_src_prepare
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DARM_ENABLED=$(usex arm)
+ -DCMAKE_SKIP_RPATH=ON
+ -DISPC_INCLUDE_EXAMPLES=OFF
+ -DISPC_INCLUDE_TESTS=$(usex test)
+ -DISPC_INCLUDE_UTILS=OFF
+ -DISPCRT_BUILD_GPU=$(usex gpu)
+ -DISPCRT_BUILD_TASK_MODEL=$(usex openmp OpenMP TBB)
+ )
+ cmake_src_configure
+}
+
+src_test() {
+ # Inject path to prevent using system ispc
+ local -x PATH="${BUILD_DIR}/bin:${PATH}"
+ "${EPYTHON}" ./run_tests.py "-j$(makeopts_jobs)" -v ||
+ die "Testing failed under ${EPYTHON}"
+}
+
+src_install() {
+ cmake_src_install
+
+ if use examples; then
+ docompress -x /usr/share/doc/${PF}/examples
+ dodoc -r examples
+ fi
+}
diff --git a/dev-lang/ispc/ispc-9999.ebuild b/dev-lang/ispc/ispc-9999.ebuild
deleted file mode 100644
index 6ccd5fef40af..000000000000
--- a/dev-lang/ispc/ispc-9999.ebuild
+++ /dev/null
@@ -1,81 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_{6,7,8,9} )
-
-inherit cmake toolchain-funcs python-any-r1 llvm
-
-LLVM_MAX_SLOT=10
-
-DESCRIPTION="Intel SPMD Program Compiler"
-HOMEPAGE="https://ispc.github.com/"
-
-if [[ ${PV} = *9999 ]]; then
- inherit git-r3
- EGIT_REPO_URI="https://github.com/ispc/ispc.git"
- KEYWORDS=""
-else
- SRC_URI="https://github.com/${PN}/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-fi
-
-LICENSE="BSD BSD-2 UoI-NCSA"
-SLOT="0"
-IUSE="examples"
-
-RDEPEND="<sys-devel/clang-11:="
-DEPEND="
- ${RDEPEND}
- ${PYTHON_DEPS}
- "
-BDEPEND="
- sys-devel/bison
- sys-devel/flex
- "
-
-PATCHES=(
- "${FILESDIR}/${PN}-1.13.0-cmake-gentoo-release.patch"
- "${FILESDIR}/${PN}-1.14.0-llvm-10.patch"
- "${FILESDIR}/${PN}-1.13.0-werror.patch"
-)
-
-llvm_check_deps() {
- has_version -d "sys-devel/clang:${LLVM_SLOT}"
-}
-
-src_prepare() {
- if use amd64; then
- # On amd64 systems, build system enables x86/i686 build too.
- # This ebuild doesn't even have multilib support, nor need it.
- # https://bugs.gentoo.org/730062
- elog "Removing auto-x86 build on amd64"
- sed -i -e 's:set(target_arch "i686"):return():' cmake/GenerateBuiltins.cmake || die
- fi
-
- cmake_src_prepare
-}
-
-src_configure() {
- local mycmakeargs=(
- "-DARM_ENABLED=$(usex arm)"
- "-DCMAKE_SKIP_RPATH=ON"
- )
- cmake_src_configure
-}
-
-src_install() {
- dobin "${BUILD_DIR}"/bin/ispc
- dodoc README.md
-
- if use examples; then
- insinto "/usr/share/doc/${PF}/examples"
- docompress -x "/usr/share/doc/${PF}/examples"
- doins -r "${BUILD_DIR}"/examples/*
- fi
-}
-
-src_test() {
- # Inject path to prevent using system ispc
- PATH="${BUILD_DIR}/bin:${PATH}" ${EPYTHON} run_tests.py || die "Testing failed under ${EPYTHON}"
-}
diff --git a/dev-lang/ispc/metadata.xml b/dev-lang/ispc/metadata.xml
index 285bd7dd7050..1ac64e1abb82 100644
--- a/dev-lang/ispc/metadata.xml
+++ b/dev-lang/ispc/metadata.xml
@@ -1,8 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <!-- maintainer-needed -->
+ <maintainer type="person">
+ <email>mgorny@gentoo.org</email>
+ <name>Michał Górny</name>
+ </maintainer>
<upstream>
<remote-id type="github">ispc/ispc</remote-id>
</upstream>
+ <use>
+ <flag name="gpu">
+ Enable Level0 GPU support in ispcrt.
+ </flag>
+ <flag name="openmp">
+ Build with OpenMP task model (otherwise, TBB task model is used).
+ </flag>
+ </use>
</pkgmetadata>
diff --git a/dev-lang/janet/Manifest b/dev-lang/janet/Manifest
index 92e5ffa528d5..41707ad588cd 100644
--- a/dev-lang/janet/Manifest
+++ b/dev-lang/janet/Manifest
@@ -1,2 +1 @@
-DIST janet-1.12.2.tar.gz 558788 BLAKE2B 0cdbc33d968b0b589cfc0ccd6dd5ffffe23932daa48e67c035d67d4bba0519083503693be470498c1f6d2811b164bfbb3d2fdb35967c6bd64808ec87f1fd9770 SHA512 bde3d516b0a1c55ad8edb2dc701a3afdb5e7c2bd028b132598d1a08796aca5f17f71dd2c760192a9703a07adb3450a7af6971611ae57005eafad1b741b0b69a6
-DIST janet-1.9.1.tar.gz 995046 BLAKE2B c65f59e874690b124b61811406670ed6bf9e23d930b5206a9fefebd64629a2287076a40db885b8a820d733a353237fea65dadccdf4efdd33f1537127f67e66b1 SHA512 4024b2f5bc52338b77c954e384157234ef3cecf21142ef60158adb656396b42accae3af8acb8e54f602f5fbce0e1e1f7f29030878ef2ac7055e933dd710db879
+DIST janet-1.32.1.tar.gz 556827 BLAKE2B 93d7e9eefa45cfd63378f042b5efed77244ff3a32d5b17d24a06c732ec40e49d9079e325d08c8540f284a24501bd41e0fc088781acdf20bcc22694d99a2cb885 SHA512 65e00cfe9bcd66f5d640e58f965aec72f7703777e086220539a1b080d7dd44a9039247477c352d89b1e73c4f6080320bdba419bd0d20cc114985f9701e2ade2d
diff --git a/dev-lang/janet/janet-1.12.2.ebuild b/dev-lang/janet/janet-1.32.1.ebuild
index 574832c06825..8f95ec60cf4f 100644
--- a/dev-lang/janet/janet-1.12.2.ebuild
+++ b/dev-lang/janet/janet-1.32.1.ebuild
@@ -1,9 +1,9 @@
-# Copyright 2020 Gentoo Authors
+# Copyright 2022-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-inherit flag-o-matic
+inherit flag-o-matic toolchain-funcs
DESCRIPTION="A dynamic Lisp dialect and bytecode vm"
HOMEPAGE="https://janet-lang.org https://github.com/janet-lang/janet/"
@@ -17,6 +17,8 @@ IUSE="static-libs"
MY_RELEASE="${PV::-2}"
src_configure() {
+ tc-export CC
+
append-ldflags -Wl,-soname,libjanet.so.1.${MY_RELEASE}
append-cflags -fPIC
}
@@ -25,38 +27,47 @@ src_compile() {
# janet_build is the git hash of the commit related to the
# current release - it defines a constant which is then shown
# when starting janet
- local janet_build='\"1.12.2\"'
- emake LIBDIR="/usr/$(get_libdir)" PREFIX="/usr" JANET_BUILD="${janet_build}"
- emake LIBDIR="/usr/$(get_libdir)" PREFIX="/usr" build/janet.pc JANET_BUILD="${janet_build}"
- emake LIBDIR="/usr/$(get_libdir)" PREFIX="/usr" docs JANET_BUILD="${janet_build}"
- emake LIBDIR="/usr/$(get_libdir)" PREFIX="/usr" build/jpm JANET_BUILD="${janet_build}"
+ local janet_build='\"'${PV}'\"'
+
+ local target
+ for target in '' build/janet.pc docs ; do
+ einfo "Building: ${target:-main}"
+ emake \
+ LIBDIR="/usr/$(get_libdir)" \
+ PREFIX="/usr" \
+ JANET_BUILD="${janet_build}" \
+ CFLAGS="${CFLAGS}" \
+ LDFLAGS="${LDFLAGS}" \
+ ${target}
+ done
}
src_install() {
- dobin "build/janet"
- dobin "build/jpm"
- insinto "usr/include/janet"
- doheader "src/include/janet.h"
- doheader "src/conf/janetconf.h"
+ dobin build/janet
+
+ insinto /usr/include/janet
+ doheader src/include/janet.h
+ doheader src/conf/janetconf.h
- dolib.so "build/libjanet.so"
+ dolib.so build/libjanet.so
dosym libjanet.so /usr/$(get_libdir)/libjanet.so.${MY_RELEASE}
dosym libjanet.so.${MY_RELEASE} /usr/$(get_libdir)/libjanet.so.${PV}
if use static-libs; then
- dolib.a "build/libjanet.a"
+ dolib.a build/libjanet.a
fi
- doman "janet.1"
- doman "jpm.1"
+
+ doman janet.1
insinto /usr/$(get_libdir)/pkgconfig/
- doins "build/janet.pc"
+ doins build/janet.pc
+
dodoc -r examples
- dodoc "build/doc.html"
- # required for jpm
- keepdir /usr/$(get_libdir)/janet/.cache
+ dodoc build/doc.html
}
pkg_postinst() {
+ elog "Note: jpm has been extracted to its own repository upstream."
+ elog "Follow the upstream instructions on how to install it."
elog "Enable use flag \"static-libs\" for building stand-alone executables with jpm"
}
diff --git a/dev-lang/janet/janet-1.9.1.ebuild b/dev-lang/janet/janet-1.9.1.ebuild
deleted file mode 100644
index d853136872c9..000000000000
--- a/dev-lang/janet/janet-1.9.1.ebuild
+++ /dev/null
@@ -1,51 +0,0 @@
-# Copyright 2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit flag-o-matic
-
-DESCRIPTION="A dynamic Lisp dialect and bytecode vm"
-HOMEPAGE="https://janet-lang.org https://github.com/janet-lang/janet/"
-SRC_URI="https://github.com/janet-lang/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE="static-libs"
-
-src_configure() {
- append-ldflags -Wl,-soname,libjanet.so.0
-}
-
-src_compile() {
- # janet_build is the git hash of the commit related to the
- # current release - it defines a constant which is then shown
- # when starting janet
- local janet_build='\"4ae372\"'
- emake PREFIX="/usr" JANET_BUILD="${janet_build}"
- emake PREFIX="/usr" build/janet.pc JANET_BUILD="${janet_build}"
- emake PREFIX="/usr" docs JANET_BUILD="${janet_build}"
-}
-
-src_install() {
- dobin "build/janet"
- dobin "jpm"
-
- doheader "src/include/janet.h"
- doheader "src/conf/janetconf.h"
-
- dolib.so "build/libjanet.so"
- dosym libjanet.so /usr/$(get_libdir)/libjanet.so.1.9
-
- if use static-libs; then
- dolib.a "build/libjanet.a"
- fi
- doman "janet.1"
- doman "jpm.1"
-
- insinto /usr/$(get_libdir)/pkgconfig/
- doins "build/janet.pc"
- dodoc -r examples
- dodoc "build/doc.html"
-}
diff --git a/dev-lang/janet/metadata.xml b/dev-lang/janet/metadata.xml
index 9baceda37874..e438277b67d6 100644
--- a/dev-lang/janet/metadata.xml
+++ b/dev-lang/janet/metadata.xml
@@ -1,11 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
-<maintainer type="person">
+<maintainer type="person" proxied="yes">
<name>Oz Tiram</name>
<email>oz.tiram@gmail.com</email>
</maintainer>
-<maintainer type="project">
+<maintainer type="project" proxied="proxy">
<email>proxy-maint@gentoo.org</email>
<name>Proxy Maintainers</name>
</maintainer>
diff --git a/dev-lang/jerryscript/Manifest b/dev-lang/jerryscript/Manifest
new file mode 100644
index 000000000000..7531fb469eee
--- /dev/null
+++ b/dev-lang/jerryscript/Manifest
@@ -0,0 +1 @@
+DIST jerryscript-2.4.0.tar.gz 2802799 BLAKE2B 18a3f71e7d3e2fc43772cb94aa3b0d4d28d72c6cd174eb0195f09283c5da5140ef85e86c6ed7a82e672724563549294c26d870b55c8bd9d0a92251b1002c612a SHA512 e96e6c6a2207ff869474801a1f8bbd3ce453d4076e558736ebf6962ccab08540f57cf932ec43bcd40429e21f1c6453d77874dd0a467d91a15d8357257533c1ea
diff --git a/dev-lang/jerryscript/files/jerryscript-2.4.0-no-werror.patch b/dev-lang/jerryscript/files/jerryscript-2.4.0-no-werror.patch
new file mode 100644
index 000000000000..216e72758a25
--- /dev/null
+++ b/dev-lang/jerryscript/files/jerryscript-2.4.0-no-werror.patch
@@ -0,0 +1,33 @@
+https://bugs.gentoo.org/840263
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -167,7 +167,6 @@ endmacro()
+ macro(jerry_add_compile_warnings)
+ foreach(_warning ${ARGV})
+ jerry_add_compile_flags(-W${_warning})
+- jerry_add_compile_flags(-Werror=${_warning})
+ endforeach()
+ endmacro()
+
+@@ -212,7 +211,7 @@ if(USING_GCC OR USING_CLANG)
+ jerry_add_compile_flags(-fno-builtin)
+ endif()
+ jerry_add_compile_warnings(all extra format-nonliteral init-self conversion sign-conversion format-security missing-declarations shadow strict-prototypes undef old-style-definition)
+- jerry_add_compile_flags(-Wno-stack-protector -Wno-attributes -Werror)
++ jerry_add_compile_flags(-Wno-stack-protector -Wno-attributes)
+ endif()
+
+ if(USING_GCC)
+--- a/targets/zephyr/Makefile.zephyr
++++ b/targets/zephyr/Makefile.zephyr
+@@ -55,9 +55,8 @@ EXT_CFLAGS += -ffunction-sections -fno-inline-functions
+ EXT_CFLAGS += $(KBUILD_CFLAGS) $(NOSTDINC_FLAGS) $(subst -I,-isystem,$(ZEPHYRINCLUDE))
+
+ EXT_CFLAGS += -Wall -Wno-format-zero-length -Wno-pointer-sign
+-EXT_CFLAGS += -Werror=format -Werror=implicit-int -Wno-unused-but-set-variable
++EXT_CFLAGS += -Wformat -Wimplicit-int -Wno-unused-but-set-variable
+ EXT_CFLAGS += -Wno-main -Wno-strict-aliasing -Wno-old-style-declaration
+-EXT_CFLAGS += -Wno-error=format=
+ EXT_CFLAGS += -D_XOPEN_SOURCE=700
+
+ EXT_CFLAGS += -Wno-error=conversion
diff --git a/dev-lang/jerryscript/files/jerryscript-2.4.0-python3-r4.patch b/dev-lang/jerryscript/files/jerryscript-2.4.0-python3-r4.patch
new file mode 100644
index 000000000000..92198f3901d4
--- /dev/null
+++ b/dev-lang/jerryscript/files/jerryscript-2.4.0-python3-r4.patch
@@ -0,0 +1,236 @@
+From 22d8b904d85e548aa06d2d665aeaaee510a2435a Mon Sep 17 00:00:00 2001
+From: Zac Medico <zmedico@gmail.com>
+Date: Sun, 23 May 2021 13:46:30 -0700
+Subject: [PATCH] Python debugger support for Python 3 (in addition to Python
+ 2)
+
+- Added safe_ord compatibility to pass through int arguments
+- Fixed JerryDebugger to decode bytes as utf8 strings when necessary
+- Fixed WebSocket send_message method to use packed_data[0:1] bytes slice
+
+JerryScript-DCO-1.0-Signed-off-by: Zac Medico <zmedico@gmail.com>
+---
+ jerry-debugger/jerry_client_main.py | 82 ++++++++++++++----------
+ jerry-debugger/jerry_client_rawpacket.py | 13 +++-
+ jerry-debugger/jerry_client_websocket.py | 15 ++++-
+ 3 files changed, 74 insertions(+), 36 deletions(-)
+
+diff --git a/jerry-debugger/jerry_client_main.py b/jerry-debugger/jerry_client_main.py
+index e65d0e14..ee3ffd26 100644
+--- a/jerry-debugger/jerry_client_main.py
++++ b/jerry-debugger/jerry_client_main.py
+@@ -151,2 +151,11 @@ def arguments_parse():
+
++if sys.version_info.major >= 3:
++ def safe_ord(c):
++ if isinstance(c, int):
++ return c
++ return ord(c)
++else:
++ safe_ord = ord
++
++
+ class JerryBreakpoint(object):
+@@ -309,8 +318,8 @@ class JerryDebugger(object):
+
+- if len(result) != config_size or ord(result[0]) != JERRY_DEBUGGER_CONFIGURATION:
++ if len(result) != config_size or safe_ord(result[0]) != JERRY_DEBUGGER_CONFIGURATION:
+ raise Exception("Unexpected configuration")
+
+- self.little_endian = ord(result[1]) & JERRY_DEBUGGER_LITTLE_ENDIAN
+- self.max_message_size = ord(result[6])
+- self.cp_size = ord(result[7])
++ self.little_endian = safe_ord(result[1]) & JERRY_DEBUGGER_LITTLE_ENDIAN
++ self.max_message_size = safe_ord(result[6])
++ self.cp_size = safe_ord(result[7])
+
+@@ -402,3 +411,3 @@ class JerryDebugger(object):
+ if args != "pending":
+- for i in self.active_breakpoint_list.values():
++ for i in list(self.active_breakpoint_list.values()):
+ breakpoint = self.active_breakpoint_list[i.active_index]
+@@ -563,2 +572,3 @@ class JerryDebugger(object):
+ def _send_string(self, args, message_type, index=0):
++ args = args.encode("utf8")
+
+@@ -686,3 +696,3 @@ class JerryDebugger(object):
+
+- buffer_type = ord(data[0])
++ buffer_type = safe_ord(data[0])
+ buffer_size = len(data) -1
+@@ -740,6 +750,6 @@ class JerryDebugger(object):
+ elif buffer_type == JERRY_DEBUGGER_EXCEPTION_STR:
+- self.exception_string += data[1:]
++ self.exception_string += data[1:].decode("utf8")
+
+ elif buffer_type == JERRY_DEBUGGER_EXCEPTION_STR_END:
+- self.exception_string += data[1:]
++ self.exception_string += data[1:].decode("utf8")
+
+@@ -810,3 +820,3 @@ class JerryDebugger(object):
+ elif buffer_type in [JERRY_DEBUGGER_SCOPE_VARIABLES, JERRY_DEBUGGER_SCOPE_VARIABLES_END]:
+- self.scope_vars += "".join(data[1:])
++ self.scope_vars += "".join(data[1:].decode("utf8"))
+
+@@ -866,5 +876,5 @@ class JerryDebugger(object):
+ def _parse_source(self, data):
+- source_code = ""
+- source_code_name = ""
+- function_name = ""
++ source_code = b""
++ source_code_name = b""
++ function_name = b""
+ stack = [{"line": 1,
+@@ -881,3 +891,3 @@ class JerryDebugger(object):
+
+- buffer_type = ord(data[0])
++ buffer_type = safe_ord(data[0])
+ buffer_size = len(data) - 1
+@@ -905,10 +915,10 @@ class JerryDebugger(object):
+
+- stack.append({"source": source_code,
+- "source_name": source_code_name,
++ stack.append({"source": source_code.decode("utf8"),
++ "source_name": source_code_name.decode("utf8"),
+ "line": position[0],
+ "column": position[1],
+- "name": function_name,
++ "name": function_name.decode("utf8"),
+ "lines": [],
+ "offsets": []})
+- function_name = ""
++ function_name = b""
+
+@@ -939,4 +949,4 @@ class JerryDebugger(object):
+ if not stack:
+- func_desc["source"] = source_code
+- func_desc["source_name"] = source_code_name
++ func_desc["source"] = source_code.decode("utf8")
++ func_desc["source_name"] = source_code_name.decode("utf8")
+
+@@ -991,3 +1001,3 @@ class JerryDebugger(object):
+
+- for breakpoint_index, breakpoint in bp_list.items():
++ for breakpoint_index, breakpoint in list(bp_list.items()):
+ source_lines = 0
+@@ -1134,3 +1144,3 @@ class JerryDebugger(object):
+ JERRY_DEBUGGER_OUTPUT_RESULT_END]:
+- subtype = ord(data[-1])
++ subtype = safe_ord(data[-1])
+ message += data[1:-1]
+@@ -1141,3 +1151,3 @@ class JerryDebugger(object):
+ data = self.channel.get_message(True)
+- buffer_type = ord(data[0])
++ buffer_type = safe_ord(data[0])
+ # Checks if the next frame would be an invalid data frame.
+@@ -1153,4 +1163,4 @@ class JerryDebugger(object):
+ message = self.current_out + message
+- lines = message.split("\n")
+- self.current_out = lines.pop()
++ lines = message.decode("utf8").split("\n")
++ self.current_out = lines.pop().encode("utf8")
+
+@@ -1162,4 +1172,4 @@ class JerryDebugger(object):
+ message = self.current_log + message
+- lines = message.split("\n")
+- self.current_log = lines.pop()
++ lines = message.decode("utf8").split("\n")
++ self.current_log = lines.pop().encode("utf8")
+
+@@ -1167,2 +1177,3 @@ class JerryDebugger(object):
+
++ message = message.decode("utf8")
+ if not message.endswith("\n"):
+@@ -1176,2 +1187,5 @@ class JerryDebugger(object):
+ return "%strace: %s%s" % (self.blue, self.nocolor, message)
++ else:
++ message = message.decode("utf8")
++
+
+@@ -1195,3 +1209,3 @@ class JerryDebugger(object):
+ # Process name
+- name_length = ord(self.scope_vars[buff_pos:buff_pos + 1])
++ name_length = safe_ord(self.scope_vars[buff_pos:buff_pos + 1])
+ buff_pos += 1
+@@ -1201,3 +1215,3 @@ class JerryDebugger(object):
+ # Process type
+- value_type = ord(self.scope_vars[buff_pos:buff_pos + 1])
++ value_type = safe_ord(self.scope_vars[buff_pos:buff_pos + 1])
+
+@@ -1205,3 +1219,3 @@ class JerryDebugger(object):
+
+- value_length = ord(self.scope_vars[buff_pos:buff_pos + 1])
++ value_length = safe_ord(self.scope_vars[buff_pos:buff_pos + 1])
+ buff_pos += 1
+@@ -1236,12 +1250,12 @@ class JerryDebugger(object):
+ for i, level in enumerate(self.scope_data):
+- if ord(level) == JERRY_DEBUGGER_SCOPE_WITH:
++ if safe_ord(level) == JERRY_DEBUGGER_SCOPE_WITH:
+ table.append([str(i), 'with'])
+- elif ord(level) == JERRY_DEBUGGER_SCOPE_GLOBAL:
++ elif safe_ord(level) == JERRY_DEBUGGER_SCOPE_GLOBAL:
+ table.append([str(i), 'global'])
+- elif ord(level) == JERRY_DEBUGGER_SCOPE_NON_CLOSURE:
++ elif safe_ord(level) == JERRY_DEBUGGER_SCOPE_NON_CLOSURE:
+ # Currently it is only marks the catch closure.
+ table.append([str(i), 'catch'])
+- elif ord(level) == JERRY_DEBUGGER_SCOPE_LOCAL:
++ elif safe_ord(level) == JERRY_DEBUGGER_SCOPE_LOCAL:
+ table.append([str(i), 'local'])
+- elif ord(level) == JERRY_DEBUGGER_SCOPE_CLOSURE:
++ elif safe_ord(level) == JERRY_DEBUGGER_SCOPE_CLOSURE:
+ table.append([str(i), 'closure'])
+diff --git a/jerry-debugger/jerry_client_rawpacket.py b/jerry-debugger/jerry_client_rawpacket.py
+index 5c3304ed..275be83c 100644
+--- a/jerry-debugger/jerry_client_rawpacket.py
++++ b/jerry-debugger/jerry_client_rawpacket.py
+@@ -17,2 +17,3 @@
+ import struct
++import sys
+
+@@ -20,2 +21,12 @@ MAX_BUFFER_SIZE = 256
+
++
++if sys.version_info.major >= 3:
++ def safe_ord(c):
++ if isinstance(c, int):
++ return c
++ return ord(c)
++else:
++ safe_ord = ord
++
++
+ class RawPacket(object):
+@@ -72,3 +83,3 @@ class RawPacket(object):
+ if len(self.data_buffer) >= 1:
+- size = ord(self.data_buffer[0])
++ size = safe_ord(self.data_buffer[0])
+ if size == 0:
+diff --git a/jerry-debugger/jerry_client_websocket.py b/jerry-debugger/jerry_client_websocket.py
+index fe2c761a..9c755966 100644
+--- a/jerry-debugger/jerry_client_websocket.py
++++ b/jerry-debugger/jerry_client_websocket.py
+@@ -17,2 +17,3 @@
+ import struct
++import sys
+
+@@ -22,2 +23,14 @@ WEBSOCKET_FIN_BIT = 0x80
+
++
++if sys.version_info.major >= 3:
++ # pylint: disable=invalid-name
++ _ord_orig = ord
++ def _ord_compat(c):
++ if isinstance(c, int):
++ return c
++ return _ord_orig(c)
++ # pylint: disable=redefined-builtin
++ ord = _ord_compat
++
++
+ class WebSocket(object):
+@@ -94,3 +107,3 @@ class WebSocket(object):
+ WEBSOCKET_BINARY_FRAME | WEBSOCKET_FIN_BIT,
+- WEBSOCKET_FIN_BIT + struct.unpack(byte_order + "B", packed_data[0])[0],
++ WEBSOCKET_FIN_BIT + struct.unpack(byte_order + "B", packed_data[0:1])[0],
+ 0) + packed_data[1:]
diff --git a/dev-lang/jerryscript/jerryscript-2.4.0-r4.ebuild b/dev-lang/jerryscript/jerryscript-2.4.0-r4.ebuild
new file mode 100644
index 000000000000..60be1af801e9
--- /dev/null
+++ b/dev-lang/jerryscript/jerryscript-2.4.0-r4.ebuild
@@ -0,0 +1,75 @@
+# Copyright 2021-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{9..11} )
+inherit cmake python-single-r1
+
+DESCRIPTION="Ultra-lightweight JavaScript engine for the Internet of Things"
+HOMEPAGE="https://github.com/jerryscript-project/jerryscript"
+SRC_URI="https://github.com/jerryscript-project/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="debugger"
+RDEPEND="debugger? ( ${PYTHON_DEPS} )"
+BDEPEND="${RDEPEND}"
+REQUIRED_USE="debugger? ( ${PYTHON_REQUIRED_USE} )"
+RESTRICT+=" test"
+
+PATCHES=(
+ "${FILESDIR}/jerryscript-2.4.0-python3-r4.patch"
+ "${FILESDIR}/jerryscript-2.4.0-no-werror.patch"
+)
+
+src_prepare() {
+ find . -name CMakeLists.txt -print0 | xargs -0 sed -i \
+ -e "s:lib/pkgconfig:$(get_libdir)/pkgconfig:" \
+ -e "s:DESTINATION lib):DESTINATION $(get_libdir)):" \
+ || die
+ find . -name '*.pc.in' -print0 | xargs -0 sed -i \
+ -e "s|/lib\$|/$(get_libdir)|" \
+ || die
+ cmake_src_prepare
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DENABLE_STRIP=OFF
+ -DJERRY_DEBUGGER=ON
+ -DJERRY_ERROR_MESSAGES=ON
+ -DJERRY_EXTERNAL_CONTEXT=ON
+ -DJERRY_LINE_INFO=ON
+ -DJERRY_LOGGING=ON
+ -DJERRY_PARSER_DUMP_BYTE_CODE=ON
+ -DJERRY_PARSER=ON
+ -DJERRY_REGEXP_DUMP_BYTE_CODE=ON
+ -DJERRY_SNAPSHOT_EXEC=ON
+ -DJERRY_SNAPSHOT_SAVE=ON
+ )
+ cmake_src_configure
+}
+
+src_install() {
+ local jerry_debugger_dir
+ cmake_src_install
+
+ if use debugger; then
+ jerry_debugger_dir=/usr/$(get_libdir)/jerryscript/jerry-debugger
+ insinto "${jerry_debugger_dir}"
+ doins jerry-debugger/*.py
+ python_optimize "${ED}${jerry_debugger_dir}"
+
+ cat <<-EOF > "${T}/jerry-debugger"
+ #!/usr/bin/python
+ import sys
+ sys.path.insert(0, "${EPREFIX}${jerry_debugger_dir}")
+ with open("${jerry_debugger_dir}/jerry_client.py") as f:
+ exec(f.read())
+ EOF
+
+ python_doscript "${T}"/jerry-debugger
+ fi
+}
diff --git a/dev-lang/jerryscript/metadata.xml b/dev-lang/jerryscript/metadata.xml
new file mode 100644
index 000000000000..d0e0b01ade4c
--- /dev/null
+++ b/dev-lang/jerryscript/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>zmedico@gentoo.org</email>
+ <name>Zac Medico</name>
+ </maintainer>
+ <upstream>
+ <bugs-to>https://github.com/jerryscript-project/jerryscript/issues</bugs-to>
+ <remote-id type="github">jerryscript-project/jerryscript</remote-id>
+ </upstream>
+ <use>
+ <flag name="debugger">Install jerry-debugger</flag>
+ </use>
+</pkgmetadata>
diff --git a/dev-lang/jimtcl/Manifest b/dev-lang/jimtcl/Manifest
index 37fb80cd1cd4..e88f0efc2798 100644
--- a/dev-lang/jimtcl/Manifest
+++ b/dev-lang/jimtcl/Manifest
@@ -1,2 +1,3 @@
-DIST jimtcl-0.76.zip 2326715 BLAKE2B 50ea032cf46d2edeeecde1dc3b4deffcbd09b5dd3a6880963608b3f20616bf162fafc4ec2869bfe5de90231c4c9a29fb04710bd299cc5e8728ff20a86e46f32d SHA512 50763ea897fb5393083749cdd9e57a3f3d2d6dbebc40ee6371b1b86ebfc2f515e9775cd2acd6627f0f81b54bd72cd8c74be5aa9d0dbefc7c16372887e07f6ea4
DIST jimtcl-0.78.tar.gz 3073533 BLAKE2B f0cdaf2807c7dd0e7c64e37cbc8dd019d8460e6a0320c239b0d01549aede8c86a89d84d7a3c5200c8d8cea428dbd1038d57dc66f5b580bdea8fe39710f967bbb SHA512 2a2cff12d7fdc4cf36734e41727eef08f6d74fb13d70bb0a3e01839e66859e57dd927ddedc161a6a7928881d640bd4e20a1bb313ed24aa2bb7bcb00eaf64fbf6
+DIST jimtcl-0.81.tar.gz 3977705 BLAKE2B d58a8f9d3a632e98a9737b57f9228e35f198eae47ff51b4a0401491f394980b95606e0986d0b79c84f9a8e77d562407882668c0d108275935fa65b21ce68b329 SHA512 5f798b15fd32673e2e2769e25c4dfeee43696e5bbd2d3ec3fd2f312fa49da9ef057fb4de81a10d3812dc07fb2e40ed79924b024e537e064d3213b10e06a416b6
+DIST jimtcl-0.82.tar.gz 4435258 BLAKE2B 4db820177db1660961f5af2311d02e1d3c32f92bba63b95cdc2933adf4b20cc1133319e411b9a4f23bd2f39ce7c8b5f064641df16ab82948b0266c0670c8744b SHA512 d0f8c8d515b9c7eee3ee2089a8fe9b8616b0541b7fca6b769132201c3a65a8216f9e8a333c6a3a4c2a8fa4754ab0c9d3c2bca3306b3b4db566d4f3e401a709fe
diff --git a/dev-lang/jimtcl/files/jimtcl-0.75-bootstrap.patch b/dev-lang/jimtcl/files/jimtcl-0.75-bootstrap.patch
deleted file mode 100644
index 60850e0b6d0b..000000000000
--- a/dev-lang/jimtcl/files/jimtcl-0.75-bootstrap.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-always do a bootstrap w/local jimsh0 to avoid requiring tcl or jimtcl
-to be installed first. the bootstrap prog is small too.
-
---- a/autosetup/find-tclsh
-+++ b/autosetup/find-tclsh
-@@ -4,9 +4,6 @@
- d=`dirname "$0"`
- { "$d/jimsh0" "$d/test-tclsh"; } 2>/dev/null && exit 0
- PATH="$PATH:$d"; export PATH
--for tclsh in jimsh tclsh tclsh8.5 tclsh8.6; do
-- { $tclsh "$d/test-tclsh"; } 2>/dev/null && exit 0
--done
- echo 1>&2 "No installed jimsh or tclsh, building local bootstrap jimsh0"
- for cc in ${CC_FOR_BUILD:-cc} gcc; do
- { $cc -o "$d/jimsh0" "$d/jimsh0.c"; } 2>/dev/null || continue
diff --git a/dev-lang/jimtcl/jimtcl-0.76.ebuild b/dev-lang/jimtcl/jimtcl-0.76.ebuild
deleted file mode 100644
index 64ca59df29e6..000000000000
--- a/dev-lang/jimtcl/jimtcl-0.76.ebuild
+++ /dev/null
@@ -1,69 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="5"
-
-inherit eutils
-
-if [[ ${PV} == *9999 ]] ; then
- EGIT_REPO_URI="http://repo.or.cz/r/jimtcl.git"
- inherit git-r3
-else
- inherit vcs-snapshot
- SRC_URI="https://github.com/msteveb/jimtcl/zipball/${PV} -> ${P}.zip"
- KEYWORDS="amd64 arm ~arm64 ~m68k ~mips ~s390 x86"
-fi
-
-DESCRIPTION="Small footprint implementation of Tcl programming language"
-HOMEPAGE="http://jim.tcl.tk/"
-
-LICENSE="LGPL-2"
-SLOT="0"
-IUSE="doc static-libs"
-
-RDEPEND=""
-DEPEND="doc? ( app-text/asciidoc )
- app-arch/unzip"
-
-src_unpack() {
- if [[ ${PV} == "9999" ]] ; then
- git-2_src_unpack
- else
- default
- cd "${WORKDIR}"/msteveb-jimtcl-* || die
- S=${PWD}
- fi
-}
-
-src_prepare() {
- epatch "${FILESDIR}"/${PN}-0.75-bootstrap.patch
-}
-
-src_configure() {
- CCACHE=None econf --with-jim-shared
- if use static-libs ; then
- # The build does not support doing both simultaneously.
- mkdir static-libs || die
- cd static-libs || die
- CCACHE=None ECONF_SOURCE=${S} econf
- fi
-}
-
-src_compile() {
- # Must build static-libs first.
- use static-libs && emake -C static-libs libjim.a
- emake all
- use doc && emake docs
-}
-
-src_install() {
- dobin jimsh
- use static-libs && dolib.a static-libs/libjim.a
- ln -sf libjim.so.* libjim.so || die
- dolib.so libjim.so*
- insinto /usr/include
- doins jim.h jimautoconf.h jim-subcmd.h jim-signal.h \
- jim-win32compat.h jim-eventloop.h jim-config.h
- dodoc AUTHORS README TODO
- use doc && dohtml Tcl.html
-}
diff --git a/dev-lang/jimtcl/jimtcl-0.78-r2.ebuild b/dev-lang/jimtcl/jimtcl-0.78-r2.ebuild
index 9b531ea12ea2..6dccf4eab57f 100644
--- a/dev-lang/jimtcl/jimtcl-0.78-r2.ebuild
+++ b/dev-lang/jimtcl/jimtcl-0.78-r2.ebuild
@@ -1,21 +1,17 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="7"
-inherit eutils
-
-SRC_URI="https://github.com/msteveb/jimtcl/archive/${PV}.tar.gz -> ${P}.tar.gz"
-KEYWORDS="~amd64 ~arm ~arm64 ~m68k ~mips ~s390 ~x86"
-
DESCRIPTION="Small footprint implementation of Tcl programming language"
-HOMEPAGE="http://jim.tcl.tk/"
+HOMEPAGE="https://jim.tcl.tk/"
+SRC_URI="https://github.com/msteveb/jimtcl/archive/${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="LGPL-2"
SLOT="0/78" # SONAME=libjim.so.0.78
+KEYWORDS="amd64 arm ~arm64 ~m68k ~mips ~s390 x86"
IUSE="doc static-libs"
-RDEPEND=""
DEPEND="
doc? ( app-text/asciidoc )
app-arch/unzip
diff --git a/dev-lang/jimtcl/jimtcl-0.81.ebuild b/dev-lang/jimtcl/jimtcl-0.81.ebuild
new file mode 100644
index 000000000000..e4c75bd84fd2
--- /dev/null
+++ b/dev-lang/jimtcl/jimtcl-0.81.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="8"
+
+DESCRIPTION="Small footprint implementation of Tcl programming language"
+HOMEPAGE="https://jim.tcl.tk/"
+SRC_URI="https://github.com/msteveb/jimtcl/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="LGPL-2"
+SLOT="0/${PV}"
+KEYWORDS="amd64 arm ~arm64 ~m68k ~mips ~s390 x86"
+IUSE="doc static-libs"
+
+DEPEND="
+ dev-lang/tcl:0
+"
+
+src_configure() {
+ CCACHE=none econf --disable-docs --shared
+ if use static-libs ; then
+ # The build does not support doing both simultaneously.
+ mkdir static-libs || die
+ cd static-libs || die
+ CCACHE=none ECONF_SOURCE="${S}" econf --disable-docs
+ fi
+}
+
+src_compile() {
+ # Must build static-libs first.
+ use static-libs && emake -C static-libs libjim.a
+ emake all
+}
+
+src_install() {
+ default
+ ln -sf libjim.so.${PV} "${ED}"/usr/$(get_libdir)/libjim.so || die
+ use static-libs && dolib.a static-libs/libjim.a
+ use doc && dodoc Tcl_shipped.html
+}
diff --git a/dev-lang/jimtcl/jimtcl-0.82.ebuild b/dev-lang/jimtcl/jimtcl-0.82.ebuild
new file mode 100644
index 000000000000..fab5f1582f64
--- /dev/null
+++ b/dev-lang/jimtcl/jimtcl-0.82.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs edo
+
+DESCRIPTION="Small footprint implementation of Tcl programming language"
+HOMEPAGE="https://jim.tcl.tk/"
+SRC_URI="https://github.com/msteveb/jimtcl/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="LGPL-2"
+SLOT="0/${PV}"
+KEYWORDS="~amd64 ~arm ~arm64 ~m68k ~mips ~s390 ~x86"
+IUSE="doc static-libs"
+
+DEPEND="
+ dev-lang/tcl:0
+"
+
+src_prepare() {
+ # Avoid tests that need networking
+ rm tests/ssl.test || die
+ default
+}
+
+src_configure() {
+ # Use the provided bootstrap tclsh, avoiding the script picking a different one
+ edo $(tc-getCC) -o jimsh0 autosetup/jimsh0.c
+
+ export CCACHE=none
+ econf --disable-docs --shared
+ if use static-libs; then
+ # The build does not support doing both simultaneously.
+ mkdir static-libs || die
+ cd static-libs || die
+ ECONF_SOURCE="${S}" econf --disable-docs
+ fi
+}
+
+src_compile() {
+ # Must build static-libs first.
+ use static-libs && emake -C static-libs V=1 libjim.a
+ emake V=1 all
+}
+
+src_install() {
+ default
+ use static-libs && dolib.a static-libs/libjim.a
+ use doc && dodoc Tcl_shipped.html
+}
diff --git a/dev-lang/jimtcl/metadata.xml b/dev-lang/jimtcl/metadata.xml
index 291af1db3c00..d888ea988b92 100644
--- a/dev-lang/jimtcl/metadata.xml
+++ b/dev-lang/jimtcl/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<!-- maintainer-needed -->
<upstream>
diff --git a/dev-lang/jint/Manifest b/dev-lang/jint/Manifest
new file mode 100644
index 000000000000..c38c475808a1
--- /dev/null
+++ b/dev-lang/jint/Manifest
@@ -0,0 +1,199 @@
+DIST benchmarkdotnet.0.13.7.nupkg 919221 BLAKE2B 0625b92961628fc5a7a88590ff9f92ab4e1bcb88698cec16185c85a151a2bd72a57f576f8ba974c75e8be4cfddd69500808d8c3f8344805ea900a15a59a8249f SHA512 0879981c458b2d5457655eef4ad7361c854d7e4cd06030b980742e62d9ac636f55ecc0acb0a0520b882caf206d445de48acd35e1ac2d031006a9f33be6f51020
+DIST benchmarkdotnet.annotations.0.13.7.nupkg 63642 BLAKE2B 9c39a1f13a1a5e17002fe60bc28f08799732a3cabecdff5db68afd6b70aeed33d4d8684174723804d4fa35364cb8d2a54d27b7c584508050da5e97b4a73cc60d SHA512 ef619cd5efd7912c57598f230d231a201481e6b4476192590c5a8caaa019707e1006885095a8129f12b6f749ca119489fae93b05b70abe294d6b4b02196013d6
+DIST commandlineparser.2.9.1.nupkg 496069 BLAKE2B e2c4b38841f83d6bc10432b8055af90369f1fe0a10105a58b51b44cd48e5d84cb0b5e4b19f444d8c81b38646a62c7c4d11cbd710e92fea68be3ebea6ab98e3f1 SHA512 4f364e45c9668c7e7cc6a922b488f3fa523033c20d7a432694f0a6af05ce528ea0481d8375e2f4f1032c6990347b4803ce9a0e48068c6fe15ec46fb1254f085d
+DIST esprima.3.0.0-rc-04.nupkg 552214 BLAKE2B 5f84bac650ec596a6cf487493a15516c80969dec250cb199b581b9b271883ecd93abef2224390a76a578ae59469672e6458f7ba154723db71cbc6736f991605a SHA512 68753b24275f6161fabbb124332b456431f077e3c69c1bf99d4247693bdaa183d874baca0b2f624acf4b68ec3c4af4790370add6a88785dd5e49574b5f1c9a4f
+DIST flurl.http.signed.3.2.4.nupkg 217681 BLAKE2B 0d972554abd9c00155ca5bc560703cd7a1b5c6c753e5b00283d0a94821cba5877b7fc524b1dd74ea6c5e9168bc9427d577498c3f04badf87e75ed0dc9ef600cd SHA512 c7d3c751afc589588fc0d468c618c7491b675adf848e323d4fc1e164f59fda93fc47c3a9f1f7bab7f2bbf56102c8c973b8e649bb4ad98e92e73bc9d07be1bad2
+DIST flurl.signed.3.0.6.nupkg 86054 BLAKE2B 8b5a83d1b628645cd109be4eff33c6b4eb1037845ab856cfb718133a8554b547f1a999a10ba90fe21a4c952bcec8624e2fb111f4f9e17d82c3eb8a5f06513fb9 SHA512 4e33455ec4eb700bedf55148bcd1ebcee14ced96d7123b9b2747365391b67c7c01216272ad0ea14d7c07b82ee9c65490b270eb05116090ca6ee3a5f446be42d7
+DIST gee.external.capstone.2.3.0.nupkg 8145352 BLAKE2B 1e1cfa75c9d8fcff0e905e7d8d5fdd3415daec907f97ee4eb810630d1df26397a5a2a80cdb1fa5fee6268599bc49dd8ee41366867aa16ca689c97db78b4be135 SHA512 9079d5705d591c3b819127b2e0b763dacabb212314e9f96b2f632f62b45a9f3e1c208f136df91a4834dd1838a38ac2fd2161ce8b545fe70f8078b66fc66c4aa8
+DIST githubactionstestlogger.2.3.3.nupkg 143114 BLAKE2B 8c20b4cf084ee9465aea6b9c1c1d56758c7bb011ba2d3a9c73310d911880f669fc735abc24443480df321980689c8a3553dba8da08e085857bd3e5b4b5cc62de SHA512 9a40885220cab4f47ec232143658fb5d2844bf6dbb8b861239a0858c5de0c16fef8c27b657d23b12545ae53eb8375bba7fbe5300e5c98e749f820b8ee7409641
+DIST iced.1.17.0.nupkg 2106811 BLAKE2B c7042f76781d7a536a8169c861fdbd36d8761e0e89faccf1251506bc6304ad5719da9c62a1f07a43952c1bc1baab2e5ece7e78304b0cdb9eaf3f72d899622661 SHA512 6404bf5518b3d7a7c74478edd56c2c2f194ccadd1cfde3ae7c13c332e442779b817b99744aae19dd4c6400a205055eee7dfc16b43a2f97d0f5200a9bc6c97549
+DIST jint-3.0.0_beta2051.tar.gz 2018962 BLAKE2B d03830151ba0076d6b07edb65d56bb6575531e98a71988791ee8e88ce00b7bb9c7fc2c9de9486b3969830cb656d613d6aaabf2da0e500f7fa8b59ba8a0d80453 SHA512 3faddd5f20062177d464a97db67a028af17dedb4867bb1948a1f8b1fdfd6c1b82a5fda60f5e3a9a0ca2e256687a3fc882acc5e7b3113688f292190be580e39e9
+DIST jurassic.3.2.6.nupkg 301414 BLAKE2B 453fe2cded3b1cd3a0e144965dfe85e63b53301872894271fc6e0ad1cff1d7d2b38c319cf2950d326cc5dadb9d3d624e6461bbb7db23f7dc6276617ea9e104f0 SHA512 ee83621cd7e739eb601b1b28e068121451f4be8255c23914ea6a011adea6402c945d3821ed514ccc68629e08311586d6bcce9cc9d8423913a109376e4bc8a572
+DIST microsoft.bcl.asyncinterfaces.1.1.0.nupkg 92985 BLAKE2B 3de4d3c85a43d9c81b24419919e82a590615de75dadfc5bc156777938c1ee30ba9602719614223be3a4aedfd589bf4f02e78b576f80926bb29d8e0a742c692d6 SHA512 4277ce265233e5ebf15370e7d42cf8574c1fce715a892eadbeba136136dbc36ba4d78b4090e55217293f8421f2eb84bcfdc9343de42a2d5e06b8ff5b00d0723d
+DIST microsoft.build.tasks.git.1.1.1.nupkg 479497 BLAKE2B 053ad5b3b88194d12e9e784c8a91d33deb8a2abc48cf3179990fdd2f576168b19a757b3a3915309fb040a1441bd5102bca333383d757f828c029846e3feef88f SHA512 1961b5ba2ce215f6cd0943948e66462b7388b612708c58a5e03ab1e041ac77f1582f9ed9134136fce0d5345d1d46a1537ff728f542e6dd4ea2c11eac9d3f8d46
+DIST microsoft.codeanalysis.analyzers.3.3.3.nupkg 1111022 BLAKE2B 8704bf2c8a57bdca4ad3d5a2531ff47b0b44d2461ce3c8eec4b58f5cb38f9371fe5aaeb8026a3abbf6299fe30b3f059c892ee6dd239a03eb8b36462f132a2b4b SHA512 0d4896db8aff9d731c5b1c8f73a4b37460c3f08080fbeac0ecf169abf5bdff9c9a994778f453816b888e939d9d0d615245c91a2e4ba31f85d2ea8de222767104
+DIST microsoft.codeanalysis.common.4.1.0.nupkg 4561936 BLAKE2B a3f1d1e9d8e10cd2b6ecb87f1dfbeff158bf488a63e56ff78c7c96107ad65b17e3f2296da21a1dba183b8dbe0d9fc3b2b5778e8a14481866c2b8aa5a63b2d937 SHA512 006f100f9f2b1ce676ba8ffec6eee5019ceba0ecd0fdc109fe92584a0697ebad58e75ba3c96ade6298487588c5d66aa24ae6195118f48bb9f16e27e42c3dd299
+DIST microsoft.codeanalysis.csharp.4.1.0.nupkg 10405400 BLAKE2B c287af3ff6dce7c3aacae3d7295236dbde32852683c5f0c74bf14cf8499de219eaf2131ff6943cb2876ff99c77913986ed89b6dcc1ff6b27324900bfc0f1bb5b SHA512 fcf8a01dcb5097390d4d75405de3f637356ba9acb4bd208ac2bf28e01c14feed09a1d2b84c801a59df6b94cf0e386fba2865729b1c339bc29381e1ef1f06d8ea
+DIST microsoft.codecoverage.17.7.2.nupkg 9116095 BLAKE2B 2646e030cff43543d271b79eeca75b8b3d62dec1eb2b32b4f7984720b0d124684b9d3002f5167f4d8cc95b4c9cd81206940dafd952e9b74264f6607a5a576af2 SHA512 791aaef8ade199e2f88302544d81db8c04074b455ea35e33d941d2d3e6f60f14397725290283baaef3afe6fa591173debbb66c5afe5d193da622d669a6365da1
+DIST microsoft.diagnostics.netcore.client.0.2.251802.nupkg 146459 BLAKE2B 5f3c1b217602aac357b529e8d48943c2aaf90973ccb86b577748d3eb11899e9a43f5370c3be77531d15550792f5f966fc694c72d8e3abe83fea1a0d6fcd11f9b SHA512 553336be495e4d899318256fdf085e7800e6cd01a50ba561a3fb879d12f75bd42d58383bdb7b0e679d6f9ba7414b9b5b9d07ded6150a57651e16d1e95cd804a4
+DIST microsoft.diagnostics.runtime.2.2.332302.nupkg 747281 BLAKE2B bb3335a3490ecfd1b4ee5c6d83e136c0a0411b599fdbc5a63f18fe8740f63c6d4e313c6c8346bc890ab95ed007c6ac31513b0351e90766a241f56397abc06cfc SHA512 7b682033f65f6ae06f8c63d6d607551861e1f36045cd670f8b39e28786958c5e7da10426f9ce13762a9a88edb8aa2e730c0a7d04455a61e3e014327ab06dde18
+DIST microsoft.diagnostics.tracing.traceevent.3.0.2.nupkg 7528517 BLAKE2B 911f3cb4337c3eb9f9d3fe414691b4a3b1df3bf3ea1294c3053ee82cbf820d76e2d9afc8f7eeef295b1e34dece1757206b8aed102ddc89146757953e9878e1b6 SHA512 31fe5d47f445629e350a27b981f2eb97a9a9842746f8beaec553eb5832b8cb8362ada825d73cdafc02736a92836a16a1f21fe6b375f918241d553a9ae47d8ce0
+DIST microsoft.dotnet.platformabstractions.3.1.6.nupkg 72146 BLAKE2B 08d852b5e6558b499f2d780284aa747e5cf39886d86fa378128fae9f71741bd57c5bc75c0077948f193b7e8ea03a520d8ef3bd3b4fc80779adb4a84a4b44fe8c SHA512 55b87f544874686bed96889953b7e99e43426b79b0fac31cc452e0f4a27ca5cc08522c0ac967bf9df649f7c04137a5e2553d134ad79d5c1e69578367c2b4b4c6
+DIST microsoft.extensions.configuration.2.1.1.nupkg 41878 BLAKE2B 1571b590ea054c01f74685e18cd1f7e53a0c65fb7285a61e2414916aacff951af43c9f75b998b61261bac0abdda2f5058697dc2a7476ace47878619aeb933223 SHA512 ede33ede2f538757a8ad6c607e374080d510010e5e1c716cc11980b32fda72c5f9b6e9a505cdb4ea082256c95662854604972a33e5b82e5e63f30b67fd3f04c5
+DIST microsoft.extensions.configuration.abstractions.2.1.1.nupkg 37935 BLAKE2B fe8d4556fa1b7c7fef2cf9cc0364304006a130af6b08f92d83fda2afec103fcb9576cf4f68f0fd660aa1552ec5ed977f55e882d1145d7e867f4e003f46d8384a SHA512 ee6acc03f6f030f0f1df7f515a83aa43f18b50355d7951324566a0eb22cec06aec67a1291d268b8a0f9d2201f5b455b33abaad516393e6dd11e9939dd801ff82
+DIST microsoft.extensions.configuration.binder.2.1.1.nupkg 36205 BLAKE2B 6d5e388b79ca27093fc157bb985b247af1c2eec213acb8676f96c509fc4952ae5399aaac6dd481e43c23ac034c5b27f3f102ad024678aecc72bd6be96ca19e7b SHA512 faf0c073239b014de6c3b2edf61b7ca72b655ca96a678a405c6e511162485e446d75fe63b82b807a900470245b1f3e68f4b7ac4be8ae14d89f4f21e615dc6b55
+DIST microsoft.extensions.dependencyinjection.7.0.0.nupkg 272235 BLAKE2B 70d1cc2e591c82a83343589e61b000599ad2ae2f6a0d7ff492e5413cf03dbec857ae113950d36d95611bae1e42d3d9eaeacb7d7e332bc444efc38339b333431d SHA512 db7584ae7dd6e47fe1c450ee6f01f567847f744a4f86ffa7eeeba04a0e573c88e371c89440323c281c6d2260d73015fe085d4ad5fb97d41136fe683dfed4a9dd
+DIST microsoft.extensions.dependencyinjection.abstractions.2.1.1.nupkg 47273 BLAKE2B f7ea362f4e60d9df788a3537ef551c75ccd8ce51df42a19ec33110569314c513eb7da2e7d38429ad462aa25d719115349d9cc1c34439e8ef80015f5e490d4bd4 SHA512 026d9465857a9ee07121a85abb15f525014e8cdab89f3f4efb80dd4ddad07cf643af2cba82bebd1100c5c61a4dac459ad6f534abc560799737ad909ca140e5af
+DIST microsoft.extensions.dependencyinjection.abstractions.7.0.0.nupkg 197491 BLAKE2B 9da47aa9c537dab4a8ef449d87a55f984dde479c5fcce8d2b6b7b1928f2905f6bbf0ae188b7345fdc03e35d3c0ed584611879a4de8d7def3d1bde991d34d3454 SHA512 a1cf52b01f5de43fe9de6055ec4c7b7f8247669e8dd049be9626df36e3163e0769d47843eac5d09fa3f9aab41bda228bbd51946c9350b6e24d45d86cc92eb317
+DIST microsoft.extensions.logging.2.1.1.nupkg 42526 BLAKE2B b4c303cc0f0a277e58a34e61c30a9d2779bc2bf0b3627fc800a7df0c7ea5973c7203e4e5c543c8468fc6a0f533ae22df12f4b9c5c3e3efec64167ed449dd87de SHA512 1c1988872213742dad197f4309436334cdb517721cef1b3b3f72b689520d1f846b10398ded82389f45d9669ce6ced4ef0c72dfff93e109ace75c7bbd4e569b05
+DIST microsoft.extensions.logging.abstractions.2.1.1.nupkg 51616 BLAKE2B 9ad56ee27a9e669866ba2eb312df5ca8a8f28470a352dca45a4aefbb8a8edcd6db592a63459e2be295c5cb16ac574907b7792a90f8e180c42d2e12217cfe4cbb SHA512 7eb031114a70af9f9fe82d84935cadedeb3bd9a9c60e00c914d741cf0d52b9f854cb82abbf294b2494e46603b14deca2c4b5e2cb39591df990e7f79b3a327091
+DIST microsoft.extensions.options.2.1.1.nupkg 47762 BLAKE2B 130745fed8c4d5b47ef496744045ec3183ea8ab199a2516009d0ae563aa2683758ae6c10d1ccfe8b2b9dc9d5f881d2553b9d90c0918dd6fdd82c135010bf5ba7 SHA512 55c72f83c97892406b5c00da965b84198373f475d23188a52a849a2dd69600deb48029b2488072cf987857cd8627afb353065c3a8c81ae38a7af4baf4f897ee5
+DIST microsoft.extensions.primitives.2.1.1.nupkg 46663 BLAKE2B 50c71f1af3f8019a42f2ab930e1e9c3e8992c532fe27320e98b6ca794473c067c538f8ad7db0f7dce4bf52e3b49b0037106a98bd6ec01303cdc4c9911abbdfb1 SHA512 4c24e6b4cdedd5e7928bebd95c82ea4fdbcd068a0e7ae07d54284445f78ff973e2ec108957af1e0f51090c2fcba579006fedd92b615df27a3b53790797aa3391
+DIST microsoft.net.test.sdk.17.7.2.nupkg 39430 BLAKE2B c7d00e93daf1cb4180104c2111b3a286819ef8d692b90d8157877794087357aeffb34640bbf9bcd5e04cf25512db4fa2f41d24cbfdb01e17a1db6e3f23b1973d SHA512 e0ebd2dff0bc55e5aac59b300ea0558aa5110d08caeedf513c441ef98ffffd6d92e8e5a9ca1a1ec7e1fc2e661efc57b1f74d5bb8068b5120cb49e4c11998180c
+DIST microsoft.netcore.platforms.1.1.0.nupkg 17960 BLAKE2B 6a9fa22d75f5a1c65746dd71a63c3d4e37c393e99c23007c10f5ecce248a04863bf26e7562c7751177a6985eaac266c29cc6a5443a4a853e773f88994ad2a3fd SHA512 6bf892c274596fe2c7164e3d8503b24e187f64d0b7bec6d9b05eb95f04086fceb7a85ea6b2685d42dc465c52f6f0e6f636c0b3fddac48f6f0125dfd83e92d106
+DIST microsoft.netcore.platforms.1.1.1.nupkg 31072 BLAKE2B 095f6e8b48a99353061a021ac9a07ec161e28602338d7fa3624891696e9b91642034f968d9e1b77c74ced46628cad45f47cc24189dc12479d1bee92c93eb4cec SHA512 9835090f578b5c8ce6527582cd69663506460e9fdc5464fc2b287331c24d9369e57dd1543a865a8bd89d4fcfc569c26bf0dbfcce102675fdfd1479b9a9652819
+DIST microsoft.netcore.platforms.2.1.2.nupkg 31064 BLAKE2B 6b28f015a1c3c2dbad93fac315a896c4ad116befd618f28b89d451b92f2ab642e414bdd372f46858daa52e72978ad6e4862b6a431d121e331296b0f6a08a1c02 SHA512 ec9eef7881fb32eeb37389655a733b611813bfdf84c3e2569240e3d0aedc11ef30b8503a1d1b7a493b70bb1da0faa8e90d7798796b0ad14437b8881189360722
+DIST microsoft.netcore.platforms.5.0.0.nupkg 39826 BLAKE2B a122f0d2afb77455c005740fe5096c055f72eb658b0d1f10e6a17f9d07c3bf91ad0010ff472ee1d05b84bfbb75c9de3c46d2a2d33fdcaa245d64d6c3a956f233 SHA512 8493fe11648c7ecc20b6530490d30fd63744961345c0501a7a10b11046661da09b783ddceb8b3208ae52a72a8a94cafdce8dc1bd6073c32081e30d0e7407f174
+DIST microsoft.netcore.targets.1.1.0.nupkg 18162 BLAKE2B 419d19e0da934ab4b9db75dd66cc22b83a003f34e93cf7a92feccf4f32d3d695e18b826b1aba13073dd4ec53aa7905a67346921d1055516647ddcde0d79009f1 SHA512 1ef033a68688aab9997ec1c0378acb1638b4afb618e533fcaf749d93389737ba94f4a0a94481becdf701c7e988ae2fe390136a8eae225887ee60db45063490fe
+DIST microsoft.netcore.targets.1.1.3.nupkg 31152 BLAKE2B 80a656508fda7db32065d89f8eeb319db79869a00cb22d7a8c9c2204711f057f076e905050717302d4f900b8881c7d2a15bfc040fa285dca984c138cce311d3a SHA512 a71c2af20d8f61188417929756399914c353aac8361abd69baffe9475b2a01db802870066da0ae27afb2737a4026c782950503dbd4b651bae6ee7fd90fbf1d52
+DIST microsoft.sourcelink.common.1.1.1.nupkg 271934 BLAKE2B 6678fa357eba30a58cd1b457bfe8423a2c0e1359c9088cab364707c0061a7e11035094a00a75528a290b1c9415062ce47a17600bd010f769b3d7e2501456e911 SHA512 bf2241eeeb82876f7612d525064aa90f9bb56610260d44a2fc5b75b63b45a652444c25451f7daacbe97cb2c5a6e72180805f894054f7176cc290d147a2753ef4
+DIST microsoft.sourcelink.github.1.1.1.nupkg 285433 BLAKE2B 986ee1aa2bd39c577c0ffc71e27d5ed5128dc5b2df9dcdc29f0b62cae31de120253cea0afeb583ab1a3fc5e5b50766a608f2f8ec749224436a031092fb14b553 SHA512 54c7ff8d0cafd654a115d5755710ec89534399a605949ffd43778290796022092679a43e1a129250ff9a03e61417c43dc2fc1362a9019dee88a7e048c1be953c
+DIST microsoft.testplatform.objectmodel.17.7.1.nupkg 1496394 BLAKE2B 2957d63fd29b5adc5753730bedc6531128a36f6738a8951cb7e328d9e2fd9a637dba20974fab33822723b510a6063b782cbea699308bce968caf172991b6cfde SHA512 6230d4db57b4b94e53dbece850ccd8e6d7b5d68a0fe06cf73dd16108f07e0b566ae721b4eeaaaa5b36415d9405bda14b922731d6d50638ea6a8c97a0322305e4
+DIST microsoft.testplatform.objectmodel.17.7.2.nupkg 1494924 BLAKE2B ed237ca748d969242f48044bf33eacb8e03a8fcbc78cc36d45233e92b82d150425258c0805631d3d58ae0a1eb66f0dd678007470ec3ef49ab53431885b336a4f SHA512 821050a26c80e5328f6cc5f4b1720e43b293365a956a76f6d9555d047423d416ebde0bc7c62183ca4be4d17beb74c0ff39f37744019fa939b9f0b4b94341bbcb
+DIST microsoft.testplatform.testhost.17.7.2.nupkg 2808650 BLAKE2B 7f091133b02f319e1d8bee440cd7ce4ec4fc8382a81bc30c62d5c4769bdeb32534d776db64acd146defa34a1b4322fb04025604342795564546c7ed7ee48f317 SHA512 cf2885c5a91aedec09bcc4f15662096340d7b37351db368de98b0569b35e8238ce6dd86c60706fb021f37ecbc3e4b35b405e44b18b4e1adb8cf404076345c3f7
+DIST microsoft.win32.primitives.4.3.0.nupkg 63333 BLAKE2B 132ec29940d4b716110980c4f9a06ba15183d29de638379d09998124605165e51652b2727e3892b57dbc7cacfdc71f9e1b59c9dd5463a524657351f5385d896d SHA512 366f07a79d72f6d61c2b7c43eaa938dd68dfb6b83599d1f6e02089b136fa82bec74b6d54d6e03e08a3c612d51c5596e3535cbc2b29f39b97a827b3e7c79826f0
+DIST microsoft.win32.registry.5.0.0.nupkg 354731 BLAKE2B 3e98fbda73990aa8d4a8fe584d317ae59804c3ac40fb42194e332826b5be57ab78e563111dd3278a8099b9cd890d4e37f1bb74e6ec4a443edf7c783ea0cceb0b SHA512 471e66567ce59cc86475aece7815d05261264ce114e0c1688ba2551dd51494901fa72dd7a8f74f8e8f0f3dba74af8595f177552f3c06abb4bfce76692197076e
+DIST mongodb.bson.signed.2.19.0.nupkg 831922 BLAKE2B a9e22e5e7dd6c7d3185b6e318650bdc27c9a480cc7c434209ec0f38a4a8201b348c7a0a887d421ec99d2166e3a28ed36887a9da0a6b4270d8eaad226bc2d4223 SHA512 9276b30ec8bf27be56794dd1ea1cfebc7c40781f6aee03eb56236cd4cbd45b5a8e4e4710c236371843bbf8a309c01eb1efbef9ece89869f30e614262b4e46fa9
+DIST netstandard.library.1.6.1.nupkg 17360 BLAKE2B 02badd3473451f83997f0b66d05f1541c741e65b9127b8b27ab391260df7939f235eb6648b11c7c11cc5400489ddf1cd26820b7bdf6fd9f1d8f0dfdfeef96acc SHA512 0972dc2dbb4925e896f62bce2e59d4e48639320ee38ad3016dcd485fbd6936a0ed08073ad5eef2a612dff05dfc390f3930fff9e79d87a06070eeb8128277cbd0
+DIST netstandard.library.2.0.0.nupkg 3143842 BLAKE2B 7e3fc865e7893fb531b21e2ca791b788af01481316e49a79c4676050c2b8ad413fd8a4ef9890557582ec8b9741c8aa01b080b8d2caa16e02bfff2a7b38777989 SHA512 e3d64072b9cd9f9e86209c06a22688ecda7070427c9a35327d2a9560824c0e1381ccf7bc1d21d2ef8b301761f4bfc7f38fba712df7188d2f4fe4f748aac4d0c7
+DIST netstandard.library.2.0.3.nupkg 3146139 BLAKE2B 311e5367398f76c74e78930bc2cd39e450a86bd8626311ded8d58bd84c94a8a84db3c11b2bc10f3eeba20a9d081fe7827981f702ad746b49ae3108c949ba1022 SHA512 e78f0cea69c14895b1b089644077dbce8631a626055d96522f4d29e061d8bfc3e48aa1419e74faf265b998612c03f721f5f0cef4690f824150a5689764dee601
+DIST newtonsoft.json.13.0.1.nupkg 2065787 BLAKE2B 000c38ce26a2a00bb25a9c1d6fb069ada521ff089bb624a5c1255b25767c10616cc51821524e7bc3d8b45eb8f8ee54c97454db1db9ae5e5c78eb6300a99f979d SHA512 83731b662eaf05379a23f8446ef47bbc111349dd4358b7bd8b51383fe9cf637e2fe62f78cea52a0d7bdd582dc6fbbb5837d4a7b1d53dcf37a0ae7473e21ee7b1
+DIST newtonsoft.json.13.0.3.nupkg 2441966 BLAKE2B 0c83cd81b9eb647fd9106c5b8b7af4ff6b35eae4fa24712f16cef1db070857b072b9e40a52ed006a82125c860dc48b89ac54224baa24bfdedfa573183e19d169 SHA512 99b252bc77d1c5f5f7b51fd4ea7d5653e9961d7b3061cf9207f8643a9c7cc9965eebc84d6467f2989bb4723b1a244915cc232a78f894e8b748ca882a7c89fb92
+DIST nil.js.2.5.1665.nupkg 1338937 BLAKE2B 7dd38082e8b83620880a39efb6be28ecfac42f4e2f9e40d5cf3354a802a4dd5c9f190ef7ab30cde9be89cdaf9a23de38199e8f162066751b2d01f5d28bd11879 SHA512 0d938e4b7d701a2fcd560cd0b6e7584b1d90a1069185f5f8183b77877d983a6d0738e2380f9cbfc549eee1ea15c74147ed09db71cc34a6061deef0e1b04c7eb2
+DIST nodatime.3.1.9.nupkg 836198 BLAKE2B 95680514aa414cb7917bee62db8de458b8e78a8190fb57e31e9c088bcc493d42767598f5fa2159e06428931af328e374159f8c8d7bc71ff7c8965effbcb1e2de SHA512 6e40853153a9f43a31fce0532d012af326482d303edd1583a32f56c2ca6354abbcaef57c3c090ade7aa7fbba27ca76d5e5e76931616695a78a4c463b8cc888d4
+DIST nuget.frameworks.6.5.0.nupkg 131644 BLAKE2B d8fbfaeb2ec4c269ecad319478b64da5ad9e44d9d82fab8b42400a15ea7d31627bcdb9f1af0f18b15dd8455ac4e92df1b25bc47808f465cd2e972ffa40333f1c SHA512 3f97626af018fa9b03f06751054be2c4e8dbd0d5329de21662b36f3336849838bf5af7d3721643faa6ea90935f836cf502661573953176cff33d4d829d953d56
+DIST nullable.1.3.1.nupkg 174895 BLAKE2B e64bd184b940fed76c9cd7d149a9d8d1121dee993b0d27b74bbe39ac83133ef7c691bf7a48d15877b25ba25d268950d561063dbf1f87a01dafd31f768ebaadb8 SHA512 0e5b8353fbc83d130ff38959f85f73faa0778960e112d8e98aeb29a17120e58cfe2e2e770cb5e9bcedec61d01c3f145dbf42f0e061824b8caa610cdfa00b54eb
+DIST nunit.3.13.3.nupkg 1307336 BLAKE2B 45475c312fe17bdc60d5999f29a81f64fd19bb125bced63a73eee9bf4f158920adc4bd2d97164954af624c5bd480a99d2f3da56797127acecac1e6d753754b12 SHA512 09dfca502d636c3123adf93331732db354e9e280935d1bbd7923d710f5b29adf82d41efc763e2ce8781dde01d81bbb21af168d897d5820a53c15a0f9bcf11f20
+DIST nunit3testadapter.4.5.0.nupkg 504560 BLAKE2B 8fb18358909ef9b5828b2b6c2a5bb1c234b2041cef7d57f22319a287bb187621c6e8e40e33b7e1e23f17b9e5ff01a2cc41f932d54e7affc935edf275f0d397d6 SHA512 be32fd672c3ab18bc948f7a6d9c41f79bdabc1fd8d2b6ad9106c14499b35a613ebf05a720959aae4507c2cc10adab45e79f48aa731c6506c716d300193d69154
+DIST perfolizer.0.2.1.nupkg 51987 BLAKE2B 2e01e7673ae420136e6194d89c406fca31af85b7f90b460a53ebbe0fef82c38ba3be3821d9e1a7b9b2bf5d117bb9f2f4f91767796bffb51ac14e5cb9f472d873 SHA512 9db50cdcf13a85737c275a0aa3dc4a98b97e7d23e7aca1c9b27df28e454b0d4587315bd62f7181dc03e0257a83d79c7af2e90733eafda70afe5a956c92c20a9a
+DIST polysharp.1.13.2.nupkg 73874 BLAKE2B 7ef9479a0d689d2c1d7c84a7afadce32eff5ac88faa89b83d9721df550f7013923c7fa04e010196107af7b05c60bef23254c56da549f758a6699e41f2c3347d2 SHA512 530f122877d122db505da399b7ff6550a595835d08ce49c71995fcf4ae2e0e6836e73264d950e423c7c7b13151005c83841288998525374ca5b732afd8196d58
+DIST runtime.any.system.collections.4.3.0.nupkg 107990 BLAKE2B 802e2ae919a4834150d825ac086d8f47e2185e31b60b45f3dbe5f63b1d714953d9faaa7d8fe4cc25a1ea8495c4f8fd925bb198eea0b67e594a8558238b18196c SHA512 9f8833176c139b71a58694ae401c5aec209a63227be07c7ab559bef772082bd1f6cc38ba2949cb1c8e5c5514ad9f4ff51859838dc2f28191f8bb7ae611a50239
+DIST runtime.any.system.diagnostics.tools.4.3.0.nupkg 43707 BLAKE2B 33d1c57eb4e50c06488da02ab2bb1b8dba9948026053e662986af05b74045c014e76815edbb588f10d6a904de22e4c50177f31f3fac36d159b9af361a4cb2b62 SHA512 bd257401e179d4b836a4a2f7236a0e303ae997d2453c946bf272036620a0b14e85e5f42c229332930a954655ab4cae359d191a3e3d9746df09535a651367764c
+DIST runtime.any.system.diagnostics.tracing.4.3.0.nupkg 49844 BLAKE2B e35998e1369bacc9fa90f74825e021c62b9c671ac9b7cfad4e9b455656bd40e968f348ba8943ed670c74c22bddb1c94ccf5058885233607e3c73a5c7d2a56688 SHA512 0b480d21e23c38965222be7fa1e1a0c7e444cebdf400d1db8d3ac609f893b82d78c5d8b271da61808b7b179dd6466a0090bd807fc2d35020f93a00f0213bb436
+DIST runtime.any.system.globalization.4.3.0.nupkg 43718 BLAKE2B d6f90f72f080afc0dbaaf487e2966d2569ec8dd51d573ba2afd1d705cc8c1f5d47ea77beb63ffe4fbc75dd6aae869a9b52e9e293b737ab32321420f635113d80 SHA512 3aac1a076212fae7d0ac81d2b5fdf216b064a1d890577307f89c9a4984c239838c3bdfac4dea052027de090704839319231eef49ce542f3e8bb2f85ba23d28dc
+DIST runtime.any.system.globalization.calendars.4.3.0.nupkg 43456 BLAKE2B 6453e347e796d426fe00afa28c182e53d764e58e52a21eea8d71661029608de957bcc9a6d9f073f2897d4b5d601f1e056a8d2334fd7cd708461148549454fbc9 SHA512 19053b502b7160af6f6b0bc5b334a8d124f77f6b4418993294fb485d0bb318cd6e97cdbda9bf8c9927366288413cad7209c9d8156a5425a6320c453a8804fb3d
+DIST runtime.any.system.io.4.3.0.nupkg 54553 BLAKE2B 0066bcf13ad4f769cced6704e3d5bce057138e35650699df8c84fb67aad1dd0f2b9ac62eec023fd1b2845e3e2038d1a56602e0cbe59795219b34b9b47d0aa880 SHA512 7e0d4a238322d434a19afc79ea988d3727c1687fdd5bcd1c4c39cb6201073caabb924cc201c70545d60acf8b94cde8b783d0c268743e040c357d100677e4c5ed
+DIST runtime.any.system.reflection.4.3.0.nupkg 43499 BLAKE2B dbfed54ebbe3c7814773dc60e586bc6442024c4565dc7579c2a3dea9ecb7fa6eb554bb7d8da7d2603fb455d38caffab9ce553e6cb82f8c6202700e2a3c80d6db SHA512 293d3dd8be87e1c5cd76ece4ed64ebb5ae6b50be95a39bee401eeed64355e34641905f8c14392fbc3acf8609f5d6fca731f39ce7607962eb5951f09516480015
+DIST runtime.any.system.reflection.extensions.4.3.0.nupkg 44123 BLAKE2B 77dd6ebec2090e9902b5fb9a0505d07f953baedf9ae30bb823f18867b0e4096af08175203efc2205a5439d53eb264b085615978c782969ac8e051b5c7ac8b516 SHA512 8de7a4c53fc0324e766bfec360342ee4a4b99a5975a9d61faab0a715ef71ff97aa83383a5a8affb354c02a4e2fbbb91e1b4ae6b282d2880108cb489f06aba500
+DIST runtime.any.system.reflection.primitives.4.3.0.nupkg 43106 BLAKE2B 9be774d083220f790c2710bf0add5f186c30da37cdab7abe6fd084e8b3e43926350cbde084ddbab58295b9bdfff34f63de6f24d72c9333c8f0dc0fd6b04b9ddb SHA512 a2f374276290ad9b799d3e49cd8fe7839c07b52f22894bcd77b9470841564319fb2ebbd7503e76feef42db4e8a362af8648cf0842a1cb0b5d9a60a58ef8b205e
+DIST runtime.any.system.resources.resourcemanager.4.3.0.nupkg 42939 BLAKE2B f0a3df9518b008cdfa62fa7b7aae3d419bdd8f77e7b400cd06f03bfd20d2ac7abf570b26c63ab32329cb47f7b9763db786e4e397ad958dd81e55d9ee8926bcd0 SHA512 39fab03cbade2b3848d62e137313530c06b37216e24cd58c70ed6ae54bdaf9d9613a3b410375ee167c87ff935a558b1f8766ee016b8b244fde99c38fcf42a49b
+DIST runtime.any.system.runtime.4.3.0.nupkg 55302 BLAKE2B 2de44260ec821b818b3c0cb3517be7ade5c16f29e0ced086460dfabc29479743947134214c037df83b9646724cad004f55c2f518cd4bc2079853f2f6e1cd70fe SHA512 bfee3c68312296860e5459af5e770c2e9fcd4ac134361fd569a9ce1e6574b9ae3978aad403f89639a4b5bac8ee5bb0ee1b8edb819e9a60f13ca5bd1812889bbd
+DIST runtime.any.system.runtime.handles.4.3.0.nupkg 30945 BLAKE2B 27f615ec387f75416d05d0d545f1f90bda9cd7ace1e7370cf935735ae7e6ecec9c8d54b0b267aa42c041981b7d4ff22603f8a12e18290e0f354e7656f4271d81 SHA512 95cdae2867a2182535bd0f4d01dc3eff70319dff044b070ab7791fa2bf8688a69b00a279ed569b7f0c5f3e26bf705303dc344ecf7d1ea014c579436d8e7b7389
+DIST runtime.any.system.runtime.interopservices.4.3.0.nupkg 71496 BLAKE2B 56aea647e26b0b6fe2e8786732100a20b66dcda904df76d0463c5cd048d842e9899be7482f819bd8d4a62dd6b8d9f2f8289efa99ef6c76d2cbfd0fabe6c5b36b SHA512 70eeb2469726d092bb95568e51ba5cfdd1cc07a9e65077e2b6dd5b7c8b164d4b45c749ef4a52f45928f63a27e8accdb83b861ea73c9ad3d42dc38e6afdbd0e8c
+DIST runtime.any.system.text.encoding.4.3.0.nupkg 43396 BLAKE2B 99ea1ca2da0e85683e240129d4adba28eee337d0a3ca937b61123d775255f738b27f00db4b08e1fa9242bf29ad916828552639ab3b55eea05e0f307bdb1bb58b SHA512 cbe6df98acd50e2251d3343620c408af56cfe7c1979277a8ec65b5eef093e93ed93c05980902a7152ed83302d5a625d7058921baa7f446c5e67194fa4c06f20a
+DIST runtime.any.system.text.encoding.extensions.4.3.0.nupkg 43296 BLAKE2B eb16dfc6e2fafe299fe49dcc5cd1d2d18180d18caee2b0e65fe5c75b6b4206260e18f4e2bf509fe1d2dc3366541bb38de219929db6e7e12f08b64b3a5d3abac3 SHA512 656aa8bd9d7e19534964ac7b8405615f00359779e322d4cfe1f18c132fec4a4f52c5588bfe61cec9966a9142a73315f5d2b9e5a7c524b418364f0322b20961c3
+DIST runtime.any.system.threading.tasks.4.3.0.nupkg 47940 BLAKE2B 950e0a58dcda7dcb15167d028380ae4ba1ac576b141d95ba8eda08e0d346a9e0452e64ceff1169959eb9f4435231466be209fd6e9d17f8dae05254443f0ffe1e SHA512 5f37a56f5d6c7fc198c7ef76b822b85284f9d7d1c06583c26a698793ade65da1b273d5fb03c20be1eb91a9c835f7122ad2775f4e51dffb2758fabac2a30f8c23
+DIST runtime.any.system.threading.timer.4.3.0.nupkg 43098 BLAKE2B ed9d0f7aa58934bb099bc750d7d433cf82a3b54369143ae4e3b27178213ae3d3c79c17463b2a4a2f1dc2e55a9130b7a8349c0832549a404b82c2b08b9016e9ce SHA512 c0a1fc3661b4e21f329f88a8d2cbf7152698427778add9f850476fc9abe7cdf9b86df79362d6df025f7e15d53f5eb7937d8ac49bdef13fd9eca973a284929fcf
+DIST runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg 44390 BLAKE2B 60483871cb9b81514f5b63f1f9ab9cf1c7a6ddb1d33a2a65608b47a2cf8cc3b7eee8e087250a1c49eb2893f36f29410e897387346fa4c3fc5c71e41046f13673 SHA512 b2cf809fe50c4b46bd6f2372265cd3059622550123afceb5dbb2410906c07a7f47bae4273584d29253d5e7a63a17c68c7ba0434608bbc8fd4d00e479b2f128ff
+DIST runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg 42827 BLAKE2B d2b79a9b83e0bdf569a5c333ba4f86ccb1d5b532d2e1cff3ba7bb597688ac78268a515be4c35a025c66727070100634a4bc946e02ae7b93061be968fab241bed SHA512 fd8e32d7d3e9a465202e391b0ab8b95e212900879bc4d8ac22954fd2d0f98fa579e9d25f88885ac2a4bf1eba755db940f8d131250a3ffec34dbe77431a379cab
+DIST runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg 42833 BLAKE2B be9197f3008b3dda19a45e5b5df2ce3604f58a98045a122aa77f082708de67ad953fba761c39ec419e945155ad74d5800638feb581e5d84424ba104f32541640 SHA512 4afac5cc1734330a6103880e790d639e825bfb1b34dbd42083762c47db5e5dab6c03efd16049ac03861d7d87746caed09c7534241d51b7341d47ba6af7e8dd31
+DIST runtime.native.system.4.3.0.nupkg 16854 BLAKE2B be46e3bd8781915572308ed7d4d8a0338a5c79b901a27c7e7c7fb7fb25788cf00968a40f96cc43b1202e56e5bbb2f87602d247295d8c98f2c143a0ad3a8d7664 SHA512 299c5a96fffdcaf1972e3e3d1c727837d18ac9e88cb79c09914f12ff1de7280dff10c9232a49a1c1d3ba7785a5cf76f28c9dce414f0a2a567688de7fd5331dc8
+DIST runtime.native.system.io.compression.4.3.0.nupkg 16918 BLAKE2B a158ea64e917d9117684a9974482172fa2450cbc3e41a2918cae1ccbe004988fa31d975c8f06fd9a3bd320bf9b5a0e329eed36491b928df6db242507162dc3b3 SHA512 bff1f0cac94327014bb07c1ebee06c216e6e4951b1ddaa0c8a753a4a0338be621fd15ec621503490dbca54a75809abc4f420669b33052b28d24d726ac79c9891
+DIST runtime.native.system.net.http.4.3.0.nupkg 16894 BLAKE2B c803da4a0e31f509b83e061c0dde9b990188418ee29efe9bb0b7f5873fb2b14990560b4191d78ad16e9ecd53ec701a4fdbec3ff66b88c3e49b5f41b57ae11df1 SHA512 ddd1e5b67545477f7c72b5883666de40e89efb0836d91e7a349e2f3d4ac05ce1125e6add3cb09c39cbdfe7ab7c5dc8fdaeaf6ac25acd92f6de3d8ce2d6db7918
+DIST runtime.native.system.security.cryptography.apple.4.3.0.nupkg 16967 BLAKE2B 4ce2983bbf2c2c6a30c2433151458e4790f43b289e9faecf38e07505e5519bc042f85a46a331ead5f31419971a5af3ad4ca5f18b477c4dfd7e4e7f33cb8a3eb4 SHA512 23c6a99b323cd71cdcb28c6faa71f099f69ff0972d5125607ae8bbc99ba7c08513571d14526e8c2805ab3a8b70d3d3a6dd76dfa193320393ecb05906ee91f37d
+DIST runtime.native.system.security.cryptography.openssl.4.3.0.nupkg 17048 BLAKE2B f3d49c45e52d4e317fd5750de6dbd6628b414d127ef38f9fb4e2ebe447b13a0f93f38c91850c9df4c0a6a3fa738f58daf2c440827bcf7c7d3436a8174b5d212d SHA512 ee5d047908b99b776ff9bb54856454b24b09a0f9271b127239543b1f5faa3381a032d9eeb4d813d01b5a4b7d183b6a16250f159fdc450d5314a7eace1550bea3
+DIST runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg 44200 BLAKE2B 30ee247fc53f9de0147a5c5666bcfbfb674ebf03ceaa4ea3c73671154caa6ccee2c9254c0fca588e9a21f98e27ad86f387255b554ce37d7e36f8a69502049e71 SHA512 81bdb93c1c86c560343df6cc367499fb2a01a9b3016617be416874a23c4355a8d95c7be34f175510f3fdea4872302a87c8efab98a328dfa39422db520c3f291c
+DIST runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg 44118 BLAKE2B f89226f71e042a6bf70a45db59dddf06fb5083da2ccc1cbc17e8b3381a1462c36e0ddee7cb38a2003ccd07ec4f2a987a9e69ab143054a3a106ec314e3ac4947e SHA512 6de9544b4da49f127680cf5b3b4afea96bfcac3293038a1b0a12eea0ad60be368af31ee1dfd66d48d458b40200738c04aa0c71adcc54ae2dddbea2cd50d6f28d
+DIST runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple.4.3.0.nupkg 19581 BLAKE2B b8bbe11bed19360bb221715acff84d41f7f6cf871e66b09517a3932ce6a4ff454d548dd58c75561a18dcd6395f4ad11eb1e5106330fb702330b8ccee6618d8d1 SHA512 9929942914071e0ea0944a952ff9ad3c296be39e719a2f4bb3eac298d41829b4468b332fba880ebe242871a02145e1c26dc7660021375d12c7efcae4d200278a
+DIST runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg 37682 BLAKE2B 0fd5229c9394741456079a6eed8efb2c99e4211cb7be1873882ae6708c5e87a4f5116a9cdd6fda005896d2af4237779f1bd3c2332a1fcc993690e2ef6f5d889c SHA512 61da1667a5dd1e53a5d19fbe90abbfe332d84fe755fb811a080668a47d41a97db44539e3174fd1d2a0770ff1bd83afa68c82ce06df5775da65a6054ccc12c4be
+DIST runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg 42668 BLAKE2B be90c86ebb383a1d7e037d0a0b24aeb8a7e9974388ded41964a82a2d2a4dce0e62feae830fe7dcd29c0fa19584c0b15281f1959d326fd6b7e17c6e70bf125c1b SHA512 e65a6a1f1928cfb760c395a399542dc7f9087399c53874376604504ae60abd2da24ed735ebd148d335000a5e35c8108ea55404685e902df392eac2e8d38fb665
+DIST runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg 43118 BLAKE2B 242cc78b2b335d3c15e798c81cb19654b44ecb79e29e6babdc404bcbffd1691b07e0640143cde2d03a0640d6e1851228188eb91cc6b8b9f8759d13e8aa258e52 SHA512 c9f219515e268cf40e16b135bd64cba95c35e866dd9bc34954159562314d01d2f9ea7eb8b0db94acf6bdac83d651d90bad7890cb657ffe40fa3440ec662c9944
+DIST runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg 42901 BLAKE2B c62ae072f63c79e2fbd080688852a545df160e6be41c68365508d6bc96c85927feb6859b32c2d8450b07058c2955aa94d4763600f12efdc76fb4d161081cdc81 SHA512 4981b2d7a106703b185e176ad35bfda149156f3b752778fa71c56b3686407765fd2b6625de352bd563aac1e1e8769d7886cc59a0d5d0bfb41ed60277360beb81
+DIST runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg 42939 BLAKE2B f166d9c0b266e7c7fa6d6ac61201a755ddca3ca6d3f13e52e4a04575c7143af5bfda9929d3701ac7cacb0e61d8debedae4419fc202d8cef73c8c1496776ffe28 SHA512 5dbe6bc007a9b46491e5299602291f5dbf8cc8d51e6c1b08db2fa0efd365990b41b6e181ed6bf82e873a659396427bc0e33e85b47d645d273fef8bf8ec643631
+DIST runtime.unix.microsoft.win32.primitives.4.3.0.nupkg 31929 BLAKE2B 18ff9482cae737a7098f352f59948119b4f9982eefc1d835245c5336ee6fecdb7fdb92445d0c1fefd4e4c7cc4e64fec3d317e8b5dc160320781a3f820cf34da7 SHA512 93e6d3db61f9c2ca2048f25990dda92acd5ec74561e0c776d2c6dd8d1d55128f2c953f33d6832fb6a72bd9edca304a2551085bdeafe6e18af87619c9ba943c32
+DIST runtime.unix.system.console.4.3.0.nupkg 62174 BLAKE2B 5e0394b879ea85a36c22948a006d41d6d77e2283139265ce5fa6089faf209e447a90a02965dd576c20c28ead4faa232eaf4073343be69c70f4913a3b52f340ab SHA512 7c5cbda7d12315fff6b1e036d55ea27140de8b849f1a9705fd2710a00a2b70f06f534eb0d3e3c8ffb019e1a47d96c559ac61d5fc9d840e48f6e56542fdaccb83
+DIST runtime.unix.system.diagnostics.debug.4.3.0.nupkg 38808 BLAKE2B c7bc02cd3fcc7f547c9d1786fd12da492bea65cf9e01a385e40366614c6e90bbb2a46103096ab491ef6765af5f5ffbad9506f0bae8e68b6d33c40f7672bba0e9 SHA512 a8ce331953b1f4424aa7f4b6dfedfce9ad138940bc92f332de2bc6d05185830ec6eb832e752f62eaf425f749caadd4ea1789121cb7ed79740fa5868eba55c838
+DIST runtime.unix.system.io.filesystem.4.3.0.nupkg 62460 BLAKE2B 6431b1bbf73d43f5d49afcfdac3f4e6a21b4d6c86db7a99f339d97c86fd9f98fe64d2a4873350076a42d1f7faf479fe744220d14d1badaa56370e1c615afb4de SHA512 6d4c80aceffac60e1560fda34c5984bbfa2e1bd106bde2c6d3540905cc30c58e6f5f2eaf5703cef5e68e3d25a4b97982193b2db8130a50c622a498e43eb9bdca
+DIST runtime.unix.system.net.primitives.4.3.0.nupkg 125060 BLAKE2B 76f760a4fe1f14bf65ecad43c73f51b819cae80b259d32cc9d5af74cd559dfc86267ba58cf15c577de697c9e1add532da380b267bff5487a2974904fba1e2813 SHA512 c2a0ecf5c72b226b4776eb6281f00267827d6086a0ad758ebf6e6c64a1c148d2056fe99c87ab4207add5fa67f1db73dd1ed3dca81141fc896be6b6e98795c97e
+DIST runtime.unix.system.net.sockets.4.3.0.nupkg 105673 BLAKE2B 06119cfdac3ce590b2f12f5587c75b6799fa876d7def559a78a1ccf53e34e6e1bf79410bfd676b04f1ab3f34a887eb919078a55cf79dc75faa75fc62094c2cbe SHA512 31b62be088315ead04d89f452a6c49a656b88f0668f7dadb2790511675d48705e01c9df24dbed3a0095157875c208ab6e6b5b6afc82bac13e4d6cdd3026f8424
+DIST runtime.unix.system.private.uri.4.3.0.nupkg 75969 BLAKE2B 82611545be3eba44ccfbef1f104e9b5afade845fd3b30c6cb40171368330f9d4bb2ad8752e415aa3b1678ec140c40f8e72cd4cc3731f42ca64016c1a1dce70cf SHA512 203ebe272791d79ab0c40afe9d0543852ee91b9fb4ae5bc15524d97728bc8bc9d7e0cbcf65d1fab8cfb0aa7a4ae37e7938933eef127aa5ea46f60e57b6ad2d91
+DIST runtime.unix.system.runtime.extensions.4.3.0.nupkg 54075 BLAKE2B f81d86cc15c63aa0b4a3d03546a07649587af7a0285af0de4123734e719fc023fa4227b7abb18307d4fc060e2952c157ec72b3bb85d49ab8508d8167b1aeedd7 SHA512 54b81784c08e934389c59e6e155af6b1855e4bbc41678b01a702c94e6daba87c6ddfd16fe9e2cb61f3097bfa4950dbc37781454d027ce5ba6c50a393cc91b888
+DIST sharpziplib.1.4.0.nupkg 726743 BLAKE2B fe43fa0039f474d60804dce1af24e9100fd9b0256c15fa51e5c4e04cb2601100fb2dce2aee9080e4bd63907718bea601d2a81acdaa67d91092110ec555722341 SHA512 799a95729a1e177f2274d8356f5ab75f6a848bdfdb9a5cc3eec31779d86984c1af6d20759902fc745ed3c83e3c702a18e93f08be19409fc35da54da4d4477db4
+DIST system.appcontext.4.3.0.nupkg 147030 BLAKE2B fafd6d050e77a265cf41c6d00a3ab3d8db47f2258e10a6cb556031ab183a01a508a986bb495b68c5e8610c05b92b2f3c7b0718f68f508111fd262291684f84c3 SHA512 0d6ea63006304708feae2cc0590d2cdd99327b682210822bb2803ac842fdf4d8d57170d7947c006eec4b5687c942768478a7ec109745472f3946d230732483e8
+DIST system.buffers.4.3.0.nupkg 35171 BLAKE2B 3b274a048ce14845ca957019b3670db00338972f6e11279e47f59ca6b4326aaecab1d11317694ed98e8a27f3de7ef6f90de94d4711ab224f805388d468728392 SHA512 3dcbf66f6edf7e9bb4f698cddcf81b9d059811d84e05c7ac618b2640efed642f089b0ef84c927c5f58feffe43bb96a6bcf4fec422529b82998b18d70e4648cbe
+DIST system.buffers.4.5.1.nupkg 93737 BLAKE2B e846885f9ace79f30bf7698a96ff3277a45fc2988a48cddba1862e23650ce55b06dcc6c1bcc29e08cf5380c9700dfcc15964f7263aeb11c737306d27963b34da SHA512 80da6158e55b9bcf7e0b5e6379b9cf45a632914f037b53c5bf5609576e3cd7821f7861956b73d74470d2d0c2e56dd235a5ef4ca6ffe7e192b820dc2d023aaff2
+DIST system.codedom.5.0.0.nupkg 281008 BLAKE2B ba44d0ee1856cde7487caef684e007ba48be61d4e061b0d3e1a524127823bce1e54e3d4a539f66964edbc93efdf9f5be8a46cbff7ee0868dc64333a2aa72e248 SHA512 150a20dd314a4cf96ac538a48e67b529a8453d17164646bcce9dc04a46d923e12eebea9583746ad66d0f400705118383992ac9cf7ba31563b886180913527438
+DIST system.collections.4.3.0.nupkg 810001 BLAKE2B 0079d5834bb3857c002cc686313646895b47be1079e10cf365ce9e67c05f14c2e70e782b122b07a7cd9d5090b57334d0cb2336503cf5059cdbafeb3ef3cc8220 SHA512 ca7b952d30da1487ca4e43aa522817b5ee26e7e10537062810112fc67a7512766c39d402f394bb0426d1108bbcf9bbb64e9ce1f5af736ef215a51a35e55f051b
+DIST system.collections.concurrent.4.3.0.nupkg 502676 BLAKE2B 0d98ffad345254596133bad8a487bb91bd235f2a757573c3ab7999184fac6685b4ec33316bee9b4a4e588ba96aa745a681077cb2e2d2b0a7f5cc113aa75efc2c SHA512 35c1aa3e636216fe5dc2ebeb504293e69ad6355d26e22453af060af94d8279faa93bdcfe127aecb0b316c7e7d9185bcac72e994984efdb7f2d8515f1f55cf682
+DIST system.collections.immutable.5.0.0.nupkg 623075 BLAKE2B 14724fcb8654455184f8f16f8ac56b7b3c995e632af36e91f307331620b4e9f515a13bc4625d898fbb4b57ff9f017b43cb91ab40b0cebcd7d5eefe32979afa4a SHA512 726f8db7d179714cf0efeb0fc02fcebe7b4755762902e391e77cf78671dd5d5f364c7cf4ce3545b51cc7f37327d12d1500ba19f4b934f0e8bb69a6a347c0bbfd
+DIST system.console.4.3.0.nupkg 102397 BLAKE2B c21bc97bbcda781257473768239f775a16fcc399e933df35a5f5c00f75c5088462ea01ecec2d711a803581d5499c8cb15518e790d6c9e74b15a36c3a1f237d19 SHA512 a08a684a583c9b3278ce32be1007dae495f9d87254666392f794ef1203079f333cd7d388c28944ffa36fb49f0c8bb21f42c70f6e1d7c1c03920df6d0d1130c82
+DIST system.diagnostics.debug.4.3.0.nupkg 149774 BLAKE2B bdb6d5ee3b8ca4f28b241b098281b7d2957d0996f9345aa086a54b1a981822962e5cc319687849ee52445db47b439b6cd4e99a4c71595f6227f78160aa31724b SHA512 6c58fe1e3618e7f87684c1cea7efc7d3b19bd7df8d2535f9e27b62c52f441f11b67b21225d6bcd62f409e02c2a16231c4db19be33b8fab5b9b0a5c8660ddab24
+DIST system.diagnostics.diagnosticsource.4.3.0.nupkg 120125 BLAKE2B 33f203d8ffc39e0c38599eee625053beae160a0aebe6fbfaaafdc85b570c7b82e3aae281092014e90d10fad7083f37afbb546ad5a0c74a94843ae9b1e9fe85f1 SHA512 8f54df5ff382b6650e2e10d1043863a24bf49ff0714e779e837cd7073e46fb2635bcfcdcf99d7c4a9d95f35ebffd86ab0ca068305f4b245072e08303b917b34d
+DIST system.diagnostics.tools.4.3.0.nupkg 67227 BLAKE2B f03928755ec84fd360b2a8a0de3f39e57322cafc4be9e7fa6b7a67d606de9c0869688f62f6b7c9a2ee2915c424ab20779ac87ff510637a9bba740ba0361e6041 SHA512 164d6977e721cbceb44ede7bfd75b03b8d9771e0426aefa5d40c71867e964092fdc6a6808bcbc5559ed73ec2c532ca657d6476af79a49ca3ad879b8366f13d90
+DIST system.diagnostics.tracing.4.3.0.nupkg 581864 BLAKE2B e09e616dff7879932b358746a62b530499aa61726c4490c56d2d7a0bf888db5b42d75d89cc5befc9fdb6af231beff998b6b243c2b2a08084da089709e0c82a75 SHA512 d0a5d30e261cd45b7dfab02b7ffbd76b64e0c9b892ed826ea61481c983c0208b05b69981cd79e91cd4e5811e1cd4c3cea06a1afce05811ece58be5e4c20169ea
+DIST system.globalization.4.3.0.nupkg 589136 BLAKE2B 7b07f9b68f0744ddcfa3f0db6190c1a0696c2f89f8c5e92922ac20fc4155e22d97e7191bf7866c9b58acec056bff08531b0adacccaec7d4301e1d4b149fa511f SHA512 823d2ba308cb073b40a3146ecccd0d9fd7b1615ac3fbefb16f73d873e411fd81c3bdc87df206d3dc7e2f14c9cd53aafca684a3570c25471280aada8de805ece2
+DIST system.globalization.calendars.4.3.0.nupkg 177689 BLAKE2B b70b5d9e545835e5a3fe4c703b2bd7c857968ba1fcae5299c9c41d550338914f2ad9d168948018fa7da7271d62a3b9d2ad1e696d334ee7d3fdaefd25395aa64c SHA512 e97190231402b393774b925efc02a2bfa41d1d117a17fb87da6e399f5234546962767e9cd8f39970efa408e4f453cd1e6751a2a61e366bc97406e1b0b8a4be86
+DIST system.globalization.extensions.4.3.0.nupkg 142949 BLAKE2B 4eb77d4ce5af01136145ea867e9d6cc81181b36a178ff487905dd7d7c6a4986c518675af68eac0e854347503e11513056173a93e6803683f3fddee7677b88e05 SHA512 a4d360003f95e0c31edf39c0b91e1c73850a60ac5d0032b17db888a3c7d7134cef9acd97219d14174ad213b7c044f49b364cc5720073ebfcb6e1bf6e4ec24ce5
+DIST system.io.4.3.0.nupkg 703652 BLAKE2B b5b2627ace4cc49f35a0caf5c064c4c8262ff0fe3df79bb1bd3529b3e306c8b1e77ea9e5948de343ee786a50e12be822ca89b5ea3f16347b9c0bce6bd8071127 SHA512 bfca5a21e3e1986b9765b13dc6fbcd6f8b89e4c1383855d1d7ef256bf1bf2f51889769db5365859dd7606fbf6454add4daeb3bab56994ffb98fd1d03fe8bc1e6
+DIST system.io.compression.4.3.0.nupkg 485197 BLAKE2B d813f11d1eafa9c5bae049c2e6d7081edbb264520e253bc03441fbc1ea62b75760dd31c038a5a376d41df59c8be55fe1085d7dc012f611731b72040c8c41430b SHA512 f540ee51a3bb6941cdfbaace9a9738d7f7986a2f94770db61f45a88ecb7ef36b571d4c07417dc89cdbe9655a262b7cc599b0a4b78effea91819e186121b44807
+DIST system.io.compression.zipfile.4.3.0.nupkg 113746 BLAKE2B 0622b6c3b6ce841b3c3c1df620ffb68f995ac02d7540d7128ef2831cf08deaa60aaf46059cee0c98624ed5402c8d746128ecfd674acb90ed665d834eb879960b SHA512 1860634672767f818f0192ec2b2750693f0d39390f3b7d400cc6fd4f6e74a5cbed27bf49e5980ec85ff3e161c30f6190f700e339a1040c1699b87eb4aa7b6792
+DIST system.io.filesystem.4.3.0.nupkg 274316 BLAKE2B 4ba513b503cfcad068c23a82423f9900c648fa2bc4fc16555bec717b6c5cfeac6c7708b28009c7a089f80c77ff744f573d72e4dcbeaa14acafb9fd3e8b5100d5 SHA512 4fb581d6f85b9529a091a0e974633752aa39e50b2be6c8a9e5eca8c2bc225cea07064ccec7778f77df9987deebf4dccec050b1a97edac0ee9107142e6a8ee7ee
+DIST system.io.filesystem.primitives.4.3.0.nupkg 94996 BLAKE2B 95fa6178164a7cc6a29c5a3fc55e415419c433b3b74abbcfa4fa5ae1bef40141b9515076b6869e8ed771b0ba6800bdb2fe6fa5d1f773ce52c40753efc0a82be9 SHA512 5885953d09582cffd973d23a21a929064d72f2bc9518af3732d671fffcc628a8b686f1d058a001ee6a114023b3e48b3fc0d0e4b22629a1c7f715e03795ee9ee5
+DIST system.linq.4.3.0.nupkg 512550 BLAKE2B cc6cbb532575bfcfde7ac897970dcd49067186547108f46449f9f819e7910ad32496df3663d4db8eff48224b8ee95b27f7bb442bb477ad47f44da2f6fa893078 SHA512 eacc7fe1ec526f405f5ba0e671f616d0e5be9c1828d543a9e2f8c65df4099d6b2ea4a9fa2cdae4f34b170dc37142f60e267e137ca39f350281ed70d2dc620458
+DIST system.linq.expressions.4.3.0.nupkg 1928029 BLAKE2B 1add363cc651e551fd7abcb797252785e2617159b197ec081de605d7c7dd829e7653e7693495a87909f46575b6619e95fef6e3132532110b3c1e74157ff096a6 SHA512 61b90ef9ae6f779fbc8a7b6483ee8f5449cdd05c81b05235f70447e656a73b2aab7c341784b999f7532374744a72e2c3a5cd13800ea23417fac32ccfae5cde6d
+DIST system.management.5.0.0.nupkg 265788 BLAKE2B 9080ac288d0b9591b0799f54b56becd9c3394e6911fda39283764db911ad302f9b6f2c9bfb49de2d8e1cd057e3bc58c08fe2979982a1446f9810c6518b0f6500 SHA512 6bf4b8e2e0836b03f5ff9fa8f2bb1bb9b1d1d46985c8b0bfeda05fa87e030f7a3c2c064dba317a1e280a57fe729739d2a674a62c73dad2e2cc0daf3e8775fd02
+DIST system.memory.4.5.1.nupkg 195808 BLAKE2B 15be57951bb2031a33315090878122d12add7d3eaabf2f3e7965dbd9d859df6030e36b87f70f1c7435e6404a908039c26d3baead8e4dfb064f5ac023c141f5dd SHA512 a289e72d03d90060f6d6ab4d306e04b5599b60e2279368d5eccfa0d74f01e8e1ce6faed939a5a703f2bc3f9a10eae2bdc312b30758845d20a140e8b6b1c28ea8
+DIST system.memory.4.5.3.nupkg 154054 BLAKE2B 0f75d5365d96b42949e53ae9498affce97ba074d6f404d30bec043e5def8cc39af05ccedffc7e9b13af4200336a9737cf44c85aa2d58069a64b1dc80537a6eac SHA512 70fce15a52cc76aacbae05c8e89e2e398d1d32903f63f640a7dd4a3e5747f2c7a887d4bfd22f2a2e40274906cf91648dfd169734fb7c74eb9b4f72614084e1db
+DIST system.memory.4.5.4.nupkg 205467 BLAKE2B c5b66e68917fc14d5b94aef9aef53087756c59473a2580448f20233e559b3ac9d691b2c063d129083593a1b610252acb01016ef078ed21b390615bf5a6e04dc0 SHA512 8ece5491eb0fe332bc190f40cf76b3beee0c5f996325034861be221fdb0ff02fd59e4f7020b3c4a1f29a457f76ff76c4c95d46d38555e4f48c7a3bf172d87966
+DIST system.net.http.4.3.0.nupkg 1371903 BLAKE2B c0b56398662d8f149eba439ce16ec254bd5a64cee0faf251af07d89ec130953d8865d537b52b432ee19df9ed7405318119d301743bf84f98179c1cd7e6615731 SHA512 e8105ce8151aee95852fb29423f73cc1bd7c2286d36474ed7102a4b31248e45f434434a176d3af0442738398c96c5753965ee0444fb9c97525abbd9c88b13e41
+DIST system.net.nameresolution.4.3.0.nupkg 177639 BLAKE2B c3d666f33577682ba43292ccca908cbd81971ab53eaeb904438a378997903e80d5d3789b3c76db6c50f0411fb17b227db973bc09eadfc0f98ebed88ac0209057 SHA512 40d39e131fe7a392e58e9f58b516b5db88383de91c05b771f5e509acf46cc874271e90623d327ab039003ab8f2714144694390261278de324e1aee228a828ab4
+DIST system.net.primitives.4.3.0.nupkg 769347 BLAKE2B 070d9aaecf9c4ec485850954c425d6d6af23fdb8a50fe40c305657654fcaf58d366f29f62bca6ae32c8604dfd7f5217f822ebe03c68446d4fbc4ee7e44b07852 SHA512 9f7fdece330a81f3312ea7c804927852413bee2c929f3066b736993803df47cc0692fbca236c222bf19dc8f59b42f54f2a4c00da9a4d624e458da5874d127ce6
+DIST system.net.sockets.4.3.0.nupkg 135695 BLAKE2B 17f58a8445cae9ef2ad17bbd7dda092e66bc8be07d767e971fabf14da98f549924cd6a7abf54e8a5a7557710612a151f2f27dd35e559b81f2f06dd71fd43c9f7 SHA512 e32ed9518e9630e99edcf1963c3d0e7047ea8252853c9260eb5403a4206170ae28fd27eb239f39da4d2db766f830b3ebdc9e4da2e697be20241d928082200955
+DIST system.numerics.vectors.4.4.0.nupkg 337043 BLAKE2B 94cca7283873edd9199d843db78e23bc5815de039c2aaeb67ba3cbe4cb5e161eab27b89cfbeeb437f0a9d235b48e86a5b31f53306a7e7a2a38feb28d6e5e523c SHA512 81d46b509b3546b8d6dc9079a7cda162303aef1a1e14bbe1d127522168d388df2a13195b16dfd1b57c1560d73906e909fdff4e2b34104ba81a9336c97874ea1e
+DIST system.numerics.vectors.4.5.0.nupkg 382792 BLAKE2B a97284a76a6729052d3a127e1875e2012ae5b90a40533783dc799b543d44cc084035374799e9e1b894083cb61f2639711f18b76ff31145140519a9674dd9d2aa SHA512 9c04ec0530f608aaf801837a791b33857e2ca6d2265a6049c01fd4e972825967e709cad3070f174829b7400f608e9a641d3afc3a45d4636d4c47dd43dd0657b3
+DIST system.objectmodel.4.3.0.nupkg 321655 BLAKE2B bd1110665321034ec27635077ba7f9f1a18cf2f813d7a99f511a91fb6c95827b3b10108bf8a5b4a9e32685a8754e1eeca7d1afb2dcd02ad5ce3ef9db61fcc114 SHA512 409bca3d2139bd1d003c711400ba2db5e576bb54d593aa541ec3576e7b2029b60159ab1c5b2c4e7389267b1b95ebcd8c2f064dc6e1f53e693aacb1737f066123
+DIST system.private.uri.4.3.0.nupkg 16869 BLAKE2B 7a407e16b35e4a5f405029e80749f7ae1c907707d9f72657016667ccf1255463011497b09b7d9e23fb3ccfd4de508dea48b33b13267775619f63134897e54c61 SHA512 5989a57ef273b689a663e961a0fe09d9b1d88438e5478358efc4b165de3b2674fa9579c301ce12d2d2fa5f33295f2acb42eceea2ebebf70c733da6364ceaf94d
+DIST system.reflection.4.3.0.nupkg 700821 BLAKE2B a6aaf054f27be81f1a8251241deaddd6d35aa9ff1cd1b35a65c75201c3305ca0481d8f7a6de52a85736b0477332c404573db300f324e6301365f14fd59784225 SHA512 2325b67ed60dce0302807064f25422cbe1b7fb275b539b44fba3c4a8ce4926f21d78529a5c34b31c03d80d110f7bace9af9589d457266beac014220057af8333
+DIST system.reflection.emit.4.3.0.nupkg 219534 BLAKE2B dddeaced247da3ced46ad776c3560d886db0581d10d2a32df3827c275a895f474933c528b637439831e7f69cabf70bcec544ed1d16069ef11cb047126f2c3b57 SHA512 be45051467a36ab965410f112a475fb81510a5595347d1cc0c46b028e0436a339218dd3c073f048c2d338b67dc13b45742290b6c46f55982503f74a8f2698818
+DIST system.reflection.emit.4.7.0.nupkg 406832 BLAKE2B 7c523b9105ba23b7ae5cebe4661641a79000981b7530f05664d1e0b87195d3eb6c119d2850b2e416de97ccb1a678dc151e5df7e7665f293a7389422efead6f94 SHA512 10c0325b993a31d993c58adeee5f1c6fd7ff66173bf22bf0d295d29bfb30f0e01ec3042aceac5e245bb62d8fbfed63ce02adf74e04cf55811e0cf3d541b897a9
+DIST system.reflection.emit.ilgeneration.4.3.0.nupkg 124567 BLAKE2B 4495327d565f0ef5935bb2ff6f71e25132abda4c8ffeb51195bd4b96d1d5c885e344519287dbb22d28957f0fbad2af0cc977c2fe4650206f7b72ee5dec45a08c SHA512 e9be5f62bf64b1947a49857337306a5d0980686b58d665989e94006ab04aa7e0bbf4d8543d1b57d5bb38079052f275f339b73054a7357e4fa357208a0ac85d69
+DIST system.reflection.emit.lightweight.4.3.0.nupkg 84426 BLAKE2B 370e3b74a769e2a8043287ae93804d726ae0704440e3fea9cf5fd1ee46222cdd293d35896349719e87123ac24b05042665148023185ffb89ab8e00820820590c SHA512 ad58af07296bd084907a089f92026fa3898b764eb9d6a07c9414b550a83ac60456f32a34127c29bb93a9633fb07ba9fd828f7b41a31dce5ff019a7cf1ab29435
+DIST system.reflection.emit.lightweight.4.7.0.nupkg 155693 BLAKE2B 86a72eb6666223b2753d6193f0c5a46d227ab6e305d917492b4153f886dd27742d5127dcb7723bbef9384260813e63b8c17264fe4301aaa25d66e924322331e0 SHA512 065af503d56a93e654927964eac16b84e729baac786e9ee4ab065f8709269a1cfef5d80e97c719f429d25db6a56cbf6b7c79a2e470c5c9dc50b1fa339763ef8d
+DIST system.reflection.extensions.4.3.0.nupkg 99740 BLAKE2B 15554874193bbddbb2a7a769a239923ea039b117d9f8ba5ae634b82fdc8f04fcdc871bdf328b0b4e418c9f0c987dfd71546c778a99453ba6b5e754e6939b3c28 SHA512 06cfd992c8d7fd9ab6432ab02be981a01b6558285a6e26a7825a064d4efcce08d9e7344f03fa19b033a2459d42b0b80e8c1400ce39b47a1752869ab8825b0475
+DIST system.reflection.metadata.1.6.0.nupkg 852113 BLAKE2B 4d15704a1fe00501c1bd8c945d02cd2e2d77c12ce86aa628edd18383838c9dbbfc449b8026707bb1ac570e55369e988aa6068f57acdea28f519bd3bdfd5b9304 SHA512 f5227666edc6bb1da78b8a8e86a68e9bd647caa2ec6a1580c14a4a5e1fe5cfde3bdaf0d8c23dc210c405a55f83ceb6add1a9adab149dc065b38cfddc9b01ba20
+DIST system.reflection.metadata.5.0.0.nupkg 1006081 BLAKE2B 2b10bc13e07d904270e3661435d372008ab9aee0c0dfd409251867273c3e9541392413018306900b0d9c114843756828c946801f65912e27f7a3d351c9061c52 SHA512 3b74e3e491eee87a8410f5b9a2e556233d9919267f6a054da7a4c9c34b6916b07c77ea9ef8cceb5b7c3361e7394e502cc3c9a09247c6a06bb58509e82554e527
+DIST system.reflection.primitives.4.3.0.nupkg 281679 BLAKE2B 36dc0fb5e7a6927ab2f54bc9ccb2e032cce0284c3aa9b83cf2ded8bab5fc7918553b06b16bef69161a7d9a0548b3e9159ab582533578cd28a661225559bd2b1d SHA512 d4b9cc905f5a5cab900206338e889068bf66c18ee863a29d68eff3cde2ccca734112a2a851f2e2e5388a21ec28005fa19317c64d9b23923b05d6344be2e49eaa
+DIST system.reflection.typeextensions.4.3.0.nupkg 187842 BLAKE2B 2cec73bd787cc6b4bee793782ff0db98aaced7e7a0645cefb60e6e47d353e1959eed7a48db24e9c7ea6ad7b87648c11c3588d43028c4e0d14c695c38356943a2 SHA512 68ae81a635b9af2aee9fc8fc8fe7da0356ef4da4eb32f81a89fb75613b96714e8f1a1f4c12bd0d335efbb03408cc7a744314837f13564d5fb262ca272055677f
+DIST system.resources.resourcemanager.4.3.0.nupkg 85908 BLAKE2B 002ba25bb953e5a9162214338b50abcecfd8183c68c7b5de8bbc1780e57322b6aa225e13436ffda54b4013fb77540df7428d8c3c89c1a21622ab124d8ca174cd SHA512 9067db28f1c48d08fc52ad40a608f88c14ad9112646741ddaf426fdfe68bed61ab01954b179461e61d187371600c1e6e5c36c788993f5a105a64f5702a6b81d4
+DIST system.runtime.4.3.0.nupkg 7263712 BLAKE2B 6cf2c6704f2a5639bffe2db645fd6ac935e341a5d50f1be97969bfba15e7fd93c94a2ddbb75a3538cefc05142fd72331185ca7ed175141102e8f977649f3bf1f SHA512 92ab2249f08073cfafdc4cfbd7db36d651ad871b8d8ba961006982187de374bf4a30af93f15f73b05af343f7a70cbd484b04d646570587636ae72171eb0714fb
+DIST system.runtime.4.3.1.nupkg 7272877 BLAKE2B 79c5ea342983b39bf810e499755724089453ac86ae2485757ba1a2a2e96e864ebb5e2ee8c39999263ff7149ba93ff7a212d892c35cc2623f971916be007cf7ff SHA512 025ebd98f0dfcdd0fe6ca18ad8701f07e94d14e1c5aa792accd9d42669af51ed7fa843caf4cec48934f8ceec9c2833f2edebf5d71cfc5d580958a3f4866ecd20
+DIST system.runtime.compilerservices.unsafe.4.5.2.nupkg 104723 BLAKE2B 30ab5b99a60b0a207bb4306ebcd483882af1721025f61a63dc3d654f060a42ec23e3dcac10623665a14e69ade86189ba0138deb199f63fb8f5124c3581e63c90 SHA512 84c91d5b192cca942515707b25a9907a00ec73110040ee051ddfe5c3fce549953d7598008a3eb9c630ab5deaf5f37c2fa0d033262739cf38e3da873dfdd9685a
+DIST system.runtime.compilerservices.unsafe.4.5.3.nupkg 102160 BLAKE2B a86cea1017d251d3cd271eff0be90ce43ca0becd8b0cd37215aba847c00369414de1d34df318e2554f8989fa48ce0f5bf61e0404fd97b476eb0fe0bf5f10579d SHA512 765d87d36a7b7415dee5b6cbd3a08ead9762915fbfacfad8a205a78d4a187cec6677da2407f7f7c2d1b55fe9f8c0257925c9b0bc193d402972c323979678baab
+DIST system.runtime.compilerservices.unsafe.4.7.1.nupkg 106815 BLAKE2B 75dc584026b4bc589ec1bdaeb7ee8933a147391f7ecb71e69c9397d517368f5c1acb22d1a1a2f10a853baaf9fb659b59d5827baf70ce882792ce93cc3be09b13 SHA512 c8d781feacf79f3effc1c231a84beb0fa1e869fbeaa1d94ba3e84db75afe915e045c39ce059331fe48956534dcebdcd54fd97ab199e6a090bddc5250e208ee52
+DIST system.runtime.compilerservices.unsafe.5.0.0.nupkg 130329 BLAKE2B 661dc87cbbfceb67d13b0bdbcf3a035609213e4b99afac13ac773128b4a4428272e84f17e70fc84218fe1569f9ea9f28152c239713580ef5a75d4fbd6a87f08c SHA512 23226c503b06abecee5a9604a6e4dd3dabcdf921f55d6aa6dad2bab1ca12a001c7866af5a6de01cc9b4ace54e5c8ee1d5c2fd29dd9dfd7eda3ed86f9b35fa59f
+DIST system.runtime.compilerservices.unsafe.6.0.0.nupkg 84343 BLAKE2B aea2f833d6da80dbc275c47bfb207d77a1f2dd203a29352ff5a6e96d8b52752ee3c5bde38117c5ecc5dfbad66d8b47b2001efa1e2d564e14cbbf58d0d1fe208e SHA512 d4057301be4ec4936f24b9ce003b5ec4d99681ab6d9b65d5393dd38d04cdec37784aaa12c1a8b50ac3767ed878dae425749490773fec01e734f93cf1045822b3
+DIST system.runtime.extensions.4.3.0.nupkg 1060357 BLAKE2B e58c5c36d42228a507fba876d43f064b872c93dc4a48e9a7475a77c27e00f2added1dbb8dd5d6516a4c5652ef2b01f5fa31aa611360b38a0b66a0b1a2e479699 SHA512 680a32b19c2bd5026f8687aa5382aea4f432b4f032f8bde299facb618c56d57369adef7f7cc8e60ad82ae3c12e5dd50772491363bf8044c778778628a6605bbc
+DIST system.runtime.handles.4.3.0.nupkg 54854 BLAKE2B e68360382f2c625e3b1526dddb1d49c6bddc9b78d38041801f0df876f1b06d429c608ff3b28a0c1415495eb38fcd70aafa9fe8dc0bb323790e8a85718a9f93f9 SHA512 0a5baf1dd554bf9e01bcb4ce082cb26ee82b783364feb47cba730faeecd70edc528efad0394dcce11f37d7f9507f8608f15629ebaf051906bfd3513e46af0f11
+DIST system.runtime.interopservices.4.3.0.nupkg 2597020 BLAKE2B 4753b772f9d3596eae34b10497af40bc6e7cd63e9319e5789378cd148b009ae9fd5bde5e5757954ef06826bd4f4b79a3f8d8ea07766238407f26f3e222cdb2cf SHA512 650799c3e654efbb9ad67157c9c60ce46f288a81597be37ce2a0bf5d4835044065ef3f65b997328cbbbbfb81f4c89b8d7e7d61380880019deee6eb3f963f70d9
+DIST system.runtime.interopservices.runtimeinformation.4.3.0.nupkg 179546 BLAKE2B 780a92196ee216c1175768b32c04e88cfbc453bd9fdd6e5645c4ccc98f2c5ad62fd5cb158117df9391b1cdc3130a2cddca49304d2579434597350097960ce013 SHA512 6f4905329a3cc9e62d274c885f275ee31c5af57a6c9fd1a5080d039cb748e0277bef3dc8ce42863cac78365084e00a032279bf3d2b7254a49f3fb1566a29ad1b
+DIST system.runtime.numerics.4.3.0.nupkg 283763 BLAKE2B b9e2ffc7e974fb4824ed174be43e664d0fcbe1e996640b8f66a17503c8af24d106e883092fd61b2990c32472423bcad943e07b7e25d126563a219e1b617446ee SHA512 3e347faa8e7ec484d481e53b1c219fe1ce346ae8278a214b4508cf0e233c1627bd9c6c6c7c654e8c1f4143271838ddd9593f63a1043577ad87c40e392af7fd34
+DIST system.security.accesscontrol.5.0.0.nupkg 621573 BLAKE2B 617baef046a8bdb637db288425206cb95e6be55c53c3829690253fd76987b0fdebb1cd79db556c437ff5d9a0f4940e7d747e3e7b611e941f5f54248b6adfa32e SHA512 ae6b03ad029d3eb6818a6c8bb56cf4904013fa535a67b8e621b783a029dd88aa2e471e002cbc7d720381ad8bc8c6b93111a08f6ce2d271af6d974bf4d02b6c81
+DIST system.security.claims.4.3.0.nupkg 147933 BLAKE2B bd00c65069b23415c146861ba7ba768a0da69f9f0a4496fb1f43780222f899ae62ed35cd0bc5a0953d8b13920800b59414cccad7e6bf6614ee675680c06e27cb SHA512 ab72b90801f6c051a2b31645448eebfca74642b3cfa1d51f80e21a0d0d7ad44d3366dea139347e2852781b7f3bae820df16c3eb188a2c96244df05394ed72c86
+DIST system.security.cryptography.algorithms.4.3.0.nupkg 402204 BLAKE2B 3bed21fdd12f005b6a7eb225623e71880a37c79cfdaa770971b6563d8e7f613a64617c73deedc2c6c31fd8e908f9ac95903a1004f1376bd914431f89c9dcc8f0 SHA512 7641d70c2ba6f37bf429d5d949bda427f078098c2dcb8924fd79b23bb22c4b956ef14235422d8b1cc5720cbbcc6cfee8943d5ff87ce7abf0d54c5e8bce2aa5e2
+DIST system.security.cryptography.cng.4.3.0.nupkg 290620 BLAKE2B aaa7b495dd7a8884b125f05b62d3e641cfb04e82f8f376f1e1839cdf124de4643dcf1e6de02e0296768db5f430a33d75cd2003261a815059055ffd5f050c65c4 SHA512 6272273414eaa777e78dca1b5ecbbdf65e9659908082aea924df0975e71f4c1b47f85617edf90ead57078c29513a160ca62f123be9f9f339dfb9c9386844f5ea
+DIST system.security.cryptography.csp.4.3.0.nupkg 117553 BLAKE2B 93f32c719f999c566ac7ebc486854778051ca885632a3ecf5b50af05a700df092a0e13ce08f16c854aee3ef06bc27fc61e6b03f79f3170eeb2bcce7e22d9728f SHA512 43317591747a18f52f683187e09adfe0e03573e6dac430bf3ba13f440cdb1c7bb1f9205369d5f3b2a0f3fdf9604d5ba1e6d94a899a25d2c533e453338578f351
+DIST system.security.cryptography.encoding.4.3.0.nupkg 144382 BLAKE2B 9f8e6a4ce5fe2a4de2be0c827e914a02a257011b508e97e289b9de4657b598fdbba4e64dcf23a29af6e4910af41e62f3b3f0d6a2156ab691e2e00ad76c6499ef SHA512 5c26add23e63542f37506f5fa1f72e8980f03743d529cd8e583d1054b8d8a579fb773fa035a00d9073db84db6be4f47cac340d1ebc6d23dd761dbdbd600075e0
+DIST system.security.cryptography.openssl.4.3.0.nupkg 71949 BLAKE2B ec1654bbd09e1244d260d1ddbefcbdeed207816a2719f3bb0f055a7a140d466f186667b1f202e0d1a3eda97f247d2c1776ad6f38f50de58960da5f0dfd2a2d08 SHA512 64530a19489730f873f8c68e6b245135ea260c02d68591880261768358d0145795132ba5ee877741822ff05dcd0c61edca27696ef99e8f9302a21cadf3b1329f
+DIST system.security.cryptography.primitives.4.3.0.nupkg 81382 BLAKE2B 55bcbe3143e85d24f47c72ec5e1f0ad38a1f931932b3a8a03dc00028668fc085d070dfcded55654e09328a745b208b9f15928aaff1087d8906bad41d7cfb23e0 SHA512 5ad8273f998ebb9cca2f7bd03143d3f6d57b5d560657b26d6f4e78d038010fb30c379a23a27c08730f15c9b66f4ba565a06984ec246dfc79acf1a741b0dd4347
+DIST system.security.cryptography.x509certificates.4.3.0.nupkg 706727 BLAKE2B 67c777394c982267c08dba232dd75aba6e924784d14388f7f8e347293c8f3a67ef9490a078b3f56f649a1ab352a4c924630f384850e3d5f1510dceae45fd0af1 SHA512 318d86ab5528e2b444ec3e4b9824c1be82bb93db513eab34b238e486f886c4d74310ed82c2110401fe5cd790e4d97f4a023a0b2d5c2e29952d3fd02e42734d00
+DIST system.security.principal.4.3.0.nupkg 94590 BLAKE2B c6fc5d6944a44b3ab125af5d59493aada6e8c73857311b8118adf197b9db3bf77fc8de9f320dcc0d55c6e529106b36307e14baab75766296bf804289de800a26 SHA512 db8a1ed0d189637d9ef83147550ce5da890cf6ec189a7d006ba9de86ab55679e7f025e18bdaed2dc137ddf82a7e6a0131fb4d54d4264831862b1d7c5ee62837e
+DIST system.security.principal.windows.4.3.0.nupkg 220931 BLAKE2B dcf84627ab57c5e72e0f1828b48c6e9bfa2ea2ead7b9c02bff03b9819f4057cb9d4a8821cfd0a98a381f2d7a2471df04041567de970f9d60557923e6e09317aa SHA512 66c1d5a9d649b964e1653fa2cd41d8f80515b7cd727fcd7f0890552070da1099ecd1032560f259a108e0d1d6a6da23fa07bc5c922f426a91f33b667f7c004019
+DIST system.security.principal.windows.5.0.0.nupkg 535022 BLAKE2B 4b20ab3cc0b4bc820df360df57b2eb0e2059de677c432af31e73acdf600a417685900aed2cee8e33ba9020d02ae688096cd9c3a77da441ed33cf968c90124bd5 SHA512 44a920aaaf22b2172d41319bb57ab2b8e1a4531d5f02192a6f53a81d875125195b60ba0b5a44a45981d137fd7b0f3a65b12959b5fd97afc0578cd84ef27467cd
+DIST system.text.encoding.4.3.0.nupkg 327281 BLAKE2B e153609b257919932499a013337b8b2a4087ebff7e8ffe6854ad1c70fbd058aaabc4e974313dfb3cf1a9355b0ced87bd97cd39f6a4962b8a4a87003d3a66c53c SHA512 6ff7feec7313a7121f795ec7d376e4b8728c17294219fafdfd4ea078f9df1455b4685f0b3962c3810098e95d68594a8392c0b799d36ec8284cd6fcbd4cfe2c67
+DIST system.text.encoding.codepages.4.5.1.nupkg 4234891 BLAKE2B d06be022d76a5793999248baa82db37adc262da2e74531d75f5f5e1a6c29b0ca702694b19c3254ab2e955f5b70959ff22f35d43593a2072af6ba5b7952155dc2 SHA512 12edddc9452a0c592eb24aeb2b9e152d60b8d44540349368e6fce3a239c6029847f8557adcd260df3b39c744ef45a6034d9db2fbce9e20e2b8dc78363578b0ef
+DIST system.text.encoding.extensions.4.3.0.nupkg 244195 BLAKE2B 9dc2fbf672e07c5302bbb8435e8c09bc91febb96f22b85b57b09b2046fca224c786f8710b634559de2722f3dbece7b30e6a3c6a78e98e77f955d550e440beb60 SHA512 e648c5dc781e35cf00c5cc8e7e42e815b963cf8fb788e8a817f9b53e318b2b42e2f7a556e9c3c64bf2f6a2fd4615f26ab4f0d4eb713a0151e71e0af3fe9c3eed
+DIST system.text.encodings.web.6.0.0.nupkg 235525 BLAKE2B 1a9c6233292c8d9186c92fea63b918a3a97ec23588f06a3170d0f085359acf77eea7b10867ee81602837818f25968f7cd91e193f83a081fbe6ae4467ec92d32f SHA512 0f26afeeaa709ea1f05ef87058408dd9df640c869d7398b2c9c270268ddf21a9208cd7d2bfa1f7fbd8a5ceab735dd22d470a3689627c9c4fadc0ea5fe76237fa
+DIST system.text.json.6.0.5.nupkg 1267769 BLAKE2B 21b51f64953a1788610460a2d367b22e23e6be5a6644deab0e3b7b1643b6fe766de87b03d94a17eee6d63821f6f6039ef09a57c7533f8369be3ab539082ecda0 SHA512 365a854b3a6187af14888fca10573f84c73c9066fec84a25cae233949dcf51ada2efe716ea3d315f8f7cb438ff153ae03ef8ee69e8f24ec3f50971133014e3c0
+DIST system.text.regularexpressions.4.3.0.nupkg 530523 BLAKE2B fc77aa0a92658cfac1b3fc00b87fabbec1be5c79776b0b2680775615b273a5a49ff8d5000f97415b85fc0283ff95569ba9a5a72917828455646053033088b49b SHA512 80353c148df30d9a2c03ee10a624d91b64d7ccc3218cb966344cfa70657f0b59c867fed2ab94057f64ab281ad9318353f25c23375c00e1376b6589ae0a70aad3
+DIST system.threading.4.3.0.nupkg 708088 BLAKE2B 004d01762fad35a4607522d974a0cdc3d0049c82fe704f2f86fb98ee81059ebb56d13c290fcd273d1067a1a7c7f17bf3259d4d7e802c1d09a95e3c5fa29ef3f3 SHA512 97a2751bdce69faaf9c54f834a9fd5c60c7a786faa52f420769828dbc9b5804c1f3721ba1ea945ea1d844835d909810f9e782c9a44d0faaecccb230c4cd95a88
+DIST system.threading.tasks.4.3.0.nupkg 840017 BLAKE2B 1cf4a8cc833da0a38304757db3808df5c217518c817d5807bf6f35393725a31223129fd1c4c964a36a60c65b686d24fc25d1777fa12ee622bddbb0f7c1772bec SHA512 7d488ff82cb20a3b3cef6380f2dae5ea9f7baa66bf75ad711aade1e3301b25993ccf2694e33c847ea5b9bdb90ff34c46fcd8a6ba7d6f95605ba0c124ed7c5d13
+DIST system.threading.tasks.extensions.4.3.0.nupkg 52499 BLAKE2B 3e6532ad1936859e2713e2e864831efe0af00a5ce561bd7f8723845bf285b8c15de00cb1fc246504f99599d183b400746cea987db883f0e61283db1fb2725a1e SHA512 2c33900ff7f544d6db31ad11b6baee1c9ecb40d5a54f51e5dd5bbbb37f4c50ee35ed481615cbf7c1da61a31ae3333c4454bfbeee4ae32241789e72ce3f910db6
+DIST system.threading.tasks.extensions.4.5.4.nupkg 89582 BLAKE2B 728fc5794745b706a7e3a7d05186f34e2a8c1837cafdc7fc9a1bd8fc6fd42025448cbdfa53415a05d872aa08db1deb31d104054630c9ac7ecd29a2ddd973fd5c SHA512 68052086e77d3c7198737a3da163d67740b7c44f93250c39659b3bf21b6547a9abf64cbf40481f5c78f24361af3aaf47d52d188b371554a0928a7f7665c1fc14
+DIST system.threading.threadpool.4.3.0.nupkg 89926 BLAKE2B ec4210a5862c0704b118e4055785c7094ff8c3586800fcae109fa60e77565d8288089c64bce105e9cab08f8bb107dca340e72ae1d39d19f6118538ed32f449d6 SHA512 450a40f94a48e9396979e764e494ad624d8333f3378b91ea69b23fc836df8f5c43bbd6c8cfd91da2ab95a476e1ff042338968e09b720447f2241c014bfc75159
+DIST system.threading.timer.4.3.0.nupkg 77054 BLAKE2B be1665b86776f2f7e780de889e363a3c10da581eaf9a414da5ae5d059564281d78691142281d31b48c47b9efc084f1826165763097273f77e58699742c8c93da SHA512 d5ce8e258b7be7be268f944e21621195948106f57e6c46e69b2887c46f567760368b14e84046b4be4466ecd08ecd4cb04016a2ff7948cb4640960befc7aa1739
+DIST system.xml.readerwriter.4.3.0.nupkg 1388897 BLAKE2B ae51b8fe4492dec1e4e3584d05b0f477fd4e75e79dddb46d8077ae5311245d6fc6213d0655025f25db56f1370cb0e88bd60a83dc937bb53db1db0262390281f2 SHA512 991101497fbd39e43fc306ca280a465318868afa8db1f34bb87c266fe61f0c81a0ec34a797b236ee823bd60d1149b7592def96fe044abb511858efffe890c2e6
+DIST system.xml.xdocument.4.3.0.nupkg 591350 BLAKE2B 86f910cef36c056f4a9ea9dc26eea6e01070467d27ac80fb8a0af5e1a572ad5d2169e4f1297cd362fddc9e0309458dbd413fca85ef8e56f97781c218e594604a SHA512 c2d9236a696daf23a29b530b9aa510fb813041685a1bb9a95845a51e61d870a0615e988b150f5be0d0896ef94b123e97f96c8a43ee815cf5b9897593986b1113
+DIST test262harness.0.0.22.nupkg 43594 BLAKE2B f658cb27db0c2cd7ebd92bb97a1712f5aeae2df2d79c221f2529a0f4a31d4540043496bbc837d5ce0ae58ab3f48239cb2452920c1765acff3c35af1eb3933c37 SHA512 cab584d04e3a18ad5d4475ddd492cda5c230f2f9c5a5f64884bbb11a3dbf6d0e0116f5d1a4cf0f63f32b3eea36a7a89cb01bb171eeacd88b845c7335b69cd87d
+DIST xunit.2.5.0.nupkg 29632 BLAKE2B 4b7c3fbde40ae346aeed839a398fe58954dfd026d6542933736445a21ddd741af9d6024fe92f799a6e9718dbdc983f1ea470d3888913916150bcfc6a19ee4c51 SHA512 84cd3219a8898930efc7f9d776047d395fc025061ecc9b72717eb1a08c142e507dd64c754e50452f364e578444b2a0a8c5cf3a6c45a7fd58a4a5abd29f29ff07
+DIST xunit.abstractions.2.0.3.nupkg 75155 BLAKE2B 8cfecf557dbe20e0e14b1d8b413acd7516b6538cb543a12708910311fa76b7dcd9d060c7be70a05b0af5ef3b8bd5f819104025afe9796e240c28fcae1c7460c1 SHA512 3ca26b8b97f4a8440f16f818e82651f571bc2513a5592742fd960b9240d0b880fef84827fb25a307e61fe7b019f14e864653fbcf7dee0d0e3faf90593deaf624
+DIST xunit.analyzers.1.2.0.nupkg 153837 BLAKE2B 0d1013d81f721b59b7ffc42962d2383f35118ecd150021acbc5a8dd417f1ebf96c68f1746287339f138f8b1583e307b88aa74ec3a9c3dc3b59f09cf16029c3e7 SHA512 c2490d8478e801b89ad1767ce5ca8f12c00a99148859dec325ac03824dd1898667f5d436bd43cea94756e3ced01c6bda7c6b840473f35f07ad1d1035caaeb84b
+DIST xunit.assert.2.5.0.nupkg 109990 BLAKE2B a883c328bbd537d8c15dcc8f4b486317d82e3a9c0db02e9cdb70b6de47c49962a413ecd2d5d76f8921f48ce3243c3da7496d1fde197f370a20a134e4a05bc3ed SHA512 e4445d673fadf1dbbf6a168c5e7f62591b310df21859d8d85185f3e91cbe08f48b16454a448c72c10224685f58cba8a5d66a07a1d05f97116ff04db363336e40
+DIST xunit.core.2.5.0.nupkg 31557 BLAKE2B 2f819b3e956115273eaad6ad1d0b103baf847253451b8230e5ba71f992fc79fffaa6ff78dff3cc341fb93735ecc006874914435dac3a43175a73d508e85e3e73 SHA512 fad634e80cfafd7067512e048905c955063cc8e5f9ba7c618ead0c5bc922fc32c601fdb5a584ec20ab8d2187b5b3dc6c328ef163f146d9b5cacce81c3145de93
+DIST xunit.extensibility.core.2.5.0.nupkg 283074 BLAKE2B 6274c1f3e18cc092cbb7fb1d687748dd7efdf128d005e5342a0dbb7223a3d90e2bd04b1c2fcb9d36777e76d6decf3ea877ef5cd88b7cbc7a2ce40b4e7c8ef9bd SHA512 8d14f28a2fe8520d073bbed4384e494aa2a1833c77e1baf75715ac1b2e82cd736b66fb6f4572858fcacbe3c7cb2e773843e9957331f20d86a3f05d1ead357500
+DIST xunit.extensibility.execution.2.5.0.nupkg 360329 BLAKE2B 9338daedc7936ee441402a3c01e4f6dd7903074a560a0d91498d7be831a4f578386bfaab8dbe18616897f52e0114d90db732c8f2997242c7fecaa87aca35ea8f SHA512 54cb5d69a2d0a0952c89613720ccc0bffdc7163834a0f46d7fa574a5f2cbb4774e44eb7dce4c2c6f659470bee48a8a679746b38e983f14cabcd229a7ec8a31e0
+DIST xunit.runner.visualstudio.2.5.0.nupkg 570004 BLAKE2B 6da331945900877f1bf0d622d0da3a399c4fbf3c000b3231da76d002279f18f1f3b470b3182e9ab4da73c64b658a990d6ea7e5ec3d267856cf5f4ce7af37e523 SHA512 f7d40d5eed1adc68f8514fd975467b1a1dbe7744f9bc0b0d65cfa17451283c229215c7d8975cc809cdd94ffbf2b9ed9d6d713defc5e7cfd3667a1f2470d3fa9c
+DIST yamldotnet.12.0.1.nupkg 730415 BLAKE2B aacb8b75b5d9bac3e83de1ace0ece4639b19d68a5e6a885a144bec9e5f39668de1506e2037e05818cf70f9fbbfa9d3e770af95f8d22cb88440f93bbb1350fe83 SHA512 faa1d304c743631dbdec325535ddd74ba1159b9c6eccf98fcdd6b1113085b9b77ba73ac6eaa82d46caf9512c869bdb3e2788dff4615776d9e5169618d3dbcdfb
+DIST yantrajs.core.1.2.179.nupkg 1636982 BLAKE2B 225f3796212e13c33c64e1d5dfd3b5fb203d9f1fc3135daac09dc36b91182788397b66d1073a9e19f55316e83e02d7a440db7c34e0cd178c882829aa04029df5 SHA512 9eeab63180bd4dad7f0e15db6b63889cbc52a6f24d1ef83e882fce4319a323cea4b8f7e71bcf2d6a65cc7a5074676ce0942e91c48903c741e0f9e7d76f455e81
+DIST yantrajs.expressioncompiler.1.2.179.nupkg 208237 BLAKE2B 87eae924d2c671c1f194b6057536d4fd6fa247c8e9cfc9d70c4cb2ed8b252f472998e0396a913648c41a5a48ac860c9071036149cbb8158988f35f66bc034bf6 SHA512 c32aad55ee58b253db2e0e845d3cdb3765349e5fa9da55e82d2e86489ccf0bcaf92b5271c42a003c52bec8abf15cd35466ea5254198b51ade7a7dedfbe4e3661
+DIST zio.0.15.0.nupkg 402398 BLAKE2B 80f4fdf6a96a526f32f967b8505c62840819177f16ee0aa51e8a05c74f36f630b59c1ca9b4a8b1a5b3075a3d1393928bf1ebe4f74901586d237928b64373d96b SHA512 6c5badfdb48510667bb4eeb53fb5e17afc19946f80de1ceb30bf65abc0e11b7682ae39e69e65a9d3e235a3e2420814169bc4f4767cfee3c57b4859ee1ec78502
+DIST zstring.2.4.4.nupkg 136907 BLAKE2B 651ce26395f16eaeff89faa54156e19dc6110821f1e303b8850e8c66fd7b1cd88843959f82f4a12c3b50a39f2b8b6aa264dc5036c74f82f8411a02ed5cca603c SHA512 6ce8bcdab38bc33aee80f3924fc8b34e83f761b835802d9aeb53ddf23f6299115c9f8c7e28212e40b16439bbb975485c97f84005f44708f00b55a3e0afe83418
diff --git a/dev-lang/jint/jint-3.0.0_beta2051.ebuild b/dev-lang/jint/jint-3.0.0_beta2051.ebuild
new file mode 100644
index 000000000000..1fabcbaa39f5
--- /dev/null
+++ b/dev-lang/jint/jint-3.0.0_beta2051.ebuild
@@ -0,0 +1,252 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MY_PV="${PV/_beta/-beta-}"
+
+DOTNET_PKG_COMPAT=7.0
+NUGETS="
+benchmarkdotnet.annotations@0.13.7
+benchmarkdotnet@0.13.7
+commandlineparser@2.9.1
+esprima@3.0.0-rc-04
+flurl.http.signed@3.2.4
+flurl.signed@3.0.6
+gee.external.capstone@2.3.0
+githubactionstestlogger@2.3.3
+iced@1.17.0
+jurassic@3.2.6
+microsoft.bcl.asyncinterfaces@1.1.0
+microsoft.build.tasks.git@1.1.1
+microsoft.codeanalysis.analyzers@3.3.3
+microsoft.codeanalysis.common@4.1.0
+microsoft.codeanalysis.csharp@4.1.0
+microsoft.codecoverage@17.7.2
+microsoft.diagnostics.netcore.client@0.2.251802
+microsoft.diagnostics.runtime@2.2.332302
+microsoft.diagnostics.tracing.traceevent@3.0.2
+microsoft.dotnet.platformabstractions@3.1.6
+microsoft.extensions.configuration.abstractions@2.1.1
+microsoft.extensions.configuration.binder@2.1.1
+microsoft.extensions.configuration@2.1.1
+microsoft.extensions.dependencyinjection.abstractions@2.1.1
+microsoft.extensions.dependencyinjection.abstractions@7.0.0
+microsoft.extensions.dependencyinjection@7.0.0
+microsoft.extensions.logging.abstractions@2.1.1
+microsoft.extensions.logging@2.1.1
+microsoft.extensions.options@2.1.1
+microsoft.extensions.primitives@2.1.1
+microsoft.net.test.sdk@17.7.2
+microsoft.netcore.platforms@1.1.0
+microsoft.netcore.platforms@1.1.1
+microsoft.netcore.platforms@2.1.2
+microsoft.netcore.platforms@5.0.0
+microsoft.netcore.targets@1.1.0
+microsoft.netcore.targets@1.1.3
+microsoft.sourcelink.common@1.1.1
+microsoft.sourcelink.github@1.1.1
+microsoft.testplatform.objectmodel@17.7.1
+microsoft.testplatform.objectmodel@17.7.2
+microsoft.testplatform.testhost@17.7.2
+microsoft.win32.primitives@4.3.0
+microsoft.win32.registry@5.0.0
+mongodb.bson.signed@2.19.0
+netstandard.library@1.6.1
+netstandard.library@2.0.0
+netstandard.library@2.0.3
+newtonsoft.json@13.0.1
+newtonsoft.json@13.0.3
+nil.js@2.5.1665
+nodatime@3.1.9
+nuget.frameworks@6.5.0
+nullable@1.3.1
+nunit@3.13.3
+nunit3testadapter@4.5.0
+perfolizer@0.2.1
+polysharp@1.13.2
+runtime.any.system.collections@4.3.0
+runtime.any.system.diagnostics.tools@4.3.0
+runtime.any.system.diagnostics.tracing@4.3.0
+runtime.any.system.globalization.calendars@4.3.0
+runtime.any.system.globalization@4.3.0
+runtime.any.system.io@4.3.0
+runtime.any.system.reflection.extensions@4.3.0
+runtime.any.system.reflection.primitives@4.3.0
+runtime.any.system.reflection@4.3.0
+runtime.any.system.resources.resourcemanager@4.3.0
+runtime.any.system.runtime.handles@4.3.0
+runtime.any.system.runtime.interopservices@4.3.0
+runtime.any.system.runtime@4.3.0
+runtime.any.system.text.encoding.extensions@4.3.0
+runtime.any.system.text.encoding@4.3.0
+runtime.any.system.threading.tasks@4.3.0
+runtime.any.system.threading.timer@4.3.0
+runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.native.system.io.compression@4.3.0
+runtime.native.system.net.http@4.3.0
+runtime.native.system.security.cryptography.apple@4.3.0
+runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.native.system@4.3.0
+runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple@4.3.0
+runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.unix.microsoft.win32.primitives@4.3.0
+runtime.unix.system.console@4.3.0
+runtime.unix.system.diagnostics.debug@4.3.0
+runtime.unix.system.io.filesystem@4.3.0
+runtime.unix.system.net.primitives@4.3.0
+runtime.unix.system.net.sockets@4.3.0
+runtime.unix.system.private.uri@4.3.0
+runtime.unix.system.runtime.extensions@4.3.0
+sharpziplib@1.4.0
+system.appcontext@4.3.0
+system.buffers@4.3.0
+system.buffers@4.5.1
+system.codedom@5.0.0
+system.collections.concurrent@4.3.0
+system.collections.immutable@5.0.0
+system.collections@4.3.0
+system.console@4.3.0
+system.diagnostics.debug@4.3.0
+system.diagnostics.diagnosticsource@4.3.0
+system.diagnostics.tools@4.3.0
+system.diagnostics.tracing@4.3.0
+system.globalization.calendars@4.3.0
+system.globalization.extensions@4.3.0
+system.globalization@4.3.0
+system.io.compression.zipfile@4.3.0
+system.io.compression@4.3.0
+system.io.filesystem.primitives@4.3.0
+system.io.filesystem@4.3.0
+system.io@4.3.0
+system.linq.expressions@4.3.0
+system.linq@4.3.0
+system.management@5.0.0
+system.memory@4.5.1
+system.memory@4.5.3
+system.memory@4.5.4
+system.net.http@4.3.0
+system.net.nameresolution@4.3.0
+system.net.primitives@4.3.0
+system.net.sockets@4.3.0
+system.numerics.vectors@4.4.0
+system.numerics.vectors@4.5.0
+system.objectmodel@4.3.0
+system.private.uri@4.3.0
+system.reflection.emit.ilgeneration@4.3.0
+system.reflection.emit.lightweight@4.3.0
+system.reflection.emit.lightweight@4.7.0
+system.reflection.emit@4.3.0
+system.reflection.emit@4.7.0
+system.reflection.extensions@4.3.0
+system.reflection.metadata@1.6.0
+system.reflection.metadata@5.0.0
+system.reflection.primitives@4.3.0
+system.reflection.typeextensions@4.3.0
+system.reflection@4.3.0
+system.resources.resourcemanager@4.3.0
+system.runtime.compilerservices.unsafe@4.5.2
+system.runtime.compilerservices.unsafe@4.5.3
+system.runtime.compilerservices.unsafe@4.7.1
+system.runtime.compilerservices.unsafe@5.0.0
+system.runtime.compilerservices.unsafe@6.0.0
+system.runtime.extensions@4.3.0
+system.runtime.handles@4.3.0
+system.runtime.interopservices.runtimeinformation@4.3.0
+system.runtime.interopservices@4.3.0
+system.runtime.numerics@4.3.0
+system.runtime@4.3.0
+system.runtime@4.3.1
+system.security.accesscontrol@5.0.0
+system.security.claims@4.3.0
+system.security.cryptography.algorithms@4.3.0
+system.security.cryptography.cng@4.3.0
+system.security.cryptography.csp@4.3.0
+system.security.cryptography.encoding@4.3.0
+system.security.cryptography.openssl@4.3.0
+system.security.cryptography.primitives@4.3.0
+system.security.cryptography.x509certificates@4.3.0
+system.security.principal.windows@4.3.0
+system.security.principal.windows@5.0.0
+system.security.principal@4.3.0
+system.text.encoding.codepages@4.5.1
+system.text.encoding.extensions@4.3.0
+system.text.encoding@4.3.0
+system.text.encodings.web@6.0.0
+system.text.json@6.0.5
+system.text.regularexpressions@4.3.0
+system.threading.tasks.extensions@4.3.0
+system.threading.tasks.extensions@4.5.4
+system.threading.tasks@4.3.0
+system.threading.threadpool@4.3.0
+system.threading.timer@4.3.0
+system.threading@4.3.0
+system.xml.readerwriter@4.3.0
+system.xml.xdocument@4.3.0
+test262harness@0.0.22
+xunit.abstractions@2.0.3
+xunit.analyzers@1.2.0
+xunit.assert@2.5.0
+xunit.core@2.5.0
+xunit.extensibility.core@2.5.0
+xunit.extensibility.execution@2.5.0
+xunit.runner.visualstudio@2.5.0
+xunit@2.5.0
+yamldotnet@12.0.1
+yantrajs.core@1.2.179
+yantrajs.expressioncompiler@1.2.179
+zio@0.15.0
+zstring@2.4.4
+"
+
+inherit check-reqs dotnet-pkg
+
+DESCRIPTION="Javascript Interpreter for .NET"
+HOMEPAGE="https://github.com/sebastienros/jint/"
+
+if [[ "${PV}" == *9999* ]] ; then
+ inherit git-r3
+
+ EGIT_REPO_URI="https://github.com/sebastienros/${PN}.git"
+else
+ SRC_URI="https://github.com/sebastienros/${PN}/archive/v${MY_PV}.tar.gz
+ -> ${P}.tar.gz"
+ S="${WORKDIR}/${PN}-${MY_PV}"
+
+ KEYWORDS="amd64"
+fi
+
+SRC_URI+=" ${NUGET_URIS} "
+
+LICENSE="BSD-2"
+SLOT="0"
+RESTRICT="test" # Tests fail.
+
+CHECKREQS_DISK_BUILD="2G"
+DOTNET_PKG_RESTORE_EXTRA_ARGS=(
+ -p:TargetFramework="net${DOTNET_PKG_COMPAT}"
+ -p:TargetFrameworks="net${DOTNET_PKG_COMPAT}"
+)
+DOTNET_PKG_BUILD_EXTRA_ARGS=( "${DOTNET_PKG_RESTORE_EXTRA_ARGS[@]}" )
+DOTNET_PKG_TEST_EXTRA_ARGS=( "${DOTNET_PKG_RESTORE_EXTRA_ARGS[@]}" )
+DOTNET_PKG_PROJECTS=( Jint.Repl/Jint.Repl.csproj )
+
+pkg_setup() {
+ check-reqs_pkg_setup
+ dotnet-pkg_pkg_setup
+}
+
+src_install() {
+ dotnet-pkg-base_install
+ dotnet-pkg-base_dolauncher "/usr/share/${P}/Jint.Repl" "${PN}"
+
+ einstalldocs
+}
diff --git a/dev-lang/jint/metadata.xml b/dev-lang/jint/metadata.xml
new file mode 100644
index 000000000000..d956eca871dc
--- /dev/null
+++ b/dev-lang/jint/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+
+<pkgmetadata>
+ <maintainer type="project">
+ <email>dotnet@gentoo.org</email>
+ <name>Gentoo Dotnet Project</name>
+ </maintainer>
+ <longdescription>
+ Jint is a Javascript interpreter for .NET which can run on any modern .NET
+ platform as it supports .NET Standard 2.0 and later.
+ </longdescription>
+ <upstream>
+ <bugs-to>https://github.com/sebastienros/jint/issues/</bugs-to>
+ <remote-id type="github">sebastienros/jint</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-lang/jsonnet/Manifest b/dev-lang/jsonnet/Manifest
index 125cb3172b14..afb7dfa85f82 100644
--- a/dev-lang/jsonnet/Manifest
+++ b/dev-lang/jsonnet/Manifest
@@ -1,3 +1,3 @@
-DIST jsonnet-0.15.0.tar.gz 21826038 BLAKE2B 722a844c00ec31b662d932a4481a71197adad680181c6a56a49dfa3e9b63696d29320c5278024d44c0ab3d7d80569514792f815ac7fa3a3cc08c7756fb6f08ad SHA512 b63c1bf82e4fc9ba3f1009ed4e4ba1010e3e7f81bd816a234e48d35607eae3cba95cab57813d35daa9f024e316bae5256340a6f8d6d884f9136cdbf062a2b351
-DIST jsonnet-0.16.0.tar.gz 21828911 BLAKE2B d6e9648e259b94513507ba5a6e305f705541904d7755dc5521b7fc2940b761f413bfaba39521af54eb428337be2e75f07d12038edcf7e8a5ba95feccc8dd4a02 SHA512 80e0403ec8008cbacff8d9e8fe0e2b5d3bfa306d92c2c11d472e5721015ce4c11be745df10d25715f22f8d8594df69fabf2fe617bdded462ffc5b21f8923606f
-DIST jsonnet-0.17.0.tar.gz 21854054 BLAKE2B 91561f2cffb5c711d4ba58aceef90bbcd654997872936bcf475d397a7b831b833d349c828271e58795cca10c915ab4ec0a517dc0fc2f563673ba7a6e74cfea3f SHA512 d3ee6947163d8abced504ff37ecf365c0311164cbf243d4c635d34944f0831ca9fce2470acf00eb9a218f82a2e553b3f885db9bd21bb9dcefbd707fa0202925d
+DIST jsonnet-0.19.0.tar.gz 22478380 BLAKE2B 0a1612ca0525342763099e70921181578fcf7ab25c2a3811ffede944953e4ce114f1949642038d6147c96d52193cf701473fab8581d50c3e74036139fbd5c19a SHA512 f4e30d977df7840a4f13c7ba75614badd964a5c4484fb264d7b05d6de04aa2a2d3c4c5161523d6fa6559460ea94b94562b07ea6590a34876545c529474c4b9fa
+DIST jsonnet-0.19.1.tar.gz 22480685 BLAKE2B 7d86bc963f5ced622e91adf015c250b8cae2e817b6af5d60820d8731e04caecc1b2b8142d320414d253ef1fa3558d61aeb1b59480eab0823915d2b15c5d87aab SHA512 21312de71f63f4a74005f563290d67fcc2d220f043291a123af2fc834f4118f8bbc311ea8acc5dd52b13eff8c32f026a5ce6bfe3d88b4c6c770e585dd1f0b688
+DIST jsonnet-0.20.0.tar.gz 22481277 BLAKE2B 65d6a45a903d6f494bbb79fb92c484b2a5167fc5fc379f4acb131778e1779aa580fd249baf3309fd00fa9b2a3b129360bf9d2cb0a3a738bd03c5fcec7dc6bd32 SHA512 d46d2521d4389d05f91a16ecd9f181be1853f674a9264e9fac23e413f1084dee947e80682af59603e15e443061a0beb50a30c14c858853e10ed1ae7187d09730
diff --git a/dev-lang/jsonnet/files/jsonnet-0.14.0-makefile.patch b/dev-lang/jsonnet/files/jsonnet-0.14.0-makefile.patch
deleted file mode 100644
index a6107a4e10cd..000000000000
--- a/dev-lang/jsonnet/files/jsonnet-0.14.0-makefile.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-diff --git a/Makefile b/Makefile
-index 474655c..89c396c 100644
---- a/Makefile
-+++ b/Makefile
-@@ -31,9 +31,9 @@ OPT ?= -O3
-
- PREFIX ?= /usr/local
-
--CXXFLAGS ?= -g $(OPT) -Wall -Wextra -Woverloaded-virtual -pedantic -std=c++0x -fPIC
-+CXXFLAGS += -Wall -Wextra -Woverloaded-virtual -pedantic -std=c++0x -fPIC
- CXXFLAGS += -Iinclude -Ithird_party/md5 -Ithird_party/json
--CFLAGS ?= -g $(OPT) -Wall -Wextra -pedantic -std=c99 -fPIC
-+CFLAGS += -Wall -Wextra -pedantic -std=c99 -fPIC
- CFLAGS += -Iinclude
- MAKEDEPENDFLAGS += -Iinclude -Ithird_party/md5 -Ithird_party/json
- EMCXXFLAGS = $(CXXFLAGS) -g0 -Os --memory-init-file 0 -s DISABLE_EXCEPTION_CATCHING=0 -s OUTLINING_LIMIT=10000 -s RESERVED_FUNCTION_POINTERS=20 -s ASSERTIONS=1 -s ALLOW_MEMORY_GROWTH=1
diff --git a/dev-lang/jsonnet/files/jsonnet-0.18.0-unbundle.patch b/dev-lang/jsonnet/files/jsonnet-0.18.0-unbundle.patch
new file mode 100644
index 000000000000..7c19e8893f12
--- /dev/null
+++ b/dev-lang/jsonnet/files/jsonnet-0.18.0-unbundle.patch
@@ -0,0 +1,75 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 5df20ca..9e60fae 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -121,7 +121,6 @@ endif()
+ add_subdirectory(include)
+ add_subdirectory(stdlib)
+ add_subdirectory(third_party/md5)
+-add_subdirectory(third_party/rapidyaml/rapidyaml ryml)
+ add_subdirectory(core)
+ add_subdirectory(cpp)
+ add_subdirectory(cmd)
+diff --git a/core/vm.cpp b/core/vm.cpp
+index 4617363..e328df5 100644
+--- a/core/vm.cpp
++++ b/core/vm.cpp
+@@ -23,7 +23,7 @@ limitations under the License.
+
+ #include "desugarer.h"
+ #include "json.h"
+-#include "json.hpp"
++#include "nlohmann/json.hpp"
+ #include "md5.h"
+ #include "parser.h"
+ #include "ryml_std.hpp" // include this before any other ryml header
+diff --git a/setup.py b/setup.py
+index 0a2748a..356915d 100644
+--- a/setup.py
++++ b/setup.py
+@@ -13,6 +13,7 @@
+ # limitations under the License.
+
+ import os
++import sys
+ from setuptools import setup
+ from setuptools import Extension
+ from setuptools.command.build_ext import build_ext as BuildExt
+@@ -22,28 +23,6 @@ DIR = os.path.abspath(os.path.dirname(__file__))
+ # NOTE: If you are editing the array below then you probably also need
+ # to change MANIFEST.in.
+ LIB_OBJECTS = [
+- 'core/desugarer.o',
+- 'core/formatter.o',
+- 'core/libjsonnet.o',
+- 'core/lexer.o',
+- 'core/parser.o',
+- 'core/pass.o',
+- 'core/static_analysis.o',
+- 'core/string_utils.o',
+- 'core/vm.o',
+- 'third_party/md5/md5.o',
+- 'third_party/rapidyaml/rapidyaml/ext/c4core/src/c4/char_traits.o',
+- 'third_party/rapidyaml/rapidyaml/ext/c4core/src/c4/base64.o',
+- 'third_party/rapidyaml/rapidyaml/ext/c4core/src/c4/language.o',
+- 'third_party/rapidyaml/rapidyaml/ext/c4core/src/c4/memory_util.o',
+- 'third_party/rapidyaml/rapidyaml/ext/c4core/src/c4/format.o',
+- 'third_party/rapidyaml/rapidyaml/ext/c4core/src/c4/time.o',
+- 'third_party/rapidyaml/rapidyaml/ext/c4core/src/c4/memory_resource.o',
+- 'third_party/rapidyaml/rapidyaml/ext/c4core/src/c4/error.o',
+- 'third_party/rapidyaml/rapidyaml/src/c4/yml/parse.o',
+- 'third_party/rapidyaml/rapidyaml/src/c4/yml/preprocess.o',
+- 'third_party/rapidyaml/rapidyaml/src/c4/yml/common.o',
+- 'third_party/rapidyaml/rapidyaml/src/c4/yml/tree.o',
+ ]
+
+ MODULE_SOURCES = ['python/_jsonnet.c']
+@@ -72,6 +51,8 @@ jsonnet_ext = Extension(
+ '_jsonnet',
+ sources=MODULE_SOURCES,
+ extra_objects=LIB_OBJECTS,
++ libraries = ['md5', 'jsonnet', 'ryml'],
++ library_dirs = [os.environ.get('CMAKE_BUILD_DIR')],
+ include_dirs = ['include'],
+ language='c++'
+ )
diff --git a/dev-lang/jsonnet/jsonnet-0.15.0.ebuild b/dev-lang/jsonnet/jsonnet-0.15.0.ebuild
deleted file mode 100644
index 376e4e886d5c..000000000000
--- a/dev-lang/jsonnet/jsonnet-0.15.0.ebuild
+++ /dev/null
@@ -1,63 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-DISTUTILS_OPTIONAL=1
-PYTHON_COMPAT=( python3_6 python3_{7,8} )
-
-inherit toolchain-funcs flag-o-matic distutils-r1
-
-DESCRIPTION="A data templating language for app and tool developers "
-HOMEPAGE="https://jsonnet.org/"
-SRC_URI="https://github.com/google/jsonnet/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-IUSE="custom-optimization python"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-DEPEND="python? ( ${PYTHON_DEPS} )"
-RDEPEND="python? ( ${PYTHON_DEPS} )"
-BDEPEND="python? ( ${PYTHON_DEPS}
- dev-python/setuptools[${PYTHON_USEDEP}]
- )"
-
-REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
-
-PATCHES=(
- "${FILESDIR}/jsonnet-0.14.0-makefile.patch"
- "${FILESDIR}/jsonnet-0.12.1-dont-call-make-from-setuppy.patch"
-)
-
-distutils_enable_tests setup.py
-
-src_prepare() {
- default
- use python && distutils-r1_src_prepare
-}
-
-src_configure() {
- use custom-optimization || replace-flags '-O*' -O3
- default
-}
-
-src_compile() {
- emake CC="$(tc-getCC)" CXX="$(tc-getCXX)" \
- jsonnet \
- libjsonnet.so \
- libjsonnet++.so
-
- use python && distutils-r1_src_compile
-}
-
-src_test() {
- emake CC="$(tc-getCC)" CXX="$(tc-getCXX)" test
- use python && distutils-r1_src_test
-}
-
-src_install() {
- dolib.so libjsonnet*.so
- dobin jsonnet
-
- use python && distutils-r1_src_install
-}
diff --git a/dev-lang/jsonnet/jsonnet-0.16.0-r2.ebuild b/dev-lang/jsonnet/jsonnet-0.16.0-r2.ebuild
deleted file mode 100644
index d4d1373fa872..000000000000
--- a/dev-lang/jsonnet/jsonnet-0.16.0-r2.ebuild
+++ /dev/null
@@ -1,77 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-DISTUTILS_OPTIONAL=1
-PYTHON_COMPAT=( pypy3 python3_{6..9} )
-
-inherit toolchain-funcs flag-o-matic distutils-r1
-
-DESCRIPTION="A data templating language for app and tool developers "
-HOMEPAGE="https://jsonnet.org/"
-SRC_URI="https://github.com/google/jsonnet/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-IUSE="custom-optimization doc examples python"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="amd64 arm64 ppc64 x86"
-DEPEND="
- python? ( ${PYTHON_DEPS} )
-"
-RDEPEND="
- python? ( ${PYTHON_DEPS} )
-"
-BDEPEND="
- python? (
- ${PYTHON_DEPS}
- dev-python/setuptools[${PYTHON_USEDEP}]
- )
-"
-
-REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
-
-PATCHES=(
- "${FILESDIR}/jsonnet-0.14.0-makefile.patch"
- "${FILESDIR}/jsonnet-0.12.1-dont-call-make-from-setuppy.patch"
- "${FILESDIR}/jsonnet-0.16.0-libdir.patch"
- "${FILESDIR}/jsonnet-0.16.0-cp-var.patch"
-)
-
-distutils_enable_tests setup.py
-
-src_prepare() {
- default
- use python && distutils-r1_src_prepare
-}
-
-src_configure() {
- use custom-optimization || replace-flags '-O*' -O3
- tc-export CC CXX
- default
-}
-
-src_compile() {
- emake bins libs
- use python && distutils-r1_src_compile
-}
-
-src_test() {
- emake test
- use python && distutils-r1_src_test
-}
-
-src_install() {
- emake PREFIX="${EPREFIX}/usr" DESTDIR="${D}" \
- CP="cp -d" LIBDIR="$(get_libdir)" install
- use python && distutils-r1_src_install
- if use doc; then
- find doc -name '.gitignore' -delete || die
- docinto html
- dodoc -r doc/.
- fi
- if use examples; then
- docinto examples
- dodoc -r examples/.
- fi
-}
diff --git a/dev-lang/jsonnet/jsonnet-0.16.0.ebuild b/dev-lang/jsonnet/jsonnet-0.16.0.ebuild
deleted file mode 100644
index 54be993393d9..000000000000
--- a/dev-lang/jsonnet/jsonnet-0.16.0.ebuild
+++ /dev/null
@@ -1,70 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-DISTUTILS_OPTIONAL=1
-PYTHON_COMPAT=( python3_{6,7,8} )
-
-inherit toolchain-funcs flag-o-matic distutils-r1
-
-DESCRIPTION="A data templating language for app and tool developers "
-HOMEPAGE="https://jsonnet.org/"
-SRC_URI="https://github.com/google/jsonnet/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-IUSE="custom-optimization python"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="amd64 ~arm64 ~ppc64 ~x86"
-DEPEND="
- python? ( ${PYTHON_DEPS} )
-"
-RDEPEND="
- python? ( ${PYTHON_DEPS} )
-"
-BDEPEND="
- python? (
- ${PYTHON_DEPS}
- dev-python/setuptools[${PYTHON_USEDEP}]
- )
-"
-
-REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
-
-PATCHES=(
- "${FILESDIR}/jsonnet-0.14.0-makefile.patch"
- "${FILESDIR}/jsonnet-0.12.1-dont-call-make-from-setuppy.patch"
-)
-
-distutils_enable_tests setup.py
-
-src_prepare() {
- default
- use python && distutils-r1_src_prepare
-}
-
-src_configure() {
- use custom-optimization || replace-flags '-O*' -O3
- default
-}
-
-src_compile() {
- emake CC="$(tc-getCC)" CXX="$(tc-getCXX)" \
- jsonnet \
- libjsonnet.so \
- libjsonnet++.so
-
- use python && distutils-r1_src_compile
-}
-
-src_test() {
- emake CC="$(tc-getCC)" CXX="$(tc-getCXX)" test
- use python && distutils-r1_src_test
-}
-
-src_install() {
- dolib.so libjsonnet*.so
- dobin jsonnet
-
- use python && distutils-r1_src_install
-}
diff --git a/dev-lang/jsonnet/jsonnet-0.17.0-r1.ebuild b/dev-lang/jsonnet/jsonnet-0.19.0-r1.ebuild
index 3faabad2b33b..71ae56d81023 100644
--- a/dev-lang/jsonnet/jsonnet-0.17.0-r1.ebuild
+++ b/dev-lang/jsonnet/jsonnet-0.19.0-r1.ebuild
@@ -1,75 +1,100 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
DISTUTILS_OPTIONAL=1
-PYTHON_COMPAT=( pypy3 python3_{6..9} )
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( pypy3 python3_{9..11} )
-inherit toolchain-funcs flag-o-matic distutils-r1
+inherit cmake toolchain-funcs flag-o-matic distutils-r1
-DESCRIPTION="A data templating language for app and tool developers "
+DESCRIPTION="A data templating language for app and tool developers"
HOMEPAGE="https://jsonnet.org/"
SRC_URI="https://github.com/google/jsonnet/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-IUSE="custom-optimization doc examples python"
+IUSE="custom-optimization doc examples python test"
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
-DEPEND="
- python? ( ${PYTHON_DEPS} )
-"
+KEYWORDS="amd64 arm64 ppc64 x86"
RDEPEND="
+ dev-cpp/rapidyaml:=
+ dev-cpp/nlohmann_json:=
python? ( ${PYTHON_DEPS} )
"
+
+DEPEND="
+ ${RDEPEND}
+ test? ( dev-cpp/gtest )
+"
+
BDEPEND="
python? (
${PYTHON_DEPS}
+ ${DISTUTILS_DEPS}
dev-python/setuptools[${PYTHON_USEDEP}]
)
"
+RESTRICT="!test? ( test )"
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
PATCHES=(
- "${FILESDIR}/jsonnet-0.14.0-makefile.patch"
"${FILESDIR}/jsonnet-0.12.1-dont-call-make-from-setuppy.patch"
"${FILESDIR}/jsonnet-0.16.0-libdir.patch"
"${FILESDIR}/jsonnet-0.16.0-cp-var.patch"
+ "${FILESDIR}/jsonnet-0.18.0-unbundle.patch"
)
distutils_enable_tests unittest
src_prepare() {
- default
+ cmake_src_prepare
use python && distutils-r1_src_prepare
}
src_configure() {
use custom-optimization || replace-flags '-O*' -O3
tc-export CC CXX
- default
+
+ local mycmakeargs=(
+ -DUSE_SYSTEM_JSON=ON
+ -DBUILD_STATIC_LIBS=OFF
+ )
+
+ if use test; then
+ mycmakeargs+=(
+ -DBUILD_TESTS=ON
+ -DUSE_SYSTEM_GTEST=ON
+ )
+ else
+ mycmakeargs+=(
+ -DBUILD_TESTS=OFF
+ )
+ fi
+
+ cmake_src_configure
}
src_compile() {
- emake bins libs
- use python && distutils-r1_src_compile
+ cmake_src_compile
+ use python && CMAKE_BUILD_DIR="${BUILD_DIR}" distutils-r1_src_compile
}
src_test() {
- emake CC="$(tc-getCC)" CXX="$(tc-getCXX)" test
- use python && distutils-r1_src_test
+ cmake_src_test
+ use python && CMAKE_BUILD_DIR="${BUILD_DIR}" distutils-r1_src_test
}
python_test() {
- "${EPYTHON}" -m unittest python._jsonnet_test -v \
+ LD_LIBRARY_PATH="${CMAKE_BUILD_DIR}" "${EPYTHON}" -m unittest python._jsonnet_test -v \
|| die "Tests failed with ${EPYTHON}"
}
src_install() {
- emake PREFIX="${EPREFIX}/usr" DESTDIR="${D}" \
- CP="cp -d" LIBDIR="$(get_libdir)" install
+ cmake_src_install
use python && distutils-r1_src_install
+
if use doc; then
find doc -name '.gitignore' -delete || die
docinto html
diff --git a/dev-lang/jsonnet/jsonnet-0.19.1.ebuild b/dev-lang/jsonnet/jsonnet-0.19.1.ebuild
new file mode 100644
index 000000000000..8e5c294e6207
--- /dev/null
+++ b/dev-lang/jsonnet/jsonnet-0.19.1.ebuild
@@ -0,0 +1,107 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_OPTIONAL=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( pypy3 python3_{9..11} )
+
+inherit cmake toolchain-funcs flag-o-matic distutils-r1
+
+DESCRIPTION="A data templating language for app and tool developers"
+HOMEPAGE="https://jsonnet.org/"
+SRC_URI="https://github.com/google/jsonnet/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+IUSE="custom-optimization doc examples python test"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
+RDEPEND="
+ dev-cpp/rapidyaml:=
+ dev-cpp/nlohmann_json:=
+ python? ( ${PYTHON_DEPS} )
+"
+
+DEPEND="
+ ${RDEPEND}
+ test? ( dev-cpp/gtest )
+"
+
+BDEPEND="
+ python? (
+ ${PYTHON_DEPS}
+ ${DISTUTILS_DEPS}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ )
+"
+RESTRICT="!test? ( test )"
+
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+PATCHES=(
+ "${FILESDIR}/jsonnet-0.12.1-dont-call-make-from-setuppy.patch"
+ "${FILESDIR}/jsonnet-0.16.0-libdir.patch"
+ "${FILESDIR}/jsonnet-0.16.0-cp-var.patch"
+ "${FILESDIR}/jsonnet-0.18.0-unbundle.patch"
+)
+
+distutils_enable_tests unittest
+
+src_prepare() {
+ cmake_src_prepare
+ use python && distutils-r1_src_prepare
+}
+
+src_configure() {
+ use custom-optimization || replace-flags '-O*' -O3
+ tc-export CC CXX
+
+ local mycmakeargs=(
+ -DUSE_SYSTEM_JSON=ON
+ -DBUILD_STATIC_LIBS=OFF
+ )
+
+ if use test; then
+ mycmakeargs+=(
+ -DBUILD_TESTS=ON
+ -DUSE_SYSTEM_GTEST=ON
+ )
+ else
+ mycmakeargs+=(
+ -DBUILD_TESTS=OFF
+ )
+ fi
+
+ cmake_src_configure
+}
+
+src_compile() {
+ cmake_src_compile
+ use python && CMAKE_BUILD_DIR="${BUILD_DIR}" distutils-r1_src_compile
+}
+
+src_test() {
+ cmake_src_test
+ use python && CMAKE_BUILD_DIR="${BUILD_DIR}" distutils-r1_src_test
+}
+
+python_test() {
+ LD_LIBRARY_PATH="${CMAKE_BUILD_DIR}" "${EPYTHON}" -m unittest python._jsonnet_test -v \
+ || die "Tests failed with ${EPYTHON}"
+}
+
+src_install() {
+ cmake_src_install
+ use python && distutils-r1_src_install
+
+ if use doc; then
+ find doc -name '.gitignore' -delete || die
+ docinto html
+ dodoc -r doc/.
+ fi
+ if use examples; then
+ docinto examples
+ dodoc -r examples/.
+ fi
+}
diff --git a/dev-lang/jsonnet/jsonnet-0.20.0-r1.ebuild b/dev-lang/jsonnet/jsonnet-0.20.0-r1.ebuild
new file mode 100644
index 000000000000..cc1f61faa103
--- /dev/null
+++ b/dev-lang/jsonnet/jsonnet-0.20.0-r1.ebuild
@@ -0,0 +1,109 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_OPTIONAL=1
+DISTUTILS_USE_PEP517=setuptools
+DISTUTILS_EXT=1
+PYTHON_COMPAT=( pypy3 python3_{10..12} )
+
+inherit cmake toolchain-funcs flag-o-matic distutils-r1
+
+DESCRIPTION="A data templating language for app and tool developers"
+HOMEPAGE="https://jsonnet.org/"
+SRC_URI="https://github.com/google/jsonnet/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
+IUSE="custom-optimization doc examples python test"
+
+RDEPEND="
+ dev-cpp/rapidyaml:=
+ dev-cpp/nlohmann_json:=
+ python? ( ${PYTHON_DEPS} )
+"
+
+DEPEND="
+ ${RDEPEND}
+ test? ( dev-cpp/gtest )
+"
+
+BDEPEND="
+ python? (
+ ${PYTHON_DEPS}
+ ${DISTUTILS_DEPS}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ )
+"
+RESTRICT="!test? ( test )"
+
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+PATCHES=(
+ "${FILESDIR}/jsonnet-0.12.1-dont-call-make-from-setuppy.patch"
+ "${FILESDIR}/jsonnet-0.16.0-libdir.patch"
+ "${FILESDIR}/jsonnet-0.16.0-cp-var.patch"
+ "${FILESDIR}/jsonnet-0.18.0-unbundle.patch"
+)
+
+distutils_enable_tests unittest
+
+src_prepare() {
+ cmake_src_prepare
+ use python && distutils-r1_src_prepare
+}
+
+src_configure() {
+ use custom-optimization || replace-flags '-O*' -O3
+ tc-export CC CXX
+
+ local mycmakeargs=(
+ -DUSE_SYSTEM_JSON=ON
+ -DBUILD_STATIC_LIBS=OFF
+ )
+
+ if use test; then
+ mycmakeargs+=(
+ -DBUILD_TESTS=ON
+ -DUSE_SYSTEM_GTEST=ON
+ )
+ else
+ mycmakeargs+=(
+ -DBUILD_TESTS=OFF
+ )
+ fi
+
+ cmake_src_configure
+}
+
+src_compile() {
+ cmake_src_compile
+ use python && CMAKE_BUILD_DIR="${BUILD_DIR}" distutils-r1_src_compile
+}
+
+src_test() {
+ cmake_src_test
+ use python && CMAKE_BUILD_DIR="${BUILD_DIR}" distutils-r1_src_test
+}
+
+python_test() {
+ LD_LIBRARY_PATH="${CMAKE_BUILD_DIR}" "${EPYTHON}" -m unittest python._jsonnet_test -v \
+ || die "Tests failed with ${EPYTHON}"
+}
+
+src_install() {
+ cmake_src_install
+ use python && distutils-r1_src_install
+
+ if use doc; then
+ find doc -name '.gitignore' -delete || die
+ docinto html
+ dodoc -r doc/.
+ fi
+ if use examples; then
+ docinto examples
+ dodoc -r examples/.
+ fi
+}
diff --git a/dev-lang/jsonnet/metadata.xml b/dev-lang/jsonnet/metadata.xml
index 6a3ebc349696..b5ee83413972 100644
--- a/dev-lang/jsonnet/metadata.xml
+++ b/dev-lang/jsonnet/metadata.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="person">
+ <maintainer type="person" proxied="yes">
<email>coles.david@gmail.com</email>
<name>David Coles</name>
</maintainer>
diff --git a/dev-lang/julia-bin/Manifest b/dev-lang/julia-bin/Manifest
index a6a08a6ed55c..eb856fe3c80d 100644
--- a/dev-lang/julia-bin/Manifest
+++ b/dev-lang/julia-bin/Manifest
@@ -1,10 +1,24 @@
-DIST julia-1.5.2-freebsd-x86_64.tar.gz 95898744 BLAKE2B dddafa63acc943bfc06eeae3fa9a3ef9b7484b29b88d37bf064ded255c836678f5d02dec0f7fa788bb763894acae5c51937882ed0391dcf66792198fec7dbce7 SHA512 13e4d1a7e01cd759d64c8ec3d85501904439fde5a9e2cb394963a8977035cd33b241fab27bf0642b069f202ead1d6c84f633002df3b27c4aa60e7adf45a3a8b1
-DIST julia-1.5.2-linux-aarch64.tar.gz 97088109 BLAKE2B 01aa5337cd1fc15655b596959cef8e54b56d8bb11fbced728df301a197aad550f0113b50c0b9e3cab34ea1082e176ced0398cde4e1d7c6d14a72b9a9cab937ea SHA512 09ac5360faae81eb9c78da5831d20f1f2d2c7a93561f6f2857015b579796a059cdecf529c283c9c37dd55163ce3e7b6cd175ee02734f1e11aa12f1163bd6587c
-DIST julia-1.5.2-linux-i686.tar.gz 101473619 BLAKE2B a87cb4cb38236e87041fac1012841d5aed25383bfb212188f4c23f4a961654d8a3b03b85dd5563f83620aa98323e2d2692107eda47559cf9ae332006453a139d SHA512 2ceb56bcae051815d585d3f36b4ae323ad7a3e383e75c07d87cb555fc2463d1a6017fd120f52a1f7110b803bfa546a34e62e8958765b52124612782ac3daf403
-DIST julia-1.5.2-linux-x86_64.tar.gz 105324048 BLAKE2B 410db75cb5b7ed269fd0d8f827773f50ff127ded3346e2f5fe908a1f9c0dd0f00b7600c5343853aaa0dfec3a616f657c52c96290f9c6ea012efcbc2a2b72e701 SHA512 5d14369b6296aa5fa0f7a58ce6b85dc25612ef508ee8dc1dcce7fe3a64de62b77daf419ea5d3a0a78345345787cb3ed563717ecc04df0c4d68b6d60593750f62
-DIST julia-1.5.2-musl-x86_64.tar.gz 101730667 BLAKE2B 1b213a246779815b79f47e6c287f0c7eb438dce42bc9e3e39681dcc0818c7a8c81f7040443c06fd323adb693c96b61cc69099c5df375cae119020ba9d0bb11cd SHA512 5cfbf7938f50286077e132815e10ce4e1e5a589a772ae3b946488d3126713e72ba393e1a45b3bc38b5bc43fc183e7f99b622c8c0d9d939330b142cdee24fccb3
-DIST julia-1.5.3-freebsd-x86_64.tar.gz 95919875 BLAKE2B 620c295a3d0fa9a31ed01b936ddabd001cee621969f61a9165e03ebee05cd1384c62bccd95f4df15ba49f9d6feec16f05c367820c0907919f67809ca136b70bc SHA512 e767bfb3cef034262dc12e0da4006e80d20cc7c971906f5ad355c971e7c751830972a2f4aa47d18fc2a79eb5454f8f160c0c38d536510291690fa6e1da3c83a3
-DIST julia-1.5.3-linux-aarch64.tar.gz 97086173 BLAKE2B 5353a516f24c151d6213ed4c6e189a8ac68933012bcda06084b5e6c1f3a230ebca896b1e8dd29b345c312f323283b4f9045efcece655ef055a797cd5eefbd774 SHA512 0988e229dc9f44230af84796dfb059aa87809c6af5d0e8a7debc4b696e98c45ccc042f956f678819e71afe29d5619421106208c6dce5dfe47aea98482b22c1e3
-DIST julia-1.5.3-linux-i686.tar.gz 101362522 BLAKE2B aba1270fc85cc1afc19856768a39d1cf1c40fb32b676be5da47dc7747294299a044a5202c547d19ad8aa56060b04d7583d7e7c19176f2fdbcccb863593fffccb SHA512 0abaab22626cbd4da4a2389b2aca639f993aa442a8423cba2fda3d9693e0dab4f5b82592691ad74bb7ddf1ae48739406b61fe76b7da626a1f22fe01077b011d2
-DIST julia-1.5.3-linux-x86_64.tar.gz 105260711 BLAKE2B b132fbe090ca4a4cba518efcf2e475f0ceaebcbe2e5ef4eee33697909995ea58d97c3e5015b96eaf2ff23e5ff6b5b67eed62b94a34580961d5671c4f019d4847 SHA512 f0460da198797c92d39d361278be6959e90b2b3d08e070b705c1a5de3a17c0e6b0b010a397d0b02e613d060959fff14c074cf12fdeb956e8f8565989f084d86b
-DIST julia-1.5.3-musl-x86_64.tar.gz 101802400 BLAKE2B da69c1b4ff5bde8692c3fc9ed3d60fd655a32121a0e11a4d1f00b5e4494cc4bcdb0e323a2644cca3a291fa7f7604925d387204df90cc19fee89048c4ba83b2d5 SHA512 e98c74ce2a49532a491a46efe81a2edc85103f9ec04347fe6b052cffdaecadcecb48a02b15ad71853fff6ebb2281498000e89d44732f36d31b6252a1a88bd0a6
+DIST julia-1.10.0-linux-aarch64.tar.gz 160875701 BLAKE2B baa32f378809b058fd654be45b7bdb31d9faee7475c3d47ddd716e48c6964720f3c2edc2a44896cb5a6924c6295a2f3447c9482242678f5d79c193601825af03 SHA512 22d9583abe7f17c54290d68d6d04e48109ae86fe26f8dc22cb8e3a7340dfbe95619084d92ae5da85f29ee24c3b2953d2933340859583c42ef6b64e5d4223ecff
+DIST julia-1.10.0-linux-i686.tar.gz 152845339 BLAKE2B f869aa334e2e8583dabf0b2c6e2285af085f8a5f4183ee0b84372eb6873791414ac579e703d0f246d387c93e907a38622372c422a3df59cf864e92cf3a48ef31 SHA512 80a68656c24a80048b88547a6b19134c9bdc1b52c3bda7015fc937a0abc839c0a0a88e401c373bb5e00028d9fef179b7b93ea41e2f51c6b6fc75bad4cc6b1a2f
+DIST julia-1.10.0-linux-x86_64.tar.gz 168592090 BLAKE2B 5a7059153f522f2ca8e38abc97307c12750ee3d6f7835c396a8f66a7916022d2b663b2eddc135849af6ac3af8769dc796ca35284edfa5e497f6d229099f11b63 SHA512 6c45dd05cba709caeb329d910646fa9cc632b8887c3d6050456d53c34a937e7b1914938d2c2468f82b76396e82a53ae01571676e1f00c65f500d29a560cfd7bd
+DIST julia-1.10.0-musl-x86_64.tar.gz 170594977 BLAKE2B 322fab1e7170374435df3632a8f79d45a9f6a166cf2d879bf045628c9dbc51d394c902f7c46b42f7ba020e2e61f25c8bc1447537b0b350debbe9a2a570e4b45e SHA512 bc68ee0ae1ed898eace61b23c5286b5eafbc14dcb7e8005ecbbc7fe6d7819f901a2748220c62aeababc36fc1331a509acfc4ce5a52f38f86cd24d3ded68db275
+DIST julia-1.6.7-linux-aarch64.tar.gz 107459487 BLAKE2B ad6b3f9e8336e415445781e69138c70b6d5e61ec5e1cf96e622cdac4912585daa3827b9e978c17ddb2585eec451a56f939e148131f15d7fd1d7ace0b3fbe20f4 SHA512 756592e55dea6bfbad4f111aac844a081082081ac97502acb0c6f9b69fae456b194431e215c99a7ef7a7d6ba55b1311a762104b47f28b567c6d74011f298507b
+DIST julia-1.6.7-linux-i686.tar.gz 111100612 BLAKE2B 2646a3777039b3beeda16a93c05605f04edbd16803135e0ba848ef09c8fcaa6ce83dc897900728c76b1011210be18a6eedb4b22b0234c0d75b08d63c881beb4d SHA512 d646639a7e6937a1383ee8d59976997510f1eeb973a58cee18d73c817bddce46b1b9e3aca6258ceb0fc106bfdee42dc205d5c6c8044d445bb5e9d0a02af6f510
+DIST julia-1.6.7-linux-x86_64.tar.gz 114281842 BLAKE2B 4b12cd343e3cdb7724b19eb6573bf5eec0321133fd0d8813cac93cb321cb3b3084757688112d0cb0eb9056ed96b0a58a11f7724853d01a8eea5683c912f97e41 SHA512 0b3e2390151e7a65b478cd6e9000f3dcf2591d1699bd37bc3f7c2344fc2f17413066adea007ab61d9120739b5290631a863c67cdc14805f1973029087563a332
+DIST julia-1.6.7-musl-x86_64.tar.gz 113256485 BLAKE2B 971370556658fb26934b9fb72ef3b9c937aec4c76cb0446152e968b01185431c61b2e47e326a87b5a05ecc3af6dc16b8a7bbcf353370488b164f2f7f2cb946b4 SHA512 96d186a8355588e58b8c9aa081c7c25176ee3cce38929052384c57dfced7b1a15168e11fc9a68cd5636a9de02eb0b8682dd09a7bab38d2a8407b787810780c77
+DIST julia-1.7.3-linux-aarch64.tar.gz 115662839 BLAKE2B 803498c37b2fd67c59b934e5493c87bf80a6fcedfe5f7e28433c97c32bfe8f06aa0bbc276bae44049a32263f8e24b3483821e4ce373e1c4714cca1bf65fc5268 SHA512 9380ce853e9b32143bd1ed7a3ec398474bb35bce9b3d7e54a07d6ee0c2a21725baeaa7335f3b0e7d4aa494a9ce3cbd452fa16a35507c575c8268ff6afdb6ab43
+DIST julia-1.7.3-linux-i686.tar.gz 118413591 BLAKE2B db35cc70ff05f15081e9387aba1b5c8fff1c6ed183f4531f886dea92fe99e107694ff4bd58780b97b07175d97a8119aa5d82b7d54717af8b37409aca282db069 SHA512 c121969bb58239959ebc150c5d7da808bd33f8603cdc167b03028eb44932f83431fdcef3f2fed1492afc0b68305b33cab4bcea1ff9a11d687be8ff013956a360
+DIST julia-1.7.3-linux-x86_64.tar.gz 123160673 BLAKE2B 953554230d8b716db4281386d4265c4c7346ddbfe9c47e48dc0f11641169768f2c786b6da0557da74ed9b29abac73d311d2a78debab46f8c6cee4b4d41e85474 SHA512 4affeea59e37e3c5c50ccadb2303329b8ad7187b7854e9f2b3ece2b03b43457ddb709fdc0ca23e8f88fa5c914570a2d2fa7650634ea1e8d62f6d78df5a0861a7
+DIST julia-1.7.3-musl-x86_64.tar.gz 121889326 BLAKE2B 0f2a6ce5a2d636424472988d8f4061375f5ff7b354b4b4e396036726479a62139b4e60ceffbed17b9d5069e2dfd563c01b8fd3c150f8a15894685c212a0f8c8a SHA512 7a6b672d5dd5ffc97c5b96632e1b407b34958c6ad70a6bceba044af3dde11723aa9e7c19b8ca7d3302a26fdd146c07617dd613c6cb4c2fec2c388451025cb50b
+DIST julia-1.8.3-linux-aarch64.tar.gz 123338942 BLAKE2B 57eec1d8a03667db6f7b1cf4adc310c992cb785d6adb50a6e1e92caa1196693a81a1b1b9211761c20db5da59ac89dd83515f95240f83103e39728ec4e64644fc SHA512 cd2fe45f5a3ee9d6488020889348eb6db6648047fc396ec95142e7464dfbd2d4a18259040ae5f78cbd62d23fe83b9642ba5538ebb5a973214691127a211136a1
+DIST julia-1.8.3-linux-i686.tar.gz 126268706 BLAKE2B 3328bac1405e0386476727a1e13c7210de81db8670d13df7f22e3917fa5a5ce04c8e5e0bc0900a5bacee75e18c47d3ed8bd3b0fccda2a0d9f3a61512ee7ac277 SHA512 e8760b6b52b6220991e9279d85fe6e72ed35f8e7a9d27fcac28f5994f65f126687d7cc87b3e80ff32402b359af335fce85cdfa2b844c3d355d8d113f1c92f387
+DIST julia-1.8.3-linux-x86_64.tar.gz 130030846 BLAKE2B 475435307310a425587da07d38437d8f29b41428ce74e61ee98436740d6a16e76d0375a4a77322115c8d9097e67240507830391db408a4c4005ed2eba9059656 SHA512 de0f9c61cf2248577343a0507b6c4cafc74aa8bd168b4c0d51da0177fce19a132b1c79df6621cb1e18308f2d829bbe2facd7f6881504429bb401d6092a547e67
+DIST julia-1.8.3-musl-x86_64.tar.gz 131533344 BLAKE2B 66b5fb2612e889cb08e7d1f358e72b3ac90c3263e5ab4ed8f12962aac9de32b93f7587a456cd1175fc443c9f88250862501fe983c1b19f82331c980faa32eb59 SHA512 2f50a3d9caa98681640f3b102ceb17802e681523c2c9245ceca8bd68fcf38b53e352d02782558b70075836da6ea21239defd7d627c62150a39199367c685cebf
+DIST julia-1.8.5-linux-aarch64.tar.gz 123926747 BLAKE2B b555ac6a635ba7447c18ef2ab479a662e540903b4a905ccbc112db5d9eaa4f3da365c22d6f33512e0a9bffffa1d32efdf161e93e474aa4e5152f25a9d99b6b2f SHA512 c8c25089fd2be815ec9717a2e8619cf2defbabadef2d93b82dd5b7acf71f2cab28eb7b2e246bef4ecb7c073676e4786bb9897d96a89092b3142d0471775d99aa
+DIST julia-1.8.5-linux-i686.tar.gz 126939532 BLAKE2B 2c778f3a4203643e6c5066ebe84a9183f554cf88d78b19c7229c245a8467197583402036b34fd6c87fba4aca46bb94b3196a911b3208c512700894aac3587d81 SHA512 cc12d89869ac215fa41a0a1369cf88a6558c0a8a05d485d0e3df8ff065226dba5b6672c842d977d30e4cf27fc83b280a68dbaa6711899b4affea4560e6221b26
+DIST julia-1.8.5-linux-x86_64.tar.gz 130873886 BLAKE2B f26b2ff6f6dba20e5101063d66528950ed10b30597137d205a3180b9cb2aac83b4adc6ac74b1a55a344aaf3387981a873e23fdfd4eaac38b44c9a6e133101b8a SHA512 d8b4d1daef7c5ed970f4370c46f8fdaebd48c2e26cf4f1709a0c746811fbef9c0471dfd3b731218426e872863117c0720138c68f0830a73f4c6f8293e99d3ca4
+DIST julia-1.8.5-musl-x86_64.tar.gz 132523274 BLAKE2B 222eb752e502b549bb47d09051e1b3c2d357cfef651a719e7a31610a861bb26c7449fef7d39c7e5e0f3f8568d760ce5a6e4e0c5ade506e80a75d46569bcb3c70 SHA512 91c3fddae6090d08aba2e29294c86db9fc82d2c6fd61e8f8d03e93c40f41eadf8ecfbc5f6a7f78cd801e54fd3819fe27424d1eae5cbf4c5769435abb242970c1
+DIST julia-1.9.4-linux-aarch64.tar.gz 139486769 BLAKE2B 138c048a7601a46ec8c74ecc1d8b854742fed6b47552a6ec40361be07cfb8cea1e9e97f367b720a295bceab32ae3c49da27a22614e2fdda79657ba444f63f4bf SHA512 45af34e9db8ec59c812b1ec3b4c1a661e9fa33467568f545182828031256379764a81a34b7dec650fef0b6bb0c126f053fd3821ef1bc9eae335e02fda9b6969a
+DIST julia-1.9.4-linux-i686.tar.gz 134192280 BLAKE2B 3cabdb8dc5adcbe0c4f89a50106c886896932b8531193d9efb536682f17247854219cfd1196b90ddf27f393235a8b23f277d646aaa70570ba7ff63e871436cea SHA512 ad5fa0a30b206e774c3611f2a3d10d011020a9b4190e2210b0a747e61c83d9e3f3c056a6ea003bf3436be96af92fcf5359af4e82bf645506e9ed52328b006eb9
+DIST julia-1.9.4-linux-x86_64.tar.gz 146163887 BLAKE2B 39f9bfdb32a1fce712b95ba06b25178baf88ee44beadc29cb043b8710561334824521c0975911f13a0c8074e6b36c29d8a0ef6598c177fcdab7c176d2df11ffb SHA512 9370b8c6c77af403095f305852f7ab9c9635984fae444352511c23db2c391363c92e5f773446f6a249785341457bb8986b5c6edebdaa3a688a8c0333efab001b
+DIST julia-1.9.4-musl-x86_64.tar.gz 148457135 BLAKE2B 7a35767a3f32e954a7080a1d98ff1a5c0dc461d58419d61f04099f4180ae2ec944ee50b8c445538057e9110652aed8ffab23f3379340043f83c8ce1c6d7b3109 SHA512 e80c6986e3ce9b33bfbafee50d3229887172365f7c19d49f3d905ea48f0088ebaf3f44e9a9f91c26a19b6b2bcddba89fed9cefe6cd1bb356fb56609e1a8dfe2c
diff --git a/dev-lang/julia-bin/julia-bin-1.10.0.ebuild b/dev-lang/julia-bin/julia-bin-1.10.0.ebuild
new file mode 100644
index 000000000000..f4cf78e60c0b
--- /dev/null
+++ b/dev-lang/julia-bin/julia-bin-1.10.0.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MY_PN=${PN/-bin/}
+MY_P=${MY_PN}-${PV/_/-}
+MY_PV=$(ver_cut 1-2)
+BASE_SRC_URI="https://julialang-s3.julialang.org/bin"
+
+DESCRIPTION="High-performance programming language for technical computing"
+HOMEPAGE="https://julialang.org/"
+SRC_URI="
+ x86? ( ${BASE_SRC_URI}/linux/x86/${MY_PV}/${MY_P}-linux-i686.tar.gz )
+ amd64? (
+ elibc_glibc? ( ${BASE_SRC_URI}/linux/x64/${MY_PV}/${MY_P}-linux-x86_64.tar.gz )
+ elibc_musl? ( ${BASE_SRC_URI}/musl/x64/${MY_PV}/${MY_P}-musl-x86_64.tar.gz )
+ )
+ arm64? ( ${BASE_SRC_URI}/linux/aarch64/${MY_PV}/${MY_P}-linux-aarch64.tar.gz )
+"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="MIT"
+SLOT="${MY_PV}"
+KEYWORDS="-* ~amd64 ~arm64 ~x86"
+
+RESTRICT="strip"
+
+RDEPEND="app-arch/p7zip"
+DEPEND="${RDEPEND}"
+
+QA_PREBUILT="*"
+QA_SONAME="*"
+
+# the following libs require libblastrampoline.so, which is however generated
+# at runtime...
+QA_DT_NEEDED="*"
+
+src_install() {
+ insinto "/usr/$(get_libdir)/${MY_P}/"
+ doins -r ./etc
+ doins -r ./include
+ doins -r ./lib
+ doins -r ./share
+
+ exeinto "/usr/$(get_libdir)/${MY_P}/bin"
+ doexe "bin/${MY_PN}"
+ dosym "../$(get_libdir)/${MY_P}/bin/${MY_PN}" "/usr/bin/${MY_PN}${SLOT}"
+
+ local revord=$(( 9999 - $(ver_cut 1) * 100 - $(ver_cut 2) )) # 1.6 -> 106
+ newenvd - 99${MY_PN}${revord} <<-EOF
+ PATH="${EPREFIX}/usr/$(get_libdir)/${MY_P}/bin"
+ EOF
+
+ elog "QA warnings about unresolved SONAME dependencies can be safely ignored."
+}
diff --git a/dev-lang/julia-bin/julia-bin-1.5.2.ebuild b/dev-lang/julia-bin/julia-bin-1.6.7.ebuild
index 61861f476e93..693dc424a913 100644
--- a/dev-lang/julia-bin/julia-bin-1.5.2.ebuild
+++ b/dev-lang/julia-bin/julia-bin-1.6.7.ebuild
@@ -1,7 +1,8 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
+
MY_PN=${PN/-bin/}
MY_P=${MY_PN}-${PV/_/-}
MY_PV=$(ver_cut 1-2)
@@ -15,25 +16,21 @@ SRC_URI="
elibc_glibc? ( ${BASE_SRC_URI}/linux/x64/${MY_PV}/${MY_P}-linux-x86_64.tar.gz )
elibc_musl? ( ${BASE_SRC_URI}/musl/x64/${MY_PV}/${MY_P}-musl-x86_64.tar.gz )
)
- amd64-fbsd? ( ${BASE_SRC_URI}/freebsd/x64/${MY_PV}/${MY_P}-freebsd-x86_64.tar.gz )
arm64? ( ${BASE_SRC_URI}/linux/aarch64/${MY_PV}/${MY_P}-linux-aarch64.tar.gz )
"
+S="${WORKDIR}/${MY_P}"
LICENSE="MIT"
-SLOT="0"
+SLOT="${MY_PV}"
KEYWORDS="-* ~amd64 ~x86"
-IUSE="elibc_glibc"
+RESTRICT="strip"
-RDEPEND="!dev-lang/julia"
+RDEPEND="app-arch/p7zip"
DEPEND="${RDEPEND}"
-RESTRICT="strip"
-
QA_PREBUILT="*"
QA_SONAME="*"
-S="${WORKDIR}/${MY_P}"
-
src_install() {
insinto "/usr/$(get_libdir)/${MY_P}/"
doins -r ./etc
@@ -42,10 +39,11 @@ src_install() {
doins -r ./share
exeinto "/usr/$(get_libdir)/${MY_P}/bin"
- doexe bin/julia
+ doexe "bin/${MY_PN}"
+ dosym "../$(get_libdir)/${MY_P}/bin/${MY_PN}" "/usr/bin/${MY_PN}${SLOT}"
- cat > 99julia-bin <<-EOF
- PATH="${EROOT}/usr/$(get_libdir)/${MY_P}/bin"
+ local revord=$(( 9999 - $(ver_cut 1) * 100 - $(ver_cut 2) )) # 1.6 -> 106
+ newenvd - 99${MY_PN}${revord} <<-EOF
+ PATH="${EPREFIX}/usr/$(get_libdir)/${MY_P}/bin"
EOF
- doenvd 99julia-bin
}
diff --git a/dev-lang/julia-bin/julia-bin-1.5.3.ebuild b/dev-lang/julia-bin/julia-bin-1.7.3.ebuild
index 61861f476e93..a5facfea6337 100644
--- a/dev-lang/julia-bin/julia-bin-1.5.3.ebuild
+++ b/dev-lang/julia-bin/julia-bin-1.7.3.ebuild
@@ -1,7 +1,8 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
+
MY_PN=${PN/-bin/}
MY_P=${MY_PN}-${PV/_/-}
MY_PV=$(ver_cut 1-2)
@@ -15,25 +16,21 @@ SRC_URI="
elibc_glibc? ( ${BASE_SRC_URI}/linux/x64/${MY_PV}/${MY_P}-linux-x86_64.tar.gz )
elibc_musl? ( ${BASE_SRC_URI}/musl/x64/${MY_PV}/${MY_P}-musl-x86_64.tar.gz )
)
- amd64-fbsd? ( ${BASE_SRC_URI}/freebsd/x64/${MY_PV}/${MY_P}-freebsd-x86_64.tar.gz )
arm64? ( ${BASE_SRC_URI}/linux/aarch64/${MY_PV}/${MY_P}-linux-aarch64.tar.gz )
"
+S="${WORKDIR}/${MY_P}"
LICENSE="MIT"
-SLOT="0"
-KEYWORDS="-* ~amd64 ~x86"
-IUSE="elibc_glibc"
+SLOT="${MY_PV}"
+KEYWORDS="-* ~amd64 ~arm64 ~x86"
+RESTRICT="strip"
-RDEPEND="!dev-lang/julia"
+RDEPEND="app-arch/p7zip"
DEPEND="${RDEPEND}"
-RESTRICT="strip"
-
QA_PREBUILT="*"
QA_SONAME="*"
-S="${WORKDIR}/${MY_P}"
-
src_install() {
insinto "/usr/$(get_libdir)/${MY_P}/"
doins -r ./etc
@@ -42,10 +39,11 @@ src_install() {
doins -r ./share
exeinto "/usr/$(get_libdir)/${MY_P}/bin"
- doexe bin/julia
+ doexe "bin/${MY_PN}"
+ dosym "../$(get_libdir)/${MY_P}/bin/${MY_PN}" "/usr/bin/${MY_PN}${SLOT}"
- cat > 99julia-bin <<-EOF
- PATH="${EROOT}/usr/$(get_libdir)/${MY_P}/bin"
+ local revord=$(( 9999 - $(ver_cut 1) * 100 - $(ver_cut 2) )) # 1.6 -> 106
+ newenvd - 99${MY_PN}${revord} <<-EOF
+ PATH="${EPREFIX}/usr/$(get_libdir)/${MY_P}/bin"
EOF
- doenvd 99julia-bin
}
diff --git a/dev-lang/julia-bin/julia-bin-1.8.3.ebuild b/dev-lang/julia-bin/julia-bin-1.8.3.ebuild
new file mode 100644
index 000000000000..364b1b88cb62
--- /dev/null
+++ b/dev-lang/julia-bin/julia-bin-1.8.3.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MY_PN=${PN/-bin/}
+MY_P=${MY_PN}-${PV/_/-}
+MY_PV=$(ver_cut 1-2)
+BASE_SRC_URI="https://julialang-s3.julialang.org/bin"
+
+DESCRIPTION="High-performance programming language for technical computing"
+HOMEPAGE="https://julialang.org/"
+SRC_URI="
+ x86? ( ${BASE_SRC_URI}/linux/x86/${MY_PV}/${MY_P}-linux-i686.tar.gz )
+ amd64? (
+ elibc_glibc? ( ${BASE_SRC_URI}/linux/x64/${MY_PV}/${MY_P}-linux-x86_64.tar.gz )
+ elibc_musl? ( ${BASE_SRC_URI}/musl/x64/${MY_PV}/${MY_P}-musl-x86_64.tar.gz )
+ )
+ arm64? ( ${BASE_SRC_URI}/linux/aarch64/${MY_PV}/${MY_P}-linux-aarch64.tar.gz )
+"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="MIT"
+SLOT="${MY_PV}"
+KEYWORDS="-* ~amd64 ~arm64 ~x86"
+
+RESTRICT="strip"
+
+RDEPEND="app-arch/p7zip"
+DEPEND="${RDEPEND}"
+
+QA_PREBUILT="*"
+QA_SONAME="*"
+
+# the following libs require libblastrampoline.so, which is however generated
+# at runtime...
+QA_DT_NEEDED="*"
+
+src_install() {
+ insinto "/usr/$(get_libdir)/${MY_P}/"
+ doins -r ./etc
+ doins -r ./include
+ doins -r ./lib
+ doins -r ./share
+
+ exeinto "/usr/$(get_libdir)/${MY_P}/bin"
+ doexe "bin/${MY_PN}"
+ dosym "../$(get_libdir)/${MY_P}/bin/${MY_PN}" "/usr/bin/${MY_PN}${SLOT}"
+
+ local revord=$(( 9999 - $(ver_cut 1) * 100 - $(ver_cut 2) )) # 1.6 -> 106
+ newenvd - 99${MY_PN}${revord} <<-EOF
+ PATH="${EPREFIX}/usr/$(get_libdir)/${MY_P}/bin"
+ EOF
+
+ elog "QA warnings about unresolved SONAME dependencies can be safely ignored."
+}
diff --git a/dev-lang/julia-bin/julia-bin-1.8.5.ebuild b/dev-lang/julia-bin/julia-bin-1.8.5.ebuild
new file mode 100644
index 000000000000..6d83b2b69e6a
--- /dev/null
+++ b/dev-lang/julia-bin/julia-bin-1.8.5.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MY_PN=${PN/-bin/}
+MY_P=${MY_PN}-${PV/_/-}
+MY_PV=$(ver_cut 1-2)
+BASE_SRC_URI="https://julialang-s3.julialang.org/bin"
+
+DESCRIPTION="High-performance programming language for technical computing"
+HOMEPAGE="https://julialang.org/"
+SRC_URI="
+ x86? ( ${BASE_SRC_URI}/linux/x86/${MY_PV}/${MY_P}-linux-i686.tar.gz )
+ amd64? (
+ elibc_glibc? ( ${BASE_SRC_URI}/linux/x64/${MY_PV}/${MY_P}-linux-x86_64.tar.gz )
+ elibc_musl? ( ${BASE_SRC_URI}/musl/x64/${MY_PV}/${MY_P}-musl-x86_64.tar.gz )
+ )
+ arm64? ( ${BASE_SRC_URI}/linux/aarch64/${MY_PV}/${MY_P}-linux-aarch64.tar.gz )
+"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="MIT"
+SLOT="${MY_PV}"
+KEYWORDS="-* ~amd64 ~arm64 ~x86"
+
+RESTRICT="strip"
+
+RDEPEND="app-arch/p7zip"
+DEPEND="${RDEPEND}"
+
+QA_PREBUILT="*"
+QA_SONAME="*"
+
+# the following libs require libblastrampoline.so, which is however generated
+# at runtime...
+QA_DT_NEEDED="*"
+
+src_install() {
+ insinto "/usr/$(get_libdir)/${MY_P}/"
+ doins -r ./etc
+ doins -r ./include
+ doins -r ./lib
+ doins -r ./share
+
+ exeinto "/usr/$(get_libdir)/${MY_P}/bin"
+ doexe "bin/${MY_PN}"
+ dosym "../$(get_libdir)/${MY_P}/bin/${MY_PN}" "/usr/bin/${MY_PN}${SLOT}"
+
+ local revord=$(( 9999 - $(ver_cut 1) * 100 - $(ver_cut 2) )) # 1.6 -> 106
+ newenvd - 99${MY_PN}${revord} <<-EOF
+ PATH="${EPREFIX}/usr/$(get_libdir)/${MY_P}/bin"
+ EOF
+
+ elog "QA warnings about unresolved SONAME dependencies can be safely ignored."
+}
diff --git a/dev-lang/julia-bin/julia-bin-1.9.4.ebuild b/dev-lang/julia-bin/julia-bin-1.9.4.ebuild
new file mode 100644
index 000000000000..6d83b2b69e6a
--- /dev/null
+++ b/dev-lang/julia-bin/julia-bin-1.9.4.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MY_PN=${PN/-bin/}
+MY_P=${MY_PN}-${PV/_/-}
+MY_PV=$(ver_cut 1-2)
+BASE_SRC_URI="https://julialang-s3.julialang.org/bin"
+
+DESCRIPTION="High-performance programming language for technical computing"
+HOMEPAGE="https://julialang.org/"
+SRC_URI="
+ x86? ( ${BASE_SRC_URI}/linux/x86/${MY_PV}/${MY_P}-linux-i686.tar.gz )
+ amd64? (
+ elibc_glibc? ( ${BASE_SRC_URI}/linux/x64/${MY_PV}/${MY_P}-linux-x86_64.tar.gz )
+ elibc_musl? ( ${BASE_SRC_URI}/musl/x64/${MY_PV}/${MY_P}-musl-x86_64.tar.gz )
+ )
+ arm64? ( ${BASE_SRC_URI}/linux/aarch64/${MY_PV}/${MY_P}-linux-aarch64.tar.gz )
+"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="MIT"
+SLOT="${MY_PV}"
+KEYWORDS="-* ~amd64 ~arm64 ~x86"
+
+RESTRICT="strip"
+
+RDEPEND="app-arch/p7zip"
+DEPEND="${RDEPEND}"
+
+QA_PREBUILT="*"
+QA_SONAME="*"
+
+# the following libs require libblastrampoline.so, which is however generated
+# at runtime...
+QA_DT_NEEDED="*"
+
+src_install() {
+ insinto "/usr/$(get_libdir)/${MY_P}/"
+ doins -r ./etc
+ doins -r ./include
+ doins -r ./lib
+ doins -r ./share
+
+ exeinto "/usr/$(get_libdir)/${MY_P}/bin"
+ doexe "bin/${MY_PN}"
+ dosym "../$(get_libdir)/${MY_P}/bin/${MY_PN}" "/usr/bin/${MY_PN}${SLOT}"
+
+ local revord=$(( 9999 - $(ver_cut 1) * 100 - $(ver_cut 2) )) # 1.6 -> 106
+ newenvd - 99${MY_PN}${revord} <<-EOF
+ PATH="${EPREFIX}/usr/$(get_libdir)/${MY_P}/bin"
+ EOF
+
+ elog "QA warnings about unresolved SONAME dependencies can be safely ignored."
+}
diff --git a/dev-lang/julia-bin/julia-bin-9999.ebuild b/dev-lang/julia-bin/julia-bin-9999.ebuild
new file mode 100644
index 000000000000..def85bee0129
--- /dev/null
+++ b/dev-lang/julia-bin/julia-bin-9999.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+MY_PN=${PN/-bin/}
+
+DESCRIPTION="High-performance programming language for technical computing"
+HOMEPAGE="https://julialang.org/"
+S="${WORKDIR}/"
+
+PROPERTIES="live"
+MY_P=${MY_PN}-latest
+SRC_URI=""
+
+LICENSE="MIT"
+SLOT="9999"
+RESTRICT="strip"
+
+RDEPEND="app-arch/p7zip"
+DEPEND="${RDEPEND}"
+
+QA_PREBUILT="*"
+
+src_unpack() {
+ NIGHTLIES_S3="https://julialangnightlies-s3.julialang.org/bin"
+ if use x86; then
+ URI="${NIGHTLIES_S3}/linux/x86/${MY_P}-linux32.tar.gz"
+ elif use amd64; then
+ URI="${NIGHTLIES_S3}/linux/x64/${MY_P}-linux64.tar.gz"
+ elif use arm64; then
+ URI="${NIGHTLIES_S3}/linux/aarch64/${MY_P}-linuxaarch64.tar.gz"
+ else
+ die "arch not supported"
+ fi
+
+ wget -O "${T}/julia.tar.gz" "${URI}"
+ unpack "${T}/julia.tar.gz"
+}
+
+src_install() {
+ insinto "/usr/$(get_libdir)/${MY_P}/"
+ doins -r ./julia-*/etc
+ doins -r ./julia-*/include
+ doins -r ./julia-*/lib
+ doins -r ./julia-*/share
+
+ exeinto "/usr/$(get_libdir)/${MY_P}/bin"
+ doexe ./julia-*/bin/julia
+ dosym "../$(get_libdir)/${MY_P}/bin/julia" "/usr/bin/julia${PV}"
+}
diff --git a/dev-lang/julia-bin/metadata.xml b/dev-lang/julia-bin/metadata.xml
index 33f454aec98f..9571d75d1817 100644
--- a/dev-lang/julia-bin/metadata.xml
+++ b/dev-lang/julia-bin/metadata.xml
@@ -1,17 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>tamiko@gentoo.org</email>
<name>Matthias Maier</name>
</maintainer>
- <maintainer type="person">
- <email>jeffrey@icurse.nl</email>
- <name>Jeffrey Lin</name>
- </maintainer>
<maintainer type="project">
- <email>proxy-maint@gentoo.org</email>
- <name>Proxy Maintainers</name>
+ <email>sci@gentoo.org</email>
+ <name>Gentoo Science Project</name>
</maintainer>
<longdescription lang="en">
Julia is a high-level, high-performance dynamic programming language for
diff --git a/dev-lang/julia/Manifest b/dev-lang/julia/Manifest
index 1bce6f6baf50..38d3d84115db 100644
--- a/dev-lang/julia/Manifest
+++ b/dev-lang/julia/Manifest
@@ -1,10 +1,20 @@
-DIST julia-1.5.2.tar.gz 6945862 BLAKE2B 9dd9f83fb9ae251f66ae65e14a252b662c3c7d6f92638d91ef6e286032020052e1812f2891270854e0ddeda474afff55c8f87d300550503c1093f4c5e0a51959 SHA512 aa177d03bbde4f368dd2fb14f64d21130531616bcd544af7babbb7fb7c9ee5ea7528c756e10f78468aaffebbcbc6f48e92397c1c13dc3f130b64a82e478f43dc
-DIST julia-1.5.3.tar.gz 6949901 BLAKE2B 08f8496980a9bbb9effc0c72cb6b7a5ce1dbd1774735caa366ddc1bb5404117111c624a639f6eb48360061f9fc597a7b37dff24f8555f03ebc4a22524cbeb3b8 SHA512 9e644a64fd6e2caf0390a2bc470084406c078244e65b70a2e3b031d5806c1dff780273ccccfe4bccfd8c03778b7d3a44de7a84bd13f3512afe6864efa5a730fc
-DIST julia-Pkg-49908bffe83790bc7cf3c5d46faf3667f8902ad4.tar.gz 389738 BLAKE2B 1ed9201badf0a1db5142e0566bfe085b364e4681670937ac5fa53c15312ff8eb29d5e783b75fe3f4f379b041ba38c66ce94962fa7d98fcfd0b7b49acd1749d69 SHA512 a85aa80b3080794a8e3ae5ce54856e63457c461659c12fde5dde1b5ec33176ea06af49ee516d01ccd7b78d8358de2fe0ffcd5c6a6d5a5088cdcd76a0133780eb
-DIST julia-UnicodeData-13.0.0.txt 1851767 BLAKE2B 72bbcf352f2f6a004abb3f351fe5da160e83644feea8de0ca154b5a1aa78f36cb04b252d0c7b64a5eeca388e600b2875bb76bc2746ee799a1a6eff97c1fe8b06 SHA512 1a4a662e2ab33469976bf5f91aa6933ed9b73f6d4179a2daffb349e1869d7d6cfa885b164e82d15dcdad7458cd451c81add58d875eb0c70de854589dc97b2055
-DIST julia-dsfmt-2.2.3.tar.gz 291773 BLAKE2B 6ffae90494d72527920c80fc0fb005da1c7b84f8a03a7ecb0789434c0fff97359e5098e85431896dffccc7d5148c414e847aaba5feef648b8788421a466ff65e SHA512 6d8ddcd01aab3f9039f4f0288a8af53e290cc2f293ed8c4a8c9f3b3f12398e7eedfce8016117b425766ba89c61c86c13b3e420035b5f9bf91315b8b814c03662
-DIST julia-libuv-1fcc6d66f9df74189c74d3d390f02202bb7db953.tar.gz 1590342 BLAKE2B eca658f74421587aec78cb38f5a712033afb072e6425a6ce28fd5d4bac61e41cacbd5a850c1f2b29c386b944d1d9c4f16b7d090f7d2dd6b963b5dbc94ae18981 SHA512 70b0c738a60b4e476750b7de8d120e735359e2c36fcb3a8a38628a0ae326210ed3b15d793dfd5443d7aa5603e83e7d99f567aa4c1696846d950df9f83648669c
-DIST julia-libuv-35b1504507a7a4168caae3d78db54d1121b121e1.tar.gz 1577394 BLAKE2B 8ab36f781619f710a64ddc6cf257a4c2f6d27ac22e33ed6f184902d0c6cc3a3941254e0a825071fcd57f869e3ccc5eaf71856539cf6b484358d5aafe383000a9 SHA512 5932e9105346e952fd0f51f79898e5b9c993261ec1558408437647ab3b3ce282562f1e0a16db5704cb66e7aa7a4c6a75dd7f0da498a98b1b6af48da88b4869f0
-DIST julia-libwhich-81e9723c0273d78493dc8c8ed570f68d9ce7e89e.tar.gz 4183 BLAKE2B c932e23b1b476d3fd16cf6f451efd5fc6d9c1ec2c53e8ac086340a100817d9b30dae3eff50b284a42c09b2bbae30b9e2fd38b2881f8cbf4974a89f3bd0c87599 SHA512 6fb77b715d70d9bc95a8546c3bf97bd3677c7ea344b88bb5bc3bbfac9dceabe8a8cde7a0f64dec884cde802e4a3000e30837d3f824b5a9242348c4fe061526a3
-DIST julia-utf8proc-0890a538bf8238cded9be0c81171f57e43f2c755.tar.gz 155521 BLAKE2B 32dc1a8fb641e89057d317e579f1802b7f7dfbdbea7f91c01b282b9a88c2fc6143743d5e45f46d6d465857cfe1b28bd39e9a0da19e80516536c57cb62b139d27 SHA512 95d6dba2bbdfc5003f6d21fd02c926c7db9661895010041aacee55fa11dc2524bcffaa90965e2a9a8f2a9e49e93ec7572d6a4de6d5d9f9e075b787537864ea20
-DIST llvm-9.0.1.src.tar.xz 33035112 BLAKE2B 5ae7ac42507cb14983eec0785dfc9b9c788cae75d5493ddf6734da55d3733cc90e35634aa39aa536654d4b68c3ccb7c2f989746f21c634c8989a57d9d32a15b2 SHA512 bfb6960a4dd1e18f4005f324f478a781c69e8ec7c20569d9b243fcb9372dc7733b254f26c683373537990cc9c109c78eaf0f65449629ee17caca1bce9b9ccccd
+DIST julia-0b211609.patch 9574 BLAKE2B bf43f143b8873ad1812d95d5866a77f28b5dfeb05f41c9dd8f384109ec8cfab09f78bb7b891d5178d6c445ba58cdfe2bdf0cc4c5bf032910c42d4fd1b89883f7 SHA512 aaeeee2e96773589e4347af4df169ef3d241a4c7a22d28ec356a13062f7d11f043cebce8b79afbebb1fb411ad957d4d14880ae051924cb694b39283ccce1658b
+DIST julia-1.8.0-074d761f.patch 2198 BLAKE2B 7d4b147e290defceaad1b5b6d0c2c9a323b47d685bb1865b23c84aa68135c00104e653a5046d276aa540415ee4c95426f1a4538df3ba0ae4c348966a2f2b1742 SHA512 ff1e23746851b1b7a4480df75815abb35ccc8006f622acb5fb3928e20832cf55022c96650590c8dfea9b39185a3284a0d1310dee3f439429c91e00af567b66f1
+DIST julia-1.8.0-0db596e6.patch 15029 BLAKE2B 2d5152436c2a7b0dcd60346c9fe9ea008f7672a68ae038762c5952c6c85173d28b3fd7335282e783cc1f91102e8dd58ae9967caa476ad8f93dd60f8f485fbbe3 SHA512 1f4eb42656bbaed3c85d520875c687f0dd98e9ef0d73f0d3a2b3ac4395020984effc03477c56ab6594cd15e87899923591f6cabeb4e2a43c26725ebe51dbf0be
+DIST julia-1.8.0-190565c2.patch 4166 BLAKE2B f55937098219f2d34044cf8963b5421912c2eeeec0e38f8f2c6a0146412f6c653a9797cc1695a514dff31a628d904f68a2750fd0fd63057f5dd34210ae845e92 SHA512 a1b26fb0e36767e42268e9cf97ff4b8bc792e8c4c00196b335dede91d814c381a34711e8759b175c0fd66dd88e91edef7b467be16854267c66bf653bb361df3a
+DIST julia-1.8.0-23f39f83.patch 23569 BLAKE2B aa82427c7e30720cd534ceeb947d6f489239986f2f5b10475038443f8e3ca4a920f88b9efb9395c52a9f9400b3292b3696d774bdf3165695ee56758c83548f67 SHA512 00a301964515bc57f199cd7ee5b6c9221f1635bb2e4972b1073d5f5606c9b7639c469be8a584227eb344138c8bf35c72d3b942b02baf5f94d5dc22e0e1d8d723
+DIST julia-1.8.0-3423639d.patch 669 BLAKE2B cecc073c873cc4c530173fef5092e8c81d05917e021a3922df2a3c25d12fa0852e238a5f55f3def063b6c37d78306c0960371d3b19c342f61da5d3a6ddc46b94 SHA512 95ebb148d13df10afc57b62b559e320cefc5bad1736ef1146dc8c532f114ade79294ab91d5452566f5973c613e42e6d024cc13e13349cd9fd171f5a20f04f142
+DIST julia-1.8.0-68adc00e.patch 2388 BLAKE2B 6b422a0362114395663be266de852f953290aaea2ec8c6dd16a8c62f93bf8cd96cdd519a001ddffa10b701b7ca6fdc3b205e5d23fc6db75ee1718bab9af02061 SHA512 895258ea03e2edd48be22884a331489761053148a2d8101a5a8deb3d38c5932df0a672a29b40278fd9af25e4956b85d47d63d270e006549d80050bdb459b91f8
+DIST julia-1.8.0-700c69b1.patch 1155 BLAKE2B 160a44eaa652c91e8cbda9927922cc13028c269d249a18bafc77f9bdd8335d1652809250ee1d36e9e6c9cc774b056fb6fdb556a4e6e6429c2f48ef7c54f0579e SHA512 1bf37e96be9230c31937871582f4767bb7aa14690a666ef80f886540b7321a7fd2f8756ef591b65177fa7b8a288dcaefeaf884501fd27582e46f3520555eccda
+DIST julia-1.8.0-ed9851b0.patch 6957 BLAKE2B f40a56bf3b00cc8d0a764ce7d9ef75b6e5dbab70aa13aad810e7288c4b1b0609ee61b1c6661a4d34423c5f25b19c56b326fa0ae520f1310c673d2c0921e4dabb SHA512 a4b6ee8b80639e74185ddaf8567b81eaee18efef02003e254b5e31268f730e022dcb1a53d8595a82570303b5f57ea885ca86374ca5eb7c0b2b270a5c104b79b5
+DIST julia-1.8.0-julia-hardcoded-libs.patch 2411 BLAKE2B d71683c68c350c16c61c13e0378072a7689cb6e07ab7d4b940a5049f37ec58d8f4061b94ba5ba3d2dcf73a403b34d5fbe92bb723a0c5a2c318f9c3bd3631f143 SHA512 0256c5af1713b3551b39e0d89168eafb235e6337a9f07efd24a2e271a11bf724295d0a46761bf1a4d3ed14c4539ef1ef56adcf5580879cac268867aac3e2c20e
+DIST julia-1.8.0-julia-libunwind-1.6.patch 750 BLAKE2B 35bc6a5fef212c1596c88ddff723795cd3dd46852a602e5c30739af3b3bd8ee78b99635fa35273d0702fc354d31f75c109503225ff6f564a2f9afb64c84e9eda SHA512 7623d7c897ef90909f331c9bad27625505df758d7b21d765385efc7b02a48360ca2e2092057802a5e523b255eca036393ec27148fb567313db1497f691cd6d1c
+DIST julia-1.8.0-julia-llvm-14.patch 882 BLAKE2B f46f02554a6fc997763d368b813298da7158c82adbbf43ec98b3d7830163c167d9e1f0e22e17cd42b2900baea91c49611bf5e14a57169beb7f29c505ed161307 SHA512 856e299e7523ae15e6bf579c7aef24d3de67d6e10bfb168f7c5caa887fab1752e321b777d465a3c85947441153c5e898431103272b9f94f28d0fabff77afe7a2
+DIST julia-1.8.0-julia-mpfr-4.2.patch 721 BLAKE2B a8214ba7ede33ea61a72aeeffec1a2be9d31e1e86f02ed1ad5da377c1c67db4316d67c6db87d62504477d1b40ca4b2cb7657ada85f3e8a2e7dfa967d569cc372 SHA512 db5b2cfc731083001c243e1fab08bc49a765bcd39ec8f06d19cf02ab95a59b8cebe850b0d4449ddb03610940d6c0cfed3f99a1475b4006b045df8f0029854d46
+DIST julia-1.8.0-julia-system-cblas.patch 4078 BLAKE2B 58aac552ea63859a03fe24fed69c02f9968aa7924abe2ffdf9e33e965d64877206216f1604f28fc67739cada4b5ce7b508feaad18080e3a5e78d89447d0f2a05 SHA512 d4b437da35672aa0b9f371da66a8675ca5be28276886edafb3566c3ea0d0ed8ed2bac192b43a0d292ee4f2754b596b7b79de76f136cfcada9916ff94a544b372
+DIST julia-1.8.0-make-install-no-build.patch 555 BLAKE2B 36a86c3dd281a85f1b1fd68ac9796e70b06bb6afe3140fed97b5c7cd4b24987dc75709c4b1b192d5663c4d704cfb9818ec8d895c293b9b0bd741a3a61c860e47 SHA512 97687d24a3aa0a39994a691026981a91496cd2a82112e9acf9a8edd0f7c2a50d946944e8af495a3b1703f397c7a0e620be76dc28f3bbe14357ee8c4a68a5a3bc
+DIST julia-1.8.3-full.tar.gz 275266765 BLAKE2B 2cd54e33cea5d53a93e8ec9c1cd44df4e63a132f2d7a7dca363c6067e1eb5f245a6f65c79bbb29ec641c597ed33fc9376847803b8dd5bc18c537e48d07bcee04 SHA512 0e62d293626c83ff258a3d66aa1e86f9cab114edb8a21ebaad3990332894fbdfd96c23f907debbfd0af9f9f09c0a95a36a3c617784d5eb541b68ed7558630d86
+DIST julia-1.8.5-full.tar.gz 275344455 BLAKE2B d51ee25e9c7dd54e3fcc35cd75c909686cc5e48c6b34371cd100bddb038b76e1ba8812bab554ffb8ca5b725cc30fec1a0fb4f58220de8917de35dc2d3a159d81 SHA512 3f92cdecdfc79194e1cde3ec96871bde984c2527d0cd3909c91a27a819d734e39260c5fe7129d958e88db1965f8b5d61ffe7e95c7cddac111aeafe844e29900d
+DIST julia-1.9.0-full.tar.gz 297690117 BLAKE2B 7fb67dedff33f627ab4c33a1a784f8a56c69c92e1fa88badeecc6c19e7c6889a6c686502ce49df06fcee989372bb5978cb811647f8b6f9b1d4cec201fc1000b4 SHA512 e7ab6bc1f923af6ea2ef0fc80ddd1e489e059d8fc1ed47de160e33c13dcb8daa8141ada174588dde12943ffa48332681d1d060c6372f4e2292d92946d1fb7fe2
+DIST julia-1.9.4-full.tar.gz 294983229 BLAKE2B d4ffa0d2ceff2113d007502248cc7dd106fa5262e23b2f79d63bf419994f42f814a49cdc88483615665d5d57b1b36b6c319f68f3e0802a603a5cbb0e6b992cc1 SHA512 cd2c7df8856f35ffc89e2a22ef70fbbfbec2e50835e56e26c67a9efcd69aa448c1aa71b002235a47c2036926ab127c4e232c938df4d23e600dbd27bf72b8283c
+DIST julia-a48ad530.patch 2790 BLAKE2B 4f7b1a3baeadff597b8b7e0e55705ff09625457a7889179e2f7d7ec1370008a5329901c45ad038bd830276d120e35d87254fe55ea497b2632988254ddd591df2 SHA512 4222901d28b100a81743a4092fb78862160e5b1c23d1a7fd242df815703897b974c8aec79518f67f4cf33ccbc88f75bf6e10d1189b7163b94b5d347ef8db940b
diff --git a/dev-lang/julia/files/julia-1.1.0-fix_build_system.patch b/dev-lang/julia/files/julia-1.1.0-fix_build_system.patch
deleted file mode 100644
index 394f5900a90e..000000000000
--- a/dev-lang/julia/files/julia-1.1.0-fix_build_system.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-diff --git a/Make.inc b/Make.inc
-index 81ff923..79e47f1 100644
---- a/Make.inc
-+++ b/Make.inc
-@@ -185,7 +185,7 @@ USE_GPL_LIBS ?= 1
- # Directories where said libraries get installed to
- prefix ?= $(BUILDROOT)/julia-$(JULIA_COMMIT)
- bindir := $(prefix)/bin
--libdir := $(prefix)/lib
-+libdir := $(prefix)/GENTOOLIBDIR
- libexecdir := $(prefix)/libexec
- datarootdir := $(prefix)/share
- docdir := $(datarootdir)/doc/julia
-@@ -417,7 +417,7 @@ ifneq ($(OS), WINNT)
- JCXXFLAGS += -pedantic
- endif
- DEBUGFLAGS := -O0 -ggdb2 -DJL_DEBUG_BUILD -fstack-protector-all
--SHIPFLAGS := -O3 -ggdb2 -falign-functions
-+SHIPFLAGS := GENTOOCFLAGS
- endif
-
- ifeq ($(USECLANG),1)
-@@ -428,7 +428,7 @@ JCFLAGS := -pipe $(fPIC) -fno-strict-aliasing -D_FILE_OFFSET_BITS=64
- JCPPFLAGS := -fasynchronous-unwind-tables
- JCXXFLAGS := -pipe $(fPIC) -fno-rtti -pedantic
- DEBUGFLAGS := -O0 -g -DJL_DEBUG_BUILD -fstack-protector-all
--SHIPFLAGS := -O3 -g
-+SHIPFLAGS := GENTOOCFLAGS
- ifeq ($(OS), Darwin)
- ifeq ($(USE_LIBCPP), 1)
- MACOSX_VERSION_MIN := 10.8
-@@ -457,7 +457,7 @@ JCFLAGS := -std=gnu11 -pipe $(fPIC) -fno-strict-aliasing -D_FILE_OFFSET_BITS=64
- JCPPFLAGS :=
- JCXXFLAGS := -pipe $(fPIC) -fno-rtti
- DEBUGFLAGS := -O0 -g -DJL_DEBUG_BUILD -fstack-protector-all
--SHIPFLAGS := -O3 -g -falign-functions
-+SHIPFLAGS := GENTOOCFLAGS
- endif
-
- ifeq ($(USECCACHE), 1)
-diff --git a/doc/Makefile b/doc/Makefile
-index 99e60ee..2027fb5 100644
---- a/doc/Makefile
-+++ b/doc/Makefile
-@@ -30,7 +30,7 @@ deps: UnicodeData.txt
- $(JLCHECKSUM) UnicodeData.txt
-
- clean:
-- -rm -rf _build/* deps/* docbuild.log UnicodeData.txt
-+ @echo "Do not clean doc/_build/html. Just use it..."
-
- cleanall: clean
-
diff --git a/dev-lang/julia/files/julia-1.1.0-fix_llvm_install.patch b/dev-lang/julia/files/julia-1.1.0-fix_llvm_install.patch
deleted file mode 100644
index 9cb75188b963..000000000000
--- a/dev-lang/julia/files/julia-1.1.0-fix_llvm_install.patch
+++ /dev/null
@@ -1,15 +0,0 @@
---- a/deps/llvm.mk 2019-02-09 10:09:30.102927517 +0300
-+++ b/deps/llvm.mk 2019-02-09 10:10:51.479924878 +0300
-@@ -464,10 +464,11 @@
-
- $(build_prefix)/manifest/llvm: | $(llvm_python_workaround)
-
-+# unset DESTDIR to fix https://github.com/JuliaLang/julia/issues/23462
- LLVM_INSTALL = \
- cd $1 && mkdir -p $2$$(build_depsbindir) && \
- cp -r $$(LLVM_SRC_DIR)/utils/lit $2$$(build_depsbindir)/ && \
-- $$(CMAKE) -DCMAKE_INSTALL_PREFIX="$2$$(build_prefix)" -P cmake_install.cmake
-+ DESTDIR="" $$(CMAKE) -DCMAKE_INSTALL_PREFIX="$2$$(build_prefix)" -P cmake_install.cmake
- ifeq ($(OS), WINNT)
- LLVM_INSTALL += && cp $2$$(build_shlibdir)/LLVM.dll $2$$(build_depsbindir)
- endif
diff --git a/dev-lang/julia/files/julia-1.4.0-no_symlink_llvm.patch b/dev-lang/julia/files/julia-1.4.0-no_symlink_llvm.patch
deleted file mode 100644
index 1b6371b120d9..000000000000
--- a/dev-lang/julia/files/julia-1.4.0-no_symlink_llvm.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/base/Makefile 2019-11-17 14:07:20.000000000 -0500
-+++ b/base/Makefile 2020-03-28 20:38:40.041571679 -0400
-@@ -223,7 +223,7 @@
- ln -sf "$$REALPATH" "$@"
- ifneq ($(USE_SYSTEM_LLVM),0)
- ifneq ($(USE_LLVM_SHLIB),0)
--SYMLINK_SYSTEM_LIBRARIES += symlink_libLLVM
-+#SYMLINK_SYSTEM_LIBRARIES += symlink_libLLVM
- endif
- endif
diff --git a/dev-lang/julia/files/julia-1.8.0-llvm-no-bindings.patch b/dev-lang/julia/files/julia-1.8.0-llvm-no-bindings.patch
new file mode 100644
index 000000000000..d5511dee0d91
--- /dev/null
+++ b/dev-lang/julia/files/julia-1.8.0-llvm-no-bindings.patch
@@ -0,0 +1,11 @@
+--- a/deps/llvm.mk
++++ b/deps/llvm.mk
+@@ -94,7 +94,7 @@ endif
+ LLVM_CMAKE += -DLLVM_TOOLS_INSTALL_DIR=$(call rel_path,$(build_prefix),$(build_depsbindir))
+ LLVM_CMAKE += -DLLVM_UTILS_INSTALL_DIR=$(call rel_path,$(build_prefix),$(build_depsbindir))
+ LLVM_CMAKE += -DLLVM_INCLUDE_UTILS=ON -DLLVM_INSTALL_UTILS=ON
+-LLVM_CMAKE += -DLLVM_BINDINGS_LIST="" -DLLVM_INCLUDE_DOCS=Off -DLLVM_ENABLE_TERMINFO=Off -DHAVE_HISTEDIT_H=Off -DHAVE_LIBEDIT=Off
++LLVM_CMAKE += -DLLVM_BINDINGS_LIST="" -DLLVM_ENABLE_BINDINGS=OFF -DLLVM_INCLUDE_DOCS=Off -DLLVM_ENABLE_TERMINFO=Off -DHAVE_HISTEDIT_H=Off -DHAVE_LIBEDIT=Off
+ ifeq ($(LLVM_ASSERTIONS), 1)
+ LLVM_CMAKE += -DLLVM_ENABLE_ASSERTIONS:BOOL=ON
+ endif # LLVM_ASSERTIONS
diff --git a/dev-lang/julia/files/julia-1.8.3-gcc13.patch b/dev-lang/julia/files/julia-1.8.3-gcc13.patch
new file mode 100644
index 000000000000..96e2e48ba78d
--- /dev/null
+++ b/dev-lang/julia/files/julia-1.8.3-gcc13.patch
@@ -0,0 +1,10 @@
+--- a/deps/srccache/JuliaLang-llvm-project-8a2ae8c/llvm/include/llvm/Support/Signals.h
++++ b/deps/srccache/JuliaLang-llvm-project-8a2ae8c/llvm/include/llvm/Support/Signals.h
+@@ -15,6 +15,7 @@
+ #define LLVM_SUPPORT_SIGNALS_H
+
+ #include <string>
++#include <cstdint>
+
+ namespace llvm {
+ class StringRef;
diff --git a/dev-lang/julia/files/julia-1.9.4-no-doc-install.patch b/dev-lang/julia/files/julia-1.9.4-no-doc-install.patch
new file mode 100644
index 000000000000..e1976a3fcde1
--- /dev/null
+++ b/dev-lang/julia/files/julia-1.9.4-no-doc-install.patch
@@ -0,0 +1,13 @@
+diff --git a/Makefile b/Makefile
+index 68e2136..a38edee 100644
+--- a/Makefile
++++ b/Makefile
+@@ -236,7 +236,7 @@ define stringreplace
+ endef
+
+
+-install: $(build_depsbindir)/stringreplace $(BUILDROOT)/doc/_build/html/en/index.html
++install: $(build_depsbindir)/stringreplace
+ @$(MAKE) $(QUIET_MAKE) $(JULIA_BUILD_MODE)
+ @for subdir in $(bindir) $(datarootdir)/julia/stdlib/$(VERSDIR) $(docdir) $(man1dir) $(includedir)/julia $(libdir) $(private_libdir) $(sysconfdir) $(private_libexecdir); do \
+ mkdir -p $(DESTDIR)$$subdir; \
diff --git a/dev-lang/julia/files/julia-1.9.4-string-replace.patch b/dev-lang/julia/files/julia-1.9.4-string-replace.patch
new file mode 100644
index 000000000000..7f5497bdac8f
--- /dev/null
+++ b/dev-lang/julia/files/julia-1.9.4-string-replace.patch
@@ -0,0 +1,13 @@
+diff --git a/Makefile b/Makefile
+index c742a9f..a38edee 100644
+--- a/Makefile
++++ b/Makefile
+@@ -232,7 +232,7 @@ endif
+ # Note that we disable MSYS2's path munging here, as otherwise
+ # it replaces our `:`-separated list as a `;`-separated one.
+ define stringreplace
+- MSYS2_ARG_CONV_EXCL='*' $(build_depsbindir)/stringreplace $$(strings -t x - '$1' | grep "$2" | awk '{print $$1;}') "$3" 255 "$(call cygpath_w,$1)"
++ MSYS2_ARG_CONV_EXCL='*' $(build_depsbindir)/stringreplace $$(strings -t x - "$1" | grep "$2" | awk '{print $$1;}') "$3" 255 "$(call cygpath_w,$1)"
+ endef
+
+
diff --git a/dev-lang/julia/julia-1.5.2-r1.ebuild b/dev-lang/julia/julia-1.5.2-r1.ebuild
deleted file mode 100644
index 22f76c79cf80..000000000000
--- a/dev-lang/julia/julia-1.5.2-r1.ebuild
+++ /dev/null
@@ -1,208 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit llvm pax-utils toolchain-funcs
-
-# correct versions for stdlibs are in deps/checksums
-# for everything else, run with network-sandbox and wait for the crash
-
-MY_PV="${PV//_rc/-rc}"
-MY_DSFMT_V="2.2.3"
-MY_LIBUV_V="35b1504507a7a4168caae3d78db54d1121b121e1"
-MY_LIBWHICH_V="81e9723c0273d78493dc8c8ed570f68d9ce7e89e"
-MY_LLVM_V="9.0.1"
-MY_PKG_V="49908bffe83790bc7cf3c5d46faf3667f8902ad4"
-MY_UNICODE_V="13.0.0"
-MY_UTF8PROC_V="0890a538bf8238cded9be0c81171f57e43f2c755"
-
-DESCRIPTION="High-performance programming language for technical computing"
-HOMEPAGE="https://julialang.org/"
-SRC_URI="
- https://github.com/JuliaLang/${PN}/releases/download/v${MY_PV}/${PN}-${MY_PV}.tar.gz
- https://api.github.com/repos/JuliaLang/libuv/tarball/${MY_LIBUV_V} -> ${PN}-libuv-${MY_LIBUV_V}.tar.gz
- https://api.github.com/repos/JuliaLang/utf8proc/tarball/${MY_UTF8PROC_V} -> ${PN}-utf8proc-${MY_UTF8PROC_V}.tar.gz
- https://api.github.com/repos/vtjnash/libwhich/tarball/${MY_LIBWHICH_V} -> ${PN}-libwhich-${MY_LIBWHICH_V}.tar.gz
- http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/dSFMT-src-${MY_DSFMT_V}.tar.gz -> ${PN}-dsfmt-${MY_DSFMT_V}.tar.gz
- http://www.unicode.org/Public/${MY_UNICODE_V}/ucd/UnicodeData.txt -> ${PN}-UnicodeData-${MY_UNICODE_V}.txt
- https://dev.gentoo.org/~tamiko/distfiles/Pkg-${MY_PKG_V}.tar.gz -> ${PN}-Pkg-${MY_PKG_V}.tar.gz
- !system-llvm? ( https://github.com/llvm/llvm-project/releases/download/llvmorg-${MY_LLVM_V}/llvm-${MY_LLVM_V}.src.tar.xz )
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE="system-llvm"
-
-RDEPEND="
- system-llvm? ( sys-devel/llvm:9=[llvm_targets_NVPTX(-)] )
- !system-llvm? ( dev-util/cmake )
-"
-LLVM_MAX_SLOT=9
-
-RDEPEND+="
- dev-libs/double-conversion:0=
- dev-libs/gmp:0=
- dev-libs/libgit2:0
- >=dev-libs/libpcre2-10.23:0=[jit,unicode]
- dev-libs/mpfr:0=
- dev-libs/openspecfun
- >=net-libs/mbedtls-2.2
- net-libs/libssh2
- sci-libs/amd:0=
- sci-libs/arpack:0=
- sci-libs/camd:0=
- sci-libs/ccolamd:0=
- sci-libs/cholmod:0=
- sci-libs/colamd:0=
- sci-libs/fftw:3.0=[threads]
- sci-libs/openlibm:0=
- sci-libs/spqr:0=
- sci-libs/umfpack:0=
- sci-mathematics/glpk:0=
- >=sys-libs/libunwind-1.1:0=
- sys-libs/readline:0=
- sys-libs/zlib:0=
- >=virtual/blas-3.6
- virtual/lapack"
-
-DEPEND="${RDEPEND}
- dev-util/patchelf
- virtual/pkgconfig"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-1.1.0-fix_build_system.patch
- "${FILESDIR}"/${PN}-1.1.0-fix_llvm_install.patch
- "${FILESDIR}"/${PN}-1.4.0-no_symlink_llvm.patch
-)
-
-S="${WORKDIR}/${PN}-${MY_PV}"
-
-pkg_setup() {
- use system-llvm && llvm_pkg_setup
-}
-
-src_unpack() {
- tounpack=(${A})
- # the main source tree, followed by deps
- unpack "${A/%\ */}"
-
- mkdir -p "${S}/deps/srccache/"
- for i in "${tounpack[@]:1}"; do
- if [[ $i == *Pkg* ]] || [[ $i = *Statistics* ]]; then
- # Bundled Pkg and Statistics packages go into ./stdlib
- local tarball="${i#julia-}"
- cp "${DISTDIR}/${i}" "${S}/stdlib/srccache/${tarball}" || die
- # and we have to fix up the sha1sum
- local name="${tarball%-*}"
- local sha1="${tarball#*-}"
- sha1="${sha1%.tar*}"
- einfo "using patched stdlib package \"${name}\""
- sed -i -e "s/PKG_SHA1 = .*/PKG_SHA1 = ${sha1}/" "${S}/stdlib/${name}.version" || die
- else
- cp "${DISTDIR}/${i}" "${S}/deps/srccache/${i#julia-}" || die
- fi
- done
-}
-
-src_prepare() {
- default
-
- # Sledgehammer:
- # - prevent fetching of bundled stuff in compile and install phase
- # - respect CFLAGS
- # - respect EPREFIX and Gentoo specific paths
-
- sed -i \
- -e "s|GENTOOCFLAGS|${CFLAGS}|g" \
- -e "s|/usr/include|${EPREFIX}/usr/include|g" \
- deps/Makefile || die
-
- sed -i \
- -e "s|GENTOOCFLAGS|${CFLAGS}|g" \
- -e "s|GENTOOLIBDIR|$(get_libdir)|" \
- Make.inc || die
-
- sed -i \
- -e "s|,lib)|,$(get_libdir))|g" \
- -e "s|\$(BUILD)/lib|\$(BUILD)/$(get_libdir)|g" \
- Makefile || die
-
- sed -i \
- -e "s|ar -rcs|$(tc-getAR) -rcs|g" \
- src/Makefile || die
-
- # disable doc install starting git fetching
- sed -i -e 's~install: $(build_depsbindir)/stringreplace $(BUILDROOT)/doc/_build/html/en/index.html~install: $(build_depsbindir)/stringreplace~' Makefile || die
-}
-
-src_configure() {
- # julia does not play well with the system versions of dsfmt, libuv,
- # and utf8proc
-
- use system-llvm && ewarn "You have enabled system-llvm. This is unsupported by upstream and may not work."
-
- # USE_SYSTEM_LIBM=0 implies using external openlibm
- cat <<-EOF > Make.user
- USE_BINARYBUILDER:=0
- USE_SYSTEM_LLVM:=$(usex system-llvm 1 0)
- USE_SYSTEM_LIBUNWIND:=1
- USE_SYSTEM_PCRE:=1
- USE_SYSTEM_LIBM:=0
- USE_SYSTEM_OPENLIBM:=1
- USE_SYSTEM_DSFMT:=0
- USE_SYSTEM_BLAS:=1
- USE_SYSTEM_LAPACK:=1
- USE_SYSTEM_GMP:=1
- USE_SYSTEM_MPFR:=1
- USE_SYSTEM_SUITESPARSE:=1
- USE_SYSTEM_LIBUV:=0
- USE_SYSTEM_UTF8PROC:=0
- USE_SYSTEM_MBEDTLS:=1
- USE_SYSTEM_LIBSSH2:=1
- USE_SYSTEM_CURL:=1
- USE_SYSTEM_LIBGIT2:=1
- USE_SYSTEM_PATCHELF:=1
- USE_SYSTEM_ZLIB:=1
- USE_SYSTEM_P7ZIP:=1
- VERBOSE=1
- libdir="${EROOT}/usr/$(get_libdir)"
- EOF
-}
-
-src_compile() {
-
- # Julia accesses /proc/self/mem on Linux
- addpredict /proc/self/mem
-
- emake julia-release \
- prefix="${EPREFIX}/usr" DESTDIR="${D}" \
- CC="$(tc-getCC)" CXX="$(tc-getCXX)"
- pax-mark m "$(file usr/bin/julia-* | awk -F : '/ELF/ {print $1}')"
- emake
-}
-
-src_install() {
- emake install \
- prefix="${EPREFIX}/usr" DESTDIR="${D}" \
- CC="$(tc-getCC)" CXX="$(tc-getCXX)"
-
- if ! use system-llvm ; then
- cp "${S}/usr/lib/libLLVM"-?jl.so "${ED}/usr/$(get_libdir)/julia/" || die
- fi
-
- dodoc README.md
-
- mv "${ED}"/usr/etc/julia "${ED}"/etc || die
- rmdir "${ED}"/usr/etc || die
- mv "${ED}"/usr/share/doc/julia/html "${ED}"/usr/share/doc/"${PF}" || die
- rmdir "${ED}"/usr/share/doc/julia || die
-
- # The appdata directory is deprecated.
- mv "${ED}"/usr/share/{appdata,metainfo}/ || die
-}
-
-pkg_postinst() {
- elog "To use Plots, you will need to install sci-visualization/gr."
-}
diff --git a/dev-lang/julia/julia-1.5.3.ebuild b/dev-lang/julia/julia-1.5.3.ebuild
deleted file mode 100644
index ebff8169d4a0..000000000000
--- a/dev-lang/julia/julia-1.5.3.ebuild
+++ /dev/null
@@ -1,213 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit llvm pax-utils toolchain-funcs
-
-# correct versions for stdlibs are in deps/checksums
-# for everything else, run with network-sandbox and wait for the crash
-
-MY_PV="${PV//_rc/-rc}"
-MY_DSFMT_V="2.2.3"
-MY_LIBUV_V="1fcc6d66f9df74189c74d3d390f02202bb7db953"
-MY_LIBWHICH_V="81e9723c0273d78493dc8c8ed570f68d9ce7e89e"
-MY_LLVM_V="9.0.1"
-MY_PKG_V="49908bffe83790bc7cf3c5d46faf3667f8902ad4"
-MY_UNICODE_V="13.0.0"
-MY_UTF8PROC_V="0890a538bf8238cded9be0c81171f57e43f2c755"
-
-DESCRIPTION="High-performance programming language for technical computing"
-HOMEPAGE="https://julialang.org/"
-SRC_URI="
- https://github.com/JuliaLang/${PN}/releases/download/v${MY_PV}/${PN}-${MY_PV}.tar.gz
- https://api.github.com/repos/JuliaLang/libuv/tarball/${MY_LIBUV_V} -> ${PN}-libuv-${MY_LIBUV_V}.tar.gz
- https://api.github.com/repos/JuliaLang/utf8proc/tarball/${MY_UTF8PROC_V} -> ${PN}-utf8proc-${MY_UTF8PROC_V}.tar.gz
- https://api.github.com/repos/vtjnash/libwhich/tarball/${MY_LIBWHICH_V} -> ${PN}-libwhich-${MY_LIBWHICH_V}.tar.gz
- http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/dSFMT-src-${MY_DSFMT_V}.tar.gz -> ${PN}-dsfmt-${MY_DSFMT_V}.tar.gz
- http://www.unicode.org/Public/${MY_UNICODE_V}/ucd/UnicodeData.txt -> ${PN}-UnicodeData-${MY_UNICODE_V}.txt
- https://dev.gentoo.org/~tamiko/distfiles/Pkg-${MY_PKG_V}.tar.gz -> ${PN}-Pkg-${MY_PKG_V}.tar.gz
- !system-llvm? ( https://github.com/llvm/llvm-project/releases/download/llvmorg-${MY_LLVM_V}/llvm-${MY_LLVM_V}.src.tar.xz )
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE="system-llvm"
-
-RDEPEND="
- system-llvm? ( sys-devel/llvm:9=[llvm_targets_NVPTX(-)] )
- !system-llvm? ( dev-util/cmake )
-"
-LLVM_MAX_SLOT=9
-
-# Silence some QA warnings. The julia build system does not use user
-# defined CFLAGS for some of the generated binary modules.
-QA_FLAGS_IGNORED='.*'
-
-RDEPEND+="
- dev-libs/double-conversion:0=
- dev-libs/gmp:0=
- dev-libs/libgit2:0
- >=dev-libs/libpcre2-10.23:0=[jit,unicode]
- dev-libs/mpfr:0=
- dev-libs/openspecfun
- net-libs/libssh2
- >=net-libs/mbedtls-2.2
- sci-libs/amd:0=
- sci-libs/arpack:0=
- sci-libs/camd:0=
- sci-libs/ccolamd:0=
- sci-libs/cholmod:0=
- sci-libs/colamd:0=
- sci-libs/fftw:3.0=[threads]
- sci-libs/openlibm:0=
- sci-libs/spqr:0=
- sci-libs/umfpack:0=
- sci-mathematics/glpk:0=
- sci-mathematics/z3
- >=sys-libs/libunwind-1.1:0=
- sys-libs/readline:0=
- sys-libs/zlib:0=
- >=virtual/blas-3.6
- virtual/lapack"
-
-DEPEND="${RDEPEND}
- dev-util/patchelf
- virtual/pkgconfig"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-1.1.0-fix_build_system.patch
- "${FILESDIR}"/${PN}-1.1.0-fix_llvm_install.patch
- "${FILESDIR}"/${PN}-1.4.0-no_symlink_llvm.patch
-)
-
-S="${WORKDIR}/${PN}-${MY_PV}"
-
-pkg_setup() {
- use system-llvm && llvm_pkg_setup
-}
-
-src_unpack() {
- tounpack=(${A})
- # the main source tree, followed by deps
- unpack "${A/%\ */}"
-
- mkdir -p "${S}/deps/srccache/"
- for i in "${tounpack[@]:1}"; do
- if [[ $i == *Pkg* ]] || [[ $i = *Statistics* ]]; then
- # Bundled Pkg and Statistics packages go into ./stdlib
- local tarball="${i#julia-}"
- cp "${DISTDIR}/${i}" "${S}/stdlib/srccache/${tarball}" || die
- # and we have to fix up the sha1sum
- local name="${tarball%-*}"
- local sha1="${tarball#*-}"
- sha1="${sha1%.tar*}"
- einfo "using patched stdlib package \"${name}\""
- sed -i -e "s/PKG_SHA1 = .*/PKG_SHA1 = ${sha1}/" "${S}/stdlib/${name}.version" || die
- else
- cp "${DISTDIR}/${i}" "${S}/deps/srccache/${i#julia-}" || die
- fi
- done
-}
-
-src_prepare() {
- default
-
- # Sledgehammer:
- # - prevent fetching of bundled stuff in compile and install phase
- # - respect CFLAGS
- # - respect EPREFIX and Gentoo specific paths
-
- sed -i \
- -e "s|GENTOOCFLAGS|${CFLAGS}|g" \
- -e "s|/usr/include|${EPREFIX}/usr/include|g" \
- deps/Makefile || die
-
- sed -i \
- -e "s|GENTOOCFLAGS|${CFLAGS}|g" \
- -e "s|GENTOOLIBDIR|$(get_libdir)|" \
- Make.inc || die
-
- sed -i \
- -e "s|,lib)|,$(get_libdir))|g" \
- -e "s|\$(BUILD)/lib|\$(BUILD)/$(get_libdir)|g" \
- Makefile || die
-
- sed -i \
- -e "s|ar -rcs|$(tc-getAR) -rcs|g" \
- src/Makefile || die
-
- # disable doc install starting git fetching
- sed -i -e 's~install: $(build_depsbindir)/stringreplace $(BUILDROOT)/doc/_build/html/en/index.html~install: $(build_depsbindir)/stringreplace~' Makefile || die
-}
-
-src_configure() {
- # julia does not play well with the system versions of dsfmt, libuv,
- # and utf8proc
-
- use system-llvm && ewarn "You have enabled system-llvm. This is unsupported by upstream and may not work."
-
- # USE_SYSTEM_LIBM=0 implies using external openlibm
- cat <<-EOF > Make.user
- USE_BINARYBUILDER:=0
- USE_SYSTEM_LLVM:=$(usex system-llvm 1 0)
- USE_SYSTEM_LIBUNWIND:=1
- USE_SYSTEM_PCRE:=1
- USE_SYSTEM_LIBM:=0
- USE_SYSTEM_OPENLIBM:=1
- USE_SYSTEM_DSFMT:=0
- USE_SYSTEM_BLAS:=1
- USE_SYSTEM_LAPACK:=1
- USE_SYSTEM_GMP:=1
- USE_SYSTEM_MPFR:=1
- USE_SYSTEM_SUITESPARSE:=1
- USE_SYSTEM_LIBUV:=0
- USE_SYSTEM_UTF8PROC:=0
- USE_SYSTEM_MBEDTLS:=1
- USE_SYSTEM_LIBSSH2:=1
- USE_SYSTEM_CURL:=1
- USE_SYSTEM_LIBGIT2:=1
- USE_SYSTEM_PATCHELF:=1
- USE_SYSTEM_ZLIB:=1
- USE_SYSTEM_P7ZIP:=1
- VERBOSE=1
- libdir="${EROOT}/usr/$(get_libdir)"
- EOF
-}
-
-src_compile() {
-
- # Julia accesses /proc/self/mem on Linux
- addpredict /proc/self/mem
-
- emake \
- prefix="${EPREFIX}/usr" DESTDIR="${D}" \
- CC="$(tc-getCC)" CXX="$(tc-getCXX)" AR="$(tc-getAR)"
- pax-mark m "$(file usr/bin/julia-* | awk -F : '/ELF/ {print $1}')"
-}
-
-src_install() {
- emake install \
- prefix="${EPREFIX}/usr" DESTDIR="${D}" \
- CC="$(tc-getCC)" CXX="$(tc-getCXX)" AR="$(tc-getAR)" \
- BUNDLE_DEBUG_LIBS=0
-
- if ! use system-llvm ; then
- cp "${S}/usr/lib/libLLVM"-?jl.so "${ED}/usr/$(get_libdir)/julia/" || die
- fi
-
- dodoc README.md
-
- mv "${ED}"/usr/etc/julia "${ED}"/etc || die
- rmdir "${ED}"/usr/etc || die
- mv "${ED}"/usr/share/doc/julia/html "${ED}"/usr/share/doc/"${PF}" || die
- rmdir "${ED}"/usr/share/doc/julia || die
-
- # The appdata directory is deprecated.
- mv "${ED}"/usr/share/{appdata,metainfo}/ || die
-}
-
-pkg_postinst() {
- elog "To use Plots, you will need to install sci-visualization/gr."
-}
diff --git a/dev-lang/julia/julia-1.8.3-r4.ebuild b/dev-lang/julia/julia-1.8.3-r4.ebuild
new file mode 100644
index 000000000000..c21a564cc460
--- /dev/null
+++ b/dev-lang/julia/julia-1.8.3-r4.ebuild
@@ -0,0 +1,182 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# correct versions for stdlibs are in deps/checksums
+# for everything else, run with network-sandbox and wait for the crash
+
+EAPI=8
+
+# >=1.8.2 still sits on LLVM 13, bug: https://bugs.gentoo.org/876184
+MY_LLVM_V=13.0.1
+
+inherit flag-o-matic pax-utils toolchain-funcs optfeature
+
+DESCRIPTION="High-performance programming language for technical computing"
+HOMEPAGE="https://julialang.org/
+ https://github.com/JuliaLang/julia/"
+SRC_URI="https://github.com/JuliaLang/julia/releases/download/v${PV}/${P}-full.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="
+ app-arch/p7zip
+ app-misc/ca-certificates
+ dev-libs/gmp:0=
+ dev-libs/libgit2:0
+ dev-libs/mpfr:0=
+ >=dev-libs/libutf8proc-2.6.1:0=[-cjk]
+ >=dev-util/patchelf-0.13
+ >=net-libs/mbedtls-2.2
+ net-misc/curl[http2,ssh]
+ sci-libs/amd:0=
+ sci-libs/arpack:0=
+ sci-libs/camd:0=
+ sci-libs/ccolamd:0=
+ sci-libs/cholmod:0=
+ sci-libs/colamd:0=
+ sci-libs/fftw:3.0=[threads]
+ sci-libs/openlibm:0=
+ sci-libs/spqr:0=
+ sci-libs/umfpack:0=
+ >=sci-mathematics/dsfmt-2.2.4
+ >=sys-libs/libunwind-1.1:0=
+ sys-libs/zlib:0=
+ >=virtual/blas-3.6
+ virtual/lapack
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ dev-build/cmake
+ virtual/pkgconfig
+"
+
+PATCHES=( "${FILESDIR}"/${PN}-1.8.0-llvm-no-bindings.patch )
+
+# Huge thanks to Arch Linux developers for the patches.
+archlinux_uri="https://raw.githubusercontent.com/archlinux/svntogit-community/packages/julia/trunk/"
+archlinux_patches=(
+ 074d761f.patch
+ ed9851b0.patch
+ julia-hardcoded-libs.patch
+ julia-libunwind-1.6.patch
+ julia-llvm-14.patch
+ julia-system-cblas.patch
+ make-install-no-build.patch
+)
+for archlinux_patch in ${archlinux_patches[@]} ; do
+ archlinux_patch_name="${PN}-1.8.0-${archlinux_patch}"
+ SRC_URI+="
+ ${archlinux_uri}/${archlinux_patch}
+ -> ${archlinux_patch_name}
+ "
+ PATCHES+=( "${DISTDIR}/${archlinux_patch_name}" )
+done
+
+src_unpack() {
+ local tounpack=( ${A} )
+ # the main source tree, followed by deps
+ unpack "${tounpack[0]}"
+
+ mkdir -p "${S}/deps/srccache/"
+ for i in "${tounpack[@]:1}"; do
+ cp "${DISTDIR}/${i}" "${S}/deps/srccache/${i#julia-}" || die
+ done
+}
+
+src_prepare() {
+ default
+
+ # Sledgehammer:
+ # - prevent fetching of bundled stuff in compile and install phase
+ # - respect CFLAGS
+ # - respect EPREFIX and Gentoo specific paths
+
+ sed -i \
+ -e "\|SHIPFLAGS :=|c\\SHIPFLAGS := ${CFLAGS}" \
+ Make.inc || die
+
+ sed -i \
+ -e "s|ar -rcs|$(tc-getAR) -rcs|g" \
+ src/Makefile || die
+
+ # disable doc install starting git fetching
+ sed -i -e 's~install: $(build_depsbindir)/stringreplace $(BUILDROOT)/doc/_build/html/en/index.html~install: $(build_depsbindir)/stringreplace~' Makefile || die
+}
+
+src_configure() {
+ # bug #855602
+ filter-lto
+
+ # julia does not play well with the system versions of libuv
+ # Fails to compile with libpcre2 on split-usr, bug #893336
+ # USE_SYSTEM_LIBM=0 implies using external openlibm
+ cat <<-EOF > Make.user
+ LOCALBASE:="${EPREFIX}/usr"
+ override prefix:="${EPREFIX}/usr"
+ override libdir:="\$(prefix)/$(get_libdir)"
+ override CC:=$(tc-getCC)
+ override CXX:=$(tc-getCXX)
+ override AR:=$(tc-getAR)
+
+ BUNDLE_DEBUG_LIBS:=0
+ USE_BINARYBUILDER:=0
+ USE_SYSTEM_CSL:=1
+ USE_SYSTEM_LLVM:=0
+ USE_SYSTEM_LIBUNWIND:=1
+ USE_SYSTEM_PCRE:=0
+ USE_SYSTEM_LIBM:=0
+ USE_SYSTEM_OPENLIBM:=1
+ USE_SYSTEM_DSFMT:=1
+ USE_SYSTEM_BLAS:=1
+ USE_SYSTEM_LAPACK:=1
+ USE_SYSTEM_LIBBLASTRAMPOLINE:=0
+ USE_SYSTEM_GMP:=1
+ USE_SYSTEM_MPFR:=1
+ USE_SYSTEM_LIBSUITESPARSE:=1
+ USE_SYSTEM_LIBUV:=0
+ USE_SYSTEM_UTF8PROC:=1
+ USE_SYSTEM_MBEDTLS:=1
+ USE_SYSTEM_LIBSSH2:=1
+ USE_SYSTEM_NGHTTP2:=1
+ USE_SYSTEM_CURL:=1
+ USE_SYSTEM_LIBGIT2:=1
+ USE_SYSTEM_PATCHELF:=1
+ USE_SYSTEM_ZLIB:=1
+ USE_SYSTEM_P7ZIP:=1
+ VERBOSE:=1
+ EOF
+}
+
+src_compile() {
+ # Julia accesses /proc/self/mem on Linux
+ addpredict /proc/self/mem
+
+ emake
+ pax-mark m "$(file usr/bin/julia-* | awk -F : '/ELF/ {print $1}')"
+}
+
+src_install() {
+ emake -j1 install DESTDIR="${D}"
+ dodoc CONTRIBUTING.md HISTORY.md NEWS.md README.md THIRDPARTY.md
+
+ local llvmslot=$(ver_cut 1 ${MY_LLVM_V})
+ cp "${S}/usr/lib/libLLVM-${llvmslot}jl.so" "${ED}/usr/$(get_libdir)/julia/" || die
+ cp "${S}/usr/lib/libLLVM-${MY_LLVM_V}jl.so" "${ED}/usr/$(get_libdir)/julia/" || die
+
+ mv "${ED}"/usr/etc/julia "${ED}"/etc || die
+ rmdir "${ED}"/usr/etc || die
+ mv "${ED}"/usr/share/doc/julia/html "${ED}"/usr/share/doc/"${PF}" || die
+ rmdir "${ED}"/usr/share/doc/julia || die
+
+ # The appdata directory is deprecated.
+ mv "${ED}"/usr/share/{appdata,metainfo}/ || die
+
+ # Link ca-certificates.crt, bug: https://bugs.gentoo.org/888978
+ dosym -r /etc/ssl/certs/ca-certificates.crt /usr/share/julia/cert.pem
+}
+
+pkg_postinst() {
+ optfeature "Julia Plots" sci-visualization/gr
+}
diff --git a/dev-lang/julia/julia-1.8.5-r1.ebuild b/dev-lang/julia/julia-1.8.5-r1.ebuild
new file mode 100644
index 000000000000..c38278524dae
--- /dev/null
+++ b/dev-lang/julia/julia-1.8.5-r1.ebuild
@@ -0,0 +1,230 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# correct versions for stdlibs are in deps/checksums
+# for everything else, run with network-sandbox and wait for the crash
+
+EAPI=8
+
+# >=1.8.2 still sits on LLVM 13, bug: https://bugs.gentoo.org/876184
+MY_LLVM_V=13.0.1
+
+PYTHON_COMPAT=( python3_{10..11} )
+
+inherit check-reqs flag-o-matic optfeature pax-utils python-any-r1 toolchain-funcs
+
+DESCRIPTION="High-performance programming language for technical computing"
+HOMEPAGE="https://julialang.org/
+ https://github.com/JuliaLang/julia/"
+SRC_URI="
+ https://github.com/JuliaLang/julia/releases/download/v${PV}/${P}-full.tar.gz
+ https://github.com/JuliaLang/julia/commit/0b211609.patch
+ -> ${PN}-0b211609.patch
+ https://github.com/JuliaLang/julia/commit/a48ad530.patch
+ -> ${PN}-a48ad530.patch
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+PROPERTIES="test_network"
+RESTRICT="test"
+
+RDEPEND="
+ >=dev-libs/libutf8proc-2.6.1:0=[-cjk]
+ >=dev-util/patchelf-0.13
+ >=net-libs/mbedtls-2.2
+ >=sci-mathematics/dsfmt-2.2.4
+ >=sys-libs/libunwind-1.1:0=
+ >=virtual/blas-3.6
+ app-arch/p7zip
+ app-misc/ca-certificates
+ dev-libs/gmp:0=
+ dev-libs/libgit2:0
+ dev-libs/mpfr:0=
+ net-misc/curl[http2,ssh]
+ sci-libs/amd:0=
+ sci-libs/arpack:0=
+ sci-libs/camd:0=
+ sci-libs/ccolamd:0=
+ sci-libs/cholmod:0=
+ sci-libs/colamd:0=
+ sci-libs/fftw:3.0=[threads]
+ sci-libs/openlibm:0=
+ sci-libs/spqr:0=
+ sci-libs/umfpack:0=
+ sys-libs/zlib:0=
+ virtual/lapack
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ ${PYTHON_DEPS}
+ dev-build/cmake
+ virtual/pkgconfig
+"
+
+CHECKREQS_DISK_BUILD="4G"
+PATCHES=(
+ "${DISTDIR}"/${PN}-0b211609.patch
+ "${DISTDIR}"/${PN}-a48ad530.patch
+ "${FILESDIR}"/${PN}-1.8.0-llvm-no-bindings.patch
+ "${FILESDIR}"/${PN}-1.8.3-gcc13.patch
+)
+QA_FLAGS_IGNORED+='usr/.*/julia/sys.so' # Julia sysimage generated by bootstrapping.
+
+# Huge thanks to Arch Linux developers for the patches.
+archlinux_uri="https://raw.githubusercontent.com/archlinux/svntogit-community/packages/julia/trunk/"
+archlinux_patches=(
+ 074d761f.patch # wanted
+ 0db596e6.patch # secondary
+ 190565c2.patch # secondary
+ 23f39f83.patch # secondary
+ 3423639d.patch # secondary
+ 68adc00e.patch # secondary
+ 700c69b1.patch # secondary
+ ed9851b0.patch # wanted
+ julia-hardcoded-libs.patch # wanted
+ julia-libunwind-1.6.patch # wanted
+ julia-mpfr-4.2.patch # secondary
+ julia-system-cblas.patch # wanted
+)
+for archlinux_patch in ${archlinux_patches[@]} ; do
+ archlinux_patch_name="${PN}-1.8.0-${archlinux_patch}"
+ SRC_URI+="
+ ${archlinux_uri}/${archlinux_patch}
+ -> ${archlinux_patch_name}
+ "
+ PATCHES+=( "${DISTDIR}/${archlinux_patch_name}" )
+done
+
+pkg_setup() {
+ check-reqs_pkg_setup
+ python-any-r1_pkg_setup
+}
+
+src_unpack() {
+ local -a tounpack=( ${A} )
+ # the main source tree, followed by deps
+ unpack "${tounpack[0]}"
+
+ mkdir -p "${S}/deps/srccache/"
+ local i
+ for i in "${tounpack[@]:1}"; do
+ cp "${DISTDIR}/${i}" "${S}/deps/srccache/${i#julia-}" || die
+ done
+
+ # Extract tarballs for patching.
+ cd "${S}/deps/srccache/" || die
+ tar xf llvm-julia-13.0.1-3.tar.gz || die
+}
+
+src_prepare() {
+ default
+
+ # Sledgehammer:
+ # - prevent fetching of bundled stuff in compile and install phase
+ # - respect CFLAGS
+ # - respect EPREFIX and Gentoo specific paths
+
+ sed -i \
+ -e "\|SHIPFLAGS :=|c\\SHIPFLAGS := ${CFLAGS}" \
+ Make.inc || die
+
+ sed -i \
+ -e "s|ar -rcs|$(tc-getAR) -rcs|g" \
+ src/Makefile || die
+
+ # disable doc install starting git fetching
+ sed -i -e 's~install: $(build_depsbindir)/stringreplace $(BUILDROOT)/doc/_build/html/en/index.html~install: $(build_depsbindir)/stringreplace~' Makefile || die
+
+ # Blank the tarball checksum check script.
+ echo "#!/bin/sh" > deps/tools/jlchecksum || die
+
+ # Repack tarballs.
+ cd "${S}/deps/srccache/" || die
+ tar czf llvm-julia-13.0.1-3.tar.gz JuliaLang-llvm-project-8a2ae8c || die
+}
+
+src_configure() {
+ # bug #855602
+ filter-lto
+
+ # julia does not play well with the system versions of libuv
+ # Fails to compile with libpcre2 on split-usr, bug #893336
+ # USE_SYSTEM_LIBM=0 implies using external openlibm
+ cat <<-EOF > Make.user
+ LOCALBASE:=${EPREFIX}/usr
+ override prefix:=${EPREFIX}/usr
+ override libdir:=\$(prefix)/$(get_libdir)
+ override CC:=$(tc-getCC)
+ override CXX:=$(tc-getCXX)
+ override AR:=$(tc-getAR)
+
+ BUNDLE_DEBUG_LIBS:=0
+ USE_BINARYBUILDER:=0
+ USE_INTEL_JITEVENTS=0
+ USE_SYSTEM_CSL:=1
+ USE_SYSTEM_LLVM:=0
+ USE_SYSTEM_LIBUNWIND:=1
+ USE_SYSTEM_PCRE:=0
+ USE_SYSTEM_LIBM:=0
+ USE_SYSTEM_OPENLIBM:=1
+ USE_SYSTEM_DSFMT:=1
+ USE_SYSTEM_BLAS:=1
+ USE_SYSTEM_LAPACK:=1
+ USE_SYSTEM_LIBBLASTRAMPOLINE:=0
+ USE_SYSTEM_GMP:=1
+ USE_SYSTEM_MPFR:=1
+ USE_SYSTEM_LIBSUITESPARSE:=1
+ USE_SYSTEM_LIBUV:=0
+ USE_SYSTEM_UTF8PROC:=1
+ USE_SYSTEM_MBEDTLS:=1
+ USE_SYSTEM_LIBSSH2:=1
+ USE_SYSTEM_NGHTTP2:=1
+ USE_SYSTEM_CURL:=1
+ USE_SYSTEM_LIBGIT2:=1
+ USE_SYSTEM_PATCHELF:=1
+ USE_SYSTEM_ZLIB:=1
+ USE_SYSTEM_P7ZIP:=1
+ VERBOSE:=1
+ EOF
+}
+
+src_compile() {
+ # Julia accesses /proc/self/mem on Linux.
+ addpredict /proc/self/mem
+
+ emake
+ pax-mark m "$(file usr/bin/julia-* | awk -F : '/ELF/ {print $1}')"
+}
+
+src_install() {
+ emake -j1 install DESTDIR="${D}"
+ dodoc CONTRIBUTING.md HISTORY.md NEWS.md README.md THIRDPARTY.md
+
+ local llvmslot=$(ver_cut 1 ${MY_LLVM_V})
+ cp "${S}"/usr/lib/libLLVM-${llvmslot}jl.so "${ED}"/usr/$(get_libdir)/julia/ || die
+ cp "${S}"/usr/lib/libLLVM-${MY_LLVM_V}jl.so "${ED}"/usr/$(get_libdir)/julia/ || die
+
+ mv "${ED}"/usr/etc/julia "${ED}"/etc || die
+ rmdir "${ED}"/usr/etc || die
+ mv "${ED}"/usr/share/doc/julia/html "${ED}"/usr/share/doc/"${PF}" || die
+ rmdir "${ED}"/usr/share/doc/julia || die
+
+ # The appdata directory is deprecated.
+ mv "${ED}"/usr/share/{appdata,metainfo}/ || die
+
+ # Link ca-certificates.crt, bug: https://bugs.gentoo.org/888978
+ dosym -r /etc/ssl/certs/ca-certificates.crt /usr/share/julia/cert.pem
+
+ # Julia always searches for "sys.so" inside "/usr/lib/julia",
+ # bug: https://github.com/JuliaLang/julia/issues/49574
+ if [[ $(get_libdir) == "lib64" ]] ; then
+ insinto /usr/lib/julia
+ doins "${ED}"/usr/$(get_libdir)/julia/sys.so
+ fi
+}
+
+pkg_postinst() {
+ optfeature "Julia Plots" sci-visualization/gr
+}
diff --git a/dev-lang/julia/julia-1.9.0.ebuild b/dev-lang/julia/julia-1.9.0.ebuild
new file mode 100644
index 000000000000..6dfef422bd55
--- /dev/null
+++ b/dev-lang/julia/julia-1.9.0.ebuild
@@ -0,0 +1,210 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# correct versions for stdlibs are in deps/checksums
+# for everything else, run with network-sandbox and wait for the crash
+
+EAPI=8
+
+MY_LLVM_V=14.0.6
+
+PYTHON_COMPAT=( python3_{10..11} )
+
+inherit check-reqs flag-o-matic optfeature pax-utils python-any-r1 toolchain-funcs
+
+DESCRIPTION="High-performance programming language for technical computing"
+HOMEPAGE="https://julialang.org/
+ https://github.com/JuliaLang/julia/"
+SRC_URI="
+ https://github.com/JuliaLang/julia/releases/download/v${PV}/${P}-full.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS=""
+#KEYWORDS="~amd64 ~x86"
+PROPERTIES="test_network"
+RESTRICT="test"
+
+RDEPEND="
+ >=dev-libs/libutf8proc-2.6.1:0=[-cjk]
+ >=dev-util/patchelf-0.13
+ >=net-libs/mbedtls-2.2
+ >=sci-mathematics/dsfmt-2.2.4
+ >=sys-libs/libunwind-1.1:0=
+ >=virtual/blas-3.6
+ app-arch/p7zip
+ app-misc/ca-certificates
+ dev-libs/gmp:0=
+ dev-libs/libgit2:0
+ dev-libs/mpfr:0=
+ net-misc/curl[http2,ssh]
+ sci-libs/amd:0=
+ sci-libs/arpack:0=
+ sci-libs/camd:0=
+ sci-libs/ccolamd:0=
+ sci-libs/cholmod:0=
+ sci-libs/colamd:0=
+ sci-libs/fftw:3.0=[threads]
+ sci-libs/openlibm:0=
+ sci-libs/spqr:0=
+ sci-libs/umfpack:0=
+ sys-libs/zlib:0=
+ virtual/lapack
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ ${PYTHON_DEPS}
+ dev-build/cmake
+ virtual/pkgconfig
+"
+
+CHECKREQS_DISK_BUILD="4G"
+PATCHES=(
+)
+QA_FLAGS_IGNORED+='usr/.*/julia/sys.so' # Julia sysimage generated by bootstrapping.
+
+# Huge thanks to Arch Linux developers for the patches.
+archlinux_uri="https://raw.githubusercontent.com/archlinux/svntogit-community/packages/julia/trunk/"
+archlinux_patches=(
+)
+for archlinux_patch in ${archlinux_patches[@]} ; do
+ archlinux_patch_name="${PN}-1.8.0-${archlinux_patch}"
+ SRC_URI+="
+ ${archlinux_uri}/${archlinux_patch}
+ -> ${archlinux_patch_name}
+ "
+ PATCHES+=( "${DISTDIR}/${archlinux_patch_name}" )
+done
+
+pkg_setup() {
+ check-reqs_pkg_setup
+ python-any-r1_pkg_setup
+}
+
+src_unpack() {
+ local -a tounpack=( ${A} )
+ # the main source tree, followed by deps
+ unpack "${tounpack[0]}"
+
+ mkdir -p "${S}/deps/srccache/"
+ local i
+ for i in "${tounpack[@]:1}"; do
+ cp "${DISTDIR}/${i}" "${S}/deps/srccache/${i#julia-}" || die
+ done
+
+ # Extract tarballs for patching.
+ # cd "${S}/deps/srccache/" || die
+ # tar xf llvm-julia-${MY_LLVM_V}-3.tar.gz || die
+}
+
+src_prepare() {
+ default
+
+ # Sledgehammer:
+ # - prevent fetching of bundled stuff in compile and install phase
+ # - respect CFLAGS
+ # - respect EPREFIX and Gentoo specific paths
+
+ sed -i \
+ -e "\|SHIPFLAGS :=|c\\SHIPFLAGS := ${CFLAGS}" \
+ Make.inc || die
+
+ sed -i \
+ -e "s|ar -rcs|$(tc-getAR) -rcs|g" \
+ src/Makefile || die
+
+ # disable doc install starting git fetching
+ sed -i -e 's~install: $(build_depsbindir)/stringreplace $(BUILDROOT)/doc/_build/html/en/index.html~install: $(build_depsbindir)/stringreplace~' Makefile || die
+
+ # Blank the tarball checksum check script.
+ echo "#!/bin/sh" > deps/tools/jlchecksum || die
+
+ # Repack tarballs.
+ # cd "${S}/deps/srccache/" || die
+ # tar czf llvm-julia-${MY_LLVM_V}-3.tar.gz JuliaLang-llvm-project-* || die
+}
+
+src_configure() {
+ # bug #855602
+ filter-lto
+
+ # julia does not play well with the system versions of libuv
+ # Fails to compile with libpcre2 on split-usr, bug #893336
+ # USE_SYSTEM_LIBM=0 implies using external openlibm
+ cat <<-EOF > Make.user
+ LOCALBASE:=${EPREFIX}/usr
+ override prefix:=${EPREFIX}/usr
+ override libdir:=\$(prefix)/$(get_libdir)
+ override CC:=$(tc-getCC)
+ override CXX:=$(tc-getCXX)
+ override AR:=$(tc-getAR)
+
+ BUNDLE_DEBUG_LIBS:=0
+ USE_BINARYBUILDER:=0
+ USE_INTEL_JITEVENTS=0
+ USE_SYSTEM_CSL:=1
+ USE_SYSTEM_LLVM:=0
+ USE_SYSTEM_LIBUNWIND:=1
+ USE_SYSTEM_PCRE:=0
+ USE_SYSTEM_LIBM:=0
+ USE_SYSTEM_OPENLIBM:=1
+ USE_SYSTEM_DSFMT:=1
+ USE_SYSTEM_BLAS:=1
+ USE_SYSTEM_LAPACK:=1
+ USE_SYSTEM_LIBBLASTRAMPOLINE:=0
+ USE_SYSTEM_GMP:=1
+ USE_SYSTEM_MPFR:=1
+ USE_SYSTEM_LIBSUITESPARSE:=1
+ USE_SYSTEM_LIBUV:=0
+ USE_SYSTEM_UTF8PROC:=1
+ USE_SYSTEM_MBEDTLS:=1
+ USE_SYSTEM_LIBSSH2:=1
+ USE_SYSTEM_NGHTTP2:=1
+ USE_SYSTEM_CURL:=1
+ USE_SYSTEM_LIBGIT2:=1
+ USE_SYSTEM_PATCHELF:=1
+ USE_SYSTEM_ZLIB:=1
+ USE_SYSTEM_P7ZIP:=1
+ VERBOSE:=1
+ EOF
+}
+
+src_compile() {
+ # Julia accesses /proc/self/mem on Linux.
+ addpredict /proc/self/mem
+
+ emake
+ pax-mark m "$(file usr/bin/julia-* | awk -F : '/ELF/ {print $1}')"
+}
+
+src_install() {
+ emake -j1 install DESTDIR="${D}"
+ dodoc CONTRIBUTING.md HISTORY.md NEWS.md README.md THIRDPARTY.md
+
+ local llvmslot=$(ver_cut 1 ${MY_LLVM_V})
+ cp "${S}"/usr/lib/libLLVM-${llvmslot}jl.so "${ED}"/usr/$(get_libdir)/julia/ || die
+ cp "${S}"/usr/lib/libLLVM-${MY_LLVM_V}jl.so "${ED}"/usr/$(get_libdir)/julia/ || die
+
+ mv "${ED}"/usr/etc/julia "${ED}"/etc || die
+ rmdir "${ED}"/usr/etc || die
+ mv "${ED}"/usr/share/doc/julia/html "${ED}"/usr/share/doc/"${PF}" || die
+ rmdir "${ED}"/usr/share/doc/julia || die
+
+ # The appdata directory is deprecated.
+ mv "${ED}"/usr/share/{appdata,metainfo}/ || die
+
+ # Link ca-certificates.crt, bug: https://bugs.gentoo.org/888978
+ dosym -r /etc/ssl/certs/ca-certificates.crt /usr/share/julia/cert.pem
+
+ # Julia always searches for "sys.so" inside "/usr/lib/julia",
+ # bug: https://github.com/JuliaLang/julia/issues/49574
+ if [[ $(get_libdir) == "lib64" ]] ; then
+ insinto /usr/lib/julia
+ doins "${ED}"/usr/$(get_libdir)/julia/sys.so
+ fi
+}
+
+pkg_postinst() {
+ optfeature "Julia Plots" sci-visualization/gr
+}
diff --git a/dev-lang/julia/julia-1.9.4.ebuild b/dev-lang/julia/julia-1.9.4.ebuild
new file mode 100644
index 000000000000..82e0fb7987d9
--- /dev/null
+++ b/dev-lang/julia/julia-1.9.4.ebuild
@@ -0,0 +1,197 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# correct versions for stdlibs are in deps/checksums
+# for everything else, run with network-sandbox and wait for the crash
+
+EAPI=8
+
+MY_LLVM_V=14.0.6
+
+PYTHON_COMPAT=( python3_{10..12} )
+
+inherit check-reqs flag-o-matic optfeature pax-utils python-any-r1 toolchain-funcs
+
+DESCRIPTION="High-performance programming language for technical computing"
+HOMEPAGE="https://julialang.org/
+ https://github.com/JuliaLang/julia/"
+SRC_URI="
+ https://github.com/JuliaLang/julia/releases/download/v${PV}/${P}-full.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+PROPERTIES="test_network"
+RESTRICT="test"
+
+RDEPEND="
+ >=dev-libs/libutf8proc-2.6.1:0=[-cjk]
+ >=dev-util/patchelf-0.13
+ >=net-libs/mbedtls-2.2
+ >=sci-mathematics/dsfmt-2.2.4
+ >=sys-libs/libunwind-1.1:0=
+ >=virtual/blas-3.6
+ app-arch/p7zip
+ app-misc/ca-certificates
+ dev-libs/gmp:0=
+ dev-libs/libgit2:0
+ dev-libs/mpfr:0=
+ net-misc/curl[http2,ssh]
+ sci-libs/amd:0=
+ sci-libs/arpack:0=
+ sci-libs/camd:0=
+ sci-libs/ccolamd:0=
+ sci-libs/cholmod:0=
+ sci-libs/colamd:0=
+ sci-libs/fftw:3.0=[threads]
+ sci-libs/openlibm:0=
+ sci-libs/openblas:0=
+ sci-libs/spqr:0=
+ sci-libs/umfpack:0=
+ sys-libs/zlib:0=
+ virtual/lapack
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ ${PYTHON_DEPS}
+ dev-build/cmake
+ virtual/pkgconfig
+"
+
+CHECKREQS_DISK_BUILD="4G"
+# Avoid building ocaml binding with LLVM_ENABLE_BINDINGS=OFF #47862 (merged upstream but not yet for 1.9.4)
+PATCHES=(
+ "${FILESDIR}"/julia-1.8.0-llvm-no-bindings.patch
+ "${FILESDIR}"/julia-1.9.4-no-doc-install.patch
+ "${FILESDIR}"/julia-1.9.4-string-replace.patch
+ )
+QA_FLAGS_IGNORED+='usr/.*/julia/sys.so' # Julia sysimage generated by bootstrapping.
+
+pkg_setup() {
+ check-reqs_pkg_setup
+ python-any-r1_pkg_setup
+}
+
+src_unpack() {
+ local -a tounpack=( ${A} )
+ # the main source tree, followed by deps
+ unpack "${tounpack[0]}"
+
+ mkdir -p "${S}/deps/srccache/"
+ local i
+ for i in "${tounpack[@]:1}"; do
+ cp "${DISTDIR}/${i}" "${S}/deps/srccache/${i#julia-}" || die
+ done
+
+ # Extract tarballs for patching.
+ # cd "${S}/deps/srccache/" || die
+ # tar xf llvm-julia-${MY_LLVM_V}-3.tar.gz || die
+}
+
+src_prepare() {
+ default
+
+ # Sledgehammer:
+ # - prevent fetching of bundled stuff in compile and install phase
+ # - respect CFLAGS
+ # - respect EPREFIX and Gentoo specific paths
+
+ sed -i \
+ -e "\|SHIPFLAGS :=|c\\SHIPFLAGS := ${CFLAGS}" \
+ Make.inc || die
+
+ sed -i \
+ -e "s|ar -rcs|$(tc-getAR) -rcs|g" \
+ src/Makefile || die
+
+ # Blank the tarball checksum check script.
+ echo "#!/bin/sh" > deps/tools/jlchecksum || die
+}
+
+src_configure() {
+ # bug #855602
+ filter-lto
+
+ # julia does not play well with the system versions of libuv
+ # Fails to compile with libpcre2 on split-usr, bug #893336
+ # USE_SYSTEM_LIBM=0 implies using external openlibm
+ cat <<-EOF > Make.user
+ LOCALBASE:=${EPREFIX}/usr
+ override prefix:=${EPREFIX}/usr
+ override libdir:=\$(prefix)/$(get_libdir)
+ override CC:=$(tc-getCC)
+ override CXX:=$(tc-getCXX)
+ override AR:=$(tc-getAR)
+
+ BUNDLE_DEBUG_LIBS:=0
+ USE_BINARYBUILDER:=0
+ USE_INTEL_JITEVENTS=0
+ USE_SYSTEM_CSL:=1
+ USE_SYSTEM_LLVM:=0
+ USE_SYSTEM_LIBUNWIND:=1
+ USE_SYSTEM_PCRE:=0
+ USE_SYSTEM_LIBM:=0
+ USE_SYSTEM_OPENLIBM:=1
+ USE_SYSTEM_DSFMT:=1
+ USE_SYSTEM_BLAS:=1
+ USE_SYSTEM_LAPACK:=1
+ USE_SYSTEM_LIBBLASTRAMPOLINE:=0
+ USE_SYSTEM_GMP:=1
+ USE_SYSTEM_MPFR:=1
+ USE_SYSTEM_LIBSUITESPARSE:=1
+ USE_SYSTEM_LIBUV:=0
+ USE_SYSTEM_UTF8PROC:=1
+ USE_SYSTEM_MBEDTLS:=1
+ USE_SYSTEM_LIBSSH2:=1
+ USE_SYSTEM_NGHTTP2:=1
+ USE_SYSTEM_CURL:=1
+ USE_SYSTEM_LIBGIT2:=1
+ USE_SYSTEM_PATCHELF:=1
+ USE_SYSTEM_ZLIB:=1
+ USE_SYSTEM_P7ZIP:=1
+ VERBOSE:=1
+ EOF
+}
+
+src_compile() {
+ # Julia accesses /proc/self/mem on Linux.
+ addpredict /proc/self/mem
+
+ # Julia expects .so files to be in lib64 during compilation
+ mkdir -p "${S}"/usr/lib
+ ln -s lib "${S}"/usr/lib64
+
+ emake
+ pax-mark m "$(file usr/bin/julia-* | awk -F : '/ELF/ {print $1}')"
+}
+
+src_install() {
+ emake -j1 install DESTDIR="${D}"
+ dodoc CONTRIBUTING.md HISTORY.md NEWS.md README.md THIRDPARTY.md
+
+ local llvmslot=$(ver_cut 1 ${MY_LLVM_V})
+ cp "${S}"/usr/lib/libLLVM-${llvmslot}jl.so "${ED}"/usr/$(get_libdir)/julia/ || die
+ cp "${S}"/usr/lib/libLLVM-${MY_LLVM_V}jl.so "${ED}"/usr/$(get_libdir)/julia/ || die
+
+ mv "${ED}"/usr/etc/julia "${ED}"/etc || die
+ rmdir "${ED}"/usr/etc || die
+ mv "${ED}"/usr/share/doc/julia/html "${ED}"/usr/share/doc/"${PF}" || die
+ rmdir "${ED}"/usr/share/doc/julia || die
+
+ # The appdata directory is deprecated.
+ mv "${ED}"/usr/share/{appdata,metainfo}/ || die
+
+ # Link ca-certificates.crt, bug: https://bugs.gentoo.org/888978
+ dosym -r /etc/ssl/certs/ca-certificates.crt /usr/share/julia/cert.pem
+
+ # Julia always searches for "sys.so" inside "/usr/lib/julia",
+ # bug: https://github.com/JuliaLang/julia/issues/49574
+ if [[ $(get_libdir) == "lib64" ]] ; then
+ insinto /usr/lib/julia
+ doins "${ED}"/usr/$(get_libdir)/julia/sys.so
+ fi
+}
+
+pkg_postinst() {
+ optfeature "Julia Plots" sci-visualization/gr
+}
diff --git a/dev-lang/julia/metadata.xml b/dev-lang/julia/metadata.xml
index 3acb5a656485..71479676f601 100644
--- a/dev-lang/julia/metadata.xml
+++ b/dev-lang/julia/metadata.xml
@@ -1,14 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>tamiko@gentoo.org</email>
<name>Matthias Maier</name>
</maintainer>
- <maintainer type="person">
- <email>patrick@gentoo.org</email>
- <name>Patrick Lauer</name>
- </maintainer>
<maintainer type="project">
<email>sci@gentoo.org</email>
<name>Gentoo Science Project</name>
@@ -24,11 +20,8 @@
string processing. Julia programs are organized around defining
functions, and overloading them for different combinations of
argument types (which can also be user-defined).
-</longdescription>
+ </longdescription>
<upstream>
<remote-id type="github">JuliaLang/julia</remote-id>
</upstream>
- <use>
- <flag name="system-llvm">(Try to) Use the system LLVM install. YMMV.</flag>
- </use>
</pkgmetadata>
diff --git a/dev-lang/jwasm/metadata.xml b/dev-lang/jwasm/metadata.xml
index be7d54b1219a..28db5ef5b1ca 100644
--- a/dev-lang/jwasm/metadata.xml
+++ b/dev-lang/jwasm/metadata.xml
@@ -1,11 +1,9 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="person">
- <email>slyfox@gentoo.org</email>
- <name>Sergei Trofimovich</name>
- </maintainer>
+ <!-- maintainer-needed -->
<upstream>
<remote-id type="sourceforge">jwasm</remote-id>
+ <remote-id type="github">JWasm/JWasm</remote-id>
</upstream>
</pkgmetadata>
diff --git a/dev-lang/kotlin-bin/Manifest b/dev-lang/kotlin-bin/Manifest
new file mode 100644
index 000000000000..4997e85259f7
--- /dev/null
+++ b/dev-lang/kotlin-bin/Manifest
@@ -0,0 +1,2 @@
+DIST kotlin-compiler-1.9.23.zip 91045770 BLAKE2B f15bf111b0de8527312ae3ffced8fd80812a8ea949f4157d21085966ec7f9c19facf116cc70915d41aca2fb4b3c3d1d9d3cebe23c5312728f295204528c82f2d SHA512 6baea5f968b8cd21a89fd80302a26761b775d2631d5a434775eecf1c4bbc1e07b657f389da4c4d2cd10e3687908e0417d12b94ed822b029a7126ae1988dba445
+DIST kotlin-compiler-1.9.24.zip 91056044 BLAKE2B b872635e83b334cf4b8ee6f2aad5f4d1cf44594848c02a027fd3f7adcffb6d05232e66658ed8e6e234c2ea0996728338f6fdd46628ccfeddeeb5f3b330307340 SHA512 cc6f3cd141faed849f0c8b11b4473f30211d242001292eecc1a0927151034afd892840289457cef6fc8a201dacf157fdb5782cf0a96d27bfa2b3693fac118a84
diff --git a/dev-lang/kotlin-bin/kotlin-bin-1.9.23.ebuild b/dev-lang/kotlin-bin/kotlin-bin-1.9.23.ebuild
new file mode 100644
index 000000000000..7e3629cfadfc
--- /dev/null
+++ b/dev-lang/kotlin-bin/kotlin-bin-1.9.23.ebuild
@@ -0,0 +1,59 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit java-pkg-2 wrapper
+
+DESCRIPTION="Statically typed language that targets the JVM and JavaScript"
+HOMEPAGE="https://kotlinlang.org/
+ https://github.com/JetBrains/kotlin/"
+SRC_URI="https://github.com/JetBrains/kotlin/releases/download/v${PV}/kotlin-compiler-${PV}.zip"
+S="${WORKDIR}/kotlinc"
+
+LICENSE="Apache-2.0 BSD MIT NPL-1.1"
+SLOT="0/${PV}"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="
+ >=virtual/jre-1.8:*
+"
+DEPEND="
+ >=virtual/jdk-1.8:*
+"
+BDEPEND="
+ app-arch/unzip
+"
+
+src_prepare() {
+ default
+
+ rm bin/*.bat || die
+}
+
+src_compile() {
+ :
+}
+
+src_install() {
+ java-pkg_dojar lib/*
+
+ # Follow the Java eclass JAR installation path.
+ local app_home="/usr/share/${PN}"
+
+ exeinto "${app_home}/bin"
+ doexe bin/*
+
+ local -a exes=(
+ kapt
+ kotlin
+ kotlinc
+ kotlinc-js
+ kotlinc-jvm
+ kotlin-dce-js
+ )
+ local exe
+ for exe in "${exes[@]}" ; do
+ make_wrapper "${exe}" "${app_home}/bin/${exe}"
+ done
+}
diff --git a/dev-lang/kotlin-bin/kotlin-bin-1.9.24.ebuild b/dev-lang/kotlin-bin/kotlin-bin-1.9.24.ebuild
new file mode 100644
index 000000000000..7e3629cfadfc
--- /dev/null
+++ b/dev-lang/kotlin-bin/kotlin-bin-1.9.24.ebuild
@@ -0,0 +1,59 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit java-pkg-2 wrapper
+
+DESCRIPTION="Statically typed language that targets the JVM and JavaScript"
+HOMEPAGE="https://kotlinlang.org/
+ https://github.com/JetBrains/kotlin/"
+SRC_URI="https://github.com/JetBrains/kotlin/releases/download/v${PV}/kotlin-compiler-${PV}.zip"
+S="${WORKDIR}/kotlinc"
+
+LICENSE="Apache-2.0 BSD MIT NPL-1.1"
+SLOT="0/${PV}"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="
+ >=virtual/jre-1.8:*
+"
+DEPEND="
+ >=virtual/jdk-1.8:*
+"
+BDEPEND="
+ app-arch/unzip
+"
+
+src_prepare() {
+ default
+
+ rm bin/*.bat || die
+}
+
+src_compile() {
+ :
+}
+
+src_install() {
+ java-pkg_dojar lib/*
+
+ # Follow the Java eclass JAR installation path.
+ local app_home="/usr/share/${PN}"
+
+ exeinto "${app_home}/bin"
+ doexe bin/*
+
+ local -a exes=(
+ kapt
+ kotlin
+ kotlinc
+ kotlinc-js
+ kotlinc-jvm
+ kotlin-dce-js
+ )
+ local exe
+ for exe in "${exes[@]}" ; do
+ make_wrapper "${exe}" "${app_home}/bin/${exe}"
+ done
+}
diff --git a/dev-lang/kotlin-bin/metadata.xml b/dev-lang/kotlin-bin/metadata.xml
new file mode 100644
index 000000000000..96b80b4a00c2
--- /dev/null
+++ b/dev-lang/kotlin-bin/metadata.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+
+<pkgmetadata>
+ <maintainer type="person">
+ <email>xgqt@gentoo.org</email>
+ <name>Maciej Barć</name>
+ </maintainer>
+ <longdescription>
+ Kotlin is a statically typed language that targets the JVM and JavaScript.
+ It is a general-purpose language intended for industry use. It is developed
+ by a team at JetBrains although it is an OSS language and has external
+ contributors.
+ </longdescription>
+ <upstream>
+ <bugs-to>https://github.com/JetBrains/kotlin/issues/</bugs-to>
+ <remote-id type="github">JetBrains/kotlin</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-lang/lazarus/Manifest b/dev-lang/lazarus/Manifest
index f6b7e298e2cc..6814ab378a15 100644
--- a/dev-lang/lazarus/Manifest
+++ b/dev-lang/lazarus/Manifest
@@ -1,4 +1,4 @@
-DIST lazarus-1.0.12-0.tar.gz 47687878 BLAKE2B 7a230f8ad433fefd514d8fca128e1ad127ea2a232c2061080d4146b5276ef82bd442be6a522a5eb4a9221338e8d13cf9d3cc954f712dfbc521d8fd74b07389f7 SHA512 2a106c4bff2135ace815f789057f25fea1902edc972503e883547d7cc6d50b585ae54676cba734cce616064864ce535b3a4fcd7892763d15aafdf262dbe24293
-DIST lazarus-1.8.4-python.tar.gz 1060859 BLAKE2B 4d6f7dc275aacd0f70d9f7c85aba99a7722b02165a5bf287bfeed46f28e3b36c5abeac19bd7c6555250102dce169f7c9c213b634ce1b634c24dadc84171aed10 SHA512 f244b4e86410fdb2ffe8ccba7fcb51c270286172b6102f757118827cac3b652210a625d65dd6c017c1992983527792ed64334291ab0e0b824f187316452c56b5
-DIST lazarus-1.8.4.tar.gz 63130653 BLAKE2B f9b2ba9971f1a9a9c3b8d2004bd3516c12db5384bb6243ef275c2fc0d458634fba0c1c23e7ecd5c160c1204d6cc2b4ebc340ce8bb5cfdd9c531f8c36ae59d1e2 SHA512 82cdc3c32dddf8e67c0bed9292a9a924227bab50f22ca479f5e98ecccbf60dd66c7f886ecb8e2979d9d8fccc3d25462ee8c55fcab085aa4194b4704660e0b95d
-DIST lazarus-2.0.6.tar.gz 65558951 BLAKE2B f5289562adcfeab86af074de9fc44d7faf5939655587ea9951559bbefc15ce1730e7b7dafb6ec1d0a11eb0f8f069309b8fa0a305051c5cc9ea0fcf9665e883bc SHA512 cdb4c5861e130c12bf0a4938a73c439f2766a73008678028d7e9c9bcabe7b277e70025a7c720a5c14c157cf0227e0ff629a44cf983537b3afbf341343e816d07
+DIST lazarus-2.0.12.tar.gz 69560778 BLAKE2B ff6c9414483b0d50dbbb30c8fbf626c81d9c71ef0329aa1d58b37aa4288a500e1ab55d06bad27f637e3f09b9d062af1896720b9cb7367b092fc872cf613f8a3d SHA512 dfd22b2b96fca9d0f672f03b9120c4294a7e640737a09b26c274d304025c61566a8504a5484638c108e42a322b21992229451d95e38d7e491a1c2f07a663483e
+DIST lazarus-2.2.0-0.tar.gz 76777421 BLAKE2B 29a7ed3285e3fbb6f72fe932d72d71edfd6903a8a5eb24f9534a12a4d1ccf5e40c61ce3cc1cbd8eef6dd7700f6e29fb640e35510b23a1ca1b02f7df0a4a738cc SHA512 4ebd8b4b7c6dfea491a30b1253e604646109d208c237e59be2fd9f6be3fb1e29443dd4e482076d77100678d0e4085b998398fca0532aa6122b59db7157af0ce4
+DIST lazarus-2.2.4-0.tar.gz 77272959 BLAKE2B 2d7b2872a7399eb1a3a7d9fb20fed209900603ae433db75ac2c4244edf5e5981314ed3d8e39143ff30764e7ccbf1286edace9c38505df1cd28b44250bdd07224 SHA512 1a2fbc8451f1954df1d0071c586662ebc3cd0e9a7db5d910e0af86a3095252a5796d4c7abcf3861ad723af26974ac416c5bf919cd77ad5f406295ad7cdf47eb1
+DIST lazarus-2.2.4-makefile.patch.bz2 3650 BLAKE2B 4a86e0dee7759183e3311cfa9f250995dbf2bb39d1de4c0fbc0191767b5f16029285ab92c76466d261708a88ed600929e777798560161e9942a64e44f956ff89 SHA512 560ffd3d43b75a804dfdb756323cecc7f2039215ab176ca0149cfee11dfe31d7943ad4aa212e9194c2bd2acbd0835e635501ef157888daf3715be7f760b3d51b
diff --git a/dev-lang/lazarus/lazarus-1.8.4-r2.ebuild b/dev-lang/lazarus/lazarus-1.8.4-r2.ebuild
deleted file mode 100644
index c8b45900004c..000000000000
--- a/dev-lang/lazarus/lazarus-1.8.4-r2.ebuild
+++ /dev/null
@@ -1,106 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit desktop
-
-FPCVER="3.0.4"
-PYTHON_HASH="586eec1a5ea609ef9df2bf586be06825d9fbd50f"
-
-DESCRIPTION="Lazarus IDE is a feature rich visual programming environment emulating Delphi"
-HOMEPAGE="https://www.lazarus-ide.org/"
-SRC_URI="
- python? ( https://github.com/Alexey-T/Python-for-Lazarus/archive/${PYTHON_HASH}.tar.gz ->\
- ${P}-python.tar.gz )
- https://sourceforge.net/projects/${PN}/files/Lazarus%20Zip%20_%20GZip/Lazarus%20${PV}/${P}.tar.gz"
-
-LICENSE="GPL-2 LGPL-2.1-with-linking-exception"
-SLOT="0" # Note: Slotting Lazarus needs slotting fpc, see DEPEND.
-KEYWORDS="amd64 x86"
-IUSE="minimal python"
-
-DEPEND=">=dev-lang/fpc-${FPCVER}[source]
- net-misc/rsync
- x11-libs/gtk+:2
- >=sys-devel/binutils-2.19.1-r1:="
-RDEPEND="${DEPEND}"
-
-RESTRICT="strip" #269221
-
-S="${WORKDIR}/${PN}"
-
-PATCHES=( "${FILESDIR}"/${PN}-0.9.26-fpcsrc.patch )
-
-src_prepare() {
- default
- # Use default configuration (minus stripping) unless specifically requested otherwise
- if ! test ${PPC_CONFIG_PATH+set} ; then
- local FPCVER=$(fpc -iV)
- export PPC_CONFIG_PATH="${WORKDIR}"
- sed -e 's/^FPBIN=/#&/' /usr/lib/fpc/${FPCVER}/samplecfg |
- sh -s /usr/lib/fpc/${FPCVER} "${PPC_CONFIG_PATH}" || die
- fi
- sed -i \
- -e "s;SecondaryConfigPath:='/etc/lazarus';SecondaryConfigPath:=ExpandFileNameUTF8('~/.lazarus');g" \
- -e "s;PrimaryConfigPath:=ExpandFileNameUTF8('~/.lazarus');PrimaryConfigPath:='/etc/lazarus';g" \
- ide/include/unix/lazbaseconf.inc \
- || die
-}
-
-src_compile() {
- LCL_PLATFORM=gtk2 emake \
- $(usex minimal "" "bigide") \
- -j1
- if use python; then
- addpredict ide/exttools.pas
- ./lazbuild -B --lazarusdir="." --pcp="../lazarus-package-config" --build-ide= \
- --add-package ../Python-for-Lazarus-${PYTHON_HASH}/python4lazarus/python4lazarus_package.lpk \
- || die
- sed -i -e "s:${WORKDIR}/Python-for-Lazarus-${PYTHON_HASH}:/etc/lazarus:g" \
- ../lazarus-package-config/packagefiles.xml \
- ../lazarus-package-config/idemake.cfg \
- ../Python-for-Lazarus-${PYTHON_HASH}/python4lazarus/lib/x86_64-linux/python4lazarus_package.compiled \
- || die
- sed -i -e "s:${WORKDIR}/lazarus-package-config:/etc/lazarus:g" \
- ../lazarus-package-config/idemake.cfg \
- || die
- fi
-}
-
-src_install() {
- diropts -m0755
- dodir /usr/share
- # Using rsync to avoid unnecessary copies and cleaning...
- # Note: *.o and *.ppu are needed
- rsync -a \
- --exclude="CVS" --exclude=".cvsignore" \
- --exclude="*.ppw" --exclude="*.ppl" \
- --exclude="*.ow" --exclude="*.a"\
- --exclude="*.rst" --exclude=".#*" \
- --exclude="*.~*" --exclude="*.bak" \
- --exclude="*.orig" --exclude="*.rej" \
- --exclude=".xvpics" --exclude="*.compiled" \
- --exclude="killme*" --exclude=".gdb_hist*" \
- --exclude="debian" --exclude="COPYING*" \
- --exclude="*.app" \
- "${S}" "${ED%/}"/usr/share \
- || die "Unable to copy files!"
-
- dosym ../share/lazarus/startlazarus /usr/bin/startlazarus
- dosym ../share/lazarus/startlazarus /usr/bin/lazarus
- dosym ../share/lazarus/lazbuild /usr/bin/lazbuild
- use minimal || dosym ../share/lazarus/components/chmhelp/lhelp/lhelp /usr/bin/lhelp
- dosym ../lazarus/images/ide_icon48x48.png /usr/share/pixmaps/lazarus.png
-
- if use python; then
- diropts -m0755
- dodir /etc/lazarus
- cp -rf ../lazarus-package-config/* \
- "${ED%/}"/etc/lazarus || die
- cp -rf ../Python-for-Lazarus-${PYTHON_HASH}/python4lazarus \
- "${ED%/}"/etc/lazarus || die
- fi
-
- make_desktop_entry startlazarus "Lazarus IDE" "lazarus"
-}
diff --git a/dev-lang/lazarus/lazarus-2.0.6.ebuild b/dev-lang/lazarus/lazarus-2.0.12.ebuild
index 8cfaf07f618b..63ba361cacc4 100644
--- a/dev-lang/lazarus/lazarus-2.0.6.ebuild
+++ b/dev-lang/lazarus/lazarus-2.0.12.ebuild
@@ -1,11 +1,13 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit desktop
-FPCVER="3.0.4"
+# See https://wiki.freepascal.org/Lazarus_2.0_fixes_branch for notes and
+# changes in FPCVER. It *does* change between minor versions of lazarus.
+FPCVER="3.2.0"
DESCRIPTION="Lazarus IDE is a feature rich visual programming environment emulating Delphi"
HOMEPAGE="https://www.lazarus-ide.org/"
@@ -13,7 +15,7 @@ SRC_URI="https://sourceforge.net/projects/${PN}/files/Lazarus%20Zip%20_%20GZip/L
LICENSE="GPL-2 LGPL-2.1-with-linking-exception"
SLOT="0" # Note: Slotting Lazarus needs slotting fpc, see DEPEND.
-KEYWORDS="~amd64 ~x86"
+KEYWORDS="amd64 x86"
IUSE="minimal"
DEPEND=">=dev-lang/fpc-${FPCVER}[source]
@@ -45,6 +47,8 @@ src_prepare() {
}
src_compile() {
+ # TODO: Change to LCL_PLATFORM=qt5?
+ # bug #732758
LCL_PLATFORM=gtk2 emake \
$(usex minimal "" "bigide") \
-j1
diff --git a/dev-lang/lazarus/lazarus-1.0.12.ebuild b/dev-lang/lazarus/lazarus-2.2.0.ebuild
index 5edd6797d407..878b17d9434b 100644
--- a/dev-lang/lazarus/lazarus-1.0.12.ebuild
+++ b/dev-lang/lazarus/lazarus-2.2.0.ebuild
@@ -1,46 +1,49 @@
-# Copyright 1999-2017 Gentoo Foundation
+# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=5
+EAPI=8
-inherit eutils
+inherit desktop
-RESTRICT="strip" #269221
-
-FPCVER="2.6.0"
+# See https://wiki.freepascal.org/Lazarus_2.0_fixes_branch for notes and
+# changes in FPCVER. It *does* change between minor versions of lazarus.
+FPCVER="3.2.2"
-SLOT="0" # Note: Slotting Lazarus needs slotting fpc, see DEPEND.
-LICENSE="GPL-2 LGPL-2.1-with-linking-exception"
-KEYWORDS="amd64 x86"
DESCRIPTION="Lazarus IDE is a feature rich visual programming environment emulating Delphi"
HOMEPAGE="https://www.lazarus-ide.org/"
+SRC_URI="https://sourceforge.net/projects/${PN}/files/Lazarus%20Zip%20_%20GZip/Lazarus%20${PV}/${P}-0.tar.gz"
+
+LICENSE="GPL-2 LGPL-2.1-with-linking-exception"
+SLOT="0" # Note: Slotting Lazarus needs slotting fpc, see DEPEND.
+KEYWORDS="~amd64 ~x86"
IUSE="minimal"
-SRC_URI="https://downloads.sourceforge.net/project/${PN}/Lazarus%20Zip%20_%20GZip/Lazarus%20${PV}/${PN}-${PV}-0.tar.gz"
DEPEND=">=dev-lang/fpc-${FPCVER}[source]
net-misc/rsync
- x11-libs/gtk+:2"
-RDEPEND="${DEPEND}
- !=gnome-base/librsvg-2.16.1"
-DEPEND="${DEPEND}
- >=sys-devel/binutils-2.19.1-r1"
+ x11-libs/gtk+:2
+ >=sys-devel/binutils-2.19.1-r1:="
+RDEPEND="${DEPEND}"
-S=${WORKDIR}/${PN}
+RESTRICT="strip" #269221
-src_prepare() {
- epatch "${FILESDIR}"/${PN}-0.9.26-fpcsrc.patch
+S="${WORKDIR}/${PN}"
+PATCHES=( "${FILESDIR}"/${PN}-0.9.26-fpcsrc.patch )
+
+src_prepare() {
+ default
# Use default configuration (minus stripping) unless specifically requested otherwise
if ! test ${PPC_CONFIG_PATH+set} ; then
local FPCVER=$(fpc -iV)
export PPC_CONFIG_PATH="${WORKDIR}"
sed -e 's/^FPBIN=/#&/' /usr/lib/fpc/${FPCVER}/samplecfg |
sh -s /usr/lib/fpc/${FPCVER} "${PPC_CONFIG_PATH}" || die
- #sed -i -e '/^-Xs/d' "${PPC_CONFIG_PATH}"/fpc.cfg || die
fi
}
src_compile() {
+ # TODO: Change to LCL_PLATFORM=qt5?
+ # bug #732758
LCL_PLATFORM=gtk2 emake \
$(usex minimal "" "bigide") \
-j1
@@ -62,8 +65,8 @@ src_install() {
--exclude="killme*" --exclude=".gdb_hist*" \
--exclude="debian" --exclude="COPYING*" \
--exclude="*.app" \
- "${S}" "${ED%/}"/usr/share \
- || die "Unable to copy files!"
+ "${S}" "${ED}"/usr/share \
+ || die "Unable to copy files!"
dosym ../share/lazarus/startlazarus /usr/bin/startlazarus
dosym ../share/lazarus/startlazarus /usr/bin/lazarus
@@ -71,5 +74,5 @@ src_install() {
use minimal || dosym ../share/lazarus/components/chmhelp/lhelp/lhelp /usr/bin/lhelp
dosym ../lazarus/images/ide_icon48x48.png /usr/share/pixmaps/lazarus.png
- make_desktop_entry startlazarus "Lazarus IDE" "lazarus" || die "Failed making desktop entry!"
+ make_desktop_entry startlazarus "Lazarus IDE" "lazarus"
}
diff --git a/dev-lang/lazarus/lazarus-2.2.4-r1.ebuild b/dev-lang/lazarus/lazarus-2.2.4-r1.ebuild
new file mode 100644
index 000000000000..8682fdee8fee
--- /dev/null
+++ b/dev-lang/lazarus/lazarus-2.2.4-r1.ebuild
@@ -0,0 +1,106 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit desktop
+
+# See https://wiki.freepascal.org/Lazarus_2.0_fixes_branch for notes and
+# changes in FPCVER. It *does* change between minor versions of lazarus.
+FPCVER="3.2.2"
+
+DESCRIPTION="feature rich visual programming environment emulating Delphi"
+HOMEPAGE="https://www.lazarus-ide.org/"
+SRC_URI="https://downloads.sourceforge.net/lazarus/${P}-0.tar.gz https://dev.gentoo.org/~amynka/snap/${P}-makefile.patch.bz2"
+
+LICENSE="GPL-2 LGPL-2.1-with-linking-exception"
+SLOT="0/2.2" # Note: Slotting Lazarus needs slotting fpc, see DEPEND.
+KEYWORDS="~amd64 ~x86"
+IUSE="gtk2 +gui extras"
+REQUIRED_USE="gtk2? ( gui ) extras? ( gui )"
+
+# Pascal ignores CFLAGS and does its own stripping. Nothing else can be done about it.
+QA_FLAGS_IGNORED="
+/usr/share/lazarus/startlazarus \
+/usr/share/lazarus/lazarus \
+/usr/share/lazarus/tools/lazres \
+/usr/share/lazarus/tools/lrstolfm \
+/usr/share/lazarus/tools/updatepofiles \
+/usr/share/lazarus/tools/svn2revisioninc \
+/usr/share/lazarus/lazbuild \
+/usr/share/lazarus/components/chmhelp/lhelp/lhelp"
+
+QA_PRESTRIPPED=${QA_FLAGS_IGNORED}
+
+DEPEND="
+ >=dev-lang/fpc-${FPCVER}[source]
+ >=sys-devel/binutils-2.19.1-r1:=
+ gui? (
+ !gtk2? ( dev-libs/libqt5pas:0/2.2 )
+ gtk2? ( x11-libs/gtk+:2 )
+)"
+BDEPEND="net-misc/rsync"
+RDEPEND="${DEPEND}"
+
+RESTRICT="strip" #269221
+
+S="${WORKDIR}/${PN}"
+
+PATCHES=(
+ "${WORKDIR}/${P}"-makefile.patch
+ "${FILESDIR}"/${PN}-0.9.26-fpcsrc.patch )
+
+src_prepare() {
+ default
+ # Use default configuration (minus stripping) unless specifically requested otherwise
+ if ! test ${PPC_CONFIG_PATH+set} ; then
+ local FPCVER=$(fpc -iV)
+ export PPC_CONFIG_PATH="${WORKDIR}"
+ sed -e 's/^FPBIN=/#&/' /usr/lib/fpc/${FPCVER}/samplecfg |
+ sh -s /usr/lib/fpc/${FPCVER} "${PPC_CONFIG_PATH}" || die
+ fi
+}
+
+src_compile() {
+ # TODO: Change to LCL_PLATFORM=qt5?
+ # bug #732758
+ if ( use gui ) && ( use !gtk2 ) ; then
+ export LCL_PLATFORM=qt5
+ fi
+ use gtk2 && export LCL_PLATFORM=gtk2
+ if ( use gui ) ; then
+ emake all $(usex extras "bigide lhelp" "") -j1 || die "make failed!"
+ else
+ emake lazbuild -j1 || die "make failed!"
+ fi
+}
+
+src_install() {
+ diropts -m0755
+ dodir /usr/share
+ # Using rsync to avoid unnecessary copies and cleaning...
+ # Note: *.o and *.ppu are needed
+ rsync -a \
+ --exclude="CVS" --exclude=".cvsignore" \
+ --exclude="*.ppw" --exclude="*.ppl" \
+ --exclude="*.ow" --exclude="*.a"\
+ --exclude="*.rst" --exclude=".#*" \
+ --exclude="*.~*" --exclude="*.bak" \
+ --exclude="*.orig" --exclude="*.rej" \
+ --exclude=".xvpics" --exclude="*.compiled" \
+ --exclude="killme*" --exclude=".gdb_hist*" \
+ --exclude="debian" --exclude="COPYING*" \
+ --exclude="*.app" \
+ "${S}" "${ED}"/usr/share \
+ || die "Unable to copy files!"
+
+ if ( use gui ) ; then
+ dosym ../share/lazarus/startlazarus /usr/bin/startlazarus
+ dosym ../share/lazarus/startlazarus /usr/bin/lazarus
+ fi
+ dosym ../share/lazarus/lazbuild /usr/bin/lazbuild
+ use extras && dosym ../share/lazarus/components/chmhelp/lhelp/lhelp /usr/bin/lhelp
+ dosym ../lazarus/images/ide_icon48x48.png /usr/share/pixmaps/lazarus.png
+
+ use gui && make_desktop_entry startlazarus "Lazarus IDE" "lazarus"
+}
diff --git a/dev-lang/lazarus/metadata.xml b/dev-lang/lazarus/metadata.xml
index fef814902c1b..f2a8edc62b9f 100644
--- a/dev-lang/lazarus/metadata.xml
+++ b/dev-lang/lazarus/metadata.xml
@@ -1,11 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>amynka@gentoo.org</email>
</maintainer>
+ <maintainer type="person" proxied="yes">
+ <email>voron1@gmail.com</email>
+ <name>Michael Corvinus</name>
+ </maintainer>
<use>
<flag name="minimal">Don't build extra packages from the bigide component</flag>
+ <flag name="gui">Build GUI IDE.</flag>
+ <flag name="gtk2">Use gtk:2 for widgets.</flag>
+ <flag name="extras">Build a lot of extra packages, including lhelp chm viewer program.</flag>
</use>
<upstream>
<remote-id type="sourceforge">downloads</remote-id>
diff --git a/dev-lang/lfe/Manifest b/dev-lang/lfe/Manifest
index 157950b638ba..8a2f505ddf90 100644
--- a/dev-lang/lfe/Manifest
+++ b/dev-lang/lfe/Manifest
@@ -1 +1,3 @@
-DIST lfe-1.1.1.zip 386864 BLAKE2B d966e483c0490d7c6e48ae53819a0f1f30ea0edd7dcc6c7c3fe82c79ed0e4013d66dde4e74d4369e72fc46076723612f00ccb8d33d912d46dfdbf8e38940f72b SHA512 8660716a73126615bd0cde161a780cc49ba57718afd820dbe891da5e1d9ec2f52cc1864159dcedba1c674ccfef42b9662ec8e0bbfe82c10798527ae0979b8f8e
+DIST lfe-2.0.1.tar.gz 351818 BLAKE2B 4f661d2d4685af420bf9b531795ffacfe9b272b6bd39c81a4f3344e4003960d2deb31618df22d8f91c74b925ab522153b732d9afdbd894c64f70a533b573989e SHA512 47d062fcd1910580ba5d84f8887a27d0717cb7aae2a90fb3a7e7411fd46886dd73e342ccd4627227c70d13dcd2c5f66077d351812e9bc0c17d64e9ef65d04f96
+DIST lfe-2.0.tar.gz 351324 BLAKE2B 811bd310cf917f3e1dc456c9e7c5cd09f5099a2ab20d2bde60e2057eb94ee9125298866b01ef9b483fdaef8572cb487c0a760407c79774e915fdd2c7c129d796 SHA512 b615f28947febe034b1bd155e6c357211ebbdb63aef67645a9681a4a30b799c2019a79ab8f33cd5d3003ad5da83e10af6b3e5c1abe810def92c88812d58c0d04
+DIST lfe-2.1.2.tar.gz 364310 BLAKE2B 71a7a5f49bde4d66ce04868834d6f2b9a53d4195b8e1b45654f1f0e93bef6dab8607c1372206d102e786b31ec9d77fa252e57c6041bffd4de58b3790d1c86108 SHA512 0cc53d5706ca2fadb96980bee58d4adf83fe61026651fed319397b4a2476f3ea00b48735140f645a59cf5d3b476858c4e9fde992d2cec2b6e2687157e5ed2ade
diff --git a/dev-lang/lfe/files/70lfe-gentoo.el b/dev-lang/lfe/files/70lfe-gentoo.el
new file mode 100644
index 000000000000..2be4c13d18a5
--- /dev/null
+++ b/dev-lang/lfe/files/70lfe-gentoo.el
@@ -0,0 +1,6 @@
+;;; lfe site-lisp configuration
+
+(add-to-list 'load-path "@SITELISP@")
+
+(autoload 'lfe-mode "lfe-mode" nil t)
+(autoload 'inferior-lfe-mode "inferior-lfe-mode" nil t)
diff --git a/dev-lang/lfe/lfe-1.1.1.ebuild b/dev-lang/lfe/lfe-1.1.1.ebuild
deleted file mode 100644
index bfb8337090ea..000000000000
--- a/dev-lang/lfe/lfe-1.1.1.ebuild
+++ /dev/null
@@ -1,36 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-
-inherit multilib
-
-DESCRIPTION="Lisp-flavoured Erlang"
-HOMEPAGE="http://lfe.github.io/"
-SRC_URI="https://github.com/rvirding/lfe/archive/v${PV}.zip -> ${P}.zip"
-
-LICENSE="BSD-2"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE=""
-
-RDEPEND="dev-lang/erlang"
-DEPEND="${RDEPEND}"
-
-src_prepare() {
- export PATH="${S}/bin:$PATH"
-}
-
-src_compile() {
- emake compile -j1
-}
-
-src_install() {
- dobin bin/lfe
- dobin bin/lfec
- dobin bin/lfescript
- dodir /usr/$(get_libdir)/erlang/lib/lfe/ebin/
- dodir /usr/$(get_libdir)/erlang/lib/lfe/emacs/
- cp -R "${S}/ebin" "${D}/usr/$(get_libdir)/erlang/lib/lfe/"
- cp -R "${S}/emacs" "${D}/usr/$(get_libdir)/erlang/lib/lfe/"
-}
diff --git a/dev-lang/lfe/lfe-2.0.1.ebuild b/dev-lang/lfe/lfe-2.0.1.ebuild
new file mode 100644
index 000000000000..fd1496d1343c
--- /dev/null
+++ b/dev-lang/lfe/lfe-2.0.1.ebuild
@@ -0,0 +1,73 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit elisp-common toolchain-funcs
+
+DESCRIPTION="Lisp-flavoured Erlang"
+HOMEPAGE="http://lfe.github.io/"
+
+if [[ "${PV}" == *9999* ]]; then
+ inherit git-r3
+ EGIT_BRANCH="develop"
+ EGIT_REPO_URI="https://github.com/rvirding/${PN}.git"
+else
+ SRC_URI="https://github.com/rvirding/${PN}/archive/refs/tags/${PV}.tar.gz
+ -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+RESTRICT="mirror test"
+LICENSE="Apache-2.0"
+SLOT="0"
+IUSE="doc emacs"
+
+RDEPEND="
+ dev-lang/erlang
+"
+DEPEND="
+ ${RDEPEND}
+ doc? ( virtual/pandoc )
+"
+
+SITEFILE="70${PN}-gentoo.el"
+
+src_prepare() {
+ default
+
+ sed -i "s|cc |$(tc-getCC) ${CFLAGS} |g" ./Makefile \
+ || die "Failed to fix the makefile"
+}
+
+src_compile() {
+ emake compile
+
+ use doc && emake docs
+ use emacs && emake emacs
+}
+
+src_install() {
+ dodir "/usr/$(get_libdir)/erlang/lib/lfe/ebin/"
+ cp -R ./ebin "${D}/usr/$(get_libdir)/erlang/lib/lfe/"
+ dobin ./bin/*
+
+ if use doc; then
+ dodoc ./doc/*.txt
+ doman ./doc/man/*
+ fi
+
+ if use emacs; then
+ elisp-install lfe emacs/* \
+ || die "elisp-install failed"
+ elisp-site-file-install "${FILESDIR}/${SITEFILE}"
+ fi
+}
+
+pkg_postinst() {
+ use emacs && elisp-site-regen
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}
diff --git a/dev-lang/lfe/lfe-2.0.ebuild b/dev-lang/lfe/lfe-2.0.ebuild
new file mode 100644
index 000000000000..c392c96148dc
--- /dev/null
+++ b/dev-lang/lfe/lfe-2.0.ebuild
@@ -0,0 +1,73 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit elisp-common toolchain-funcs
+
+DESCRIPTION="Lisp-flavoured Erlang"
+HOMEPAGE="http://lfe.github.io/"
+
+if [[ "${PV}" == *9999* ]]; then
+ inherit git-r3
+ EGIT_BRANCH="develop"
+ EGIT_REPO_URI="https://github.com/rvirding/${PN}.git"
+else
+ SRC_URI="https://github.com/rvirding/${PN}/archive/refs/tags/${PV}.tar.gz
+ -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+RESTRICT="mirror test"
+LICENSE="Apache-2.0"
+SLOT="0"
+IUSE="doc emacs"
+
+RDEPEND="
+ dev-lang/erlang
+"
+DEPEND="
+ ${RDEPEND}
+ doc? ( virtual/pandoc )
+"
+
+SITEFILE="70${PN}-gentoo.el"
+
+src_prepare() {
+ default
+
+ sed -i "s|cc |$(tc-getCC) ${CFLAGS} |g" ./Makefile \
+ || die "Failed to fix the makefile"
+}
+
+src_compile() {
+ emake compile
+
+ use doc && emake docs
+ use emacs && emake emacs
+}
+
+src_install() {
+ dodir "/usr/$(get_libdir)/erlang/lib/lfe/ebin/"
+ cp -R ./ebin "${D}/usr/$(get_libdir)/erlang/lib/lfe/"
+ dobin ./bin/*
+
+ if use doc; then
+ dodoc ./doc/*.txt
+ doman ./doc/man/*
+ fi
+
+ if use emacs; then
+ elisp-install lfe emacs/* \
+ || die "elisp-install failed"
+ elisp-site-file-install "${FILESDIR}/${SITEFILE}"
+ fi
+}
+
+pkg_postinst() {
+ use emacs && elisp-site-regen
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}
diff --git a/dev-lang/lfe/lfe-2.1.2.ebuild b/dev-lang/lfe/lfe-2.1.2.ebuild
new file mode 100644
index 000000000000..0ec43431ab6d
--- /dev/null
+++ b/dev-lang/lfe/lfe-2.1.2.ebuild
@@ -0,0 +1,63 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit elisp-common toolchain-funcs
+
+DESCRIPTION="Lisp-flavoured Erlang, a lisp syntax front-end to the Erlang compiler"
+HOMEPAGE="http://lfe.github.io/
+ https://github.com/rvirding/lfe/"
+
+if [[ ${PV} == *9999* ]] ; then
+ inherit git-r3
+ EGIT_BRANCH="develop"
+ EGIT_REPO_URI="https://github.com/rvirding/${PN}.git"
+else
+ SRC_URI="https://github.com/rvirding/${PN}/archive/${PV}.tar.gz
+ -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="Apache-2.0"
+SLOT="0"
+IUSE="emacs"
+
+RDEPEND="
+ dev-lang/erlang
+ emacs? ( >=app-editors/emacs-23.1:* )
+"
+BDEPEND="
+ ${RDEPEND}
+"
+
+SITEFILE="70${PN}-gentoo.el"
+
+src_compile() {
+ emake HOSTCC="$(tc-getCC) ${CFLAGS} ${LDFLAGS}" compile
+
+ use emacs && emake emacs
+}
+
+src_install() {
+ insinto /usr/$(get_libdir)/erlang/lib/lfe/
+ doins -r ebin
+ exeinto /usr/bin
+ doexe ./bin/*
+
+ dodoc doc/*.txt
+ doman doc/man/*
+
+ if use emacs ; then
+ elisp-install lfe emacs/*
+ elisp-site-file-install "${FILESDIR}/${SITEFILE}"
+ fi
+}
+
+pkg_postinst() {
+ use emacs && elisp-site-regen
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}
diff --git a/dev-lang/lfe/metadata.xml b/dev-lang/lfe/metadata.xml
index afa3a329e3ad..207951f07ccc 100644
--- a/dev-lang/lfe/metadata.xml
+++ b/dev-lang/lfe/metadata.xml
@@ -1,10 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>patrick@gentoo.org</email>
<name>Patrick Lauer</name>
</maintainer>
+ <longdescription lang="en">
+ LFE, Lisp Flavoured Erlang, is a lisp syntax front-end
+ to the Erlang compiler. Code produced with it is compatible
+ with "normal" Erlang code.
+ An LFE evaluator and shell is also included.
+ </longdescription>
<upstream>
<remote-id type="github">rvirding/lfe</remote-id>
</upstream>
diff --git a/dev-lang/lisaac/metadata.xml b/dev-lang/lisaac/metadata.xml
index 6f49eba8f496..85e4ed814fa2 100644
--- a/dev-lang/lisaac/metadata.xml
+++ b/dev-lang/lisaac/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<!-- maintainer-needed -->
</pkgmetadata>
diff --git a/dev-lang/logtalk/Manifest b/dev-lang/logtalk/Manifest
index 9e704668b23b..ef03f23e10e3 100644
--- a/dev-lang/logtalk/Manifest
+++ b/dev-lang/logtalk/Manifest
@@ -1 +1,2 @@
DIST logtalk-3.36.0.tar.bz2 18373894 BLAKE2B 3f4917dea47b32760edfde0538a260e5405b566520c514ec137766d17ad532f1d3e3a7a6d05b4b643b21933073951ed41bf92161ae49545eb458619444b10210 SHA512 0e93f091cb24aed3b08db05df29484e708e14cf58a673a42df70c899f3bafae30896be118d89dfdf3f3cb7d4ba520a815e46d563dd7418f80912b7067ed7da8e
+DIST logtalk-3.47.0.tar.bz2 26219166 BLAKE2B 9492d27ac041562c57ab1f5f111e0f7ad062268e20d8128284d8d5085ec1c3dc63db6efa0f3a4dac34f83f206c3a4b9827d5245191227000ae56cd306da3b699 SHA512 cf07c1dec80131e477cfc9f2bf31bae573cc01222f3fba70452663dbddbddaee68b25da2e4c0abec18e1bda46059c23fca2c012cb59bbdcb4298a8c89e2d93d4
diff --git a/dev-lang/logtalk/files/logtalk-3.47.0-portage.patch b/dev-lang/logtalk/files/logtalk-3.47.0-portage.patch
new file mode 100644
index 000000000000..2107b114da0f
--- /dev/null
+++ b/dev-lang/logtalk/files/logtalk-3.47.0-portage.patch
@@ -0,0 +1,19 @@
+--- logtalk-3.47.0.orig/scripts/logtalk_user_setup.sh 2021-05-31 23:10:00.000000000 -0000
++++ logtalk-3.47.0/scripts/logtalk_user_setup.sh 2021-06-27 15:05:04.783245715 -0000
+@@ -134,16 +134,6 @@
+ rm -f "$LOGTALKUSER"/tools/lgtdoc/xml/lgt2*
+ rm -f "$LOGTALKUSER"/tools/lgtdoc/xml/logtalk.dtd
+ rm -f "$LOGTALKUSER"/tools/lgtdoc/xml/logtalk.xsd
+-ln -sf "$LOGTALKHOME"/ACKNOWLEDGMENTS.md "$LOGTALKUSER"/ACKNOWLEDGMENTS.md
+-ln -sf "$LOGTALKHOME"/BIBLIOGRAPHY.bib "$LOGTALKUSER"/BIBLIOGRAPHY.bib
+-ln -sf "$LOGTALKHOME"/CONTRIBUTING.md "$LOGTALKUSER"/CONTRIBUTING.md
+-ln -sf "$LOGTALKHOME"/CUSTOMIZE.md "$LOGTALKUSER"/CUSTOMIZE.md
+-ln -sf "$LOGTALKHOME"/INSTALL.md "$LOGTALKUSER"/INSTALL.md
+-ln -sf "$LOGTALKHOME"/LICENSE.txt "$LOGTALKUSER"/LICENSE.txt
+-ln -sf "$LOGTALKHOME"/QUICK_START.md "$LOGTALKUSER"/QUICK_START.md
+-ln -sf "$LOGTALKHOME"/README.md "$LOGTALKUSER"/README.md
+-ln -sf "$LOGTALKHOME"/RELEASE_NOTES.md "$LOGTALKUSER"/RELEASE_NOTES.md
+-ln -sf "$LOGTALKHOME"/UPGRADING.md "$LOGTALKUSER"/UPGRADING.md
+ ln -sf "$LOGTALKHOME"/adapters "$LOGTALKUSER"/adapters
+ ln -sf "$LOGTALKHOME"/coding "$LOGTALKUSER"/coding
+ ln -sf "$LOGTALKHOME"/integration "$LOGTALKUSER"/integration
diff --git a/dev-lang/logtalk/logtalk-3.36.0.ebuild b/dev-lang/logtalk/logtalk-3.36.0.ebuild
index dc96c5d1fc5a..51b8770f7e81 100644
--- a/dev-lang/logtalk/logtalk-3.36.0.ebuild
+++ b/dev-lang/logtalk/logtalk-3.36.0.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
-inherit eutils xdg-utils
+inherit xdg-utils
DESCRIPTION="Open source object-oriented logic programming language"
HOMEPAGE="https://logtalk.org"
@@ -19,22 +19,20 @@ RDEPEND="${DEPEND}
xslt? ( dev-libs/libxslt )
fop? ( dev-java/fop )"
-src_prepare() {
- epatch "${FILESDIR}"/${P}-portage.patch
-
- eapply_user
-}
+PATCHES=(
+ "${FILESDIR}"/${P}-portage.patch
+)
src_install() {
# Look at scripts/install.sh for upstream installation process.
# Install logtalk base
mv scripts/logtalk_user_setup.sh integration/
- mkdir -p "${D}/usr/share/${P}"
+ mkdir -p "${ED}/usr/share/${P}" || die
cp -r adapters coding contributions core docs examples integration \
library manuals paths scratch tests tools VERSION.txt \
loader-sample.lgt settings-sample.lgt tester-sample.lgt \
tests-sample.lgt \
- "${D}/usr/share/${P}" \
+ "${ED}/usr/share/${P}" \
|| die "Failed to install files"
# Install mime file, the database will be updated later
diff --git a/dev-lang/logtalk/logtalk-3.47.0-r1.ebuild b/dev-lang/logtalk/logtalk-3.47.0-r1.ebuild
new file mode 100644
index 000000000000..e65ccc6e0960
--- /dev/null
+++ b/dev-lang/logtalk/logtalk-3.47.0-r1.ebuild
@@ -0,0 +1,127 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit xdg
+
+DESCRIPTION="Open source object-oriented logic programming language"
+HOMEPAGE="https://logtalk.org"
+SRC_URI="https://logtalk.org/files/${P}.tar.bz2"
+LICENSE="Apache-2.0"
+
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE="fop xslt"
+
+RDEPEND="
+ xslt? ( dev-libs/libxslt )
+ fop? ( dev-java/fop )"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-portage.patch
+)
+
+src_install() {
+ # Look at scripts/install.sh for upstream installation process.
+ # Install logtalk base
+ mv scripts/logtalk_user_setup.sh integration/ || die
+ mkdir -p "${ED}/usr/share/${P}" || die
+ cp -r adapters coding contributions core docs examples integration \
+ library manuals paths scratch tests tools VERSION.txt \
+ loader-sample.lgt settings-sample.lgt tester-sample.lgt \
+ tests-sample.lgt \
+ "${ED}/usr/share/${P}" \
+ || die "Failed to install files"
+
+ # Install mime file, the database will be updated later
+ insinto /usr/share/mime/packages
+ doins scripts/freedesktop/logtalk.xml
+
+ # Install documentation
+ dodoc ACKNOWLEDGMENTS.md BIBLIOGRAPHY.bib CONTRIBUTING.md \
+ CUSTOMIZE.md INSTALL.md LICENSE.txt QUICK_START.md \
+ README.md RELEASE_NOTES.md UPGRADING.md VERSION.txt
+
+ rm -f man/man1/logtalk_backend_select.1 || die
+ rm -f man/man1/logtalk_version_select.1 || die
+ doman man/man1/*.1
+
+ # Integration symlinks
+ dosym ../share/${P}/integration/logtalk_user_setup.sh \
+ /usr/bin/logtalk_user_setup
+ dosym ../share/${P}/integration/bplgt.sh \
+ /usr/bin/bplgt
+ dosym ../share/${P}/integration/ciaolgt.sh \
+ /usr/bin/ciaolgt
+ dosym ../share/${P}/integration/cxlgt.sh \
+ /usr/bin/cxlgt
+ dosym ../share/${P}/integration/eclipselgt.sh \
+ /usr/bin/eclipselgt
+ dosym ../share/${P}/integration/gplgt.sh \
+ /usr/bin/gplgt
+ dosym ../share/${P}/integration/jiplgt.sh \
+ /usr/bin/jiplgt
+ dosym ../share/${P}/integration/lvmlgt.sh \
+ /usr/bin/lvmlgt
+ dosym ../share/${P}/integration/quintuslgt.sh \
+ /usr/bin/quintuslgt
+ dosym ../share/${P}/integration/scryerlgt.sh \
+ /usr/bin/scryerlgt
+ dosym ../share/${P}/integration/sicstuslgt.sh \
+ /usr/bin/sicstuslgt
+ dosym ../share/${P}/integration/swilgt.sh \
+ /usr/bin/swilgt
+ dosym ../share/${P}/integration/taulgt.sh \
+ /usr/bin/taulgt
+ dosym ../share/${P}/integration/tplgt.sh \
+ /usr/bin/tplgt
+ dosym ../share/${P}/integration/xsblgt.sh \
+ /usr/bin/xsblgt
+ dosym ../share/${P}/integration/yaplgt.sh \
+ /usr/bin/yaplgt
+
+ dosym ../share/${P}/tools/lgtdoc/xml/lgt2xml.sh \
+ /usr/bin/lgt2xml
+ use xslt && dosym ../share/${P}/tools/lgtdoc/xml/lgt2html.sh \
+ /usr/bin/lgt2html
+ use xslt && dosym ../share/${P}/tools/lgtdoc/xml/lgt2txt.sh \
+ /usr/bin/lgt2txt
+ use xslt && dosym ../share/${P}/tools/lgtdoc/xml/lgt2md.sh \
+ /usr/bin/lgt2md
+ use fop && dosym ../share/${P}/tools/lgtdoc/xml/lgt2pdf.sh \
+ /usr/bin/lgt2pdf
+
+ # Install environment files
+ echo "LOGTALKHOME=/usr/share/${P}" > 99logtalk
+ doenvd 99logtalk
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+
+ ewarn "The following integration scripts are installed"
+ ewarn "for running logtalk with selected Prolog compilers:"
+ ewarn "B-Prolog: /usr/bin/bplgt"
+ ewarn "Ciao Prolog: /usr/bin/ciaolgt"
+ ewarn "CxProlog: /usr/bin/cxlgt"
+ ewarn "ECLiPSe: /usr/bin/eclipselgt"
+ ewarn "GNU Prolog: /usr/bin/gplgt"
+ ewarn "JIProlog: /usr/bin/jiplgt"
+ ewarn "LVM: /usr/bin/lvmlgt"
+ ewarn "Quintus Prolog: /usr/bin/quintuslgt"
+ ewarn "Scryer Prolog: /usr/bin/scryerlgt"
+ ewarn "SICStus Prolog: /usr/bin/sicstuslgt"
+ ewarn "SWI Prolog: /usr/bin/swilgt"
+ ewarn "Tau Prolog: /usr/bin/taulgt"
+ ewarn "Trealla Prolog: /usr/bin/tplgt"
+ ewarn "XSB: /usr/bin/xsblgt"
+ ewarn "YAP: /usr/bin/yaplgt"
+ ewarn ""
+
+ ewarn "The environment has been set up to make the above"
+ ewarn "integration scripts find files automatically for logtalk."
+ ewarn "Please run 'etc-update && source /etc/profile' to update"
+ ewarn "the environment now, otherwise it will be updated at next"
+ ewarn "login."
+}
diff --git a/dev-lang/logtalk/metadata.xml b/dev-lang/logtalk/metadata.xml
index 7adf5e18089a..6e970e775567 100644
--- a/dev-lang/logtalk/metadata.xml
+++ b/dev-lang/logtalk/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>prolog@gentoo.org</email>
diff --git a/dev-lang/lua/Manifest b/dev-lang/lua/Manifest
index bbafef164e16..8e8837da084c 100644
--- a/dev-lang/lua/Manifest
+++ b/dev-lang/lua/Manifest
@@ -1,7 +1,3 @@
-DIST lua-5.1.5.tar.gz 221213 BLAKE2B 915eb8e8c9d7e460eacf1d7a59309c60dfc0f5d9d3d76fbc9764e7cae85920b95096db1c27b69ac53378a145c29efde403e88166a1332a67150d9d3a897aba02 SHA512 0142fefcbd13afcd9b201403592aa60620011cc8e8559d4d2db2f92739d18186860989f48caa45830ff4f99bfc7483287fd3ff3a16d4dec928e2767ce4d542a9
-DIST lua-5.2.2-tests.tar.gz 76629 BLAKE2B 323eaae02ee61cfde2535d606ed704d964461c32627cb3ad4097afdc95a16a0921b9b05677c5b9b26cbff0d7d8270045e7df32a2cea0fd99a82e6aa613a0bdae SHA512 699d5703dd1d03312f1e947ca4c68d8808bb226ae01337202c2bfb3d854a9b7d9ef9746630afd1f67e9ffe2868907ce3d600a6f5324a2c798540c5373a24aac8
-DIST lua-5.2.4.tar.gz 252651 BLAKE2B 6f20308d8413438f8446040e8de16274837cb55e626b98a0ae8cfe279dc8610fa2e032a2ce53ef3acda4b96a7198123cbc18eff16775f952e6dc0355fdf331b0 SHA512 cd77148aba4b707b6c159758b5e8444e04f968092eb98f6b4c405b2fb647e709370d5a8dcf604176101d3407e196a7433b5dcdce4fe9605c76191d3649d61a8c
-DIST lua-5.3.4-tests.tar.gz 103438 BLAKE2B ac82708022e7729039111c3df4fe24302c8d0efb224afb4828871ac085a3d64c41d674a6f9369035de01ed1f7f75a3d2ce16917f37e774e923216aac0be03e09 SHA512 79575d100a2efabc8243f55b55d912443e09ef7e8b0219cb93541d85c2ba802fb9538015e1228703f09ca57bdb28a640a8f1fa0735716ba1e4bca2179c712dfb
-DIST lua-5.3.6.tar.gz 303770 BLAKE2B 07c37c56f43095a4f6ca8eb8b3adf19afd53107c02b62b2bcb3619565cb2100d5f823493eef93092d5e312b30fc28885a6d9e8f0ba5a23b5bed86dc4515a5d61 SHA512 ccc380d5e114d54504de0bfb0321ca25ec325d6ff1bfee44b11870b660762d1a9bf120490c027a0088128b58bb6b5271bbc648400cab84d2dc22b512c4841681
-DIST lua-5.4.2-tests.tar.gz 128901 BLAKE2B 10e4f0e8760f9cbd4761fa26665008ae7412539f79a6a7687029808f08f0ae4a24721e787e2e87e5080c16e9dcce8577a7a39ddc6d3e483a3cfe11756139594e SHA512 1516c59deca211c38444bbf97b18e988e939209b03915d3691d756eeed31b52e8d3a1f05b71ac0b561965274c7b6f3afc4244cd2e9069995696e737e2d9dd40b
-DIST lua-5.4.2.tar.gz 353472 BLAKE2B 7e0e642684df635ed1c48db45989e86a2638024e30a170addf700b0c7d32276f1eaef80898539c671039c20cb0bed4861b12c58f4b8211653a17e89bad278d87 SHA512 9454a6ffd973598f2f4a2399834c31c4d5090bd12e716776e3189aa57760319d114ee64a8338bbc2ef5e08150bf0adc2ad94a1b2677f38538a43359969d4d920
+DIST lua-5.1.5.tar.xz 397416 BLAKE2B ef3880d78be1def383a9db6753b7aec4160f6fa8719529c2ea6266015771a23a1be81424520de10bb087a86081f1ec48c58c36eb8b24bff53adb6bd8d791e31b SHA512 bd827cb2e63cd71d15d846eb29c8745bf869e7b70e12c565ce173623d1fcd29dabf4d33a99c48f294151bb580d830c112cf178e2d80a5a5c36acc7b3bfcd7d24
+DIST lua-5.3.6.tar.xz 541220 BLAKE2B c356cec06b14cdcbb29e382c951491432a3189618f9fd8c8832bdc8c831640fbcb9e212db05b61a577633c5fe9831e75a158cb97720c1e51cab27544526c9e24 SHA512 9a632a90806fa71398d70be7d38769065c1258fd94709cef72236753b42131b8d30da2a5dd28c74211ef8d04b0c30f52d0c593d49c2e8686568c8896b69577d7
+DIST lua-5.4.6.tar.xz 608376 BLAKE2B bec47685a24be429fa930ac02e6930300ad77105c56d970d3f1a9a6241c23da5ea77b863e9eca36b6c20e1ef1dc90f3635afe9b09dc4221f1e5dd72ce951df38 SHA512 8e7f6bd9d7fdf9327134f7eb01a78df87141989ea0d95f331eb0e71acdbf7c7b7d908da95e16cd91b3f9bad1b496e3b4db2380a851557f29cdc53f4f5255cda5
diff --git a/dev-lang/lua/files/5.1.4/01_all_boolean_expression.upstream.patch b/dev-lang/lua/files/5.1.4/01_all_boolean_expression.upstream.patch
deleted file mode 100644
index f04eb85075a2..000000000000
--- a/dev-lang/lua/files/5.1.4/01_all_boolean_expression.upstream.patch
+++ /dev/null
@@ -1,48 +0,0 @@
---- lua-5.1.4.orig/src/lcode.c 2007/12/28 15:32:23 2.25.1.3
-+++ lua-5.1.4/src/lcode.c 2009/06/15 14:07:34
-@@ -544,15 +544,18 @@
- pc = NO_JUMP; /* always true; do nothing */
- break;
- }
-- case VFALSE: {
-- pc = luaK_jump(fs); /* always jump */
-- break;
-- }
- case VJMP: {
- invertjump(fs, e);
- pc = e->u.s.info;
- break;
- }
-+ case VFALSE: {
-+ if (!hasjumps(e)) {
-+ pc = luaK_jump(fs); /* always jump */
-+ break;
-+ }
-+ /* else go through */
-+ }
- default: {
- pc = jumponcond(fs, e, 0);
- break;
-@@ -572,14 +575,17 @@
- pc = NO_JUMP; /* always false; do nothing */
- break;
- }
-- case VTRUE: {
-- pc = luaK_jump(fs); /* always jump */
-- break;
-- }
- case VJMP: {
- pc = e->u.s.info;
- break;
- }
-+ case VTRUE: {
-+ if (!hasjumps(e)) {
-+ pc = luaK_jump(fs); /* always jump */
-+ break;
-+ }
-+ /* else go through */
-+ }
- default: {
- pc = jumponcond(fs, e, 1);
- break;
-
diff --git a/dev-lang/lua/files/5.1.4/02_all_table.upstream.patch b/dev-lang/lua/files/5.1.4/02_all_table.upstream.patch
deleted file mode 100644
index 9ffc1bb28843..000000000000
--- a/dev-lang/lua/files/5.1.4/02_all_table.upstream.patch
+++ /dev/null
@@ -1,22 +0,0 @@
---- lua-5.1.4.orig/src/lvm.c 2007/12/28 15:32:23 2.63.1.3
-+++ lua-5.1.4/src/lvm.c 2009/07/01 20:36:59
-@@ -133,6 +133,7 @@
-
- void luaV_settable (lua_State *L, const TValue *t, TValue *key, StkId val) {
- int loop;
-+ TValue temp;
- for (loop = 0; loop < MAXTAGLOOP; loop++) {
- const TValue *tm;
- if (ttistable(t)) { /* `t' is a table? */
-@@ -152,7 +153,9 @@
- callTM(L, tm, t, key, val);
- return;
- }
-- t = tm; /* else repeat with `tm' */
-+ /* else repeat with `tm' */
-+ setobj(L, &temp, tm); /* avoid pointing inside table (may rehash) */
-+ t = &temp;
- }
- luaG_runerror(L, "loop in settable");
- }
-
diff --git a/dev-lang/lua/files/5.1.4/03_all_debug_getfenv.upstream.patch b/dev-lang/lua/files/5.1.4/03_all_debug_getfenv.upstream.patch
deleted file mode 100644
index fce4d47db8f4..000000000000
--- a/dev-lang/lua/files/5.1.4/03_all_debug_getfenv.upstream.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- lua-5.1.4.orig/src/ldblib.c 2007/12/28 15:32:23 2.63.1.3
-+++ lua-5.1.4/src/ldblib.c 2010/02/23 12:36:59
-@@ -45,6 +45,7 @@
-
-
- static int db_getfenv (lua_State *L) {
-+ luaL_checkany(L, 1);
- lua_getfenv(L, 1);
- return 1;
- }
diff --git a/dev-lang/lua/files/5.1.4/04_all_gc_performance.upstream.patch b/dev-lang/lua/files/5.1.4/04_all_gc_performance.upstream.patch
deleted file mode 100644
index 3c78525b0b2f..000000000000
--- a/dev-lang/lua/files/5.1.4/04_all_gc_performance.upstream.patch
+++ /dev/null
@@ -1,14 +0,0 @@
---- lua-5.1.4.orig/src/llex.c 2007/12/28 15:32:23 2.63.1.3
-+++ lua-5.1.4/src/llex.c 2010/02/23 12:36:59
-@@ -118,8 +118,10 @@
- lua_State *L = ls->L;
- TString *ts = luaS_newlstr(L, str, l);
- TValue *o = luaH_setstr(L, ls->fs->h, ts); /* entry for `str' */
-- if (ttisnil(o))
-+ if (ttisnil(o)) {
- setbvalue(o, 1); /* make sure `str' will not be collected */
-+ luaC_checkGC(L);
-+ }
- return ts;
- }
-
diff --git a/dev-lang/lua/files/5.1.4/05_all_string_format.upstream.patch b/dev-lang/lua/files/5.1.4/05_all_string_format.upstream.patch
deleted file mode 100644
index 5127507df9f6..000000000000
--- a/dev-lang/lua/files/5.1.4/05_all_string_format.upstream.patch
+++ /dev/null
@@ -1,21 +0,0 @@
---- lua-5.1.4.orig/src/lstrlib.c 2008/07/11 17:27:21 1.132.1.4
-+++ lua-5.1.4/src/lstrlib.c 2010/05/14 15:12:53
-@@ -754,6 +754,7 @@
-
-
- static int str_format (lua_State *L) {
-+ int top = lua_gettop(L);
- int arg = 1;
- size_t sfl;
- const char *strfrmt = luaL_checklstring(L, arg, &sfl);
-@@ -768,7 +769,8 @@
- else { /* format item */
- char form[MAX_FORMAT]; /* to store the format (`%...') */
- char buff[MAX_ITEM]; /* to store the formatted item */
-- arg++;
-+ if (++arg > top)
-+ luaL_argerror(L, arg, "no value");
- strfrmt = scanformat(L, strfrmt, form);
- switch (*strfrmt++) {
- case 'c': {
-
diff --git a/dev-lang/lua/files/5.1.4/06_all_io_read.upstream.patch b/dev-lang/lua/files/5.1.4/06_all_io_read.upstream.patch
deleted file mode 100644
index 94634c591404..000000000000
--- a/dev-lang/lua/files/5.1.4/06_all_io_read.upstream.patch
+++ /dev/null
@@ -1,15 +0,0 @@
---- lua-5.1.4.orig/src/liolib.c 2008/01/18 17:47:43 2.73.1.3
-+++ lua-5.1.4/src/liolib.c 2010/05/14 15:29:29
-@@ -276,7 +276,10 @@
- lua_pushnumber(L, d);
- return 1;
- }
-- else return 0; /* read fails */
-+ else {
-+ lua_pushnil(L); /* "result" to be removed */
-+ return 0; /* read fails */
-+ }
- }
-
-
-
diff --git a/dev-lang/lua/files/5.1.4/07_all_boolean_expression.upstream.patch b/dev-lang/lua/files/5.1.4/07_all_boolean_expression.upstream.patch
deleted file mode 100644
index 956e966817d4..000000000000
--- a/dev-lang/lua/files/5.1.4/07_all_boolean_expression.upstream.patch
+++ /dev/null
@@ -1,30 +0,0 @@
---- lua-5.1.4.orig/src/lcode.c 2007/12/28 15:32:23 2.25.1.3
-+++ lua-5.1.4/src/lcode.c 2009/06/15 14:07:34
-@@ -549,13 +549,6 @@
- pc = e->u.s.info;
- break;
- }
-- case VFALSE: {
-- if (!hasjumps(e)) {
-- pc = luaK_jump(fs); /* always jump */
-- break;
-- }
-- /* else go through */
-- }
- default: {
- pc = jumponcond(fs, e, 0);
- break;
-@@ -579,13 +572,6 @@
- pc = e->u.s.info;
- break;
- }
-- case VTRUE: {
-- if (!hasjumps(e)) {
-- pc = luaK_jump(fs); /* always jump */
-- break;
-- }
-- /* else go through */
-- }
- default: {
- pc = jumponcond(fs, e, 1);
- break;
diff --git a/dev-lang/lua/files/5.1.4/08_all_metatable.upstream.patch b/dev-lang/lua/files/5.1.4/08_all_metatable.upstream.patch
deleted file mode 100644
index b74bafbebe41..000000000000
--- a/dev-lang/lua/files/5.1.4/08_all_metatable.upstream.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- lua-5.1.4.orig/src/lvm.c 2009/07/01 21:10:33 2.63.1.4
-+++ lua-5.1.4/src/lvm.c 2011/08/17 20:36:28
-@@ -142,6 +142,7 @@
- if (!ttisnil(oldval) || /* result is no nil? */
- (tm = fasttm(L, h->metatable, TM_NEWINDEX)) == NULL) { /* or no TM? */
- setobj2t(L, oldval, val);
-+ h->flags = 0;
- luaC_barriert(L, h, val);
- return;
- }
diff --git a/dev-lang/lua/files/5.1.4/09_all_prototype_collection.upstream.patch b/dev-lang/lua/files/5.1.4/09_all_prototype_collection.upstream.patch
deleted file mode 100644
index 000f78ccc7da..000000000000
--- a/dev-lang/lua/files/5.1.4/09_all_prototype_collection.upstream.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- lua-5.1.4.orig/src/lparser.c 2007/12/28 15:32:23 2.42.1.3
-+++ lua-5.1.4/src/lparser.c 2011/10/17 13:10:43
-@@ -374,9 +374,9 @@
- lua_assert(luaG_checkcode(f));
- lua_assert(fs->bl == NULL);
- ls->fs = fs->prev;
-- L->top -= 2; /* remove table and prototype from the stack */
- /* last token read was anchored in defunct function; must reanchor it */
- if (fs) anchor_token(ls);
-+ L->top -= 2; /* remove table and prototype from the stack */
- }
-
-
diff --git a/dev-lang/lua/files/5.1/0001-extern_C.patch b/dev-lang/lua/files/5.1/0001-extern_C.patch
new file mode 100644
index 000000000000..6e4f711f0ecd
--- /dev/null
+++ b/dev-lang/lua/files/5.1/0001-extern_C.patch
@@ -0,0 +1,20 @@
+https://salsa.debian.org/lua-team/lua5.1/-/blob/master/debian/patches/0003-extern_C.patch
+
+From: "John V. Belmonte" <jbelmonte@debian.org>
+Date: Tue, 26 Aug 2014 16:20:49 +0200
+Subject: extern_C
+
+--- a/src/luaconf.h.in
++++ b/src/luaconf.h.in
+@@ -168,7 +168,11 @@
+
+ #else
+
++#ifdef __cplusplus
++#define LUA_API extern "C"
++#else
+ #define LUA_API extern
++#endif
+
+ #endif
+
diff --git a/dev-lang/lua/files/5.1/0002-Fix-stack-overflow-in-vararg-functions.patch b/dev-lang/lua/files/5.1/0002-Fix-stack-overflow-in-vararg-functions.patch
new file mode 100644
index 000000000000..2bb5657b4d45
--- /dev/null
+++ b/dev-lang/lua/files/5.1/0002-Fix-stack-overflow-in-vararg-functions.patch
@@ -0,0 +1,17 @@
+https://salsa.debian.org/lua-team/lua5.1/-/blob/master/debian/patches/0004-Fix-stack-overflow-in-vararg-functions.patch
+
+From: Enrico Tassi <gareuselesinge@debian.org>
+Date: Tue, 26 Aug 2014 16:20:55 +0200
+Subject: Fix stack overflow in vararg functions (CVE-2014-5461)
+
+--- a/src/ldo.c
++++ b/src/ldo.c
+@@ -274,7 +274,7 @@ int luaD_precall (lua_State *L, StkId func, int nresults) {
+ CallInfo *ci;
+ StkId st, base;
+ Proto *p = cl->p;
+- luaD_checkstack(L, p->maxstacksize);
++ luaD_checkstack(L, p->maxstacksize + p->numparams);
+ func = restorestack(L, funcr);
+ if (!p->is_vararg) { /* no varargs? */
+ base = func + 1;
diff --git a/dev-lang/lua/files/5.2.0/01_all_memory_hoarding.upstream.patch b/dev-lang/lua/files/5.2.0/01_all_memory_hoarding.upstream.patch
deleted file mode 100644
index 9fda24ad6609..000000000000
--- a/dev-lang/lua/files/5.2.0/01_all_memory_hoarding.upstream.patch
+++ /dev/null
@@ -1,49 +0,0 @@
---- lua-5.2.0.orig/src/ldblib.c 2007/12/28 15:32:23 2.25.1.3
-+++ lua-5.2.0/src/ldblib.c 2009/06/15 14:07:34
-@@ -253,14 +253,15 @@
- }
-
-
--#define gethooktable(L) luaL_getsubtable(L, LUA_REGISTRYINDEX, HOOKKEY);
-+#define gethooktable(L) luaL_getsubtable(L, LUA_REGISTRYINDEX, HOOKKEY)
-
-
- static void hookf (lua_State *L, lua_Debug *ar) {
- static const char *const hooknames[] =
- {"call", "return", "line", "count", "tail call"};
- gethooktable(L);
-- lua_rawgetp(L, -1, L);
-+ lua_pushthread(L);
-+ lua_rawget(L, -2);
- if (lua_isfunction(L, -1)) {
- lua_pushstring(L, hooknames[(int)ar->event]);
- if (ar->currentline >= 0)
-@@ -306,10 +307,15 @@
- count = luaL_optint(L, arg+3, 0);
- func = hookf; mask = makemask(smask, count);
- }
-- gethooktable(L);
-+ if (gethooktable(L) == 0) { /* creating hook table? */
-+ lua_pushstring(L, "k");
-+ lua_setfield(L, -2, "__mode"); /** hooktable.__mode = "k" */
-+ lua_pushvalue(L, -1);
-+ lua_setmetatable(L, -2); /* setmetatable(hooktable) = hooktable */
-+ }
-+ lua_pushthread(L1); lua_xmove(L1, L, 1);
- lua_pushvalue(L, arg+1);
-- lua_rawsetp(L, -2, L1); /* set new hook */
-- lua_pop(L, 1); /* remove hook table */
-+ lua_rawset(L, -3); /* set new hook */
- lua_sethook(L1, func, mask, count); /* set hooks */
- return 0;
- }
-@@ -325,7 +331,8 @@
- lua_pushliteral(L, "external hook");
- else {
- gethooktable(L);
-- lua_rawgetp(L, -1, L1); /* get hook */
-+ lua_pushthread(L1); lua_xmove(L1, L, 1);
-+ lua_rawget(L, -2); /* get hook */
- lua_remove(L, -2); /* remove hook table */
- }
- lua_pushstring(L, unmakemask(mask, buff));
diff --git a/dev-lang/lua/files/5.2.0/02_all_hex_number_handling.upstream.patch b/dev-lang/lua/files/5.2.0/02_all_hex_number_handling.upstream.patch
deleted file mode 100644
index 26519e378e68..000000000000
--- a/dev-lang/lua/files/5.2.0/02_all_hex_number_handling.upstream.patch
+++ /dev/null
@@ -1,26 +0,0 @@
---- lua-5.2.0.orig/src/llex.c 2007/12/28 15:32:23 2.25.1.3
-+++ lua-5.2.0/src/llex.c 2009/06/15 14:07:34
-@@ -223,12 +223,19 @@
-
- /* LUA_NUMBER */
- static void read_numeral (LexState *ls, SemInfo *seminfo) {
-+ const char *expo = "Ee";
-+ int first = ls->current;
- lua_assert(lisdigit(ls->current));
-- do {
-- save_and_next(ls);
-- if (check_next(ls, "EePp")) /* exponent part? */
-+ save_and_next(ls);
-+ if (first == '0' && check_next(ls, "Xx")) /* hexadecimal? */
-+ expo = "Pp";
-+ for (;;) {
-+ if (check_next(ls, expo)) /* exponent part? */
- check_next(ls, "+-"); /* optional exponent sign */
-- } while (lislalnum(ls->current) || ls->current == '.');
-+ if (lisxdigit(ls->current) || ls->current == '.')
-+ save_and_next(ls);
-+ else break;
-+ }
- save(ls, '\0');
- buffreplace(ls, '.', ls->decpoint); /* follow locale for decimal point */
- if (!buff2d(ls->buff, &seminfo->r)) /* format error? */
diff --git a/dev-lang/lua/files/configure.in b/dev-lang/lua/files/configure.in
deleted file mode 100644
index e4ba8164bbb5..000000000000
--- a/dev-lang/lua/files/configure.in
+++ /dev/null
@@ -1,5 +0,0 @@
-top_buildir=.
-
-AC_INIT(src/luaconf.h)
-AC_PROG_LIBTOOL
-AC_OUTPUT()
diff --git a/dev-lang/lua/files/lua-5.1-make-r1.patch b/dev-lang/lua/files/lua-5.1-make-r1.patch
deleted file mode 100644
index 8eecbdd40268..000000000000
--- a/dev-lang/lua/files/lua-5.1-make-r1.patch
+++ /dev/null
@@ -1,66 +0,0 @@
---- lua-5.1.1.orig/Makefile 2006-06-02 12:53:38.000000000 +0200
-+++ lua-5.1.1/Makefile 2006-11-16 02:16:53.000000000 +0100
-@@ -127,3 +127,21 @@
- .PHONY: all $(PLATS) clean test install local none dummy echo pecho lecho newer
-
- # (end of Makefile)
-+
-+# Use libtool for binary installs, etc.
-+
-+export V
-+export LIBTOOL = libtool --quiet --tag=CC
-+# See libtool manual about how to set this
-+
-+gentoo_clean:
-+ cd src; $(MAKE) $@
-+
-+gentoo_test: gentoo_linux
-+ test/lua.static test/hello.lua
-+
-+gentoo_install:
-+ mkdir -p $(INSTALL_BIN) $(INSTALL_INC) $(INSTALL_LIB)
-+ cd src; $(LIBTOOL) --mode=install $(INSTALL_EXEC) lua luac $(INSTALL_BIN)
-+ cd src; $(INSTALL_DATA) $(TO_INC) $(INSTALL_INC)
-+ cd src; $(LIBTOOL) --mode=install $(INSTALL_DATA) liblua.la $(INSTALL_LIB)
---- lua-5.1.1.orig/src/Makefile 2006-03-22 01:41:49.000000000 +0100
-+++ lua-5.1.1/src/Makefile 2006-11-16 02:10:27.000000000 +0100
-@@ -54,1 +54,1 @@
--$(LUA_T): $(LUA_O) $(LUA_A)
-+origin$(LUA_T): $(LUA_O) $(LUA_A)
-@@ -57,1 +57,1 @@
--$(LUAC_T): $(LUAC_O) $(LUA_A)
-+origin$(LUAC_T): $(LUAC_O) $(LUA_A)
-@@ -176,3 +176,33 @@
- ltm.h lzio.h lmem.h lopcodes.h lundump.h
-
- # (end of Makefile)
-+
-+export LIBTOOL = libtool --quiet --tag=CC
-+export LIB_VERSION = 6:1:1
-+
-+# The following rules use libtool for compiling and linking in order to
-+# provide shared library support.
-+
-+LIB_NAME = liblua.la
-+LIB_OBJS = $(CORE_O:.o=.lo) $(LIB_O:.o=.lo)
-+
-+%.lo %.o: %.c
-+ $(LIBTOOL) --mode=compile $(CC) -c $(CPPFLAGS) $(CFLAGS) -o $@ $<
-+
-+$(LIB_NAME): $(LIB_OBJS)
-+ $(LIBTOOL) --mode=link $(CC) -version-info $(LIB_VERSION) \
-+ -rpath $(RPATH) $(LDFLAGS) -o $(LIB_NAME) $(LIB_OBJS) $(LIB_LIBS)
-+
-+$(LUA_T): $(LUA_O:.o=.lo) $(LIB_NAME)
-+ $(LIBTOOL) --mode=link $(CC) -export-dynamic $(LDFLAGS) -o $@ $(LUA_O:.o=.lo) $(LIB_NAME) $(LUA_LIBS)
-+
-+lua_test: $(LUA_O:.o=.lo) $(LIB_NAME)
-+ $(LIBTOOL) --mode=link $(CC) -static -export-dynamic $(LDFLAGS) -o $@ $(LUA_O:.o=.lo) $(LIB_NAME) $(LUA_LIBS)
-+
-+$(LUAC_T): $(LUAC_O:.o=.lo) $(LIB_NAME)
-+ $(LIBTOOL) --mode=link $(CC) -static $(LDFLAGS) -o $@ $(LUAC_O:.o=.lo) $(LIB_NAME)
-+
-+gentoo_clean:
-+ $(LIBTOOL) --mode=clean $(RM) $(ALL_O:.o=.lo) $(LIB_NAME) lua luac
-+
-+gentoo_all: $(LIB_NAME) $(LUA_T) lua_test $(LUAC_T)
diff --git a/dev-lang/lua/files/lua-5.1-make-r2.patch b/dev-lang/lua/files/lua-5.1-make-r2.patch
deleted file mode 100644
index 2905a62d0f9e..000000000000
--- a/dev-lang/lua/files/lua-5.1-make-r2.patch
+++ /dev/null
@@ -1,97 +0,0 @@
-diff -ru lua-5.1.5.orig/Makefile lua-5.1.5/Makefile
---- lua-5.1.5.orig/Makefile 2014-04-15 17:43:34.845435031 +0200
-+++ lua-5.1.5/Makefile 2014-04-15 19:05:08.669304987 +0200
-@@ -11,7 +11,7 @@
- # so take care if INSTALL_TOP is not an absolute path.
- INSTALL_TOP= /usr/local
- INSTALL_BIN= $(INSTALL_TOP)/bin
--INSTALL_INC= $(INSTALL_TOP)/include
-+INSTALL_INC= $(INSTALL_TOP)/include/lua$V
- INSTALL_LIB= $(INSTALL_TOP)/lib
- INSTALL_MAN= $(INSTALL_TOP)/man/man1
- #
-@@ -126,3 +126,21 @@
- .PHONY: all $(PLATS) clean test install local none dummy echo pecho lecho
-
- # (end of Makefile)
-+
-+# Use libtool for binary installs, etc.
-+
-+export V
-+export LIBTOOL = libtool --quiet --tag=CC
-+# See libtool manual about how to set this
-+
-+gentoo_clean:
-+ cd src; $(MAKE) $@
-+
-+gentoo_test: gentoo_linux
-+ test/lua.static test/hello.lua
-+
-+gentoo_install:
-+ mkdir -p $(INSTALL_BIN) $(INSTALL_INC) $(INSTALL_LIB)
-+ cd src; $(LIBTOOL) --mode=install $(INSTALL_EXEC) lua$V luac$V $(INSTALL_BIN)
-+ cd src; $(INSTALL_DATA) $(TO_INC) $(INSTALL_INC)
-+ cd src; $(LIBTOOL) --mode=install $(INSTALL_DATA) liblua$V.la $(INSTALL_LIB)
-diff -ru lua-5.1.5.orig/src/Makefile lua-5.1.5/src/Makefile
---- lua-5.1.5.orig/src/Makefile 2014-04-15 17:43:34.844435031 +0200
-+++ lua-5.1.5/src/Makefile 2014-04-15 18:07:21.427397122 +0200
-@@ -29,10 +29,10 @@
- LIB_O= lauxlib.o lbaselib.o ldblib.o liolib.o lmathlib.o loslib.o ltablib.o \
- lstrlib.o loadlib.o linit.o
-
--LUA_T= lua
-+LUA_T= lua$V
- LUA_O= lua.o
-
--LUAC_T= luac
-+LUAC_T= luac$V
- LUAC_O= luac.o print.o
-
- ALL_O= $(CORE_O) $(LIB_O) $(LUA_O) $(LUAC_O)
-@@ -51,10 +51,10 @@
- $(AR) $@ $(CORE_O) $(LIB_O) # DLL needs all object files
- $(RANLIB) $@
-
--$(LUA_T): $(LUA_O) $(LUA_A)
-+origin$(LUA_T): $(LUA_O) $(LUA_A)
- $(CC) -o $@ $(MYLDFLAGS) $(LUA_O) $(LUA_A) $(LIBS)
-
--$(LUAC_T): $(LUAC_O) $(LUA_A)
-+origin$(LUAC_T): $(LUAC_O) $(LUA_A)
- $(CC) -o $@ $(MYLDFLAGS) $(LUAC_O) $(LUA_A) $(LIBS)
-
- clean:
-@@ -180,3 +180,33 @@
- ltm.h lzio.h lmem.h lopcodes.h lundump.h
-
- # (end of Makefile)
-+
-+export LIBTOOL = libtool --tag=CC
-+export LIB_VERSION = 5:1:5
-+
-+# The following rules use libtool for compiling and linking in order to
-+# provide shared library support.
-+
-+LIB_NAME = liblua$V.la
-+LIB_OBJS = $(CORE_O:.o=.lo) $(LIB_O:.o=.lo)
-+
-+%.lo %.o: %.c
-+ $(LIBTOOL) --mode=compile $(CC) -c $(CPPFLAGS) $(CFLAGS) -o $@ $<
-+
-+$(LIB_NAME): $(LIB_OBJS)
-+ $(LIBTOOL) --mode=link $(CC) -version-info 0:0:0 \
-+ -rpath $(RPATH) $(LDFLAGS) -o $(LIB_NAME) $(LIB_OBJS) $(LIB_LIBS)
-+
-+$(LUA_T): $(LUA_O:.o=.lo) $(LIB_NAME)
-+ $(LIBTOOL) --mode=link $(CC) -export-dynamic $(LDFLAGS) -o $@ $(LUA_O:.o=.lo) $(LIB_NAME) $(LUA_LIBS)
-+
-+lua_test: $(LUA_O:.o=.lo) $(LIB_NAME)
-+ $(LIBTOOL) --mode=link $(CC) -static -export-dynamic $(LDFLAGS) -o $@ $(LUA_O:.o=.lo) $(LIB_NAME) $(LUA_LIBS)
-+
-+$(LUAC_T): $(LUAC_O:.o=.lo) $(LIB_NAME)
-+ $(LIBTOOL) --mode=link $(CC) -static $(LDFLAGS) -o $@ $(LUAC_O:.o=.lo) $(LIB_NAME)
-+
-+gentoo_clean:
-+ $(LIBTOOL) --mode=clean $(RM) $(ALL_O:.o=.lo) $(LIB_NAME) lua$V luac$V
-+
-+gentoo_all: $(LIB_NAME) $(LUA_T) lua_test $(LUAC_T)
diff --git a/dev-lang/lua/files/lua-5.1-make_static-r1.patch b/dev-lang/lua/files/lua-5.1-make_static-r1.patch
deleted file mode 100644
index e5fdc3a6bfa1..000000000000
--- a/dev-lang/lua/files/lua-5.1-make_static-r1.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -ru lua-5.1.1.orig/src/Makefile lua-5.1.1/src/Makefile
---- lua-5.1.1.orig/src/Makefile 2006-11-21 07:19:31 +0000
-+++ lua-5.1.1/src/Makefile 2006-11-21 07:19:52 +0000
-@@ -196,7 +196,7 @@
- -rpath $(RPATH) $(LDFLAGS) -o $(LIB_NAME) $(LIB_OBJS) $(LIB_LIBS)
-
- $(LUA_T): $(LUA_O:.o=.lo) $(LIB_NAME)
-- $(LIBTOOL) --mode=link $(CC) -export-dynamic $(LDFLAGS) -o $@ $(LUA_O:.o=.lo) $(LIB_NAME) $(LUA_LIBS)
-+ $(LIBTOOL) --mode=link $(CC) -static -export-dynamic $(LDFLAGS) -o $@ $(LUA_O:.o=.lo) $(LIB_NAME) $(LUA_LIBS)
-
- $(LUAC_T): $(LUAC_O:.o=.lo) $(LIB_NAME)
- $(LIBTOOL) --mode=link $(CC) -static -o $@ $(LUAC_O:.o=.lo) $(LIB_NAME)
diff --git a/dev-lang/lua/files/lua-5.1-module_paths.patch b/dev-lang/lua/files/lua-5.1-module_paths.patch
deleted file mode 100644
index 29ac4c3bf4bd..000000000000
--- a/dev-lang/lua/files/lua-5.1-module_paths.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-#! /bin/sh /usr/share/dpatch/dpatch-run
-## src_luaconf.h.dpatch by John V. Belmonte <jbelmonte@debian.org>
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Set Lua's default PATH and CPATH.
-
-@DPATCH@
-diff -urNad trunk~/src/luaconf.h trunk/src/luaconf.h
---- trunk~/src/luaconf.h 2006-02-10 12:44:06.000000000 -0500
-+++ trunk/src/luaconf.h 2006-02-17 21:32:55.000000000 -0500
-@@ -83,13 +83,17 @@
-
- #else
- #define LUA_ROOT "/usr/local/"
-+#define LUA_ROOT2 "/usr/"
- #define LUA_LDIR LUA_ROOT "share/lua/5.1/"
-+#define LUA_LDIR2 LUA_ROOT2 "share/lua/5.1/"
- #define LUA_CDIR LUA_ROOT "lib/lua/5.1/"
-+#define LUA_CDIR2 LUA_ROOT2 "lib/lua/5.1/"
- #define LUA_PATH_DEFAULT \
- "./?.lua;" LUA_LDIR"?.lua;" LUA_LDIR"?/init.lua;" \
-- LUA_CDIR"?.lua;" LUA_CDIR"?/init.lua"
-+ LUA_CDIR"?.lua;" LUA_CDIR"?/init.lua;" \
-+ LUA_LDIR2"?.lua;" LUA_LDIR2"?/init.lua"
- #define LUA_CPATH_DEFAULT \
-- "./?.so;" LUA_CDIR"?.so;" LUA_CDIR"loadall.so"
-+ "./?.so;" LUA_CDIR"?.so;" LUA_CDIR2"?.so;" LUA_CDIR"loadall.so"
- #endif
-
-
diff --git a/dev-lang/lua/files/lua-5.1-readline.patch b/dev-lang/lua/files/lua-5.1-readline.patch
deleted file mode 100644
index f144861efb6b..000000000000
--- a/dev-lang/lua/files/lua-5.1-readline.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- lua-5.1.1.orig/src/luaconf.h 2006-04-10 20:27:23.000000000 +0200
-+++ lua-5.1.1/src/luaconf.h 2006-11-15 14:53:07.000000000 +0100
-@@ -36,7 +36,6 @@
- #if defined(LUA_USE_LINUX)
- #define LUA_USE_POSIX
- #define LUA_USE_DLOPEN /* needs an extra library: -ldl */
--#define LUA_USE_READLINE /* needs some extra libraries */
- #endif
-
- #if defined(LUA_USE_MACOSX)
diff --git a/dev-lang/lua/files/lua-5.1.4-deprecated.patch b/dev-lang/lua/files/lua-5.1.4-deprecated.patch
deleted file mode 100644
index a88a991d053e..000000000000
--- a/dev-lang/lua/files/lua-5.1.4-deprecated.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-diff -rdu lua-5.1.3.orig/src/luaconf.h lua-5.1.3/src/luaconf.h
---- lua-5.1.3.orig/src/luaconf.h 2008-02-12 17:00:03.000000000 +0000
-+++ lua-5.1.3/src/luaconf.h 2008-02-12 17:07:55.000000000 +0000
-@@ -340,14 +340,14 @@
- ** CHANGE it to undefined as soon as your programs use only '...' to
- ** access vararg parameters (instead of the old 'arg' table).
- */
--#define LUA_COMPAT_VARARG
-+#undef LUA_COMPAT_VARARG
-
- /*
- @@ LUA_COMPAT_MOD controls compatibility with old math.mod function.
- ** CHANGE it to undefined as soon as your programs use 'math.fmod' or
- ** the new '%' operator instead of 'math.mod'.
- */
--#define LUA_COMPAT_MOD
-+#undef LUA_COMPAT_MOD
-
- /*
- @@ LUA_COMPAT_LSTR controls compatibility with old long string nesting
-@@ -355,14 +355,14 @@
- ** CHANGE it to 2 if you want the old behaviour, or undefine it to turn
- ** off the advisory error when nesting [[...]].
- */
--#define LUA_COMPAT_LSTR 1
-+#undef LUA_COMPAT_LSTR
-
- /*
- @@ LUA_COMPAT_GFIND controls compatibility with old 'string.gfind' name.
- ** CHANGE it to undefined as soon as you rename 'string.gfind' to
- ** 'string.gmatch'.
- */
--#define LUA_COMPAT_GFIND
-+#undef LUA_COMPAT_GFIND
-
- /*
- @@ LUA_COMPAT_OPENLIB controls compatibility with old 'luaL_openlib'
-@@ -370,7 +370,7 @@
- ** CHANGE it to undefined as soon as you replace to 'luaL_register'
- ** your uses of 'luaL_openlib'
- */
--#define LUA_COMPAT_OPENLIB
-+#undef LUA_COMPAT_OPENLIB
-
-
-
diff --git a/dev-lang/lua/files/lua-5.1.5-disable-deprecated.patch b/dev-lang/lua/files/lua-5.1.5-disable-deprecated.patch
deleted file mode 100644
index d1d7fb10115f..000000000000
--- a/dev-lang/lua/files/lua-5.1.5-disable-deprecated.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-diff -rdu old/src/luaconf.h new/src/luaconf.h
---- old/src/luaconf.h 2008-02-12 17:00:03.000000000 +0000
-+++ new/src/luaconf.h 2008-02-12 17:07:55.000000000 +0000
-@@ -340,14 +340,14 @@
- ** CHANGE it to undefined as soon as your programs use only '...' to
- ** access vararg parameters (instead of the old 'arg' table).
- */
--#define LUA_COMPAT_VARARG
-+#undef LUA_COMPAT_VARARG
-
- /*
- @@ LUA_COMPAT_MOD controls compatibility with old math.mod function.
- ** CHANGE it to undefined as soon as your programs use 'math.fmod' or
- ** the new '%' operator instead of 'math.mod'.
- */
--#define LUA_COMPAT_MOD
-+#undef LUA_COMPAT_MOD
-
- /*
- @@ LUA_COMPAT_LSTR controls compatibility with old long string nesting
-@@ -355,14 +355,14 @@
- ** CHANGE it to 2 if you want the old behaviour, or undefine it to turn
- ** off the advisory error when nesting [[...]].
- */
--#define LUA_COMPAT_LSTR 1
-+#undef LUA_COMPAT_LSTR
-
- /*
- @@ LUA_COMPAT_GFIND controls compatibility with old 'string.gfind' name.
- ** CHANGE it to undefined as soon as you rename 'string.gfind' to
- ** 'string.gmatch'.
- */
--#define LUA_COMPAT_GFIND
-+#undef LUA_COMPAT_GFIND
-
- /*
- @@ LUA_COMPAT_OPENLIB controls compatibility with old 'luaL_openlib'
-@@ -370,7 +370,7 @@
- ** CHANGE it to undefined as soon as you replace to 'luaL_register'
- ** your uses of 'luaL_openlib'
- */
--#define LUA_COMPAT_OPENLIB
-+#undef LUA_COMPAT_OPENLIB
-
-
-
-diff -rdu old/test/sieve.lua new/test/sieve.lua
-Rename deprecated functions in test scripts
---- old/test/sieve.lua~ 2002-10-31 03:52:58.000000000 +0100
-+++ new/test/sieve.lua 2008-02-20 17:44:22.468281121 +0100
-@@ -14,7 +14,7 @@
- while 1 do
- local n = g()
- if n == nil then return end
-- if math.mod(n, p) ~= 0 then coroutine.yield(n) end
-+ if math.fmod(n, p) ~= 0 then coroutine.yield(n) end
- end
- end)
- end
diff --git a/dev-lang/lua/files/lua-5.1.5-fix_vararg_calls.patch b/dev-lang/lua/files/lua-5.1.5-fix_vararg_calls.patch
deleted file mode 100644
index cec818203360..000000000000
--- a/dev-lang/lua/files/lua-5.1.5-fix_vararg_calls.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -uNr lua-5.1.5.orig/src/ldo.c lua-5.1.5/src/ldo.c
---- lua-5.1.5.orig/src/ldo.c 2016-11-28 20:04:13.177047928 +0100
-+++ lua-5.1.5/src/ldo.c 2016-11-28 20:07:15.170432525 +0100
-@@ -274,7 +274,7 @@
- CallInfo *ci;
- StkId st, base;
- Proto *p = cl->p;
-- luaD_checkstack(L, p->maxstacksize);
-+ luaD_checkstack(L, p->maxstacksize + p->numparams);
- func = restorestack(L, funcr);
- if (!p->is_vararg) { /* no varargs? */
- base = func + 1;
diff --git a/dev-lang/lua/files/lua-5.1.5-gentoo-build.patch b/dev-lang/lua/files/lua-5.1.5-gentoo-build.patch
deleted file mode 100644
index 62c4ed33648d..000000000000
--- a/dev-lang/lua/files/lua-5.1.5-gentoo-build.patch
+++ /dev/null
@@ -1,118 +0,0 @@
---- old/Makefile 2012-02-10 10:50:23.000000000 +0100
-+++ new/Makefile 2019-07-12 12:00:30.807725876 +0200
-@@ -22,7 +22,8 @@
-
- # How to install. If your install program does not support "-p", then you
- # may have to run ranlib on the installed liblua.a (do "make ranlib").
--INSTALL= install -p
-+INSTALL?= install -p
-+INSTALL_LINK= ln -s
- INSTALL_EXEC= $(INSTALL) -m 0755
- INSTALL_DATA= $(INSTALL) -m 0644
- #
-@@ -33,7 +34,7 @@
-
- # Utilities.
- MKDIR= mkdir -p
--RANLIB= ranlib
-+RANLIB?= ranlib
-
- # == END OF USER SETTINGS. NO NEED TO CHANGE ANYTHING BELOW THIS LINE =========
-
-@@ -47,13 +48,17 @@
- TO_MAN= lua.1 luac.1
-
- # Lua version and release.
-+M= 5
- V= 5.1
- R= 5.1.5
-
-+# Export to sub-make
-+export M R
-+
- all: $(PLAT)
-
- $(PLATS) clean:
-- cd src && $(MAKE) $@
-+ cd src && $(MKDIR) .libs && $(MAKE) $@
-
- test: dummy
- src/lua test/hello.lua
-@@ -61,6 +66,8 @@
- install: dummy
- cd src && $(MKDIR) $(INSTALL_BIN) $(INSTALL_INC) $(INSTALL_LIB) $(INSTALL_MAN) $(INSTALL_LMOD) $(INSTALL_CMOD)
- cd src && $(INSTALL_EXEC) $(TO_BIN) $(INSTALL_BIN)
-+ cd src && $(INSTALL_EXEC) $(TO_LIB:.a=.so.$(R)) $(INSTALL_LIB)
-+ cd src && $(INSTALL_LINK) $(TO_LIB:.a=.so.$(R)) $(INSTALL_LIB)/$(TO_LIB:.a=.so.$(M))
- cd src && $(INSTALL_DATA) $(TO_INC) $(INSTALL_INC)
- cd src && $(INSTALL_DATA) $(TO_LIB) $(INSTALL_LIB)
- cd doc && $(INSTALL_DATA) $(TO_MAN) $(INSTALL_MAN)
---- old/src/Makefile 2012-02-13 21:41:22.000000000 +0100
-+++ new/src/Makefile 2019-07-12 11:31:02.945290602 +0200
-@@ -7,12 +7,14 @@
- # Your platform. See PLATS for possible values.
- PLAT= none
-
--CC= gcc
--CFLAGS= -O2 -Wall $(MYCFLAGS)
--AR= ar rcu
--RANLIB= ranlib
-+CC?= gcc
-+CFLAGS?= -O2 -Wall $(MYCFLAGS)
-+SOFLAGS= -shared -fPIC -DPIC -Wl,-O1 -Wl,--as-needed -Wl,-soname -Wl,$(LUA_A:.a=.so.$(M)) $(MYLDFLAGS)
-+AR?= ar
-+ARFLAGS?= rcu
-+RANLIB?= ranlib
- RM= rm -f
--LIBS= -lm $(MYLIBS)
-+LIBS?= -lm $(MYLIBS)
-
- MYCFLAGS=
- MYLDFLAGS=
-@@ -35,8 +37,11 @@
- LUAC_T= luac
- LUAC_O= luac.o print.o
-
--ALL_O= $(CORE_O) $(LIB_O) $(LUA_O) $(LUAC_O)
--ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T)
-+LUAS_T= $(LUA_A:.a=.so.$(R))
-+LUAS_O= $(addprefix .libs/,$(CORE_O) $(LIB_O) $(LUA_O))
-+
-+ALL_O= $(CORE_O) $(LIB_O) $(LUA_O) $(LUAC_O) $(LUAS_O)
-+ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) $(LUAS_T)
- ALL_A= $(LUA_A)
-
- default: $(PLAT)
-@@ -48,9 +53,12 @@
- a: $(ALL_A)
-
- $(LUA_A): $(CORE_O) $(LIB_O)
-- $(AR) $@ $(CORE_O) $(LIB_O) # DLL needs all object files
-+ $(AR) $(ARFLAGS) $@ $(CORE_O) $(LIB_O) # DLL needs all object files
- $(RANLIB) $@
-
-+$(LUAS_T): $(LUAS_O)
-+ $(CC) -o $@ $(SOFLAGS) $(LUAS_O) $(LIBS)
-+
- $(LUA_T): $(LUA_O) $(LUA_A)
- $(CC) -o $@ $(MYLDFLAGS) $(LUA_O) $(LUA_A) $(LIBS)
-
-@@ -67,7 +75,7 @@
- @echo "PLAT = $(PLAT)"
- @echo "CC = $(CC)"
- @echo "CFLAGS = $(CFLAGS)"
-- @echo "AR = $(AR)"
-+ @echo "AR = $(AR) $(ARFLAGS)"
- @echo "RANLIB = $(RANLIB)"
- @echo "RM = $(RM)"
- @echo "MYCFLAGS = $(MYCFLAGS)"
-@@ -120,6 +128,9 @@
-
- # DO NOT DELETE
-
-+.libs/%o: %c
-+ $(CC) $(CFLAGS) -fPIC -DPIC -c -o $@ $<
-+
- lapi.o: lapi.c lua.h luaconf.h lapi.h lobject.h llimits.h ldebug.h \
- lstate.h ltm.h lzio.h lmem.h ldo.h lfunc.h lgc.h lstring.h ltable.h \
- lundump.h lvm.h
diff --git a/dev-lang/lua/files/lua-5.1.5-make.patch b/dev-lang/lua/files/lua-5.1.5-make.patch
deleted file mode 100644
index 032652c0a5e1..000000000000
--- a/dev-lang/lua/files/lua-5.1.5-make.patch
+++ /dev/null
@@ -1,97 +0,0 @@
-diff -ru lua-5.1.5.orig/Makefile lua-5.1.5/Makefile
---- lua-5.1.5.orig/Makefile 2014-04-15 17:43:34.845435031 +0200
-+++ lua-5.1.5/Makefile 2014-04-15 19:05:08.669304987 +0200
-@@ -11,7 +11,7 @@
- # so take care if INSTALL_TOP is not an absolute path.
- INSTALL_TOP= /usr/local
- INSTALL_BIN= $(INSTALL_TOP)/bin
--INSTALL_INC= $(INSTALL_TOP)/include
-+INSTALL_INC= $(INSTALL_TOP)/include/lua$V
- INSTALL_LIB= $(INSTALL_TOP)/lib
- INSTALL_MAN= $(INSTALL_TOP)/man/man1
- #
-@@ -126,3 +126,21 @@
- .PHONY: all $(PLATS) clean test install local none dummy echo pecho lecho
-
- # (end of Makefile)
-+
-+# Use libtool for binary installs, etc.
-+
-+export V
-+export LIBTOOL = libtool --quiet --tag=CC
-+# See libtool manual about how to set this
-+
-+gentoo_clean:
-+ cd src; $(MAKE) $@
-+
-+gentoo_test: gentoo_linux
-+ test/lua.static test/hello.lua
-+
-+gentoo_install:
-+ mkdir -p $(INSTALL_BIN) $(INSTALL_INC) $(INSTALL_LIB)
-+ cd src; $(LIBTOOL) --mode=install $(INSTALL_EXEC) lua$V luac$V $(INSTALL_BIN)
-+ cd src; $(INSTALL_DATA) $(TO_INC) $(INSTALL_INC)
-+ cd src; $(LIBTOOL) --mode=install $(INSTALL_DATA) liblua$V.la $(INSTALL_LIB)
-diff -ru lua-5.1.5.orig/src/Makefile lua-5.1.5/src/Makefile
---- lua-5.1.5.orig/src/Makefile 2014-04-15 17:43:34.844435031 +0200
-+++ lua-5.1.5/src/Makefile 2014-04-15 18:07:21.427397122 +0200
-@@ -29,10 +29,10 @@
- LIB_O= lauxlib.o lbaselib.o ldblib.o liolib.o lmathlib.o loslib.o ltablib.o \
- lstrlib.o loadlib.o linit.o
-
--LUA_T= lua
-+LUA_T= lua$V
- LUA_O= lua.o
-
--LUAC_T= luac
-+LUAC_T= luac$V
- LUAC_O= luac.o print.o
-
- ALL_O= $(CORE_O) $(LIB_O) $(LUA_O) $(LUAC_O)
-@@ -51,10 +51,10 @@
- $(AR) $@ $(CORE_O) $(LIB_O) # DLL needs all object files
- $(RANLIB) $@
-
--$(LUA_T): $(LUA_O) $(LUA_A)
-+origin$(LUA_T): $(LUA_O) $(LUA_A)
- $(CC) -o $@ $(MYLDFLAGS) $(LUA_O) $(LUA_A) $(LIBS)
-
--$(LUAC_T): $(LUAC_O) $(LUA_A)
-+origin$(LUAC_T): $(LUAC_O) $(LUA_A)
- $(CC) -o $@ $(MYLDFLAGS) $(LUAC_O) $(LUA_A) $(LIBS)
-
- clean:
-@@ -180,3 +180,33 @@
- ltm.h lzio.h lmem.h lopcodes.h lundump.h
-
- # (end of Makefile)
-+
-+export LIBTOOL = libtool --tag=CC
-+export LIB_VERSION = 5:1:5
-+
-+# The following rules use libtool for compiling and linking in order to
-+# provide shared library support.
-+
-+LIB_NAME = liblua$V.la
-+LIB_OBJS = $(CORE_O:.o=.lo) $(LIB_O:.o=.lo)
-+
-+%.lo %.o: %.c
-+ $(LIBTOOL) --mode=compile $(CC) -c $(CPPFLAGS) $(CFLAGS) -o $@ $<
-+
-+$(LIB_NAME): $(LIB_OBJS)
-+ $(LIBTOOL) --mode=link $(CC) -version-info 0:0:0 \
-+ -rpath $(RPATH) $(LDFLAGS) -o $(LIB_NAME) $(LIB_OBJS) $(LIB_LIBS)
-+
-+$(LUA_T): $(LUA_O:.o=.lo) $(LIB_NAME)
-+ $(LIBTOOL) --mode=link $(CC) -static -export-dynamic $(LDFLAGS) -o $@ $(LUA_O:.o=.lo) $(LIB_NAME) $(LUA_LIBS)
-+
-+lua_test: $(LUA_O:.o=.lo) $(LIB_NAME)
-+ $(LIBTOOL) --mode=link $(CC) -static -export-dynamic $(LDFLAGS) -o $@ $(LUA_O:.o=.lo) $(LIB_NAME) $(LUA_LIBS)
-+
-+$(LUAC_T): $(LUAC_O:.o=.lo) $(LIB_NAME)
-+ $(LIBTOOL) --mode=link $(CC) -static $(LDFLAGS) -o $@ $(LUAC_O:.o=.lo) $(LIB_NAME)
-+
-+gentoo_clean:
-+ $(LIBTOOL) --mode=clean $(RM) $(ALL_O:.o=.lo) $(LIB_NAME) lua$V luac$V
-+
-+gentoo_all: $(LIB_NAME) $(LUA_T) lua_test $(LUAC_T)
diff --git a/dev-lang/lua/files/lua-5.1.5-readline.patch b/dev-lang/lua/files/lua-5.1.5-readline.patch
deleted file mode 100644
index 2b5221a8ab48..000000000000
--- a/dev-lang/lua/files/lua-5.1.5-readline.patch
+++ /dev/null
@@ -1,17 +0,0 @@
---- old/src/luaconf.h 2006-04-10 20:27:23.000000000 +0200
-+++ new/src/luaconf.h 2006-11-15 14:53:07.000000000 +0100
-@@ -36,7 +36,6 @@
- #if defined(LUA_USE_LINUX)
- #define LUA_USE_POSIX
- #define LUA_USE_DLOPEN /* needs an extra library: -ldl */
--#define LUA_USE_READLINE /* needs some extra libraries */
- #endif
-
- #if defined(LUA_USE_MACOSX)
---- old/src/Makefile 2012-02-13 21:41:22.000000000 +0100
-+++ old/src/Makefile 2019-07-09 09:53:00.000000000 +0100
-@@ -98,3 +98,3 @@
- linux:
-- $(MAKE) all MYCFLAGS=-DLUA_USE_LINUX MYLIBS="-Wl,-E -ldl -lreadline -lhistory -lncurses"
-+ $(MAKE) all MYCFLAGS=-DLUA_USE_LINUX MYLIBS="-Wl,-E -ldl"
-
diff --git a/dev-lang/lua/files/lua-5.2-make-r1.patch b/dev-lang/lua/files/lua-5.2-make-r1.patch
deleted file mode 100644
index c65f799c0dcc..000000000000
--- a/dev-lang/lua/files/lua-5.2-make-r1.patch
+++ /dev/null
@@ -1,75 +0,0 @@
---- lua-5.1.1.orig/Makefile 2006-06-02 12:53:38.000000000 +0200
-+++ lua-5.1.1/Makefile 2006-11-16 02:16:53.000000000 +0100
-@@ -11,7 +11,7 @@
- # so take care if INSTALL_TOP is not an absolute path.
- INSTALL_TOP= /usr/local
- INSTALL_BIN= $(INSTALL_TOP)/bin
--INSTALL_INC= $(INSTALL_TOP)/include
-+INSTALL_INC= $(INSTALL_TOP)/include/lua$V
- INSTALL_LIB= $(INSTALL_TOP)/lib
- INSTALL_MAN= $(INSTALL_TOP)/man/man1
- #
-@@ -127,3 +127,18 @@
- .PHONY: all $(PLATS) clean install local none dummy echo pecho lecho newer
-
- # (end of Makefile)
-+
-+# Use libtool for binary installs, etc.
-+
-+export V
-+export LIBTOOL = libtool --quiet --tag=CC
-+# See libtool manual about how to set this
-+
-+gentoo_clean:
-+ cd src; $(MAKE) $@
-+
-+gentoo_install:
-+ mkdir -p $(INSTALL_BIN) $(INSTALL_INC) $(INSTALL_LIB)
-+ cd src; $(LIBTOOL) --mode=install $(INSTALL_EXEC) lua$V luac$V $(INSTALL_BIN)
-+ cd src; $(INSTALL_DATA) $(TO_INC) $(INSTALL_INC)
-+ cd src; $(LIBTOOL) --mode=install $(INSTALL_DATA) liblua$V.la $(INSTALL_LIB)
---- lua-5.1.1.orig/src/Makefile 2006-03-22 01:41:49.000000000 +0100
-+++ lua-5.1.1/src/Makefile 2006-11-16 02:10:27.000000000 +0100
-@@ -39,1 +39,1 @@
--LUA_T= lua
-+LUA_T= lua$V
-@@ -42,1 +42,1 @@
--LUAC_T= luac
-+LUAC_T= luac$V
-@@ -54,1 +54,1 @@
--$(LUA_T): $(LUA_O) $(LUA_A)
-+origin$(LUA_T): $(LUA_O) $(LUA_A)
-@@ -57,1 +57,1 @@
--$(LUAC_T): $(LUAC_O) $(LUA_A)
-+origin$(LUAC_T): $(LUAC_O) $(LUA_A)
-@@ -185,3 +185,30 @@
- lzio.o: lzio.c lua.h luaconf.h llimits.h lmem.h lstate.h lobject.h ltm.h \
- lzio.h
-
-+
-+export LIBTOOL = libtool --quiet --tag=CC
-+export LIB_VERSION = 6:1:1
-+
-+# The following rules use libtool for compiling and linking in order to
-+# provide shared library support.
-+
-+LIB_NAME = liblua$V.la
-+LIB_OBJS = $(CORE_O:.o=.lo) $(LIB_O:.o=.lo)
-+
-+%.lo %.o: %.c
-+ $(LIBTOOL) --mode=compile $(CC) -c $(CPPFLAGS) $(CFLAGS) -o $@ $<
-+
-+$(LIB_NAME): $(LIB_OBJS)
-+ $(LIBTOOL) --mode=link $(CC) -version-info $(LIB_VERSION) \
-+ -rpath $(RPATH) $(LDFLAGS) -o $(LIB_NAME) $(LIB_OBJS) $(LIB_LIBS)
-+
-+$(LUA_T): $(LUA_O:.o=.lo) $(LIB_NAME)
-+ $(LIBTOOL) --mode=link $(CC) -export-dynamic $(LDFLAGS) -o $@ $(LUA_O:.o=.lo) $(LIB_NAME) $(LUA_LIBS)
-+
-+$(LUAC_T): $(LUAC_O:.o=.lo) $(LIB_NAME)
-+ $(LIBTOOL) --mode=link $(CC) -static $(LDFLAGS) -o $@ $(LUAC_O:.o=.lo) $(LIB_NAME)
-+
-+gentoo_clean:
-+ $(LIBTOOL) --mode=clean $(RM) $(ALL_O:.o=.lo) $(LIB_NAME) lua$V luac$V
-+
-+gentoo_all: $(LIB_NAME) $(LUA_T) $(LUAC_T)
diff --git a/dev-lang/lua/files/lua-5.2.4-make.patch b/dev-lang/lua/files/lua-5.2.4-make.patch
deleted file mode 100644
index 40e1f5aa7d0c..000000000000
--- a/dev-lang/lua/files/lua-5.2.4-make.patch
+++ /dev/null
@@ -1,75 +0,0 @@
---- lua-5.1.1.orig/Makefile 2006-06-02 12:53:38.000000000 +0200
-+++ lua-5.1.1/Makefile 2006-11-16 02:16:53.000000000 +0100
-@@ -11,7 +11,7 @@
- # so take care if INSTALL_TOP is not an absolute path.
- INSTALL_TOP= /usr/local
- INSTALL_BIN= $(INSTALL_TOP)/bin
--INSTALL_INC= $(INSTALL_TOP)/include
-+INSTALL_INC= $(INSTALL_TOP)/include/lua$V
- INSTALL_LIB= $(INSTALL_TOP)/lib
- INSTALL_MAN= $(INSTALL_TOP)/man/man1
- #
-@@ -127,3 +127,18 @@
- .PHONY: all $(PLATS) clean install local none dummy echo pecho lecho newer
-
- # (end of Makefile)
-+
-+# Use libtool for binary installs, etc.
-+
-+export V
-+export LIBTOOL = libtool --quiet --tag=CC
-+# See libtool manual about how to set this
-+
-+gentoo_clean:
-+ cd src; $(MAKE) $@
-+
-+gentoo_install:
-+ mkdir -p $(INSTALL_BIN) $(INSTALL_INC) $(INSTALL_LIB)
-+ cd src; $(LIBTOOL) --mode=install $(INSTALL_EXEC) lua$V luac$V $(INSTALL_BIN)
-+ cd src; $(INSTALL_DATA) $(TO_INC) $(INSTALL_INC)
-+ cd src; $(LIBTOOL) --mode=install $(INSTALL_DATA) liblua$V.la $(INSTALL_LIB)
---- lua-5.1.1.orig/src/Makefile 2006-03-22 01:41:49.000000000 +0100
-+++ lua-5.1.1/src/Makefile 2006-11-16 02:10:27.000000000 +0100
-@@ -39,1 +39,1 @@
--LUA_T= lua
-+LUA_T= lua$V
-@@ -42,1 +42,1 @@
--LUAC_T= luac
-+LUAC_T= luac$V
-@@ -54,1 +54,1 @@
--$(LUA_T): $(LUA_O) $(LUA_A)
-+origin$(LUA_T): $(LUA_O) $(LUA_A)
-@@ -57,1 +57,1 @@
--$(LUAC_T): $(LUAC_O) $(LUA_A)
-+origin$(LUAC_T): $(LUAC_O) $(LUA_A)
-@@ -185,3 +185,30 @@
- lzio.o: lzio.c lua.h luaconf.h llimits.h lmem.h lstate.h lobject.h ltm.h \
- lzio.h
-
-+
-+export LIBTOOL = libtool --quiet --tag=CC
-+export LIB_VERSION = 6:1:1
-+
-+# The following rules use libtool for compiling and linking in order to
-+# provide shared library support.
-+
-+LIB_NAME = liblua$V.la
-+LIB_OBJS = $(CORE_O:.o=.lo) $(LIB_O:.o=.lo)
-+
-+%.lo %.o: %.c
-+ $(LIBTOOL) --mode=compile $(CC) -c $(CPPFLAGS) $(CFLAGS) -o $@ $<
-+
-+$(LIB_NAME): $(LIB_OBJS)
-+ $(LIBTOOL) --mode=link $(CC) -version-info $(LIB_VERSION) \
-+ -rpath $(RPATH) $(LDFLAGS) -o $(LIB_NAME) $(LIB_OBJS) $(LIB_LIBS)
-+
-+$(LUA_T): $(LUA_O:.o=.lo) $(LIB_NAME)
-+ $(LIBTOOL) --mode=link $(CC) -static -export-dynamic $(LDFLAGS) -o $@ $(LUA_O:.o=.lo) $(LIB_NAME) $(LUA_LIBS)
-+
-+$(LUAC_T): $(LUAC_O:.o=.lo) $(LIB_NAME)
-+ $(LIBTOOL) --mode=link $(CC) -static $(LDFLAGS) -o $@ $(LUAC_O:.o=.lo) $(LIB_NAME)
-+
-+gentoo_clean:
-+ $(LIBTOOL) --mode=clean $(RM) $(ALL_O:.o=.lo) $(LIB_NAME) lua$V luac$V
-+
-+gentoo_all: $(LIB_NAME) $(LUA_T) $(LUAC_T)
diff --git a/dev-lang/lua/files/lua-5.3-make-r1.patch b/dev-lang/lua/files/lua-5.3-make-r1.patch
deleted file mode 100644
index d27eb9938ea0..000000000000
--- a/dev-lang/lua/files/lua-5.3-make-r1.patch
+++ /dev/null
@@ -1,91 +0,0 @@
-diff -uNr lua-5.3.3.orig/Makefile lua-5.3.3/Makefile
---- lua-5.3.3.orig/Makefile 2016-12-04 22:29:54.839135901 +0100
-+++ lua-5.3.3/Makefile 2016-12-04 22:31:14.235851109 +0100
-@@ -12,7 +12,7 @@
- # LUA_ROOT, LUA_LDIR, and LUA_CDIR in luaconf.h.
- INSTALL_TOP= /usr/local
- INSTALL_BIN= $(INSTALL_TOP)/bin
--INSTALL_INC= $(INSTALL_TOP)/include
-+INSTALL_INC= $(INSTALL_TOP)/include/lua$V
- INSTALL_LIB= $(INSTALL_TOP)/lib
- INSTALL_MAN= $(INSTALL_TOP)/man/man1
- INSTALL_LMOD= $(INSTALL_TOP)/share/lua/$V
-@@ -112,3 +112,18 @@
- .PHONY: all $(PLATS) clean test install local none dummy echo pecho lecho
-
- # (end of Makefile)
-+
-+# Use libtool for binary installs, etc.
-+
-+export V
-+export LIBTOOL = libtool --quiet --tag=CC
-+# See libtool manual about how to set this
-+
-+gentoo_clean:
-+ cd src; $(MAKE) $@
-+
-+gentoo_install:
-+ mkdir -p $(INSTALL_BIN) $(INSTALL_INC) $(INSTALL_LIB)
-+ cd src; $(LIBTOOL) --mode=install $(INSTALL_EXEC) lua$V luac$V $(INSTALL_BIN)
-+ cd src; $(INSTALL_DATA) $(TO_INC) $(INSTALL_INC)
-+ cd src; $(LIBTOOL) --mode=install $(INSTALL_DATA) liblua$V.la $(INSTALL_LIB)
-diff -uNr lua-5.3.3.orig/src/Makefile lua-5.3.3/src/Makefile
---- lua-5.3.3.orig/src/Makefile 2016-12-04 22:29:54.840135910 +0100
-+++ lua-5.3.3/src/Makefile 2016-12-04 22:34:55.980848068 +0100
-@@ -36,10 +36,10 @@
- lmathlib.o loslib.o lstrlib.o ltablib.o lutf8lib.o loadlib.o linit.o
- BASE_O= $(CORE_O) $(LIB_O) $(MYOBJS)
-
--LUA_T= lua
-+LUA_T= lua$V
- LUA_O= lua.o
-
--LUAC_T= luac
-+LUAC_T= luac$V
- LUAC_O= luac.o
-
- ALL_O= $(BASE_O) $(LUA_O) $(LUAC_O)
-@@ -59,10 +59,10 @@
- $(AR) $@ $(BASE_O)
- $(RANLIB) $@
-
--$(LUA_T): $(LUA_O) $(LUA_A)
-+origin$(LUA_T): $(LUA_O) $(LUA_A)
- $(CC) -o $@ $(LDFLAGS) $(LUA_O) $(LUA_A) $(LIBS)
-
--$(LUAC_T): $(LUAC_O) $(LUA_A)
-+origin$(LUAC_T): $(LUAC_O) $(LUA_A)
- $(CC) -o $@ $(LDFLAGS) $(LUAC_O) $(LUA_A) $(LIBS)
-
- clean:
-@@ -195,3 +195,30 @@
- lobject.h ltm.h lzio.h
-
- # (end of Makefile)
-+
-+export LIBTOOL = libtool --quiet --tag=CC
-+export LIB_VERSION = 6:1:1
-+
-+# The following rules use libtool for compiling and linking in order to
-+# provide shared library support.
-+
-+LIB_NAME = liblua$V.la
-+LIB_OBJS = $(CORE_O:.o=.lo) $(LIB_O:.o=.lo)
-+
-+%.lo %.o: %.c
-+ $(LIBTOOL) --mode=compile $(CC) -c $(CPPFLAGS) $(CFLAGS) -o $@ $<
-+
-+$(LIB_NAME): $(LIB_OBJS)
-+ $(LIBTOOL) --mode=link $(CC) -version-info $(LIB_VERSION) \
-+ -rpath $(RPATH) $(LDFLAGS) -o $(LIB_NAME) $(LIB_OBJS) $(LIB_LIBS)
-+
-+$(LUA_T): $(LUA_O:.o=.lo) $(LIB_NAME)
-+ $(LIBTOOL) --mode=link $(CC) -export-dynamic $(LDFLAGS) -o $@ $(LUA_O:.o=.lo) $(LIB_NAME) $(LUA_LIBS)
-+
-+$(LUAC_T): $(LUAC_O:.o=.lo) $(LIB_NAME)
-+ $(LIBTOOL) --mode=link $(CC) -static $(LDFLAGS) -o $@ $(LUAC_O:.o=.lo) $(LIB_NAME)
-+
-+gentoo_clean:
-+ $(LIBTOOL) --mode=clean $(RM) $(ALL_O:.o=.lo) $(LIB_NAME) lua$V luac$V
-+
-+gentoo_all: $(LIB_NAME) $(LUA_T) $(LUAC_T)
diff --git a/dev-lang/lua/files/lua-5.3.6-make.patch b/dev-lang/lua/files/lua-5.3.6-make.patch
deleted file mode 100644
index 6e842caf4f65..000000000000
--- a/dev-lang/lua/files/lua-5.3.6-make.patch
+++ /dev/null
@@ -1,91 +0,0 @@
-diff -uNr lua-5.3.3.orig/Makefile lua-5.3.3/Makefile
---- lua-5.3.3.orig/Makefile 2016-12-04 22:29:54.839135901 +0100
-+++ lua-5.3.3/Makefile 2016-12-04 22:31:14.235851109 +0100
-@@ -12,7 +12,7 @@
- # LUA_ROOT, LUA_LDIR, and LUA_CDIR in luaconf.h.
- INSTALL_TOP= /usr/local
- INSTALL_BIN= $(INSTALL_TOP)/bin
--INSTALL_INC= $(INSTALL_TOP)/include
-+INSTALL_INC= $(INSTALL_TOP)/include/lua$V
- INSTALL_LIB= $(INSTALL_TOP)/lib
- INSTALL_MAN= $(INSTALL_TOP)/man/man1
- INSTALL_LMOD= $(INSTALL_TOP)/share/lua/$V
-@@ -112,3 +112,18 @@
- .PHONY: all $(PLATS) clean test install local none dummy echo pecho lecho
-
- # (end of Makefile)
-+
-+# Use libtool for binary installs, etc.
-+
-+export V
-+export LIBTOOL = libtool --quiet --tag=CC
-+# See libtool manual about how to set this
-+
-+gentoo_clean:
-+ cd src; $(MAKE) $@
-+
-+gentoo_install:
-+ mkdir -p $(INSTALL_BIN) $(INSTALL_INC) $(INSTALL_LIB)
-+ cd src; $(LIBTOOL) --mode=install $(INSTALL_EXEC) lua$V luac$V $(INSTALL_BIN)
-+ cd src; $(INSTALL_DATA) $(TO_INC) $(INSTALL_INC)
-+ cd src; $(LIBTOOL) --mode=install $(INSTALL_DATA) liblua$V.la $(INSTALL_LIB)
-diff -uNr lua-5.3.3.orig/src/Makefile lua-5.3.3/src/Makefile
---- lua-5.3.3.orig/src/Makefile 2016-12-04 22:29:54.840135910 +0100
-+++ lua-5.3.3/src/Makefile 2016-12-04 22:34:55.980848068 +0100
-@@ -36,10 +36,10 @@
- lmathlib.o loslib.o lstrlib.o ltablib.o lutf8lib.o loadlib.o linit.o
- BASE_O= $(CORE_O) $(LIB_O) $(MYOBJS)
-
--LUA_T= lua
-+LUA_T= lua$V
- LUA_O= lua.o
-
--LUAC_T= luac
-+LUAC_T= luac$V
- LUAC_O= luac.o
-
- ALL_O= $(BASE_O) $(LUA_O) $(LUAC_O)
-@@ -59,10 +59,10 @@
- $(AR) $@ $(BASE_O)
- $(RANLIB) $@
-
--$(LUA_T): $(LUA_O) $(LUA_A)
-+origin$(LUA_T): $(LUA_O) $(LUA_A)
- $(CC) -o $@ $(LDFLAGS) $(LUA_O) $(LUA_A) $(LIBS)
-
--$(LUAC_T): $(LUAC_O) $(LUA_A)
-+origin$(LUAC_T): $(LUAC_O) $(LUA_A)
- $(CC) -o $@ $(LDFLAGS) $(LUAC_O) $(LUA_A) $(LIBS)
-
- clean:
-@@ -195,3 +195,30 @@
- lobject.h ltm.h lzio.h
-
- # (end of Makefile)
-+
-+export LIBTOOL = libtool --quiet --tag=CC
-+export LIB_VERSION = 6:1:1
-+
-+# The following rules use libtool for compiling and linking in order to
-+# provide shared library support.
-+
-+LIB_NAME = liblua$V.la
-+LIB_OBJS = $(CORE_O:.o=.lo) $(LIB_O:.o=.lo)
-+
-+%.lo %.o: %.c
-+ $(LIBTOOL) --mode=compile $(CC) -c $(CPPFLAGS) $(CFLAGS) -o $@ $<
-+
-+$(LIB_NAME): $(LIB_OBJS)
-+ $(LIBTOOL) --mode=link $(CC) -version-info $(LIB_VERSION) \
-+ -rpath $(RPATH) $(LDFLAGS) -o $(LIB_NAME) $(LIB_OBJS) $(LIB_LIBS)
-+
-+$(LUA_T): $(LUA_O:.o=.lo) $(LIB_NAME)
-+ $(LIBTOOL) --mode=link $(CC) -static -export-dynamic $(LDFLAGS) -o $@ $(LUA_O:.o=.lo) $(LIB_NAME) $(LUA_LIBS)
-+
-+$(LUAC_T): $(LUAC_O:.o=.lo) $(LIB_NAME)
-+ $(LIBTOOL) --mode=link $(CC) -static $(LDFLAGS) -o $@ $(LUAC_O:.o=.lo) $(LIB_NAME)
-+
-+gentoo_clean:
-+ $(LIBTOOL) --mode=clean $(RM) $(ALL_O:.o=.lo) $(LIB_NAME) lua$V luac$V
-+
-+gentoo_all: $(LIB_NAME) $(LUA_T) $(LUAC_T)
diff --git a/dev-lang/lua/files/lua-5.4-makefiles.patch b/dev-lang/lua/files/lua-5.4-makefiles.patch
deleted file mode 100644
index 67fb4ad1a339..000000000000
--- a/dev-lang/lua/files/lua-5.4-makefiles.patch
+++ /dev/null
@@ -1,99 +0,0 @@
-diff --git a/Makefile b/Makefile
-index 1797df9..90284d8 100644
---- a/Makefile
-+++ b/Makefile
-@@ -10,11 +10,11 @@ PLAT= guess
- # so take care if INSTALL_TOP is not an absolute path. See the local target.
- # You may want to make INSTALL_LMOD and INSTALL_CMOD consistent with
- # LUA_ROOT, LUA_LDIR, and LUA_CDIR in luaconf.h.
--INSTALL_TOP= /usr/local
-+INSTALL_TOP= /usr
- INSTALL_BIN= $(INSTALL_TOP)/bin
--INSTALL_INC= $(INSTALL_TOP)/include
-+INSTALL_INC= $(INSTALL_TOP)/include/lua$V
- INSTALL_LIB= $(INSTALL_TOP)/lib
--INSTALL_MAN= $(INSTALL_TOP)/man/man1
-+INSTALL_MAN= $(INSTALL_TOP)/share/man/man1
- INSTALL_LMOD= $(INSTALL_TOP)/share/lua/$V
- INSTALL_CMOD= $(INSTALL_TOP)/lib/lua/$V
-
-@@ -104,3 +104,18 @@ pc:
- .PHONY: all $(PLATS) help test clean install uninstall local dummy echo pc
-
- # (end of Makefile)
-+
-+# Use libtool for binary installs, etc.
-+
-+export V
-+export LIBTOOL = $(BROOT)/usr/bin/libtool --quiet --tag=CC
-+# See libtool manual about how to set this
-+
-+gentoo_clean:
-+ cd src; $(MAKE) $@
-+
-+gentoo_install:
-+ mkdir -p $(INSTALL_BIN) $(INSTALL_INC) $(INSTALL_LIB)
-+ cd src; $(LIBTOOL) --mode=install $(INSTALL_EXEC) lua$V luac$V $(INSTALL_BIN)
-+ cd src; $(INSTALL_DATA) $(TO_INC) $(INSTALL_INC)
-+ cd src; $(LIBTOOL) --mode=install $(INSTALL_DATA) liblua$V.la $(INSTALL_LIB)
-diff --git a/src/Makefile b/src/Makefile
-index 514593d..8af8f99 100644
---- a/src/Makefile
-+++ b/src/Makefile
-@@ -37,10 +37,10 @@ CORE_O= lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem
- LIB_O= lauxlib.o lbaselib.o lcorolib.o ldblib.o liolib.o lmathlib.o loadlib.o loslib.o lstrlib.o ltablib.o lutf8lib.o linit.o
- BASE_O= $(CORE_O) $(LIB_O) $(MYOBJS)
-
--LUA_T= lua
-+LUA_T= lua$V
- LUA_O= lua.o
-
--LUAC_T= luac
-+LUAC_T= luac$V
- LUAC_O= luac.o
-
- ALL_O= $(BASE_O) $(LUA_O) $(LUAC_O)
-@@ -60,10 +60,10 @@ $(LUA_A): $(BASE_O)
- $(AR) $@ $(BASE_O)
- $(RANLIB) $@
-
--$(LUA_T): $(LUA_O) $(LUA_A)
-+origin$(LUA_T): $(LUA_O) $(LUA_A)
- $(CC) -o $@ $(LDFLAGS) $(LUA_O) $(LUA_A) $(LIBS)
-
--$(LUAC_T): $(LUAC_O) $(LUA_A)
-+origin$(LUAC_T): $(LUAC_O) $(LUA_A)
- $(CC) -o $@ $(LDFLAGS) $(LUAC_O) $(LUA_A) $(LIBS)
-
- test:
-@@ -218,3 +218,30 @@ lzio.o: lzio.c lprefix.h lua.h luaconf.h llimits.h lmem.h lstate.h \
- lobject.h ltm.h lzio.h
-
- # (end of Makefile)
-+
-+export LIBTOOL = $(BROOT)/usr/bin/libtool --quiet --tag=CC
-+export LIB_VERSION = 6:1:1
-+
-+# The following rules use libtool for compiling and linking in order to
-+# provide shared library support.
-+
-+LIB_NAME = liblua$V.la
-+LIB_OBJS = $(CORE_O:.o=.lo) $(LIB_O:.o=.lo)
-+
-+%.lo %.o: %.c
-+ $(LIBTOOL) --mode=compile $(CC) -c $(CPPFLAGS) $(CFLAGS) -o $@ $<
-+
-+$(LIB_NAME): $(LIB_OBJS)
-+ $(LIBTOOL) --mode=link $(CC) -version-info $(LIB_VERSION) \
-+ -rpath $(RPATH) $(LDFLAGS) -o $(LIB_NAME) $(LIB_OBJS) $(LIB_LIBS)
-+
-+$(LUA_T): $(LUA_O:.o=.lo) $(LIB_NAME)
-+ $(LIBTOOL) --mode=link $(CC) -export-dynamic $(LDFLAGS) -o $@ $(LUA_O:.o=.lo) $(LIB_NAME) $(LUA_LIBS)
-+
-+$(LUAC_T): $(LUAC_O:.o=.lo) $(LIB_NAME)
-+ $(LIBTOOL) --mode=link $(CC) -static $(LDFLAGS) -o $@ $(LUAC_O:.o=.lo) $(LIB_NAME)
-+
-+gentoo_clean:
-+ $(LIBTOOL) --mode=clean $(RM) $(ALL_O:.o=.lo) $(LIB_NAME) lua$V luac$V
-+
-+gentoo_all: $(LIB_NAME) $(LUA_T) $(LUAC_T)
diff --git a/dev-lang/lua/files/lua-5.4.2-make.patch b/dev-lang/lua/files/lua-5.4.2-make.patch
deleted file mode 100644
index 8758e88de91b..000000000000
--- a/dev-lang/lua/files/lua-5.4.2-make.patch
+++ /dev/null
@@ -1,99 +0,0 @@
-diff --git a/Makefile b/Makefile
-index 1797df9..90284d8 100644
---- a/Makefile
-+++ b/Makefile
-@@ -10,11 +10,11 @@ PLAT= guess
- # so take care if INSTALL_TOP is not an absolute path. See the local target.
- # You may want to make INSTALL_LMOD and INSTALL_CMOD consistent with
- # LUA_ROOT, LUA_LDIR, and LUA_CDIR in luaconf.h.
--INSTALL_TOP= /usr/local
-+INSTALL_TOP= /usr
- INSTALL_BIN= $(INSTALL_TOP)/bin
--INSTALL_INC= $(INSTALL_TOP)/include
-+INSTALL_INC= $(INSTALL_TOP)/include/lua$V
- INSTALL_LIB= $(INSTALL_TOP)/lib
--INSTALL_MAN= $(INSTALL_TOP)/man/man1
-+INSTALL_MAN= $(INSTALL_TOP)/share/man/man1
- INSTALL_LMOD= $(INSTALL_TOP)/share/lua/$V
- INSTALL_CMOD= $(INSTALL_TOP)/lib/lua/$V
-
-@@ -104,3 +104,18 @@ pc:
- .PHONY: all $(PLATS) help test clean install uninstall local dummy echo pc
-
- # (end of Makefile)
-+
-+# Use libtool for binary installs, etc.
-+
-+export V
-+export LIBTOOL = /usr/bin/libtool --quiet --tag=CC
-+# See libtool manual about how to set this
-+
-+gentoo_clean:
-+ cd src; $(MAKE) $@
-+
-+gentoo_install:
-+ mkdir -p $(INSTALL_BIN) $(INSTALL_INC) $(INSTALL_LIB)
-+ cd src; $(LIBTOOL) --mode=install $(INSTALL_EXEC) lua$V luac$V $(INSTALL_BIN)
-+ cd src; $(INSTALL_DATA) $(TO_INC) $(INSTALL_INC)
-+ cd src; $(LIBTOOL) --mode=install $(INSTALL_DATA) liblua$V.la $(INSTALL_LIB)
-diff --git a/src/Makefile b/src/Makefile
-index 514593d..8af8f99 100644
---- a/src/Makefile
-+++ b/src/Makefile
-@@ -37,10 +37,10 @@ CORE_O= lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem
- LIB_O= lauxlib.o lbaselib.o lcorolib.o ldblib.o liolib.o lmathlib.o loadlib.o loslib.o lstrlib.o ltablib.o lutf8lib.o linit.o
- BASE_O= $(CORE_O) $(LIB_O) $(MYOBJS)
-
--LUA_T= lua
-+LUA_T= lua$V
- LUA_O= lua.o
-
--LUAC_T= luac
-+LUAC_T= luac$V
- LUAC_O= luac.o
-
- ALL_O= $(BASE_O) $(LUA_O) $(LUAC_O)
-@@ -60,10 +60,10 @@ $(LUA_A): $(BASE_O)
- $(AR) $@ $(BASE_O)
- $(RANLIB) $@
-
--$(LUA_T): $(LUA_O) $(LUA_A)
-+origin$(LUA_T): $(LUA_O) $(LUA_A)
- $(CC) -o $@ $(LDFLAGS) $(LUA_O) $(LUA_A) $(LIBS)
-
--$(LUAC_T): $(LUAC_O) $(LUA_A)
-+origin$(LUAC_T): $(LUAC_O) $(LUA_A)
- $(CC) -o $@ $(LDFLAGS) $(LUAC_O) $(LUA_A) $(LIBS)
-
- test:
-@@ -218,3 +218,30 @@ lzio.o: lzio.c lprefix.h lua.h luaconf.h llimits.h lmem.h lstate.h \
- lobject.h ltm.h lzio.h
-
- # (end of Makefile)
-+
-+export LIBTOOL = /usr/bin/libtool --quiet --tag=CC
-+export LIB_VERSION = 6:1:1
-+
-+# The following rules use libtool for compiling and linking in order to
-+# provide shared library support.
-+
-+LIB_NAME = liblua$V.la
-+LIB_OBJS = $(CORE_O:.o=.lo) $(LIB_O:.o=.lo)
-+
-+%.lo %.o: %.c
-+ $(LIBTOOL) --mode=compile $(CC) -c $(CPPFLAGS) $(CFLAGS) -o $@ $<
-+
-+$(LIB_NAME): $(LIB_OBJS)
-+ $(LIBTOOL) --mode=link $(CC) -version-info $(LIB_VERSION) \
-+ -rpath $(RPATH) $(LDFLAGS) -o $(LIB_NAME) $(LIB_OBJS) $(LIB_LIBS)
-+
-+$(LUA_T): $(LUA_O:.o=.lo) $(LIB_NAME)
-+ $(LIBTOOL) --mode=link $(CC) -static -export-dynamic $(LDFLAGS) -o $@ $(LUA_O:.o=.lo) $(LIB_NAME) $(LUA_LIBS)
-+
-+$(LUAC_T): $(LUAC_O:.o=.lo) $(LIB_NAME)
-+ $(LIBTOOL) --mode=link $(CC) -static $(LDFLAGS) -o $@ $(LUAC_O:.o=.lo) $(LIB_NAME)
-+
-+gentoo_clean:
-+ $(LIBTOOL) --mode=clean $(RM) $(ALL_O:.o=.lo) $(LIB_NAME) lua$V luac$V
-+
-+gentoo_all: $(LIB_NAME) $(LUA_T) $(LUAC_T)
diff --git a/dev-lang/lua/files/lua-5.4.6-sparc-tests.patch b/dev-lang/lua/files/lua-5.4.6-sparc-tests.patch
new file mode 100644
index 000000000000..29515aad1639
--- /dev/null
+++ b/dev-lang/lua/files/lua-5.4.6-sparc-tests.patch
@@ -0,0 +1,44 @@
+https://github.com/lua/lua/commit/6baee9ef9d5657ab582c8a4b9f885ec58ed502d0
+https://bugs.gentoo.org/914562
+
+From 6baee9ef9d5657ab582c8a4b9f885ec58ed502d0 Mon Sep 17 00:00:00 2001
+From: Roberto Ierusalimschy <roberto@inf.puc-rio.br>
+Date: Fri, 8 Sep 2023 16:19:21 -0300
+Subject: [PATCH] Removed test for "corrupted binary dump"
+
+Test is too non portable. (For instance, it does not work for
+different number types.)
+--- a/src/lundump.c
++++ b/src/lundump.c
+@@ -81,7 +81,7 @@ static size_t loadUnsigned (LoadState *S, size_t limit) {
+
+
+ static size_t loadSize (LoadState *S) {
+- return loadUnsigned(S, ~(size_t)0);
++ return loadUnsigned(S, MAX_SIZET);
+ }
+
+
+--- a/tests/calls.lua
++++ b/tests/calls.lua
+@@ -342,20 +342,6 @@ do -- another bug (in 5.4.0)
+ end
+
+
+-do -- another bug (since 5.2)
+- -- corrupted binary dump: list of upvalue names is larger than number
+- -- of upvalues, overflowing the array of upvalues.
+- local code =
+- "\x1b\x4c\x75\x61\x54\x00\x19\x93\x0d\x0a\x1a\x0a\x04\x08\x08\x78\x56\z
+- \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x77\x40\x00\x86\x40\z
+- \x74\x65\x6d\x70\x81\x81\x01\x00\x02\x82\x48\x00\x02\x00\xc7\x00\x01\z
+- \x00\x80\x80\x80\x82\x00\x00\x80\x81\x82\x78\x80\x82\x81\x86\x40\x74\z
+- \x65\x6d\x70"
+-
+- assert(load(code)) -- segfaults in previous versions
+-end
+-
+-
+ x = string.dump(load("x = 1; return x"))
+ a = assert(load(read1(x), nil, "b"))
+ assert(a() == 1 and _G.x == 1)
diff --git a/dev-lang/lua/files/lua.pc b/dev-lang/lua/files/lua.pc
deleted file mode 100644
index e53971852c10..000000000000
--- a/dev-lang/lua/files/lua.pc
+++ /dev/null
@@ -1,31 +0,0 @@
-# lua.pc -- pkg-config data for Lua
-
-# vars from install Makefile
-
-# grep '^V=' ../Makefile
-V= 5.1
-# grep '^R=' ../Makefile
-R= 5.1.4
-
-# grep '^INSTALL_.*=' ../Makefile | sed 's/INSTALL_TOP/prefix/'
-prefix= /usr
-INSTALL_BIN= ${prefix}/bin
-INSTALL_INC= ${prefix}/include
-INSTALL_LIB= ${prefix}/,lib,
-INSTALL_MAN= ${prefix}/man/man1
-INSTALL_LMOD= ${prefix}/share/lua/${V}
-INSTALL_CMOD= ${prefix}/,lib,/lua/${V}
-
-# canonical vars
-exec_prefix=${prefix}
-libdir=${exec_prefix}/,lib,
-includedir=${prefix}/include
-
-Name: Lua
-Description: An Extensible Extension Language
-Version: ${R}
-Requires:
-Libs: -L${libdir} -llua -lm
-Cflags: -I${includedir}
-
-# (end of lua.pc)
diff --git a/dev-lang/lua/lua-5.1.5-r106.ebuild b/dev-lang/lua/lua-5.1.5-r106.ebuild
deleted file mode 100644
index 5e38cf0738b2..000000000000
--- a/dev-lang/lua/lua-5.1.5-r106.ebuild
+++ /dev/null
@@ -1,151 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-inherit multilib multilib-minimal portability toolchain-funcs
-
-DESCRIPTION="A powerful light-weight programming language designed for extending applications"
-HOMEPAGE="https://www.lua.org/"
-SRC_URI="https://www.lua.org/ftp/${P}.tar.gz"
-
-LICENSE="MIT"
-SLOT="5.1"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-IUSE="+deprecated readline"
-
-COMMON_DEPEND="
- >=app-eselect/eselect-lua-3
- readline? ( >=sys-libs/readline-6.2_p5-r1:0=[${MULTILIB_USEDEP}] )
- !dev-lang/lua:0"
-DEPEND="${COMMON_DEPEND}"
-RDEPEND="${COMMON_DEPEND}"
-BDEPEND="sys-devel/libtool"
-
-MULTILIB_WRAPPED_HEADERS=(
- /usr/include/lua${SLOT}/luaconf.h
-)
-
-src_prepare() {
- PATCHES=(
- "${FILESDIR}/lua-5.1.5-make.patch"
- "${FILESDIR}/${PN}-$(ver_cut 1-2)-module_paths.patch"
- )
- if ! use deprecated ; then
- # patches from 5.1.4 still apply
- PATCHES+=(
- "${FILESDIR}"/${PN}-5.1.4-deprecated.patch
- "${FILESDIR}"/${PN}-5.1.4-test.patch
- )
- fi
- if ! use readline ; then
- PATCHES+=(
- "${FILESDIR}"/${PN}-$(ver_cut 1-2)-readline.patch
- )
- fi
-
- default
-
- # use glibtool on Darwin (versus Apple libtool)
- if [[ ${CHOST} == *-darwin* ]] ; then
- sed -i -e '/LIBTOOL = /s:libtool:glibtool:' \
- Makefile src/Makefile || die
- fi
-
- # correct lua versioning
- sed -i -e 's/\(LIB_VERSION = \)6:1:1/\16:5:1/' src/Makefile
-
- sed -i -e 's:\(/README\)\("\):\1.gz\2:g' doc/readme.html
-
- # Using dynamic linked lua is not recommended for performance
- # reasons. http://article.gmane.org/gmane.comp.lang.lua.general/18519
- # Mainly, this is of concern if your arch is poor with GPRs, like x86
- # Note that this only affects the interpreter binary (named lua), not the lua
- # compiler (built statically) nor the lua libraries.
-
- # A slotted Lua uses different directories for headers & names for
- # libraries, and pkgconfig should reflect that.
- sed -r -i \
- -e "/^INSTALL_INC=/s,(/include)$,\1/lua${SLOT}," \
- -e "/^includedir=/s,(/include)$,\1/lua${SLOT}," \
- -e "/^Libs:/s,((-llua)($| )),\2${SLOT}\3," \
- "${S}"/etc/lua.pc
-
- # custom Makefiles
- multilib_copy_sources
-}
-
-multilib_src_configure() {
- # We want packages to find our things...
- sed -i \
- -e 's:/usr/local:'${EPREFIX}'/usr:' \
- -e "s:\([/\"]\)\<lib\>:\1$(get_libdir):g" \
- etc/lua.pc src/luaconf.h || die
-}
-
-multilib_src_compile() {
- tc-export CC
- myflags=
- # what to link to liblua
- liblibs="-lm"
- liblibs="${liblibs} $(dlopen_lib)"
-
- # what to link to the executables
- mylibs=
- if use readline; then
- mylibs="-lreadline"
- fi
-
- cd src
- emake CC="${CC}" CFLAGS="-DLUA_USE_LINUX ${CFLAGS}" \
- RPATH="${EPREFIX}/usr/$(get_libdir)/" \
- LUA_LIBS="${mylibs}" \
- LIB_LIBS="${liblibs}" \
- V=$(ver_cut 1-2) \
- gentoo_all
-
- mv lua_test ../test/lua.static
-}
-
-multilib_src_install() {
- emake INSTALL_TOP="${ED}/usr" INSTALL_LIB="${ED}/usr/$(get_libdir)" \
- V=${SLOT} gentoo_install
-
- insinto /usr/$(get_libdir)/pkgconfig
- newins etc/lua.pc lua${SLOT}.pc
-}
-
-multilib_src_install_all() {
- DOCS="HISTORY README"
- HTML_DOCS="doc/*.html doc/*.png doc/*.css doc/*.gif"
- einstalldocs
- newman doc/lua.1 lua${SLOT}.1
- newman doc/luac.1 luac${SLOT}.1
- find "${ED}" -name '*.la' -delete || die
- find "${ED}" -name 'liblua*.a' -delete || die
-}
-
-multilib_src_test() {
- local positive="bisect cf echo env factorial fib fibfor hello printf sieve
- sort trace-calls trace-globals"
- local negative="readonly"
- local test
-
- cd "${BUILD_DIR}" || die
- for test in ${positive}; do
- test/lua.static test/${test}.lua || die "test $test failed"
- done
-
- for test in ${negative}; do
- test/lua.static test/${test}.lua && die "test $test failed"
- done
-}
-
-pkg_postinst() {
- eselect lua set --if-unset "${PN}${SLOT}"
-
- if has_version "app-editor/emacs"; then
- if ! has_version "app-emacs/lua-mode"; then
- einfo "Install app-emacs/lua-mode for lua support for emacs"
- fi
- fi
-}
diff --git a/dev-lang/lua/lua-5.1.5-r200.ebuild b/dev-lang/lua/lua-5.1.5-r200.ebuild
new file mode 100644
index 000000000000..7041b3869d45
--- /dev/null
+++ b/dev-lang/lua/lua-5.1.5-r200.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit libtool optfeature
+
+DESCRIPTION="A powerful light-weight programming language designed for extending applications"
+HOMEPAGE="https://www.lua.org/"
+# tarballs produced from ${PV} branches in https://gitweb.gentoo.org/proj/lua-patches.git
+SRC_URI="https://dev.gentoo.org/~soap/distfiles/${P}.tar.xz"
+
+LICENSE="MIT"
+SLOT="5.1"
+KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
+IUSE="+deprecated readline"
+
+DEPEND="
+ >=app-eselect/eselect-lua-3
+ readline? ( sys-libs/readline:= )
+ !dev-lang/lua:0"
+RDEPEND="${DEPEND}"
+BDEPEND="virtual/pkgconfig"
+
+PATCHES=( "${FILESDIR}"/${SLOT} )
+
+src_prepare() {
+ ! use deprecated && PATCHES+=(
+ "${FILESDIR}"/${PN}-5.1.4-test.patch
+ )
+ default
+ elibtoolize
+}
+
+src_configure() {
+ econf \
+ $(use_enable deprecated) \
+ $(use_with readline)
+}
+
+src_install() {
+ default
+ find "${ED}" -name '*.la' -delete || die
+}
+
+pkg_postinst() {
+ eselect lua set --if-unset "${PN}${SLOT}"
+
+ optfeature "Lua support for Emacs" app-emacs/lua-mode
+}
diff --git a/dev-lang/lua/lua-5.1.5-r4.ebuild b/dev-lang/lua/lua-5.1.5-r4.ebuild
deleted file mode 100644
index e483e2022778..000000000000
--- a/dev-lang/lua/lua-5.1.5-r4.ebuild
+++ /dev/null
@@ -1,134 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-
-inherit eutils multilib multilib-minimal portability toolchain-funcs versionator
-
-DESCRIPTION="A powerful light-weight programming language designed for extending applications"
-HOMEPAGE="http://www.lua.org/"
-SRC_URI="http://www.lua.org/ftp/${P}.tar.gz"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-IUSE="+deprecated emacs readline static"
-
-RDEPEND="readline? ( >=sys-libs/readline-6.2_p5-r1:0=[${MULTILIB_USEDEP}] )"
-DEPEND="${RDEPEND}
- sys-devel/libtool"
-PDEPEND="emacs? ( app-emacs/lua-mode )"
-
-MULTILIB_WRAPPED_HEADERS=(
- /usr/include/luaconf.h
-)
-
-src_prepare() {
- local PATCH_PV=$(get_version_component_range 1-2)
-
- epatch "${FILESDIR}/${P}-fix_vararg_calls.patch"
-
- epatch "${FILESDIR}"/${PN}-${PATCH_PV}-make-r1.patch
- epatch "${FILESDIR}"/${PN}-${PATCH_PV}-module_paths.patch
-
- # use glibtool on Darwin (versus Apple libtool)
- if [[ ${CHOST} == *-darwin* ]] ; then
- sed -i -e '/LIBTOOL = /s:libtool:glibtool:' \
- Makefile src/Makefile || die
- fi
-
- #EPATCH_SOURCE="${FILESDIR}/${PV}" EPATCH_SUFFIX="upstream.patch" epatch
-
- # correct lua versioning
- sed -i -e 's/\(LIB_VERSION = \)6:1:1/\16:5:1/' src/Makefile || die
-
- sed -i -e 's:\(/README\)\("\):\1.gz\2:g' doc/readme.html || die
-
- if ! use deprecated ; then
- # patches from 5.1.4 still apply
- epatch "${FILESDIR}"/${PN}-5.1.4-deprecated.patch
- epatch "${FILESDIR}"/${PN}-5.1.4-test.patch
- fi
-
- if ! use readline ; then
- epatch "${FILESDIR}"/${PN}-${PATCH_PV}-readline.patch
- fi
-
- # Using dynamic linked lua is not recommended for performance
- # reasons. http://article.gmane.org/gmane.comp.lang.lua.general/18519
- # Mainly, this is of concern if your arch is poor with GPRs, like x86
- # Note that this only affects the interpreter binary (named lua), not the lua
- # compiler (built statically) nor the lua libraries (both shared and static
- # are installed)
- if use static ; then
- epatch "${FILESDIR}"/${PN}-${PATCH_PV}-make_static-r1.patch
- fi
-
- # custom Makefiles
- multilib_copy_sources
-}
-
-multilib_src_configure() {
- # We want packages to find our things...
- sed -i \
- -e 's:/usr/local:'${EPREFIX}'/usr:' \
- -e "s:\([/\"]\)\<lib\>:\1$(get_libdir):g" \
- etc/lua.pc src/luaconf.h || die
-}
-
-multilib_src_compile() {
- tc-export CC
- myflags=
- # what to link to liblua
- liblibs="-lm"
- liblibs="${liblibs} $(dlopen_lib)"
-
- # what to link to the executables
- mylibs=
- if use readline; then
- mylibs="-lreadline"
- fi
-
- cd src
- emake CC="${CC}" CFLAGS="-DLUA_USE_LINUX ${CFLAGS}" \
- RPATH="${EPREFIX}/usr/$(get_libdir)/" \
- LUA_LIBS="${mylibs}" \
- LIB_LIBS="${liblibs}" \
- V=${PV} \
- gentoo_all
-
- mv lua_test ../test/lua.static
-}
-
-multilib_src_install() {
- emake INSTALL_TOP="${ED}/usr" INSTALL_LIB="${ED}/usr/$(get_libdir)" \
- V=${PV} gentoo_install
-
- insinto /usr/$(get_libdir)/pkgconfig
- doins etc/lua.pc
-}
-
-multilib_src_install_all() {
- dodoc HISTORY README
- dohtml doc/*.html doc/*.png doc/*.css doc/*.gif
-
- doicon etc/lua.ico
-
- doman doc/lua.1 doc/luac.1
-}
-
-multilib_src_test() {
- local positive="bisect cf echo env factorial fib fibfor hello printf sieve
- sort trace-calls trace-globals"
- local negative="readonly"
- local test
-
- cd "${BUILD_DIR}" || die
- for test in ${positive}; do
- test/lua.static test/${test}.lua || die "test $test failed"
- done
-
- for test in ${negative}; do
- test/lua.static test/${test}.lua && die "test $test failed"
- done
-}
diff --git a/dev-lang/lua/lua-5.2.4-r3.ebuild b/dev-lang/lua/lua-5.2.4-r3.ebuild
deleted file mode 100644
index 7b7c1c61f732..000000000000
--- a/dev-lang/lua/lua-5.2.4-r3.ebuild
+++ /dev/null
@@ -1,200 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-inherit autotools multilib multilib-minimal portability toolchain-funcs
-
-DESCRIPTION="A powerful light-weight programming language designed for extending applications"
-HOMEPAGE="https://www.lua.org/"
-TEST_PV="5.2.2" # no 5.2.3-specific release yet
-TEST_P="${PN}-${TEST_PV}-tests"
-SRC_URI="
- https://www.lua.org/ftp/${P}.tar.gz
- test? ( https://www.lua.org/tests/${TEST_P}.tar.gz )"
-
-LICENSE="MIT"
-SLOT="5.2"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-IUSE="+deprecated readline test test-complete"
-
-COMMON_DEPEND="
- >=app-eselect/eselect-lua-3
- readline? ( sys-libs/readline:0= )
- !dev-lang/lua:0"
-DEPEND="${COMMON_DEPEND}"
-RDEPEND="${COMMON_DEPEND}"
-BDEPEND="sys-devel/libtool"
-
-RESTRICT="!test? ( test )"
-
-MULTILIB_WRAPPED_HEADERS=(
- /usr/include/lua${SLOT}/luaconf.h
-)
-
-PATCHES=(
- "${FILESDIR}/lua-5.2.4-make.patch"
-)
-
-src_prepare() {
- default
- # use glibtool on Darwin (versus Apple libtool)
- if [[ ${CHOST} == *-darwin* ]] ; then
- sed -i -e '/LIBTOOL = /s:/libtool:/glibtool:' \
- Makefile src/Makefile || die
- fi
-
- # correct lua versioning
- sed -i -e 's/\(LIB_VERSION = \)6:1:1/\10:0:0/' src/Makefile || die
-
- sed -i -e 's:\(/README\)\("\):\1.gz\2:g' doc/readme.html || die
-
- if ! use readline ; then
- sed -i -e '/#define LUA_USE_READLINE/d' src/luaconf.h || die
- fi
-
- # Using dynamic linked lua is not recommended for performance
- # reasons. http://article.gmane.org/gmane.comp.lang.lua.general/18519
- # Mainly, this is of concern if your arch is poor with GPRs, like x86
- # Note that this only affects the interpreter binary (named lua), not the lua
- # compiler (built statically) nor the lua libraries.
-
- # upstream does not use libtool, but we do (see bug #336167)
- cp "${FILESDIR}/configure.in" "${S}/configure.ac" || die
- eautoreconf
-
- # custom Makefiles
- multilib_copy_sources
-}
-
-multilib_src_configure() {
- sed -i \
- -e 's:\(define LUA_ROOT\s*\).*:\1"'${EPREFIX}'/usr/":' \
- -e "s:\(define LUA_CDIR\s*LUA_ROOT \"\)lib:\1$(get_libdir):" \
- src/luaconf.h \
- || die "failed patching luaconf.h"
-
- econf
-}
-
-multilib_src_compile() {
- tc-export CC
-
- # what to link to liblua
- liblibs="-lm"
- liblibs="${liblibs} $(dlopen_lib)"
-
- # what to link to the executables
- mylibs=
- use readline && mylibs="-lreadline"
-
- cd src
-
- local myCFLAGS=""
- use deprecated && myCFLAGS="-DLUA_COMPAT_ALL"
-
- case "${CHOST}" in
- *-mingw*) : ;;
- *) myCFLAGS+=" -DLUA_USE_LINUX" ;;
- esac
-
- emake CC="${CC}" CFLAGS="${myCFLAGS} ${CFLAGS}" \
- SYSLDFLAGS="${LDFLAGS}" \
- RPATH="${EPREFIX}/usr/$(get_libdir)/" \
- LUA_LIBS="${mylibs}" \
- LIB_LIBS="${liblibs}" \
- V=$(ver_cut 1-2) \
- gentoo_all
-}
-
-multilib_src_install() {
- emake INSTALL_TOP="${ED}/usr" INSTALL_LIB="${ED}/usr/$(get_libdir)" \
- V=${SLOT} gentoo_install
-
- case $SLOT in
- 0)
- LIBNAME="lua"
- INCLUDEDIR_SUFFIX=''
- ;;
- *) LIBNAME="lua${SLOT}"
- INCLUDEDIR_SUFFIX="/lua${SLOT}"
- ;;
- esac
-
- # We want packages to find our things...
- # A slotted Lua uses different directories for headers & names for
- # libraries, and pkgconfig should reflect that.
- local PATCH_PV=$(ver_cut 1-2)
- cp "${FILESDIR}/lua.pc" "${WORKDIR}" || die
- sed -r -i \
- -e "/^INSTALL_INC=/s,(/include)$,\1/lua${SLOT}," \
- -e "s:^prefix= :prefix= ${EPREFIX}:" \
- -e "s:^V=.*:V= ${PATCH_PV}:" \
- -e "s:^R=.*:R= ${PV}:" \
- -e "s:/,lib,:/$(get_libdir):g" \
- -e "/^Libs:/s:( )(-llua)($| ):\1-l${LIBNAME}\3:" \
- -e "/^includedir=/s:include$:include${INCLUDEDIR_SUFFIX}:" \
- "${WORKDIR}/lua.pc" || die
-
- insinto "/usr/$(get_libdir)/pkgconfig"
- newins "${WORKDIR}/lua.pc" "lua${SLOT}.pc"
- # Copy Debian's symlink support:
- # https://salsa.debian.org/lua-team/lua5.3/blob/master/debian/rules#L19
- # FreeBSD calls the pkgconfig 'lua-5.3.pc'
- # Older systems called it 'lua53.pc'
- dosym "lua${SLOT}.pc" "/usr/$(get_libdir)/pkgconfig/lua-${SLOT}.pc"
- dosym "lua${SLOT}.pc" "/usr/$(get_libdir)/pkgconfig/lua${SLOT/.}.pc"
-}
-
-multilib_src_install_all() {
- DOCS="README"
- HTML_DOCS="doc/*.html doc/*.png doc/*.css doc/*.gif"
- einstalldocs
- newman doc/lua.1 lua${SLOT}.1
- newman doc/luac.1 luac${SLOT}.1
- find "${ED}" -name '*.la' -delete || die
- find "${ED}" -name 'liblua*.a' -delete || die
-}
-
-# Makefile contains a dummy target that doesn't do tests
-# but causes issues with slotted lua (bug #510360)
-src_test() {
- debug-print-function ${FUNCNAME} "$@"
- cd "${WORKDIR}/lua-${TEST_PV}-tests" || die
- # https://www.lua.org/tests/
- # There are two sets:
- # basic
- # complete.
- #
- # The basic subset is selected by passing -e'_U=true'
- # The complete set is noted to contain tests that may consume too much memory or have non-portable tests.
- # attrib.lua for example needs some multilib customization (have to compile the stuff in libs/ for each ABI)
- TEST_OPTS="$(usex test-complete '' '-e_U=true')"
- TEST_MARKER="${T}/test.failed"
- rm -f "${TEST_MARKER}"
-
- # If we are failing, set the marker file, and only check it after done all ABIs
- abi_src_test() {
- debug-print-function ${FUNCNAME} "$@"
- TEST_LOG="${T}/test.${MULTIBUILD_ID}.log"
- eval "${BUILD_DIR}"/src/lua${SLOT} ${TEST_OPTS} all.lua 2>&1 | tee "${TEST_LOG}" || die
- grep -sq -e "final OK" "${TEST_LOG}" || echo "FAIL ${MULTIBUILD_ID}" >>"${TEST_MARKER}"
- return 0
- }
-
- multilib_foreach_abi abi_src_test
-
- if [ -e "${TEST_MARKER}" ]; then
- cat "${TEST_MARKER}"
- die "Tests failed"
- fi
-}
-
-pkg_postinst() {
- eselect lua set --if-unset "${PN}${SLOT}"
-
- if has_version "app-editor/emacs"; then
- if ! has_version "app-emacs/lua-mode"; then
- einfo "Install app-emacs/lua-mode for lua support for emacs"
- fi
- fi
-}
diff --git a/dev-lang/lua/lua-5.3.6-r102.ebuild b/dev-lang/lua/lua-5.3.6-r102.ebuild
new file mode 100644
index 000000000000..db6f23a4a9ac
--- /dev/null
+++ b/dev-lang/lua/lua-5.3.6-r102.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit flag-o-matic libtool optfeature
+
+DESCRIPTION="A powerful light-weight programming language designed for extending applications"
+HOMEPAGE="https://www.lua.org/"
+# tarballs produced from ${PV} branches in https://gitweb.gentoo.org/proj/lua-patches.git
+SRC_URI="https://dev.gentoo.org/~soap/distfiles/${P}.tar.xz"
+
+LICENSE="MIT"
+SLOT="5.3"
+KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
+IUSE="+deprecated readline"
+
+DEPEND="
+ >=app-eselect/eselect-lua-3
+ readline? ( sys-libs/readline:= )
+ !dev-lang/lua:0"
+RDEPEND="${DEPEND}"
+BDEPEND="virtual/pkgconfig"
+
+src_prepare() {
+ default
+ elibtoolize
+
+ if use elibc_musl; then
+ # locales on musl are non-functional (#834153)
+ # https://wiki.musl-libc.org/open-issues.html#Locale-limitations
+ sed -e 's|os.setlocale("pt_BR") or os.setlocale("ptb")|false|g' \
+ -i tests/literals.lua || die
+ fi
+}
+
+src_configure() {
+ use deprecated && append-cppflags -DLUA_COMPAT_5_1 -DLUA_COMPAT_5_2
+ econf $(use_with readline)
+}
+
+src_install() {
+ default
+ find "${ED}" -name '*.la' -delete || die
+}
+
+pkg_postinst() {
+ eselect lua set --if-unset "${PN}${SLOT}"
+
+ optfeature "Lua support for Emacs" app-emacs/lua-mode
+}
diff --git a/dev-lang/lua/lua-5.3.6-r2.ebuild b/dev-lang/lua/lua-5.3.6-r2.ebuild
deleted file mode 100644
index c47b745cd1cb..000000000000
--- a/dev-lang/lua/lua-5.3.6-r2.ebuild
+++ /dev/null
@@ -1,200 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-inherit autotools multilib multilib-minimal portability toolchain-funcs
-
-DESCRIPTION="A powerful light-weight programming language designed for extending applications"
-HOMEPAGE="https://www.lua.org/"
-TEST_PV="5.3.4"
-TEST_P="${PN}-${TEST_PV}-tests"
-SRC_URI="
- https://www.lua.org/ftp/${P}.tar.gz
- test? ( https://www.lua.org/tests/${TEST_P}.tar.gz )"
-
-LICENSE="MIT"
-SLOT="5.3"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-IUSE="+deprecated readline test test-complete"
-
-COMMON_DEPEND="
- >=app-eselect/eselect-lua-3
- readline? ( sys-libs/readline:0= )
- !dev-lang/lua:0"
-DEPEND="${COMMON_DEPEND}"
-RDEPEND="${COMMON_DEPEND}"
-BDEPEND="sys-devel/libtool"
-
-RESTRICT="!test? ( test )"
-
-MULTILIB_WRAPPED_HEADERS=(
- /usr/include/lua${SLOT}/luaconf.h
-)
-
-PATCHES=(
- "${FILESDIR}/lua-5.3.6-make.patch"
-)
-
-src_prepare() {
- default
- # use glibtool on Darwin (versus Apple libtool)
- if [[ ${CHOST} == *-darwin* ]] ; then
- sed -i -e '/LIBTOOL = /s:/libtool:/glibtool:' \
- Makefile src/Makefile || die
- fi
-
- # correct lua versioning
- sed -i -e 's/\(LIB_VERSION = \)6:1:1/\10:0:0/' src/Makefile || die
-
- sed -i -e 's:\(/README\)\("\):\1.gz\2:g' doc/readme.html || die
-
- if ! use readline ; then
- sed -i -e '/#define LUA_USE_READLINE/d' src/luaconf.h || die
- fi
-
- # Using dynamic linked lua is not recommended for performance
- # reasons. http://article.gmane.org/gmane.comp.lang.lua.general/18519
- # Mainly, this is of concern if your arch is poor with GPRs, like x86
- # Note that this only affects the interpreter binary (named lua), not the lua
- # compiler (built statically) nor the lua libraries.
-
- # upstream does not use libtool, but we do (see bug #336167)
- cp "${FILESDIR}/configure.in" "${S}/configure.ac" || die
- eautoreconf
-
- # custom Makefiles
- multilib_copy_sources
-}
-
-multilib_src_configure() {
- sed -i \
- -e 's:\(define LUA_ROOT\s*\).*:\1"'${EPREFIX}'/usr/":' \
- -e "s:\(define LUA_CDIR\s*LUA_ROOT \"\)lib:\1$(get_libdir):" \
- src/luaconf.h \
- || die "failed patching luaconf.h"
-
- econf
-}
-
-multilib_src_compile() {
- tc-export CC
-
- # what to link to liblua
- liblibs="-lm"
- liblibs="${liblibs} $(dlopen_lib)"
-
- # what to link to the executables
- mylibs=
- use readline && mylibs="-lreadline"
-
- cd src
-
- local myCFLAGS=""
- use deprecated && myCFLAGS="-DLUA_COMPAT_5_1 -DLUA_COMPAT_5_2"
-
- case "${CHOST}" in
- *-mingw*) : ;;
- *) myCFLAGS+=" -DLUA_USE_LINUX" ;;
- esac
-
- emake CC="${CC}" CFLAGS="${myCFLAGS} ${CFLAGS}" \
- SYSLDFLAGS="${LDFLAGS}" \
- RPATH="${EPREFIX}/usr/$(get_libdir)/" \
- LUA_LIBS="${mylibs}" \
- LIB_LIBS="${liblibs}" \
- V=$(ver_cut 1-2) \
- gentoo_all
-}
-
-multilib_src_install() {
- emake INSTALL_TOP="${ED}/usr" INSTALL_LIB="${ED}/usr/$(get_libdir)" \
- V=${SLOT} gentoo_install
-
- case $SLOT in
- 0)
- LIBNAME="lua"
- INCLUDEDIR_SUFFIX=''
- ;;
- *) LIBNAME="lua${SLOT}"
- INCLUDEDIR_SUFFIX="/lua${SLOT}"
- ;;
- esac
-
- # We want packages to find our things...
- # A slotted Lua uses different directories for headers & names for
- # libraries, and pkgconfig should reflect that.
- local PATCH_PV=$(ver_cut 1-2)
- cp "${FILESDIR}/lua.pc" "${WORKDIR}" || die
- sed -r -i \
- -e "/^INSTALL_INC=/s,(/include)$,\1/lua${SLOT}," \
- -e "s:^prefix= :prefix= ${EPREFIX}:" \
- -e "s:^V=.*:V= ${PATCH_PV}:" \
- -e "s:^R=.*:R= ${PV}:" \
- -e "s:/,lib,:/$(get_libdir):g" \
- -e "/^Libs:/s:( )(-llua)($| ):\1-l${LIBNAME}\3:" \
- -e "/^includedir=/s:include$:include${INCLUDEDIR_SUFFIX}:" \
- "${WORKDIR}/lua.pc" || die
-
- insinto "/usr/$(get_libdir)/pkgconfig"
- newins "${WORKDIR}/lua.pc" "lua${SLOT}.pc"
- # Copy Debian's symlink support:
- # https://salsa.debian.org/lua-team/lua5.3/blob/master/debian/rules#L19
- # FreeBSD calls the pkgconfig 'lua-5.3.pc'
- # Older systems called it 'lua53.pc'
- dosym "lua${SLOT}.pc" "/usr/$(get_libdir)/pkgconfig/lua-${SLOT}.pc"
- dosym "lua${SLOT}.pc" "/usr/$(get_libdir)/pkgconfig/lua${SLOT/.}.pc"
-}
-
-multilib_src_install_all() {
- DOCS="README"
- HTML_DOCS="doc/*.html doc/*.png doc/*.css doc/*.gif"
- einstalldocs
- newman doc/lua.1 lua${SLOT}.1
- newman doc/luac.1 luac${SLOT}.1
- find "${ED}" -name '*.la' -delete || die
- find "${ED}" -name 'liblua*.a' -delete || die
-}
-
-# Makefile contains a dummy target that doesn't do tests
-# but causes issues with slotted lua (bug #510360)
-src_test() {
- debug-print-function ${FUNCNAME} "$@"
- cd "${WORKDIR}/lua-${TEST_PV}-tests" || die
- # https://www.lua.org/tests/
- # There are two sets:
- # basic
- # complete.
- #
- # The basic subset is selected by passing -e'_U=true'
- # The complete set is noted to contain tests that may consume too much memory or have non-portable tests.
- # attrib.lua for example needs some multilib customization (have to compile the stuff in libs/ for each ABI)
- TEST_OPTS="$(usex test-complete '' '-e_U=true')"
- TEST_MARKER="${T}/test.failed"
- rm -f "${TEST_MARKER}"
-
- # If we are failing, set the marker file, and only check it after done all ABIs
- abi_src_test() {
- debug-print-function ${FUNCNAME} "$@"
- TEST_LOG="${T}/test.${MULTIBUILD_ID}.log"
- eval "${BUILD_DIR}"/src/lua${SLOT} ${TEST_OPTS} all.lua 2>&1 | tee "${TEST_LOG}" || die
- grep -sq -e "final OK" "${TEST_LOG}" || echo "FAIL ${MULTIBUILD_ID}" >>"${TEST_MARKER}"
- return 0
- }
-
- multilib_foreach_abi abi_src_test
-
- if [ -e "${TEST_MARKER}" ]; then
- cat "${TEST_MARKER}"
- die "Tests failed"
- fi
-}
-
-pkg_postinst() {
- eselect lua set --if-unset "${PN}${SLOT}"
-
- if has_version "app-editor/emacs"; then
- if ! has_version "app-emacs/lua-mode"; then
- einfo "Install app-emacs/lua-mode for lua support for emacs"
- fi
- fi
-}
diff --git a/dev-lang/lua/lua-5.4.2-r1.ebuild b/dev-lang/lua/lua-5.4.2-r1.ebuild
deleted file mode 100644
index 3840219215a7..000000000000
--- a/dev-lang/lua/lua-5.4.2-r1.ebuild
+++ /dev/null
@@ -1,197 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-inherit autotools multilib multilib-minimal portability toolchain-funcs
-
-DESCRIPTION="A powerful light-weight programming language designed for extending applications"
-HOMEPAGE="https://www.lua.org/"
-TEST_PV="5.4.2"
-TEST_P="${PN}-${TEST_PV}-tests"
-SRC_URI="
- https://www.lua.org/ftp/${P}.tar.gz
- test? ( https://www.lua.org/tests/${TEST_P}.tar.gz )"
-
-LICENSE="MIT"
-SLOT="5.4"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-IUSE="+deprecated readline test test-complete"
-
-COMMON_DEPEND="
- >=app-eselect/eselect-lua-3
- readline? ( sys-libs/readline:0= )
- !dev-lang/lua:0"
-DEPEND="${COMMON_DEPEND}"
-RDEPEND="${COMMON_DEPEND}"
-BDEPEND="sys-devel/libtool"
-
-RESTRICT="!test? ( test )"
-
-MULTILIB_WRAPPED_HEADERS=(
- /usr/include/lua${SLOT}/luaconf.h
-)
-
-PATCHES=(
- "${FILESDIR}"/lua-5.4.2-make.patch
-)
-
-src_prepare() {
- default
- # use glibtool on Darwin (versus Apple libtool)
- if [[ ${CHOST} == *-darwin* ]] ; then
- sed -i -e '/LIBTOOL = /s:/libtool:/glibtool:' \
- Makefile src/Makefile || die
- fi
-
- # correct lua versioning
- sed -i -e 's/\(LIB_VERSION = \)6:1:1/\10:0:0/' src/Makefile || die
-
- sed -i -e 's:\(/README\)\("\):\1.gz\2:g' doc/readme.html || die
-
- # Using dynamic linked lua is not recommended for performance
- # reasons. http://article.gmane.org/gmane.comp.lang.lua.general/18519
- # Mainly, this is of concern if your arch is poor with GPRs, like x86
- # Note that this only affects the interpreter binary (named lua), not the lua
- # compiler (built statically) nor the lua libraries.
-
- # upstream does not use libtool, but we do (see bug #336167)
- cp "${FILESDIR}/configure.in" "${S}/configure.ac" || die
- eautoreconf
-
- # custom Makefiles
- multilib_copy_sources
-}
-
-multilib_src_configure() {
- sed -i \
- -e 's:\(define LUA_ROOT\s*\).*:\1"'${EPREFIX}'/usr/":' \
- -e "s:\(define LUA_CDIR\s*LUA_ROOT \"\)lib:\1$(get_libdir):" \
- src/luaconf.h \
- || die "failed patching luaconf.h"
-
- econf
-}
-
-multilib_src_compile() {
- tc-export CC
-
- # what to link to liblua
- liblibs="-lm"
- liblibs="${liblibs} $(dlopen_lib)"
-
- # what to link to the executables
- mylibs=
- use readline && mylibs="-lreadline"
-
- cd src
-
- local myCFLAGS=""
- use deprecated && myCFLAGS+="-DLUA_COMPAT_5_3 "
- use readline && myCFLAGS+="-DLUA_USE_READLINE "
-
- case "${CHOST}" in
- *-mingw*) : ;;
- *) myCFLAGS+="-DLUA_USE_LINUX " ;;
- esac
-
- emake CC="${CC}" CFLAGS="${myCFLAGS} ${CFLAGS}" \
- SYSLDFLAGS="${LDFLAGS}" \
- RPATH="${EPREFIX}/usr/$(get_libdir)/" \
- LUA_LIBS="${mylibs}" \
- LIB_LIBS="${liblibs}" \
- V=$(ver_cut 1-2) \
- gentoo_all
-}
-
-multilib_src_install() {
- emake INSTALL_TOP="${ED}/usr" INSTALL_LIB="${ED}/usr/$(get_libdir)" \
- V=${SLOT} gentoo_install
-
- case $SLOT in
- 0)
- LIBNAME="lua"
- INCLUDEDIR_SUFFIX=''
- ;;
- *) LIBNAME="lua${SLOT}"
- INCLUDEDIR_SUFFIX="/lua${SLOT}"
- ;;
- esac
-
- # We want packages to find our things...
- # A slotted Lua uses different directories for headers & names for
- # libraries, and pkgconfig should reflect that.
- local PATCH_PV=$(ver_cut 1-2)
- cp "${FILESDIR}/lua.pc" "${WORKDIR}" || die
- sed -r -i \
- -e "/^INSTALL_INC=/s,(/include)$,\1/lua${SLOT}," \
- -e "s:^prefix= :prefix= ${EPREFIX}:" \
- -e "s:^V=.*:V= ${PATCH_PV}:" \
- -e "s:^R=.*:R= ${PV}:" \
- -e "s:/,lib,:/$(get_libdir):g" \
- -e "/^Libs:/s:( )(-llua)($| ):\1-l${LIBNAME}\3:" \
- -e "/^includedir=/s:include$:include${INCLUDEDIR_SUFFIX}:" \
- "${WORKDIR}/lua.pc" || die
-
- insinto "/usr/$(get_libdir)/pkgconfig"
- newins "${WORKDIR}/lua.pc" "lua${SLOT}.pc"
- # Copy Debian's symlink support:
- # https://salsa.debian.org/lua-team/lua5.3/blob/master/debian/rules#L19
- # FreeBSD calls the pkgconfig 'lua-5.3.pc'
- # Older systems called it 'lua53.pc'
- dosym "lua${SLOT}.pc" "/usr/$(get_libdir)/pkgconfig/lua-${SLOT}.pc"
- dosym "lua${SLOT}.pc" "/usr/$(get_libdir)/pkgconfig/lua${SLOT/.}.pc"
-}
-
-multilib_src_install_all() {
- DOCS="README"
- HTML_DOCS="doc/*.html doc/*.png doc/*.css doc/*.gif"
- einstalldocs
- newman doc/lua.1 lua${SLOT}.1
- newman doc/luac.1 luac${SLOT}.1
- find "${ED}" -name '*.la' -delete || die
- find "${ED}" -name 'liblua*.a' -delete || die
-}
-
-# Makefile contains a dummy target that doesn't do tests
-# but causes issues with slotted lua (bug #510360)
-src_test() {
- debug-print-function ${FUNCNAME} "$@"
- cd "${WORKDIR}/lua-${TEST_PV}-tests" || die
- # https://www.lua.org/tests/
- # There are two sets:
- # basic
- # complete.
- #
- # The basic subset is selected by passing -e'_U=true'
- # The complete set is noted to contain tests that may consume too much memory or have non-portable tests.
- # attrib.lua for example needs some multilib customization (have to compile the stuff in libs/ for each ABI)
- TEST_OPTS="$(usex test-complete '' '-e_U=true')"
- TEST_MARKER="${T}/test.failed"
- rm -f "${TEST_MARKER}"
-
- # If we are failing, set the marker file, and only check it after done all ABIs
- abi_src_test() {
- debug-print-function ${FUNCNAME} "$@"
- TEST_LOG="${T}/test.${MULTIBUILD_ID}.log"
- eval "${BUILD_DIR}"/src/lua${SLOT} ${TEST_OPTS} all.lua 2>&1 | tee "${TEST_LOG}" || die
- grep -sq -e "final OK" "${TEST_LOG}" || echo "FAIL ${MULTIBUILD_ID}" >>"${TEST_MARKER}"
- return 0
- }
-
- multilib_foreach_abi abi_src_test
-
- if [ -e "${TEST_MARKER}" ]; then
- cat "${TEST_MARKER}"
- die "Tests failed"
- fi
-}
-
-pkg_postinst() {
- eselect lua set --if-unset "${PN}${SLOT}"
-
- if has_version "app-editor/emacs"; then
- if ! has_version "app-emacs/lua-mode"; then
- einfo "Install app-emacs/lua-mode for lua support for emacs"
- fi
- fi
-}
diff --git a/dev-lang/lua/lua-5.4.6.ebuild b/dev-lang/lua/lua-5.4.6.ebuild
new file mode 100644
index 000000000000..9ec3e85313e3
--- /dev/null
+++ b/dev-lang/lua/lua-5.4.6.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit flag-o-matic libtool optfeature
+
+DESCRIPTION="A powerful light-weight programming language designed for extending applications"
+HOMEPAGE="https://www.lua.org/"
+# tarballs produced from ${PV} branches in https://gitweb.gentoo.org/proj/lua-patches.git
+SRC_URI="https://dev.gentoo.org/~soap/distfiles/${P}.tar.xz"
+
+LICENSE="MIT"
+SLOT="5.4"
+KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
+IUSE="+deprecated readline"
+
+DEPEND="
+ >=app-eselect/eselect-lua-3
+ readline? ( sys-libs/readline:= )
+ !dev-lang/lua:0"
+RDEPEND="${DEPEND}"
+BDEPEND="virtual/pkgconfig"
+
+PATCHES=(
+ # Backported variant of upstream patch to fix sparc tests, bug #914562
+ "${FILESDIR}"/${PN}-5.4.6-sparc-tests.patch
+)
+
+src_prepare() {
+ default
+ elibtoolize
+
+ if use elibc_musl; then
+ # locales on musl are non-functional (#834153)
+ # https://wiki.musl-libc.org/open-issues.html#Locale-limitations
+ sed -e 's|os.setlocale("pt_BR") or os.setlocale("ptb")|false|g' \
+ -i tests/literals.lua || die
+ fi
+}
+
+src_configure() {
+ use deprecated && append-cppflags -DLUA_COMPAT_5_3
+ econf $(use_with readline)
+}
+
+src_install() {
+ default
+ find "${ED}" -name '*.la' -delete || die
+}
+
+pkg_postinst() {
+ eselect lua set --if-unset "${PN}${SLOT}"
+
+ optfeature "Lua support for Emacs" app-emacs/lua-mode
+}
diff --git a/dev-lang/lua/metadata.xml b/dev-lang/lua/metadata.xml
index 0ce90a652d2d..9237282a3ce5 100644
--- a/dev-lang/lua/metadata.xml
+++ b/dev-lang/lua/metadata.xml
@@ -1,16 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
-<maintainer type="person">
- <email>williamh@gentoo.org</email>
- <name>William Hubbs</name>
-</maintainer>
-<maintainer type="person">
- <email>robbat2@gentoo.org</email>
- <name>Robin H. Johnson</name>
-</maintainer>
-<use>
- <flag name="deprecated">make deprecated data structures/routines available</flag>
- <flag name="test-complete">Run the complete (non-portable) testsuite</flag>
-</use>
+ <maintainer type="person">
+ <email>williamh@gentoo.org</email>
+ <name>William Hubbs</name>
+ </maintainer>
+ <maintainer type="person">
+ <email>robbat2@gentoo.org</email>
+ <name>Robin H. Johnson</name>
+ </maintainer>
+ <use>
+ <flag name="deprecated">make deprecated data structures/routines available</flag>
+ </use>
+ <upstream>
+ <remote-id type="github">lua/lua</remote-id>
+ </upstream>
</pkgmetadata>
diff --git a/dev-lang/luajit/Manifest b/dev-lang/luajit/Manifest
index 4941ba698e38..9b0d30a48afc 100644
--- a/dev-lang/luajit/Manifest
+++ b/dev-lang/luajit/Manifest
@@ -1,2 +1,2 @@
-DIST LuaJIT-2.0.5.tar.gz 849845 BLAKE2B 961c8622e19b0e66a76a875cb46ad149cb2559b5af41f360dc41dd0d6bb924583e6477dd1329f67c2ac6ea4b8dc42c5e2f4d63ea49400aba4d9e7c7e85e4b085 SHA512 2636675602b4a060b0571c05220db2061dd2f38568e35b2be346a0f5e3128d87057d11d3d0d7567d8cc4e0817b5e4cf2c52a17a48065520962b157816465a9fe
-DIST LuaJIT-2.1.0-beta3.tar.gz 1025180 BLAKE2B ac3d12e25bd9946ba41aed6672c66884e7256e6be99d7ee8d1260d697453c966b24d60387f278f47233bad44cda61085c9059e6f62c0bc7cfdaaefde282346c5 SHA512 c44e967a0f671ed32b55aee810bc8b3b63737a2d7363b8984ae1949b24f98dbb3f9be7c1e10239fdeb96a3e3c836f606342cbd61838cf9bcadb077443eb5bc12
+DIST luajit-2.1.0_beta3_p20220127.tar.gz 1072282 BLAKE2B e1d4834683b9ec16f0567f5de486262d84af145e3e27724d343c130288e90abff089fd5c7ff1275f9dde3cb5ae4f818f710020bd708c599972a14f1671381c2a SHA512 4c6ae7173bb91dc2d4d425da4afdab2520078e15ae4471c0cb99a255dd7544d6900b333efbbfc8f26ffbc4fcd8f1d2daf65671c59b5cafd6b0d53cb07b49d4ff
+DIST luajit-2.1.0_beta3_p20220613.tar.gz 1074088 BLAKE2B dbcfd4efcffb9b659a85af753017da5ca9b95e89a03dfe4e594513f2ad09b08e19a862527d41bd5adf8473afd022a471176ff5412975af47bdd785b9b9cfd43b SHA512 e4fc6ebde9cd9efc5e9936416526a0f581186bf0661eca60a50bcf5048312e02f66dc905308d63abda03380c33aa2e64ceddd87527d59a4488ae7f4aeaf36dfe
diff --git a/dev-lang/luajit/files/CVE-2020-15890.patch b/dev-lang/luajit/files/CVE-2020-15890.patch
deleted file mode 100644
index 751726571a05..000000000000
--- a/dev-lang/luajit/files/CVE-2020-15890.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-From 53f82e6e2e858a0a62fd1a2ff47e9866693382e6 Mon Sep 17 00:00:00 2001
-From: Mike Pall <mike>
-Date: Sun, 12 Jul 2020 14:30:34 +0200
-Subject: [PATCH] Fix frame traversal for __gc handler frames.
-
-Reported by Changochen.
----
- src/lj_err.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/lj_err.c b/src/lj_err.c
-index caa7487f2..e3e0c2eb7 100644
---- a/src/lj_err.c
-+++ b/src/lj_err.c
-@@ -529,6 +529,7 @@ static ptrdiff_t finderrfunc(lua_State *L)
- if (cframe_canyield(cf)) return 0;
- if (cframe_errfunc(cf) >= 0)
- return cframe_errfunc(cf);
-+ cf = cframe_prev(cf);
- frame = frame_prevd(frame);
- break;
- case FRAME_PCALL:
diff --git a/dev-lang/luajit/files/luajit-2-ldconfig.patch b/dev-lang/luajit/files/luajit-2-ldconfig.patch
deleted file mode 100644
index add449a60381..000000000000
--- a/dev-lang/luajit/files/luajit-2-ldconfig.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 18c9cf7d3788a8f7408df45df92fc4ae3bcc0d80 Mon Sep 17 00:00:00 2001
-From: Mike Pall <mike>
-Date: Sat, 25 Jan 2020 17:37:12 +0100
-Subject: [PATCH] Fix POSIX install with missing or incompatible ldconfig.
-
----
- Makefile | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index 07bc70faf..bff53f286 100644
---- a/Makefile
-+++ b/Makefile
-@@ -74,7 +74,7 @@ SYMLINK= ln -sf
- INSTALL_X= install -m 0755
- INSTALL_F= install -m 0644
- UNINSTALL= $(RM)
--LDCONFIG= ldconfig -n
-+LDCONFIG= ldconfig -n 2>/dev/null
- SED_PC= sed -e "s|^prefix=.*|prefix=$(PREFIX)|" \
- -e "s|^multilib=.*|multilib=$(MULTILIB)|"
-
-@@ -118,7 +118,7 @@ install: $(INSTALL_DEP)
- $(RM) $(INSTALL_TSYM) $(INSTALL_DYN) $(INSTALL_SHORT1) $(INSTALL_SHORT2)
- cd src && test -f $(FILE_SO) && \
- $(INSTALL_X) $(FILE_SO) $(INSTALL_DYN) && \
-- $(LDCONFIG) $(INSTALL_LIB) && \
-+ ( $(LDCONFIG) $(INSTALL_LIB) || : ) && \
- $(SYMLINK) $(INSTALL_SONAME) $(INSTALL_SHORT1) && \
- $(SYMLINK) $(INSTALL_SONAME) $(INSTALL_SHORT2) || :
- cd etc && $(INSTALL_F) $(FILE_MAN) $(INSTALL_MAN)
diff --git a/dev-lang/luajit/luajit-2.0.5-r3.ebuild b/dev-lang/luajit/luajit-2.0.5-r3.ebuild
deleted file mode 100644
index 5816d1feccfe..000000000000
--- a/dev-lang/luajit/luajit-2.0.5-r3.ebuild
+++ /dev/null
@@ -1,74 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit pax-utils toolchain-funcs
-
-MY_PV="$(ver_cut 1-3)"
-MY_P="LuaJIT-${MY_PV}"
-if [[ -n $(ver_cut 4) ]]; then
- HOTFIX="v${PV}"
- HOTFIX="${HOTFIX/_p/_hotfix}.patch"
-fi
-
-DESCRIPTION="Just-In-Time Compiler for the Lua programming language"
-HOMEPAGE="https://luajit.org/"
-SRC_URI="https://luajit.org/download/${MY_P}.tar.gz
- ${HOTFIX:+https://luajit.org/download/${HOTFIX}}"
-
-LICENSE="MIT"
-# this should probably be pkgmoved to 2.0 for sake of consistency.
-SLOT="2"
-KEYWORDS="amd64 arm ppc x86 ~amd64-linux ~x86-linux"
-IUSE="lua52compat static-libs"
-
-PATCHES=(
- "${FILESDIR}/${PN}-2-ldconfig.patch"
- "${FILESDIR}/CVE-2020-15890.patch"
-)
-
-S="${WORKDIR}/${MY_P}"
-
-src_prepare() {
- if [[ -n ${HOTFIX} ]]; then
- eapply "${DISTDIR}/${HOTFIX}"
- fi
- default
-}
-
-_emake() {
- emake \
- Q= \
- PREFIX="${EPREFIX}/usr" \
- MULTILIB="$(get_libdir)" \
- DESTDIR="${D}" \
- CFLAGS="" \
- LDFLAGS="" \
- HOST_CC="$(tc-getBUILD_CC)" \
- HOST_CFLAGS="${BUILD_CPPFLAGS} ${BUILD_CFLAGS}" \
- HOST_LDFLAGS="${BUILD_LDFLAGS}" \
- STATIC_CC="$(tc-getCC)" \
- DYNAMIC_CC="$(tc-getCC) -fPIC" \
- TARGET_LD="$(tc-getCC)" \
- TARGET_CFLAGS="${CPPFLAGS} ${CFLAGS}" \
- TARGET_LDFLAGS="${LDFLAGS}" \
- TARGET_AR="$(tc-getAR) rcus" \
- BUILDMODE="$(usex static-libs mixed dynamic)" \
- TARGET_STRIP="true" \
- INSTALL_LIB="${ED}/usr/$(get_libdir)" \
- "$@"
-}
-
-src_compile() {
- tc-export_build_env
- _emake XCFLAGS="$(usex lua52compat "-DLUAJIT_ENABLE_LUA52COMPAT" "")"
-}
-
-src_install() {
- _emake install
-
- pax-mark m "${ED}/usr/bin/luajit-${MY_PV}"
-
- HTML_DOCS="doc/." einstalldocs
-}
diff --git a/dev-lang/luajit/luajit-2.1.0_beta3-r2.ebuild b/dev-lang/luajit/luajit-2.1.0_beta3_p20220127-r2.ebuild
index ebfafe94fabf..ceef227070dc 100644
--- a/dev-lang/luajit/luajit-2.1.0_beta3-r2.ebuild
+++ b/dev-lang/luajit/luajit-2.1.0_beta3_p20220127-r2.ebuild
@@ -1,7 +1,16 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
+GIT_COMMIT=1d7b5029c5ba36870d25c67524034d452b761d27
+
+# Upstream don't make releases anymore and instead have a (broken) "rolling git tag"
+# model.
+#
+# https://github.com/LuaJIT/LuaJIT/issues/665#issuecomment-784452583
+# https://www.freelists.org/post/luajit/LuaJIT-uses-rolling-releases
+#
+# Regular snapshots should be made from the v2.1 branch.
inherit pax-utils toolchain-funcs
@@ -11,20 +20,16 @@ MY_P="LuaJIT-${MY_PV}"
DESCRIPTION="Just-In-Time Compiler for the Lua programming language"
HOMEPAGE="https://luajit.org/"
-SRC_URI="https://luajit.org/download/${MY_P}.tar.gz"
+# SRC_URI="https://luajit.org/download/${MY_P}.tar.gz"
+SRC_URI="https://github.com/LuaJIT/LuaJIT/archive/${GIT_COMMIT}.tar.gz -> ${P}.tar.gz"
LICENSE="MIT"
# this should probably be pkgmoved to 2.0 for sake of consistency.
-SLOT="2"
-KEYWORDS="~arm64"
+SLOT="2/${PV}"
+KEYWORDS="amd64 arm arm64 -hppa ppc -riscv -sparc x86 ~amd64-linux ~x86-linux"
IUSE="lua52compat static-libs"
-PATCHES=(
- "${FILESDIR}/${PN}-2-ldconfig.patch"
- "${FILESDIR}/CVE-2020-15890.patch"
-)
-
-S="${WORKDIR}/${MY_P}"
+S="${WORKDIR}/LuaJIT-${GIT_COMMIT}"
_emake() {
emake \
@@ -56,7 +61,7 @@ src_compile() {
src_install() {
_emake install
-
+ dosym luajit-2.1.0-beta3 /usr/bin/luajit
pax-mark m "${ED}/usr/bin/luajit-${MY_PV}"
HTML_DOCS="doc/." einstalldocs
diff --git a/dev-lang/luajit/luajit-2.1.0_beta3_p20220613.ebuild b/dev-lang/luajit/luajit-2.1.0_beta3_p20220613.ebuild
new file mode 100644
index 000000000000..01c4aca8c65c
--- /dev/null
+++ b/dev-lang/luajit/luajit-2.1.0_beta3_p20220613.ebuild
@@ -0,0 +1,82 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+GIT_COMMIT=0065cff7e0222c234b75a71e72b8883df5d000c2
+
+# Upstream don't make releases anymore and instead have a (broken) "rolling git tag"
+# model.
+#
+# https://github.com/LuaJIT/LuaJIT/issues/665#issuecomment-784452583
+# https://www.freelists.org/post/luajit/LuaJIT-uses-rolling-releases
+#
+# Regular snapshots should be made from the v2.1 branch.
+
+inherit pax-utils toolchain-funcs
+
+MY_PV="$(ver_cut 1-5)"
+MY_PV="${MY_PV/_beta/-beta}"
+MY_P="LuaJIT-${MY_PV}"
+
+DESCRIPTION="Just-In-Time Compiler for the Lua programming language"
+HOMEPAGE="https://luajit.org/"
+# SRC_URI="https://luajit.org/download/${MY_P}.tar.gz"
+SRC_URI="https://github.com/LuaJIT/LuaJIT/archive/${GIT_COMMIT}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+# this should probably be pkgmoved to 2.0 for sake of consistency.
+SLOT="2/${PV}"
+KEYWORDS="~amd64 ~arm ~arm64 -hppa ~mips ~ppc -riscv -sparc ~x86 ~amd64-linux ~x86-linux"
+IUSE="lua52compat static-libs"
+
+S="${WORKDIR}/LuaJIT-${GIT_COMMIT}"
+
+src_configure() {
+ tc-export_build_env
+
+ # You need to use a 32-bit toolchain to build for a 32-bit architecture.
+ # Some 64-bit toolchains (like amd64 and ppc64) usually have multilib
+ # enabled, allowing you to build in 32-bit with -m32. This won't work in all
+ # cases, but it will otherwise just break, so it's worth trying anyway. If
+ # you're trying to build for 64-bit from 32-bit, then you're screwed, sorry.
+ # See https://github.com/LuaJIT/LuaJIT/issues/664 for the upstream issue.
+ if tc-is-cross-compiler && [[ $(tc-get-build-ptr-size) != 4 && $(tc-get-ptr-size) == 4 ]]; then
+ BUILD_CFLAGS+=" -m32"
+ BUILD_LDFLAGS+=" -m32"
+ fi
+}
+
+_emake() {
+ emake \
+ Q= \
+ PREFIX="${EPREFIX}/usr" \
+ MULTILIB="$(get_libdir)" \
+ DESTDIR="${D}" \
+ CFLAGS="" \
+ LDFLAGS="" \
+ HOST_CC="$(tc-getBUILD_CC)" \
+ HOST_CFLAGS="${BUILD_CPPFLAGS} ${BUILD_CFLAGS}" \
+ HOST_LDFLAGS="${BUILD_LDFLAGS}" \
+ STATIC_CC="$(tc-getCC)" \
+ DYNAMIC_CC="$(tc-getCC) -fPIC" \
+ TARGET_LD="$(tc-getCC)" \
+ TARGET_CFLAGS="${CPPFLAGS} ${CFLAGS}" \
+ TARGET_LDFLAGS="${LDFLAGS}" \
+ TARGET_AR="$(tc-getAR) rcus" \
+ BUILDMODE="$(usex static-libs mixed dynamic)" \
+ TARGET_STRIP="true" \
+ INSTALL_LIB="${ED}/usr/$(get_libdir)" \
+ "$@"
+}
+
+src_compile() {
+ _emake XCFLAGS="$(usex lua52compat "-DLUAJIT_ENABLE_LUA52COMPAT" "")"
+}
+
+src_install() {
+ _emake install
+ dosym luajit-2.1.0-beta3 /usr/bin/luajit
+ pax-mark m "${ED}/usr/bin/luajit-${MY_PV}"
+
+ HTML_DOCS="doc/." einstalldocs
+}
diff --git a/dev-lang/luajit/metadata.xml b/dev-lang/luajit/metadata.xml
index ef8e19ce5906..6a8f2a1c704f 100644
--- a/dev-lang/luajit/metadata.xml
+++ b/dev-lang/luajit/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>williamh@gentoo.org</email>
@@ -11,4 +11,7 @@
from Lua 5.2 that are unlikely to break existing code.
</flag>
</use>
+ <upstream>
+ <remote-id type="github">LuaJIT/LuaJIT</remote-id>
+ </upstream>
</pkgmetadata>
diff --git a/dev-lang/luau/Manifest b/dev-lang/luau/Manifest
new file mode 100644
index 000000000000..630f70500166
--- /dev/null
+++ b/dev-lang/luau/Manifest
@@ -0,0 +1,2 @@
+DIST luau-0.613.tar.gz 1617826 BLAKE2B d7e9b898fe74d376f963ead6a1d410d1eb6832ca70ebfc7d840e4322b9bf9b8d585f0e2c8f1743f55d4d745a6be49df259489d7c85e96c9a4fdfa602dfadca30 SHA512 c118f35345dd030074a86283ae931f48e8ef18bf2a89efed8e516ce321a720c9b49a2211ff439832e6da994f65b87c7613e061845c0daeb9c93490f2fafc9f8b
+DIST luau-0.618.tar.gz 1672989 BLAKE2B ecd166a9562aa103d27e29154687548bce04e45c9810b4aa264fe6eb38e3c2077a9cd4c61f138af62c605580c477b382fd2612616a3638a5a708c3d315011a12 SHA512 9fb6aa39ff2ad92a90afefb77ede472a2fb8a99417a669a1e19774a5550ca79709c034f353b459780f07f406dcac1b83639fb4fcd31215d811df491851fc1a6c
diff --git a/dev-lang/luau/luau-0.613.ebuild b/dev-lang/luau/luau-0.613.ebuild
new file mode 100644
index 000000000000..ba40b86df707
--- /dev/null
+++ b/dev-lang/luau/luau-0.613.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+DESCRIPTION="Gradually typed embeddable scripting language derived from Lua"
+HOMEPAGE="https://luau-lang.org/
+ https://github.com/luau-lang/luau/"
+
+if [[ "${PV}" == *9999* ]] ; then
+ inherit git-r3
+
+ EGIT_REPO_URI="https://github.com/luau-lang/${PN}.git"
+else
+ SRC_URI="https://github.com/luau-lang/${PN}/archive/${PV}.tar.gz
+ -> ${P}.tar.gz"
+
+ KEYWORDS="amd64 ~x86"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+
+DOCS=( CONTRIBUTING.md README.md SECURITY.md )
+
+src_test() {
+ "${BUILD_DIR}/Luau.UnitTest" || die
+ "${BUILD_DIR}/Luau.Conformance" || die
+}
+
+src_install() {
+ exeinto /usr/bin
+ doexe "${BUILD_DIR}"/luau{,-analyze,-ast,-compile,-reduce}
+
+ einstalldocs
+}
diff --git a/dev-lang/luau/luau-0.618.ebuild b/dev-lang/luau/luau-0.618.ebuild
new file mode 100644
index 000000000000..ba40b86df707
--- /dev/null
+++ b/dev-lang/luau/luau-0.618.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+DESCRIPTION="Gradually typed embeddable scripting language derived from Lua"
+HOMEPAGE="https://luau-lang.org/
+ https://github.com/luau-lang/luau/"
+
+if [[ "${PV}" == *9999* ]] ; then
+ inherit git-r3
+
+ EGIT_REPO_URI="https://github.com/luau-lang/${PN}.git"
+else
+ SRC_URI="https://github.com/luau-lang/${PN}/archive/${PV}.tar.gz
+ -> ${P}.tar.gz"
+
+ KEYWORDS="amd64 ~x86"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+
+DOCS=( CONTRIBUTING.md README.md SECURITY.md )
+
+src_test() {
+ "${BUILD_DIR}/Luau.UnitTest" || die
+ "${BUILD_DIR}/Luau.Conformance" || die
+}
+
+src_install() {
+ exeinto /usr/bin
+ doexe "${BUILD_DIR}"/luau{,-analyze,-ast,-compile,-reduce}
+
+ einstalldocs
+}
diff --git a/dev-lang/luau/metadata.xml b/dev-lang/luau/metadata.xml
new file mode 100644
index 000000000000..18496a49c0ac
--- /dev/null
+++ b/dev-lang/luau/metadata.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+
+<pkgmetadata>
+ <maintainer type="person">
+ <email>xgqt@gentoo.org</email>
+ <name>Maciej Barć</name>
+ </maintainer>
+ <longdescription>
+ Luau is a fast, small, safe, gradually typed embeddable scripting language
+ derived from Lua. It is designed to be backwards compatible with Lua 5.1,
+ as well as incorporating some features from future Lua releases, but also
+ expands the feature set (most notably with type annotations). Luau is
+ largely implemented from scratch, with the language runtime being a very
+ heavily modified version of Lua 5.1 runtime, with completely rewritten
+ interpreter and other performance innovations. The runtime mostly preserves
+ Lua 5.1 API, so existing bindings should be more or less compatible with a
+ few caveats.
+ </longdescription>
+ <upstream>
+ <bugs-to>https://github.com/luau-lang/luau/issues/</bugs-to>
+ <remote-id type="github">luau-lang/luau</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-lang/maude/Manifest b/dev-lang/maude/Manifest
index bc759b1c6b72..5e04c25d9c5c 100644
--- a/dev-lang/maude/Manifest
+++ b/dev-lang/maude/Manifest
@@ -1,2 +1,4 @@
-DIST Maude-2.7.tar.gz 1663708 BLAKE2B 5fd87cbd7ef2f86f4a7095334fd996109c72caaed44a894138803b76220325400920654924cb8645ed846b4d997dd2cf827d489ef7c4eef73ee22cb4e6e5a5dc SHA512 eb5225a7ec75df5f79d1e9c0d78c33427c0cf07bea83dae9e559d6d4cfc85fb03985596daf0c9c8794b34859510482f93b855254c1a3c650ee7520a3530a2070
-DIST maude-2.6-extras.tar.xz 3157004 BLAKE2B d735366071194eb7fd22c11628672aba38cc8c7f4460e4ec8806e27c2e1416e1a2a5fa93efd01c305bf36e0ce799578688c5ac87b5459e979323df6f60305902 SHA512 0533f0f226057d2668052f360245f296d36129ec242ff0bfa91fada9db5bc347d276d3468c86fbac92f019f3a2f152c7cb4e58a7f1265c1fb5a8b1b496fac5cd
+DIST Full-Maude-3.1.zip 161211 BLAKE2B 2aad284e1f2bc6e701154bd72c6eff1433fd040fd0f97252485c954b5e1fb33f71555c5587ceec2f3f3e44c8d7b760c9f62f40f53577f19c4cc51a2159b01674 SHA512 fb0c0e30d3df830b60ece67c2fc5655c5e3f1377a269ce8acfc45fdfa0d42f3fe3fbf4038758b35598d82e7f47af5f24507b3ebe2a30dcb8722e61e6315248c3
+DIST Maude-3.1-manual-book-examples.zip 267629 BLAKE2B cb4c5d067b8b6787a575ec1e00bfdbfb846c787f4c48b207d9609db57c968acdd97f431110103aa16d764e8e1b59f0eb1f66df53d3b78562cf430f3a57b5541c SHA512 69980145a41afd49e4a2c77a596d7fa91ed8e5acca049d799cdb0f265d95f1c3215776edb3a3ae94d84309c94735c7a187f681c2a2d3aa2fe0a7563634d34efa
+DIST Maude-3.1-manual.pdf 2916925 BLAKE2B da7f0d5bef8bff2e1f1afecd4bc7d062992d6a27e5437f488a50d35bce144a3ddb029bed3271d9696a36e6ab13b5a4f815e1a257a81005eb65d2927526630a29 SHA512 8b4b9bff8d266fad7b42b37c79cd72e4b642483298631f35a52b8bd669f318654382232b0da62485dc198789215fd5a364b583320789754eac9159d4cc2689ca
+DIST Maude-3.1.tar.gz 2335693 BLAKE2B 3bc9744d95448e4dfc2f818944ab66dad84b026ad18a4324b25eafc82f6c2c637b81fa73d03da61ee7f3753bb3c650e1838b56c502c85c91e2507a697bcfbbc0 SHA512 34dba3c3b7eed48d0c82c6d5e4dade08bd11dc57b436f04e94842000809b9b6086f8077bccbfac0313e4a4f361b03c3ef3d56e6df6242ae42427dd674566a3bc
diff --git a/dev-lang/maude/files/maude-2.5.0-prll.patch b/dev-lang/maude/files/maude-2.5.0-prll.patch
deleted file mode 100644
index 5499af3eb764..000000000000
--- a/dev-lang/maude/files/maude-2.5.0-prll.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff --git a/src/Mixfix/Makefile.am b/src/Mixfix/Makefile.am
-index d811631..295f0c6 100644
---- a/src/Mixfix/Makefile.am
-+++ b/src/Mixfix/Makefile.am
-@@ -72,7 +72,7 @@ libmixfix_a_SOURCES = \
- EXTRA_libmixfix_a_SOURCES = \
- compiler.cc
-
--BUILT_SOURCES = surface.yy surface.cc surface.h lexer.cc
-+BUILT_SOURCES = surface.cc lexer.cc
- CLEANFILES = surface.yy surface.cc surface.h lexer.cc
-
- surface.yy: \
-@@ -87,7 +87,9 @@ surface.yy: \
- $(srcdir)/bottom.yy \
- > surface.yy
-
--surface.cc surface.h: surface.yy
-+surface.h: surface.yy
-+
-+surface.cc: surface.h
- $(BISON) -dv surface.yy -o surface.c
- mv surface.c surface.cc
-
diff --git a/dev-lang/maude/files/maude-2.7-bison-parse-param.patch b/dev-lang/maude/files/maude-2.7-bison-parse-param.patch
deleted file mode 100644
index 2aa77f01c4e8..000000000000
--- a/dev-lang/maude/files/maude-2.7-bison-parse-param.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-Author: Jakub Wilk <jwilk@debian.org>
-Last-Update: Tue, 20 May 2014 13:35:26 +0200
-Bug-Debian: http://bugs.debian.org/733407
-Description: this is quick and dirty patch to use %parse-param instead
- of deprecated YYPARSE_PARAM (and eventually removed in Bison 3.0).
- %parse-param was added in bison 1.875, over a decade ago, so no
- Build-Depends adjustments are needed. :-)
-
---- a/src/Mixfix/top.yy
-+++ b/src/Mixfix/top.yy
-@@ -24,6 +24,8 @@
- // Parser for Maude surface syntax.
- //
-
-+%parse-param {void* YYPARSE_PARAM}
-+
- %{
- #include <string>
- #include <stack>
-@@ -91,7 +93,7 @@ SyntaxContainer* oldSyntaxContainer = 0;
- Int64 number;
- Int64 number2;
-
--static void yyerror(char *s);
-+static void yyerror(void *, char *s);
-
- void cleanUpModuleExpression();
- void cleanUpParser();
---- a/src/Mixfix/bottom.yy
-+++ b/src/Mixfix/bottom.yy
-@@ -23,7 +23,7 @@
- %%
-
- static void
--yyerror(char *s)
-+yyerror(void *, char *s)
- {
- if (!(UserLevelRewritingContext::interrupted()))
- IssueWarning(LineNumber(lineNumber) << ": " << s);
diff --git a/dev-lang/maude/files/maude-3.1-prll.patch b/dev-lang/maude/files/maude-3.1-prll.patch
new file mode 100644
index 000000000000..22af2889913f
--- /dev/null
+++ b/dev-lang/maude/files/maude-3.1-prll.patch
@@ -0,0 +1,22 @@
+--- a/src/Mixfix/Makefile.am
++++ b/src/Mixfix/Makefile.am
+@@ -82,7 +82,7 @@
+ EXTRA_libmixfix_a_SOURCES = \
+ compiler.cc
+
+-BUILT_SOURCES = surface.yy surface.cc surface.h lexer.cc tokenizer.cc
++BUILT_SOURCES = surface.cc lexer.cc tokenizer.cc
+ CLEANFILES = surface.yy surface.cc surface.h lexer.cc tokenizer.cc
+
+ surface.yy: \
+@@ -97,7 +97,9 @@
+ $(srcdir)/bottom.yy \
+ > surface.yy
+
+-surface.cc surface.h: surface.yy
++surface.h: surface.yy
++
++surface.cc: surface.h
+ $(BISON) -dv surface.yy -o surface.c
+ mv surface.c surface.cc
+
diff --git a/dev-lang/maude/maude-2.7.ebuild b/dev-lang/maude/maude-2.7.ebuild
deleted file mode 100644
index 01957fb2a5e5..000000000000
--- a/dev-lang/maude/maude-2.7.ebuild
+++ /dev/null
@@ -1,58 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit autotools
-
-DESCRIPTION="High-level specification language for equational and logic programming"
-HOMEPAGE="http://maude.cs.uiuc.edu/"
-SRC_URI="
- http://maude.cs.illinois.edu/w/images/2/2d/${P^}.tar.gz
- https://dev.gentoo.org/~jlec/distfiles/${PN}-2.6-extras.tar.xz"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~amd64 ~ppc ~x86 ~amd64-linux ~x86-linux"
-IUSE="doc examples"
-
-RDEPEND="
- dev-libs/gmp:0=[cxx]
- dev-libs/libsigsegv
- dev-libs/libtecla
- sci-libs/buddy"
-DEPEND="${RDEPEND}
- sys-devel/bison
- sys-devel/flex"
-
-S="${WORKDIR}/${P^}"
-
-PATCHES=(
- "${FILESDIR}/${PN}-2.5.0-prll.patch"
- "${FILESDIR}/${PN}-2.6-search-datadir.patch"
- "${FILESDIR}/${PN}-2.7-bison-parse-param.patch"
- "${FILESDIR}/${PN}-2.7-AR.patch"
-)
-
-src_prepare() {
- default
- sed -i -e "s:/usr:${EPREFIX}/usr:g" src/Mixfix/global.hh || die
- eautoreconf
-}
-
-src_install() {
- default
-
- # install data and full maude
- insinto /usr/share/${PN}
- doins -r src/Main/*.maude
- doins "${WORKDIR}"/${PN}-2.6-extras/full-maude.maude
-
- # install docs and examples
- use doc && dodoc -r "${WORKDIR}"/${PN}-2.6-extras/pdfs/.
- if use examples; then
- docinto examples
- dodoc -r "${WORKDIR}"/${PN}-2.6-extras/{manual,primer}-examples
- docompress -x /usr/share/doc/${PF}/examples
- fi
-}
diff --git a/dev-lang/maude/maude-3.1-r1.ebuild b/dev-lang/maude/maude-3.1-r1.ebuild
new file mode 100644
index 000000000000..dbc9dab3347c
--- /dev/null
+++ b/dev-lang/maude/maude-3.1-r1.ebuild
@@ -0,0 +1,66 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+MY_P="${P^}"
+
+DESCRIPTION="High-level specification language for equational and logic programming"
+HOMEPAGE="https://maude.cs.uiuc.edu/"
+SRC_URI="
+ https://maude.cs.illinois.edu/w/images/d/d3/${MY_P}.tar.gz
+ https://maude.cs.illinois.edu/w/images/0/0a/Full-${MY_P}.zip
+ doc? ( https://maude.cs.illinois.edu/w/images/6/62/${MY_P}-manual.pdf )
+ examples? ( https://maude.cs.illinois.edu/w/images/4/4f/${MY_P}-manual-book-examples.zip )"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc examples"
+
+RDEPEND="
+ dev-libs/gmp:=[cxx(+)]
+ dev-libs/libtecla
+ sci-libs/buddy"
+DEPEND="${RDEPEND}"
+BDEPEND="app-arch/unzip
+ app-alternatives/yacc
+ app-alternatives/lex"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-2.6-search-datadir.patch"
+ "${FILESDIR}/${PN}-2.7-AR.patch"
+ "${FILESDIR}/${PN}-3.1-prll.patch"
+)
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+src_configure() {
+ local myconf=(
+ --datadir="${EPREFIX}/usr/share/${PN}"
+ --without-yices2
+ # Breaks glibc-2.34 support
+ --without-libsigsegv
+ )
+ econf "${myconf[@]}"
+}
+
+src_install() {
+ default
+
+ # install full maude
+ insinto /usr/share/${PN}
+ newins "${WORKDIR}"/full-maude${PV//./}.maude full-maude.maude
+
+ # install docs and examples
+ use doc && dodoc "${DISTDIR}"/${MY_P}-manual.pdf
+ if use examples; then
+ dodoc -r "${WORKDIR}"/examples
+ docompress -x /usr/share/doc/${PF}/examples
+ fi
+}
diff --git a/dev-lang/maude/metadata.xml b/dev-lang/maude/metadata.xml
index 2a557bd7618e..2f720265f903 100644
--- a/dev-lang/maude/metadata.xml
+++ b/dev-lang/maude/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>sci@gentoo.org</email>
diff --git a/dev-lang/mercury-extras/Manifest b/dev-lang/mercury-extras/Manifest
index e3dcc3fd7efb..7fd31befe526 100644
--- a/dev-lang/mercury-extras/Manifest
+++ b/dev-lang/mercury-extras/Manifest
@@ -1,2 +1,8 @@
DIST mercury-extras-20.06-gentoo-patchset-0.tar.gz 1093 BLAKE2B cd0087a7a878c303a610e0007b352deec2e54b8223af1fbdcdd5e1fec0a7d6b4533895ba4ec01d4f90734349535a4c16c69f4ec60495f5a7888f99e4580e3ce3 SHA512 abd74dee931a01085a75f45d2793109737662345bdc68f4cf25dd874b59726da6a5ec8acd84cc8f0957052eeb9e5a9e3502090a0688fbea817d05c6948728ecb
+DIST mercury-extras-20.06.1-gentoo-patchset-0.tar.gz 617 BLAKE2B e16a3887bd0927911e2062befa38119d0347e01eae08d21dcf185942648ce52a94890c26059d39b096f69d19227c2ed22e2d3ded0cc762ebfd1bcb702810f5ea SHA512 1274c08c7c02f6f5fa5183f42e958a8e469df38d8e693722134a24aa846d4f3a74dafa0dd4f9d11fbca58497ff6d714aa7456dc2fd516d8961bc1ba43f3b3b8c
+DIST mercury-extras-22.01-gentoo-patchset-0.tar.gz 436 BLAKE2B 2c1ff61b87e04777f3d3b66e7a6ae1c8e82e7caec413e2ed51eeb785b5dd8bc1773aa065219ccc58833b1c2aae3d481f531b94a48c215ce7eea2e0762948f946 SHA512 eac4615c951665150c6e6d2cc317d68be8e510aa9be663cadfe04b55d30fe8a0d17fae93a19d1e54556179618262ea4fdb6381e05aca278c4c516bc1f52656bd
+DIST mercury-extras-22.01.1-gentoo-patchset-1.tar.gz 824 BLAKE2B 677ab82f668f2e35cccf6eff0fc453fb5483941b5315891b1b02a2afb3216b59c86aa3712cdbc7382aa604ce7d1ac7cd8e32bb25c7643b8a3786bae09e987dbb SHA512 bb6ca63a9d4ceb71f7e2c07540301ca319a0163414b5d005251de4b8d4948fcd551b892e1520be0e95c845c31fd6953f2293f5fe52990af680b5bf9117a22e69
+DIST mercury-srcdist-20.06.1.tar.gz 47796261 BLAKE2B f282c6edb78e9090eb451585c65c9214927b94eaa5fcdf6f674aef6beb62eb65179f998bcc2e56c3c93b73dd1dc94973084eb8363bc05e334384096c9520d478 SHA512 94e901e5d3db39e3342bf2d6a2a74556a7b18b295c7e02669b487a81d41c72e572046ce1133d670ca6c1b8e246dd277439087efe8fb99b979a73555a101aa9a8
DIST mercury-srcdist-20.06.tar.gz 47768559 BLAKE2B f242aa2ef7da53aa2dfa054e4fee8646434d276f0748b014e33ea52d22f2a8a37e6fecaa20617f4943c4c1e7d8c179ed0603a344fde2dd58da98b2bacadf1a71 SHA512 b76bd22d8eb16242c68b614ff122ed7ee7535efef6c0ceb8cc798fee4c550bc41b6faff2135cea43b24c652b654bb35ae049656585d8e7bf3a1122d07cb1ecf4
+DIST mercury-srcdist-22.01.1.tar.gz 48956249 BLAKE2B 0f5a7662327f27c27a4d9e421f71afa58920f6232093452781124817ce5c34d1953a80a08b75e95101a7e2e88159b7d4ead08d25c67a99abcb908a9582af2bab SHA512 5fa49640307233ea0f641488e5ea526385e52833007a31469e083711b63925ca7568d7ad6e09301ddf7816384a080546bc4cf46b1422f974e008917d1aa4f37a
+DIST mercury-srcdist-22.01.tar.gz 48960609 BLAKE2B 4ac45251bc098c1465f4bc418501db152bfcf36a2e04bb9153a44c44ff2dff300545103c29551818e773728c5a61947c019997fcc2cb64900e538d5ef64c1b39 SHA512 35b3b1e9fd85062edea5263b304bfc965382d04353e5548d59211519ee222bb6a8e8c95cb03faa089062e39c90b2d1c4af7ca0d9eabbf3bb44872d461e10ff2d
diff --git a/dev-lang/mercury-extras/mercury-extras-20.06.1.ebuild b/dev-lang/mercury-extras/mercury-extras-20.06.1.ebuild
new file mode 100644
index 000000000000..6069ed489b0f
--- /dev/null
+++ b/dev-lang/mercury-extras/mercury-extras-20.06.1.ebuild
@@ -0,0 +1,307 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit multilib toolchain-funcs vcs-clean
+
+PATCHSET_VER="0"
+MY_P=mercury-srcdist-${PV}
+
+DESCRIPTION="Additional libraries and tools that are not part of the Mercury standard library"
+HOMEPAGE="https://www.mercurylang.org/index.html"
+SRC_URI="https://dl.mercurylang.org/release/${MY_P}.tar.gz
+ https://dev.gentoo.org/~keri/distfiles/mercury-extras/${P}-gentoo-patchset-${PATCHSET_VER}.tar.gz"
+
+LICENSE="GPL-2 LGPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+IUSE="cairo examples glut gmp iodbc ncurses odbc opengl ssl tk tommath X xml"
+REQUIRED_USE="?? ( odbc iodbc )"
+
+RDEPEND="
+ ~dev-lang/mercury-${PV}
+ cairo? ( >=x11-libs/cairo-1.10.0 )
+ gmp? ( dev-libs/gmp:0 )
+ glut? ( media-libs/freeglut )
+ odbc? ( dev-db/unixODBC )
+ iodbc? ( dev-db/libiodbc )
+ tommath? ( dev-libs/libtommath )
+ ncurses? ( sys-libs/ncurses:= )
+ opengl? (
+ virtual/opengl
+ virtual/glu
+ )
+ tk? (
+ dev-lang/tcl:0
+ dev-lang/tk:0
+ )
+ X? ( x11-libs/libX11 )"
+
+DEPEND="${RDEPEND}"
+
+BDEPEND="virtual/pkgconfig"
+
+S="${WORKDIR}"/${MY_P}/extras
+
+mercury_pkgs() {
+ echo "
+ align_right/align_right:bin:
+ base64/mercury_base64:lib:
+ cgi/mercury_www:lib:
+ complex_numbers/complex_numbers:lib:
+ $(use ncurses && echo \
+ curs/curs:lib:ncurses,panel curses/mcurses:lib:ncurses)
+ dynamic_linking/dl:lib:
+ error/error:bin:
+ fixed/fixed:lib:
+ $(use gmp && echo gmp_int/gmp_int:lib:)
+ $(use tommath && echo mp_int/mp_int:lib:libtommath)
+ $(use X && echo graphics/easyx/easyx:lib:x11)
+ $(use cairo && echo graphics/mercury_cairo/mercury_cairo:lib:cairo)
+ $(use glut && echo graphics/mercury_glut/mercury_glut:lib:freeglut)
+ $(use opengl && echo graphics/mercury_opengl/mercury_opengl:lib:gl,glu)
+ $(use tk && echo graphics/mercury_tcltk/mercury_tcltk:lib:tk)
+ lex/lex:lib:
+ lex/regex:lib:
+ moose/moose:bin:
+ net/net:lib:
+ net/echo:bin:
+ $(use ssl && echo mopenssl/mopenssl:lib:openssl)
+ $(use odbc && echo odbc/odbc:lib:odbc)
+ $(use iodbc && echo odbc/odbc:lib:libiodbc)
+ posix/posix:lib:
+ $(has_version dev-lang/mercury[trail] && echo \
+ references/global:lib:)
+ show_ops/show_ops:bin:
+ solver_types/library/any:lib:
+ $(use xml && echo xml/xml:lib:)"
+}
+
+mercury_pkg_setup() {
+ mercury_pkg=${1%%:*}
+ mercury_pkg_dir=${mercury_pkg%/*}
+ mercury_pkg_name=${mercury_pkg##*/}
+
+ mercury_pkg_atts=${1#*:}
+ mercury_pkg_type=${mercury_pkg_atts%%:*}
+ mercury_pkg_deps=${mercury_pkg_atts#*:}
+
+ cd "${S}"/${mercury_pkg_dir} || die
+
+ echo ">> Preparing Mercury package: ${mercury_pkg}"
+
+ echo "MCFLAGS += --libgrades-exclude java" \
+ >> "${S}"/${mercury_pkg_dir}/Mercury.options
+ echo "MCFLAGS += --libgrades-exclude erlang" \
+ >> "${S}"/${mercury_pkg_dir}/Mercury.options
+ echo "MCFLAGS += --libgrades-exclude csharp" \
+ >> "${S}"/${mercury_pkg_dir}/Mercury.options
+
+ if test -n "$mercury_pkg_deps"; then
+ echo "EXTRA_CFLAGS += $($(tc-getPKG_CONFIG) --cflags ${mercury_pkg_deps/,/ })" \
+ >> "${S}"/${mercury_pkg_dir}/Mercury.options
+ echo "EXTRA_LDFLAGS += $($(tc-getPKG_CONFIG) --libs ${mercury_pkg_deps/,/ })" \
+ >> "${S}"/${mercury_pkg_dir}/Mercury.options
+ fi
+
+ if test ${mercury_pkg_name} = dl; then
+ echo "EXTRA_LDFLAGS += -ldl" >> "${S}"/${mercury_pkg_dir}/Mercury.options
+ elif test ${mercury_pkg_name} = gmp_int; then
+ echo "EXTRA_LDFLAGS += -lgmp" >> "${S}"/${mercury_pkg_dir}/Mercury.options
+ elif test ${mercury_pkg_name} = mercury_tcltk; then
+ echo "EXTRA_CFLAGS += -DUSE_INTERP_RESULT" \
+ >> "${S}"/${mercury_pkg_dir}/Mercury.options
+ elif test ${mercury_pkg_name} = odbc && use odbc; then
+ echo "EXTRA_CFLAGS += -DMODBC_UNIX -DMODBC_MYSQL" \
+ >> "${S}"/${mercury_pkg_dir}/Mercury.options
+ elif test ${mercury_pkg_name} = odbc && use iodbc; then
+ echo "EXTRA_CFLAGS += -DMODBC_IODBC -DMODBC_MYSQL" \
+ >> "${S}"/${mercury_pkg_dir}/Mercury.options
+ fi
+}
+
+mercury_pkg_compile() {
+ mercury_pkg=${1%%:*}
+ mercury_pkg_dir=${mercury_pkg%/*}
+ mercury_pkg_name=${mercury_pkg##*/}
+
+ mercury_pkg_atts=${1#*:}
+ mercury_pkg_type=${mercury_pkg_atts%:*}
+
+ cd "${S}"/${mercury_pkg_dir} || die
+
+ echo ">> Compiling Mercury package: ${mercury_pkg}"
+
+ if test "${mercury_pkg_type}" = "bin"; then
+ mercury_mmc_target=${mercury_pkg_name}
+ else
+ mercury_mmc_target=lib${mercury_pkg_name}
+ fi
+
+ mmc -f *.m || die "mmc -f .m failed"
+
+ mmc \
+ --make \
+ --verbose-commands \
+ --no-strip \
+ --cflags "${CFLAGS}" \
+ --ld-flags "${LDFLAGS}" \
+ --ld-libflags "${LDFLAGS}" \
+ ${mercury_mmc_target} || die "mmc ${mercury_mmc_target} failed"
+}
+
+mercury_pkg_install() {
+ mercury_pkg=${1%%:*}
+ mercury_pkg_dir=${mercury_pkg%/*}
+ mercury_pkg_name=${mercury_pkg##*/}
+
+ mercury_pkg_atts=${1#*:}
+ mercury_pkg_type=${mercury_pkg_atts%:*}
+
+ cd "${S}"/${mercury_pkg_dir} || die
+
+ echo ">> Installing Mercury package: ${mercury_pkg}"
+
+ if test "${mercury_pkg_type}" = "bin"; then
+ into /usr/$(get_libdir)/mercury/extras
+ dobin ${mercury_pkg_name}
+ else
+ mmc \
+ --make \
+ --verbose-commands \
+ --no-strip \
+ --cflags "${CFLAGS}" \
+ --ld-flags "${LDFLAGS}" \
+ --ld-libflags "${LDFLAGS}" \
+ --install-prefix "${D}/usr/$(get_libdir)/mercury/extras" \
+ lib${mercury_pkg_name}.install || die "mmc lib${mercury_pkg_name}.install failed"
+ fi
+}
+
+src_prepare() {
+ cd "${WORKDIR}"/${MY_P}
+ if [[ -d "${WORKDIR}"/${PV} ]] ; then
+ eapply "${WORKDIR}"/${PV}
+ fi
+ eapply_user
+
+ cd "${S}"
+ for mercury_pkg in $(mercury_pkgs); do
+ mercury_pkg_setup ${mercury_pkg}
+ done
+
+ cp "${S}"/net/*.m "${S}"/mopenssl/ || die
+}
+
+src_compile() {
+ for mercury_pkg in $(mercury_pkgs); do
+ mercury_pkg_compile ${mercury_pkg}
+ done
+}
+
+src_install() {
+ for mercury_pkg in $(mercury_pkgs); do
+ mercury_pkg_install ${mercury_pkg}
+ done
+
+ cd "${S}"
+ dodoc README
+
+ if use examples; then
+ docinto samples/cgi
+ dodoc cgi/form_test.m
+
+ docinto samples/complex_numbers
+ dodoc complex_numbers/samples/*.m
+
+ if use ncurses; then
+ docinto samples/curs
+ dodoc curs/samples/*.m
+
+ docinto samples/curses
+ dodoc curses/sample/*.m
+ fi
+
+ docinto samples/dynamic_linking
+ dodoc dynamic_linking/{hello,dl_test}.m
+
+ docinto samples/gator
+ dodoc -r gator/*
+
+ if use gmp; then
+ docinto samples/gmp_int
+ dodoc gmp_int/gmp_int_test.m
+ fi
+
+ if use tommath; then
+ docinto samples/mp_int
+ dodoc mp_int/mp_int_test.m
+ fi
+
+ if use X; then
+ docinto samples/graphics
+ dodoc graphics/easyx/samples/*.m
+ fi
+
+ if use glut && use opengl; then
+ docinto samples/graphics
+ dodoc graphics/samples/gears/*.m
+ dodoc graphics/samples/maze/*.m
+ fi
+
+ if use tk; then
+ docinto samples/graphics
+ dodoc graphics/samples/calc/*.m
+ fi
+
+ if use opengl && use tk; then
+ docinto samples/graphics
+ dodoc graphics/samples/pent/*.m
+ fi
+
+ docinto samples/lex
+ dodoc lex/samples/*.m
+
+ docinto samples/log4m
+ dodoc log4m/*.m
+
+ docinto samples/monte
+ dodoc monte/*.m
+
+ docinto samples/moose
+ dodoc moose/samples/*
+
+ docinto samples/net
+ dodoc net/test_lookups.m
+
+ if use odbc || use iodbc; then
+ docinto samples/odbc
+ dodoc odbc/odbc_test.m
+ fi
+
+ docinto samples/posix
+ dodoc posix/samples/*.m
+
+ docinto samples/random
+ dodoc random/*.m
+
+ if has_version dev-lang/mercury[trail]; then
+ docinto samples/references
+ dodoc references/samples/*.m
+
+ docinto samples/trail
+ dodoc trail/*.m
+ fi
+
+ if use xml; then
+ docinto samples/xml
+ dodoc xml/tryit.m
+ dodoc xml/samples/*
+ dodoc xml_stylesheets/*.xsl
+ fi
+
+ ecvs_clean
+ fi
+}
diff --git a/dev-lang/mercury-extras/mercury-extras-20.06.ebuild b/dev-lang/mercury-extras/mercury-extras-20.06.ebuild
index 7a5e3bfc206c..29d3f055a119 100644
--- a/dev-lang/mercury-extras/mercury-extras-20.06.ebuild
+++ b/dev-lang/mercury-extras/mercury-extras-20.06.ebuild
@@ -3,7 +3,7 @@
EAPI=7
-inherit eutils multilib vcs-clean
+inherit multilib toolchain-funcs vcs-clean
PATCHSET_VER="0"
MY_P=mercury-srcdist-${PV}
@@ -41,6 +41,8 @@ RDEPEND="
DEPEND="${RDEPEND}"
+BDEPEND="virtual/pkgconfig"
+
S="${WORKDIR}"/${MY_P}/extras
mercury_pkgs() {
@@ -98,9 +100,9 @@ mercury_pkg_setup() {
>> "${S}"/${mercury_pkg_dir}/Mercury.options
if test -n "$mercury_pkg_deps"; then
- echo "EXTRA_CFLAGS += $(pkg-config --cflags ${mercury_pkg_deps/,/ })" \
+ echo "EXTRA_CFLAGS += $($(tc-getPKG_CONFIG) --cflags ${mercury_pkg_deps/,/ })" \
>> "${S}"/${mercury_pkg_dir}/Mercury.options
- echo "EXTRA_LDFLAGS += $(pkg-config --libs ${mercury_pkg_deps/,/ })" \
+ echo "EXTRA_LDFLAGS += $($(tc-getPKG_CONFIG) --libs ${mercury_pkg_deps/,/ })" \
>> "${S}"/${mercury_pkg_dir}/Mercury.options
fi
diff --git a/dev-lang/mercury-extras/mercury-extras-22.01.1.ebuild b/dev-lang/mercury-extras/mercury-extras-22.01.1.ebuild
new file mode 100644
index 000000000000..173c1939754c
--- /dev/null
+++ b/dev-lang/mercury-extras/mercury-extras-22.01.1.ebuild
@@ -0,0 +1,298 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit multilib vcs-clean
+
+PATCHSET_VER="1"
+MY_P=mercury-srcdist-${PV}
+
+DESCRIPTION="Additional libraries and tools that are not part of the Mercury standard library"
+HOMEPAGE="https://www.mercurylang.org/index.html"
+SRC_URI="https://dl.mercurylang.org/release/${MY_P}.tar.gz
+ https://dev.gentoo.org/~keri/distfiles/mercury-extras/${P}-gentoo-patchset-${PATCHSET_VER}.tar.gz"
+
+LICENSE="GPL-2 LGPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+
+IUSE="cairo examples glut gmp iodbc ncurses odbc opengl ssl tk tommath X xml"
+REQUIRED_USE="?? ( odbc iodbc )"
+
+RDEPEND="
+ ~dev-lang/mercury-${PV}
+ cairo? ( >=x11-libs/cairo-1.10.0 )
+ gmp? ( dev-libs/gmp:0 )
+ glut? ( media-libs/freeglut )
+ odbc? ( dev-db/unixODBC )
+ iodbc? ( dev-db/libiodbc )
+ tommath? ( dev-libs/libtommath )
+ ncurses? ( sys-libs/ncurses:= )
+ opengl? (
+ virtual/opengl
+ virtual/glu
+ )
+ tk? (
+ dev-lang/tcl:0
+ dev-lang/tk:0
+ )
+ X? ( x11-libs/libX11 )"
+
+DEPEND="${RDEPEND}"
+
+S="${WORKDIR}"/${MY_P}/extras
+
+mercury_pkgs() {
+ echo "
+ align_right/align_right:bin:
+ base64/mercury_base64:lib:
+ cgi/mercury_www:lib:
+ complex_numbers/complex_numbers:lib:
+ $(use ncurses && echo \
+ curs/curs:lib:ncurses,panel curses/mcurses:lib:ncurses)
+ dynamic_linking/dl:lib:
+ error/error:bin:
+ fixed/fixed:lib:
+ $(use gmp && echo gmp_int/gmp_int:lib:)
+ $(use tommath && echo mp_int/mp_int:lib:libtommath)
+ $(use X && echo graphics/easyx/easyx:lib:x11)
+ $(use cairo && echo graphics/mercury_cairo/mercury_cairo:lib:cairo)
+ $(use glut && echo graphics/mercury_glut/mercury_glut:lib:freeglut)
+ $(use opengl && echo graphics/mercury_opengl/mercury_opengl:lib:gl,glu)
+ $(use tk && echo graphics/mercury_tcltk/mercury_tcltk:lib:tk)
+ lex/lex:lib:
+ lex/regex:lib:
+ moose/moose:bin:
+ net/net:lib:
+ net/echo:bin:
+ $(use ssl && echo mopenssl/mopenssl:lib:openssl)
+ $(use odbc && echo odbc/odbc:lib:odbc)
+ $(use iodbc && echo odbc/odbc:lib:libiodbc)
+ posix/posix:lib:
+ $(has_version dev-lang/mercury[trail] && echo \
+ references/global:lib:)
+ show_ops/show_ops:bin:
+ solver_types/library/any:lib:
+ $(use xml && echo xml/xml:lib:)"
+}
+
+mercury_pkg_setup() {
+ mercury_pkg=${1%%:*}
+ mercury_pkg_dir=${mercury_pkg%/*}
+ mercury_pkg_name=${mercury_pkg##*/}
+
+ mercury_pkg_atts=${1#*:}
+ mercury_pkg_type=${mercury_pkg_atts%%:*}
+ mercury_pkg_deps=${mercury_pkg_atts#*:}
+
+ cd "${S}"/${mercury_pkg_dir} || die
+
+ echo ">> Preparing Mercury package: ${mercury_pkg}"
+
+ echo "MCFLAGS += --libgrades-exclude java" \
+ >> "${S}"/${mercury_pkg_dir}/Mercury.options
+ echo "MCFLAGS += --libgrades-exclude csharp" \
+ >> "${S}"/${mercury_pkg_dir}/Mercury.options
+
+ if test -n "$mercury_pkg_deps"; then
+ echo "EXTRA_CFLAGS += $(pkg-config --cflags ${mercury_pkg_deps/,/ })" \
+ >> "${S}"/${mercury_pkg_dir}/Mercury.options
+ echo "EXTRA_LDFLAGS += $(pkg-config --libs ${mercury_pkg_deps/,/ })" \
+ >> "${S}"/${mercury_pkg_dir}/Mercury.options
+ fi
+
+ if test ${mercury_pkg_name} = dl; then
+ echo "EXTRA_LDFLAGS += -ldl" >> "${S}"/${mercury_pkg_dir}/Mercury.options
+ elif test ${mercury_pkg_name} = gmp_int; then
+ echo "EXTRA_LDFLAGS += -lgmp" >> "${S}"/${mercury_pkg_dir}/Mercury.options
+ elif test ${mercury_pkg_name} = mercury_tcltk; then
+ echo "EXTRA_CFLAGS += -DUSE_INTERP_RESULT" \
+ >> "${S}"/${mercury_pkg_dir}/Mercury.options
+ elif test ${mercury_pkg_name} = odbc && use odbc; then
+ echo "EXTRA_CFLAGS += -DMODBC_UNIX -DMODBC_MYSQL" \
+ >> "${S}"/${mercury_pkg_dir}/Mercury.options
+ elif test ${mercury_pkg_name} = odbc && use iodbc; then
+ echo "EXTRA_CFLAGS += -DMODBC_IODBC -DMODBC_MYSQL" \
+ >> "${S}"/${mercury_pkg_dir}/Mercury.options
+ fi
+}
+
+mercury_pkg_compile() {
+ mercury_pkg=${1%%:*}
+ mercury_pkg_dir=${mercury_pkg%/*}
+ mercury_pkg_name=${mercury_pkg##*/}
+
+ mercury_pkg_atts=${1#*:}
+ mercury_pkg_type=${mercury_pkg_atts%:*}
+
+ cd "${S}"/${mercury_pkg_dir} || die
+
+ echo ">> Compiling Mercury package: ${mercury_pkg}"
+
+ if test "${mercury_pkg_type}" = "bin"; then
+ mercury_mmc_target=${mercury_pkg_name}
+ else
+ mercury_mmc_target=lib${mercury_pkg_name}
+ fi
+
+ mmc -f *.m || die "mmc -f .m failed"
+
+ mmc \
+ --make \
+ --verbose-commands \
+ --no-strip \
+ --cflags "${CFLAGS}" \
+ --ld-flags "${LDFLAGS}" \
+ --ld-libflags "${LDFLAGS}" \
+ ${mercury_mmc_target} || die "mmc ${mercury_mmc_target} failed"
+}
+
+mercury_pkg_install() {
+ mercury_pkg=${1%%:*}
+ mercury_pkg_dir=${mercury_pkg%/*}
+ mercury_pkg_name=${mercury_pkg##*/}
+
+ mercury_pkg_atts=${1#*:}
+ mercury_pkg_type=${mercury_pkg_atts%:*}
+
+ cd "${S}"/${mercury_pkg_dir} || die
+
+ echo ">> Installing Mercury package: ${mercury_pkg}"
+
+ if test "${mercury_pkg_type}" = "bin"; then
+ into /usr/$(get_libdir)/mercury/extras
+ dobin ${mercury_pkg_name}
+ else
+ mmc \
+ --make \
+ --verbose-commands \
+ --no-strip \
+ --cflags "${CFLAGS}" \
+ --ld-flags "${LDFLAGS}" \
+ --ld-libflags "${LDFLAGS}" \
+ --install-prefix "${D}/usr/$(get_libdir)/mercury/extras" \
+ lib${mercury_pkg_name}.install || die "mmc lib${mercury_pkg_name}.install failed"
+ fi
+}
+
+src_prepare() {
+ cd "${WORKDIR}"/${MY_P}
+ if [[ -d "${WORKDIR}"/${PV} ]] ; then
+ eapply "${WORKDIR}"/${PV}
+ fi
+ eapply_user
+
+ cd "${S}"
+ for mercury_pkg in $(mercury_pkgs); do
+ mercury_pkg_setup ${mercury_pkg}
+ done
+
+ cp "${S}"/net/*.m "${S}"/mopenssl/ || die
+}
+
+src_compile() {
+ for mercury_pkg in $(mercury_pkgs); do
+ mercury_pkg_compile ${mercury_pkg}
+ done
+}
+
+src_install() {
+ for mercury_pkg in $(mercury_pkgs); do
+ mercury_pkg_install ${mercury_pkg}
+ done
+
+ cd "${S}"
+ dodoc README.md
+
+ if use examples; then
+ docinto samples/cgi
+ dodoc cgi/form_test.m
+
+ docinto samples/complex_numbers
+ dodoc complex_numbers/samples/*.m
+
+ if use ncurses; then
+ docinto samples/curs
+ dodoc curs/samples/*.m
+
+ docinto samples/curses
+ dodoc curses/sample/*.m
+ fi
+
+ docinto samples/dynamic_linking
+ dodoc dynamic_linking/{hello,dl_test}.m
+
+ docinto samples/gator
+ dodoc -r gator/*
+
+ if use gmp; then
+ docinto samples/gmp_int
+ dodoc gmp_int/gmp_int_test.m
+ fi
+
+ if use tommath; then
+ docinto samples/mp_int
+ dodoc mp_int/mp_int_test.m
+ fi
+
+ if use X; then
+ docinto samples/graphics
+ dodoc graphics/easyx/samples/*.m
+ fi
+
+ if use glut && use opengl; then
+ docinto samples/graphics
+ dodoc graphics/samples/gears/*.m
+ dodoc graphics/samples/maze/*.m
+ fi
+
+ if use tk; then
+ docinto samples/graphics
+ dodoc graphics/samples/calc/*.m
+ fi
+
+ docinto samples/lex
+ dodoc lex/samples/*.m
+
+ docinto samples/log4m
+ dodoc log4m/*.m
+
+ docinto samples/monte
+ dodoc monte/*.m
+
+ docinto samples/moose
+ dodoc moose/samples/*
+
+ docinto samples/net
+ dodoc net/test_lookups.m
+
+ if use odbc || use iodbc; then
+ docinto samples/odbc
+ dodoc odbc/odbc_test.m
+ fi
+
+ docinto samples/posix
+ dodoc posix/samples/*.m
+
+ docinto samples/random
+ dodoc random/*.m
+
+ if has_version dev-lang/mercury[trail]; then
+ docinto samples/references
+ dodoc references/samples/*.m
+
+ docinto samples/trail
+ dodoc trail/*.m
+ fi
+
+ if use xml; then
+ docinto samples/xml
+ dodoc xml/tryit.m
+ dodoc xml/samples/*
+ dodoc xml_stylesheets/*.xsl
+ fi
+
+ ecvs_clean
+ fi
+}
diff --git a/dev-lang/mercury-extras/mercury-extras-22.01.ebuild b/dev-lang/mercury-extras/mercury-extras-22.01.ebuild
new file mode 100644
index 000000000000..c73b6e8a9b8c
--- /dev/null
+++ b/dev-lang/mercury-extras/mercury-extras-22.01.ebuild
@@ -0,0 +1,298 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit multilib vcs-clean
+
+PATCHSET_VER="0"
+MY_P=mercury-srcdist-${PV}
+
+DESCRIPTION="Additional libraries and tools that are not part of the Mercury standard library"
+HOMEPAGE="https://www.mercurylang.org/index.html"
+SRC_URI="https://dl.mercurylang.org/release/${MY_P}.tar.gz
+ https://dev.gentoo.org/~keri/distfiles/mercury-extras/${P}-gentoo-patchset-${PATCHSET_VER}.tar.gz"
+
+LICENSE="GPL-2 LGPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+IUSE="cairo examples glut gmp iodbc ncurses odbc opengl ssl tk tommath X xml"
+REQUIRED_USE="?? ( odbc iodbc )"
+
+RDEPEND="
+ ~dev-lang/mercury-${PV}
+ cairo? ( >=x11-libs/cairo-1.10.0 )
+ gmp? ( dev-libs/gmp:0 )
+ glut? ( media-libs/freeglut )
+ odbc? ( dev-db/unixODBC )
+ iodbc? ( dev-db/libiodbc )
+ tommath? ( dev-libs/libtommath )
+ ncurses? ( sys-libs/ncurses:= )
+ opengl? (
+ virtual/opengl
+ virtual/glu
+ )
+ tk? (
+ dev-lang/tcl:0
+ dev-lang/tk:0
+ )
+ X? ( x11-libs/libX11 )"
+
+DEPEND="${RDEPEND}"
+
+S="${WORKDIR}"/${MY_P}/extras
+
+mercury_pkgs() {
+ echo "
+ align_right/align_right:bin:
+ base64/mercury_base64:lib:
+ cgi/mercury_www:lib:
+ complex_numbers/complex_numbers:lib:
+ $(use ncurses && echo \
+ curs/curs:lib:ncurses,panel curses/mcurses:lib:ncurses)
+ dynamic_linking/dl:lib:
+ error/error:bin:
+ fixed/fixed:lib:
+ $(use gmp && echo gmp_int/gmp_int:lib:)
+ $(use tommath && echo mp_int/mp_int:lib:libtommath)
+ $(use X && echo graphics/easyx/easyx:lib:x11)
+ $(use cairo && echo graphics/mercury_cairo/mercury_cairo:lib:cairo)
+ $(use glut && echo graphics/mercury_glut/mercury_glut:lib:freeglut)
+ $(use opengl && echo graphics/mercury_opengl/mercury_opengl:lib:gl,glu)
+ $(use tk && echo graphics/mercury_tcltk/mercury_tcltk:lib:tk)
+ lex/lex:lib:
+ lex/regex:lib:
+ moose/moose:bin:
+ net/net:lib:
+ net/echo:bin:
+ $(use ssl && echo mopenssl/mopenssl:lib:openssl)
+ $(use odbc && echo odbc/odbc:lib:odbc)
+ $(use iodbc && echo odbc/odbc:lib:libiodbc)
+ posix/posix:lib:
+ $(has_version dev-lang/mercury[trail] && echo \
+ references/global:lib:)
+ show_ops/show_ops:bin:
+ solver_types/library/any:lib:
+ $(use xml && echo xml/xml:lib:)"
+}
+
+mercury_pkg_setup() {
+ mercury_pkg=${1%%:*}
+ mercury_pkg_dir=${mercury_pkg%/*}
+ mercury_pkg_name=${mercury_pkg##*/}
+
+ mercury_pkg_atts=${1#*:}
+ mercury_pkg_type=${mercury_pkg_atts%%:*}
+ mercury_pkg_deps=${mercury_pkg_atts#*:}
+
+ cd "${S}"/${mercury_pkg_dir} || die
+
+ echo ">> Preparing Mercury package: ${mercury_pkg}"
+
+ echo "MCFLAGS += --libgrades-exclude java" \
+ >> "${S}"/${mercury_pkg_dir}/Mercury.options
+ echo "MCFLAGS += --libgrades-exclude csharp" \
+ >> "${S}"/${mercury_pkg_dir}/Mercury.options
+
+ if test -n "$mercury_pkg_deps"; then
+ echo "EXTRA_CFLAGS += $(pkg-config --cflags ${mercury_pkg_deps/,/ })" \
+ >> "${S}"/${mercury_pkg_dir}/Mercury.options
+ echo "EXTRA_LDFLAGS += $(pkg-config --libs ${mercury_pkg_deps/,/ })" \
+ >> "${S}"/${mercury_pkg_dir}/Mercury.options
+ fi
+
+ if test ${mercury_pkg_name} = dl; then
+ echo "EXTRA_LDFLAGS += -ldl" >> "${S}"/${mercury_pkg_dir}/Mercury.options
+ elif test ${mercury_pkg_name} = gmp_int; then
+ echo "EXTRA_LDFLAGS += -lgmp" >> "${S}"/${mercury_pkg_dir}/Mercury.options
+ elif test ${mercury_pkg_name} = mercury_tcltk; then
+ echo "EXTRA_CFLAGS += -DUSE_INTERP_RESULT" \
+ >> "${S}"/${mercury_pkg_dir}/Mercury.options
+ elif test ${mercury_pkg_name} = odbc && use odbc; then
+ echo "EXTRA_CFLAGS += -DMODBC_UNIX -DMODBC_MYSQL" \
+ >> "${S}"/${mercury_pkg_dir}/Mercury.options
+ elif test ${mercury_pkg_name} = odbc && use iodbc; then
+ echo "EXTRA_CFLAGS += -DMODBC_IODBC -DMODBC_MYSQL" \
+ >> "${S}"/${mercury_pkg_dir}/Mercury.options
+ fi
+}
+
+mercury_pkg_compile() {
+ mercury_pkg=${1%%:*}
+ mercury_pkg_dir=${mercury_pkg%/*}
+ mercury_pkg_name=${mercury_pkg##*/}
+
+ mercury_pkg_atts=${1#*:}
+ mercury_pkg_type=${mercury_pkg_atts%:*}
+
+ cd "${S}"/${mercury_pkg_dir} || die
+
+ echo ">> Compiling Mercury package: ${mercury_pkg}"
+
+ if test "${mercury_pkg_type}" = "bin"; then
+ mercury_mmc_target=${mercury_pkg_name}
+ else
+ mercury_mmc_target=lib${mercury_pkg_name}
+ fi
+
+ mmc -f *.m || die "mmc -f .m failed"
+
+ mmc \
+ --make \
+ --verbose-commands \
+ --no-strip \
+ --cflags "${CFLAGS}" \
+ --ld-flags "${LDFLAGS}" \
+ --ld-libflags "${LDFLAGS}" \
+ ${mercury_mmc_target} || die "mmc ${mercury_mmc_target} failed"
+}
+
+mercury_pkg_install() {
+ mercury_pkg=${1%%:*}
+ mercury_pkg_dir=${mercury_pkg%/*}
+ mercury_pkg_name=${mercury_pkg##*/}
+
+ mercury_pkg_atts=${1#*:}
+ mercury_pkg_type=${mercury_pkg_atts%:*}
+
+ cd "${S}"/${mercury_pkg_dir} || die
+
+ echo ">> Installing Mercury package: ${mercury_pkg}"
+
+ if test "${mercury_pkg_type}" = "bin"; then
+ into /usr/$(get_libdir)/mercury/extras
+ dobin ${mercury_pkg_name}
+ else
+ mmc \
+ --make \
+ --verbose-commands \
+ --no-strip \
+ --cflags "${CFLAGS}" \
+ --ld-flags "${LDFLAGS}" \
+ --ld-libflags "${LDFLAGS}" \
+ --install-prefix "${D}/usr/$(get_libdir)/mercury/extras" \
+ lib${mercury_pkg_name}.install || die "mmc lib${mercury_pkg_name}.install failed"
+ fi
+}
+
+src_prepare() {
+ cd "${WORKDIR}"/${MY_P}
+ if [[ -d "${WORKDIR}"/${PV} ]] ; then
+ eapply "${WORKDIR}"/${PV}
+ fi
+ eapply_user
+
+ cd "${S}"
+ for mercury_pkg in $(mercury_pkgs); do
+ mercury_pkg_setup ${mercury_pkg}
+ done
+
+ cp "${S}"/net/*.m "${S}"/mopenssl/ || die
+}
+
+src_compile() {
+ for mercury_pkg in $(mercury_pkgs); do
+ mercury_pkg_compile ${mercury_pkg}
+ done
+}
+
+src_install() {
+ for mercury_pkg in $(mercury_pkgs); do
+ mercury_pkg_install ${mercury_pkg}
+ done
+
+ cd "${S}"
+ dodoc README.md
+
+ if use examples; then
+ docinto samples/cgi
+ dodoc cgi/form_test.m
+
+ docinto samples/complex_numbers
+ dodoc complex_numbers/samples/*.m
+
+ if use ncurses; then
+ docinto samples/curs
+ dodoc curs/samples/*.m
+
+ docinto samples/curses
+ dodoc curses/sample/*.m
+ fi
+
+ docinto samples/dynamic_linking
+ dodoc dynamic_linking/{hello,dl_test}.m
+
+ docinto samples/gator
+ dodoc -r gator/*
+
+ if use gmp; then
+ docinto samples/gmp_int
+ dodoc gmp_int/gmp_int_test.m
+ fi
+
+ if use tommath; then
+ docinto samples/mp_int
+ dodoc mp_int/mp_int_test.m
+ fi
+
+ if use X; then
+ docinto samples/graphics
+ dodoc graphics/easyx/samples/*.m
+ fi
+
+ if use glut && use opengl; then
+ docinto samples/graphics
+ dodoc graphics/samples/gears/*.m
+ dodoc graphics/samples/maze/*.m
+ fi
+
+ if use tk; then
+ docinto samples/graphics
+ dodoc graphics/samples/calc/*.m
+ fi
+
+ docinto samples/lex
+ dodoc lex/samples/*.m
+
+ docinto samples/log4m
+ dodoc log4m/*.m
+
+ docinto samples/monte
+ dodoc monte/*.m
+
+ docinto samples/moose
+ dodoc moose/samples/*
+
+ docinto samples/net
+ dodoc net/test_lookups.m
+
+ if use odbc || use iodbc; then
+ docinto samples/odbc
+ dodoc odbc/odbc_test.m
+ fi
+
+ docinto samples/posix
+ dodoc posix/samples/*.m
+
+ docinto samples/random
+ dodoc random/*.m
+
+ if has_version dev-lang/mercury[trail]; then
+ docinto samples/references
+ dodoc references/samples/*.m
+
+ docinto samples/trail
+ dodoc trail/*.m
+ fi
+
+ if use xml; then
+ docinto samples/xml
+ dodoc xml/tryit.m
+ dodoc xml/samples/*
+ dodoc xml_stylesheets/*.xsl
+ fi
+
+ ecvs_clean
+ fi
+}
diff --git a/dev-lang/mercury-extras/metadata.xml b/dev-lang/mercury-extras/metadata.xml
index d51dcb06bfde..d6a4b0b729f8 100644
--- a/dev-lang/mercury-extras/metadata.xml
+++ b/dev-lang/mercury-extras/metadata.xml
@@ -1,10 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
-<maintainer type="person">
- <email>keri@gentoo.org</email>
- <name>Keri Harris</name>
-</maintainer>
+<!-- maintainer-needed -->
<use>
<flag name="tommath">Enable support for tommath library</flag>
</use>
diff --git a/dev-lang/mercury/Manifest b/dev-lang/mercury/Manifest
index 92e703f5328d..98779fca5b66 100644
--- a/dev-lang/mercury/Manifest
+++ b/dev-lang/mercury/Manifest
@@ -1,2 +1,8 @@
-DIST mercury-20.06-gentoo-patchset-1.tar.gz 4555 BLAKE2B 8609ba7cd43d82ceb6b6e25fd6af3b2c750df6446c1235bd9c6f8e3bc87bb1fe0a43cafb9f1d061562bb80ade1deb7809889bf0d703c99ea1e2286bbeb7c5182 SHA512 23fae769c5c1204154c6ed55cc31644967e3554f499b23a6585d34615d062a214d6485de3a4acf8cf90a582a229aeab519e57a6df80cee62e9e6789f210e8256
+DIST mercury-20.06-gentoo-patchset-3.tar.gz 5265 BLAKE2B 0539611691cfb714937bca8dc967246ce32c515b7133391d81333284e6ceffe29b929c042ee0000752bd9980c2d2332de20d7c5dc4e1a6077a6421056d975808 SHA512 54595a71db4d7684071c6496c3e92fe8c9de0a29832cc85901046f2627bd453cf0760b9857e73a91e87edfddc80d384627dc5c2cb7f3bc12ea5737eb5afa4f3b
+DIST mercury-20.06.1-gentoo-patchset-0.tar.gz 4426 BLAKE2B df6f1a3b52b1f57f502621abba175a55342ae88ecbbe8e37d22b89a7514e0dea14299c87fb1dd47866c5fc89bbb2746a92de8dcf037c1a9d5d2ba4e2e9b8c828 SHA512 c26c209a2fc2380793373785c7a8290ea336c38fe1c243df5c71791e2d1f8b6f8d4a9452a9139181aeb0422cd538c5e6ffe40332ea5b2635cab3324dc4dc320b
+DIST mercury-22.01-gentoo-patchset-0.tar.gz 4147 BLAKE2B d59f58cb8870ee3ba636f62c1df7ab54d45d23e92626e1a18717e2ef7511c8a14a63c7d9bbfbeb8ec78841f6a05311f2431c5488df9996dae1ab71ce39c99a55 SHA512 a38d524e900b1771a12921618f785436ebca6029d94c9bd7a3115682b900d688d4cab3e3167a7b110f2fc4f5e9d09c1f24dffe9e39222efd20bb17782829b4a8
+DIST mercury-22.01.1-gentoo-patchset-2.tar.gz 4975 BLAKE2B 73dfe5688f7f2c44ee236e3b9fd38811afecc7f8f4dd8f0694c2c3f27ce20a74aade3678bb3a16f7bcfc1fc8b07e518a5954802e410a3f566c00df7898800675 SHA512 16319d2e78af5cb73f67555c1498b277e8c6435cfe4e62fc87817cf06f04deadfad6f8264a5270100aaf6985866b879e9b7c69d3c1839c25d36ca2506bbabd72
+DIST mercury-srcdist-20.06.1.tar.gz 47796261 BLAKE2B f282c6edb78e9090eb451585c65c9214927b94eaa5fcdf6f674aef6beb62eb65179f998bcc2e56c3c93b73dd1dc94973084eb8363bc05e334384096c9520d478 SHA512 94e901e5d3db39e3342bf2d6a2a74556a7b18b295c7e02669b487a81d41c72e572046ce1133d670ca6c1b8e246dd277439087efe8fb99b979a73555a101aa9a8
DIST mercury-srcdist-20.06.tar.gz 47768559 BLAKE2B f242aa2ef7da53aa2dfa054e4fee8646434d276f0748b014e33ea52d22f2a8a37e6fecaa20617f4943c4c1e7d8c179ed0603a344fde2dd58da98b2bacadf1a71 SHA512 b76bd22d8eb16242c68b614ff122ed7ee7535efef6c0ceb8cc798fee4c550bc41b6faff2135cea43b24c652b654bb35ae049656585d8e7bf3a1122d07cb1ecf4
+DIST mercury-srcdist-22.01.1.tar.gz 48956249 BLAKE2B 0f5a7662327f27c27a4d9e421f71afa58920f6232093452781124817ce5c34d1953a80a08b75e95101a7e2e88159b7d4ead08d25c67a99abcb908a9582af2bab SHA512 5fa49640307233ea0f641488e5ea526385e52833007a31469e083711b63925ca7568d7ad6e09301ddf7816384a080546bc4cf46b1422f974e008917d1aa4f37a
+DIST mercury-srcdist-22.01.tar.gz 48960609 BLAKE2B 4ac45251bc098c1465f4bc418501db152bfcf36a2e04bb9153a44c44ff2dff300545103c29551818e773728c5a61947c019997fcc2cb64900e538d5ef64c1b39 SHA512 35b3b1e9fd85062edea5263b304bfc965382d04353e5548d59211519ee222bb6a8e8c95cb03faa089062e39c90b2d1c4af7ca0d9eabbf3bb44872d461e10ff2d
diff --git a/dev-lang/mercury/mercury-20.06.ebuild b/dev-lang/mercury/mercury-20.06-r1.ebuild
index 2a3855fb7950..d2f14d41fd07 100644
--- a/dev-lang/mercury/mercury-20.06.ebuild
+++ b/dev-lang/mercury/mercury-20.06-r1.ebuild
@@ -3,9 +3,9 @@
EAPI=7
-inherit autotools elisp-common eutils flag-o-matic java-pkg-opt-2 multilib vcs-clean xdg-utils
+inherit autotools elisp-common flag-o-matic java-pkg-opt-2 multilib vcs-clean xdg-utils
-PATCHSET_VER="1"
+PATCHSET_VER="3"
MY_P=${PN}-srcdist-${PV}
DESCRIPTION="Mercury is a modern general-purpose logic/functional programming language"
@@ -22,7 +22,7 @@ IUSE="debug doc emacs erlang examples java mono profile readline threads trail"
DEPEND="net-libs/libnsl:0=
readline? ( sys-libs/readline:= )
erlang? ( dev-lang/erlang )
- java? ( >=virtual/jdk-1.6:= )
+ java? ( >=virtual/jdk-1.8:* )
mono? ( dev-lang/mono )
doc? ( sys-apps/texinfo )"
@@ -181,7 +181,7 @@ src_install() {
fi
if use examples; then
- docinto /usr/share/doc/${PF}/samples
+ docinto samples
dodoc samples/{*.m,README,Mmakefile}
dodoc -r samples/c_interface \
samples/diff \
diff --git a/dev-lang/mercury/mercury-20.06.1.ebuild b/dev-lang/mercury/mercury-20.06.1.ebuild
new file mode 100644
index 000000000000..ece3d848fee3
--- /dev/null
+++ b/dev-lang/mercury/mercury-20.06.1.ebuild
@@ -0,0 +1,207 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit autotools elisp-common flag-o-matic java-pkg-opt-2 multilib vcs-clean xdg-utils
+
+PATCHSET_VER="0"
+MY_P=${PN}-srcdist-${PV}
+
+DESCRIPTION="Mercury is a modern general-purpose logic/functional programming language"
+HOMEPAGE="https://www.mercurylang.org/index.html"
+SRC_URI="https://dl.mercurylang.org/release-20.06/${MY_P}.tar.gz
+ https://dev.gentoo.org/~keri/distfiles/mercury/${P}-gentoo-patchset-${PATCHSET_VER}.tar.gz"
+
+LICENSE="GPL-2 LGPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+IUSE="debug doc emacs erlang examples java mono profile readline threads trail"
+
+DEPEND="net-libs/libnsl:0=
+ readline? ( sys-libs/readline:= )
+ erlang? ( dev-lang/erlang )
+ java? ( >=virtual/jdk-1.8:* )
+ mono? ( dev-lang/mono )
+ doc? ( sys-apps/texinfo )"
+
+RDEPEND="${DEPEND}
+ emacs? ( >=app-editors/emacs-23.1:* )"
+
+S="${WORKDIR}"/${MY_P}
+
+SITEFILE=50${PN}-gentoo.el
+
+src_prepare() {
+ if [[ -d "${WORKDIR}"/${PV} ]] ; then
+ eapply "${WORKDIR}"/${PV}
+ fi
+ eapply_user
+
+ AT_M4DIR=m4 eautoreconf
+
+ xdg_environment_reset
+}
+
+src_configure() {
+ strip-flags
+
+ local myconf
+ myconf="--libdir=/usr/$(get_libdir) \
+ $(use_enable mono csharp-grade) \
+ $(use_enable erlang erlang-grade) \
+ $(use_enable java java-grade) \
+ $(use_enable debug debug-grades) \
+ $(use_enable profile prof-grades) \
+ $(use_enable threads par-grades) \
+ $(use_enable trail trail-grades) \
+ $(use_with readline)"
+
+ econf ${myconf}
+}
+
+src_compile() {
+ # Prepare mmake flags
+ echo "EXTRA_CFLAGS = ${CFLAGS} -Wno-error" >> Mmake.params
+ echo "EXTRA_LDFLAGS = ${LDFLAGS}" >> Mmake.params
+ echo "EXTRA_LD_LIBFLAGS = ${LDFLAGS}" >> Mmake.params
+ echo "EXTRA_MLFLAGS = --no-strip" >> Mmake.params
+
+ if use trail; then
+ echo "CFLAGS-int = -O0" >> Mmake.params
+ echo "CFLAGS-uint = -O0" >> Mmake.params
+ fi
+
+ echo "EXTRA_LD_LIBFLAGS += -Wl,-soname=libgc.so" >> boehm_gc/Mmake.boehm_gc.params
+ echo "EXTRA_LD_LIBFLAGS += -Wl,-soname=libmer_rt.so" >> runtime/Mmake.runtime.params
+ echo "EXTRA_LD_LIBFLAGS += -Wl,-soname=libmer_std.so" >> library/Mmake.library.params
+
+ # Build Mercury using bootstrap grade
+ emake \
+ PARALLEL="'${MAKEOPTS}'" \
+ TEXI2DVI="" PDFTEX=""
+
+ # We can now patch .m Mercury compiler files since we
+ # have just built mercury_compiler.
+ if [[ -d "${WORKDIR}"/${PV}-mmc ]] ; then
+ eapply "${WORKDIR}"/${PV}-mmc
+ fi
+
+ # Rebuild Mercury compiler using the just built mercury_compiler
+ emake \
+ PARALLEL="'${MAKEOPTS}'" \
+ MERCURY_COMPILER="${S}"/compiler/mercury_compile \
+ TEXI2DVI="" PDFTEX=""
+
+ # The default Mercury grade may not be the same as the bootstrap
+ # grade. Since src_test() is run before src_install() we compile
+ # the default grade now
+ emake \
+ PARALLEL="'${MAKEOPTS}'" \
+ MERCURY_COMPILER="${S}"/compiler/mercury_compile \
+ TEXI2DVI="" PDFTEX="" \
+ default_grade
+}
+
+src_test() {
+ TEST_GRADE=$(scripts/ml --print-grade)
+ if [ -d "${S}"/install_grade_dir.${TEST_GRADE} ] ; then
+ TWS="${S}"/install_grade_dir.${TEST_GRADE}
+ cp runtime/mer_rt.init "${TWS}"/runtime/
+ cp mdbcomp/mer_mdbcomp.init "${TWS}"/mdbcomp/
+ cp browser/mer_browser.init "${TWS}"/browser/
+ else
+ TWS="${S}"
+ fi
+
+ cd "${S}"/tests || die
+ sed -e "s:@WORKSPACE@:${TWS}:" \
+ < WS_FLAGS.ws \
+ > WS_FLAGS \
+ || die "sed WORKSPACE failed"
+ sed -e "s:@WORKSPACE@:${TWS}:" \
+ < .mgnuc_copts.ws \
+ > .mgnuc_copts \
+ || die "sed WORKSPACE failed"
+ find . -mindepth 1 -type d -exec cp .mgnuc_opts {} \;
+ find . -mindepth 1 -type d -exec cp .mgnuc_copts {} \;
+
+ # Mercury tests must be run in C locale since Mercury output is
+ # compared to hard-coded warnings/errors
+ LC_ALL="C" \
+ PATH="${TWS}"/scripts:"${TWS}"/util:"${S}"/slice:"${PATH}" \
+ TERM="" \
+ WORKSPACE="${TWS}" \
+ WORKSPACE_FLAGS=yes \
+ MERCURY_COMPILER="${TWS}"/compiler/mercury_compile \
+ MMAKE_DIR="${TWS}"/scripts \
+ MERCURY_SUPPRESS_STACK_TRACE=yes \
+ GRADE=${TEST_GRADE} \
+ mmake || die "mmake test failed"
+}
+
+src_install() {
+ emake \
+ PARALLEL="'${MAKEOPTS}'" \
+ MERCURY_COMPILER="${S}"/compiler/mercury_compile \
+ TEXI2DVI="" PDFTEX="" \
+ DESTDIR="${D}" \
+ INSTALL_ELISP_DIR="${D}/${SITELISP}"/${PN} \
+ install
+
+ if use java; then
+ keepdir /usr/$(get_libdir)/mercury/modules/java
+ fi
+
+ if use mono; then
+ keepdir /usr/$(get_libdir)/mercury/modules/csharp
+ fi
+
+ if use emacs; then
+ elisp-site-file-install "${FILESDIR}/${SITEFILE}" \
+ || die "elisp-site-file-install failed"
+ fi
+
+ dodoc \
+ BUGS HISTORY LIMITATIONS NEWS README README.Linux \
+ README.Linux-Alpha README.Linux-m68k README.Linux-PPC \
+ RELEASE_NOTES VERSION || die
+
+ if use erlang; then
+ dodoc README.Erlang
+ fi
+
+ if use java; then
+ dodoc README.Java
+ fi
+
+ if use mono; then
+ dodoc README.CSharp
+ fi
+
+ if use examples; then
+ docinto samples
+ dodoc samples/{*.m,README,Mmakefile}
+ dodoc -r samples/c_interface \
+ samples/diff \
+ samples/muz \
+ samples/rot13 \
+ samples/solutions \
+ samples/solver_types
+
+ if use java; then
+ dodoc -r samples/java_interface
+ fi
+
+ ecvs_clean "${D}"/usr/share/doc/${PF}/samples
+ fi
+}
+
+pkg_postinst() {
+ use emacs && elisp-site-regen
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}
diff --git a/dev-lang/mercury/mercury-22.01.1.ebuild b/dev-lang/mercury/mercury-22.01.1.ebuild
new file mode 100644
index 000000000000..b56c538277e8
--- /dev/null
+++ b/dev-lang/mercury/mercury-22.01.1.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit autotools elisp-common flag-o-matic java-pkg-opt-2 multilib vcs-clean xdg-utils
+
+PATCHSET_VER="2"
+MY_P=${PN}-srcdist-${PV}
+
+DESCRIPTION="Mercury is a modern general-purpose logic/functional programming language"
+HOMEPAGE="https://www.mercurylang.org/index.html"
+SRC_URI="https://dl.mercurylang.org/release/${MY_P}.tar.gz
+ https://dev.gentoo.org/~keri/distfiles/mercury/${P}-gentoo-patchset-${PATCHSET_VER}.tar.gz"
+
+LICENSE="GPL-2 LGPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+
+IUSE="debug doc emacs examples java mono profile readline test threads trail"
+RESTRICT="!test? ( test )"
+
+DEPEND="net-libs/libnsl:0=
+ readline? ( sys-libs/readline:= )
+ java? ( >=virtual/jdk-1.8:* )
+ mono? ( dev-lang/mono )
+ doc? ( sys-apps/texinfo )"
+
+RDEPEND="${DEPEND}
+ emacs? ( >=app-editors/emacs-23.1:* )"
+
+BDEPEND="test? ( sys-libs/timezone-data )"
+
+S="${WORKDIR}"/${MY_P}
+
+SITEFILE=50${PN}-gentoo.el
+
+src_prepare() {
+ if [[ -d "${WORKDIR}"/${PV} ]] ; then
+ eapply "${WORKDIR}"/${PV}
+ fi
+ eapply_user
+
+ AT_M4DIR=m4 eautoreconf
+
+ xdg_environment_reset
+}
+
+src_configure() {
+ strip-flags
+
+ local myconf
+ myconf="--libdir=/usr/$(get_libdir) \
+ $(use_enable mono csharp-grade) \
+ $(use_enable java java-grade) \
+ $(use_enable debug debug-grades) \
+ $(use_enable profile prof-grades) \
+ $(use_enable threads par-grades) \
+ $(use_enable trail trail-grades) \
+ $(use_with readline)"
+
+ econf ${myconf}
+}
+
+src_compile() {
+ # Prepare mmake flags
+ echo "EXTRA_CFLAGS = ${CFLAGS} -Wno-error" >> Mmake.params
+ echo "EXTRA_LDFLAGS = ${LDFLAGS}" >> Mmake.params
+ echo "EXTRA_LD_LIBFLAGS = ${LDFLAGS}" >> Mmake.params
+ echo "EXTRA_MLFLAGS = --no-strip" >> Mmake.params
+
+ if use trail; then
+ echo "CFLAGS-int = -O0" >> Mmake.params
+ echo "CFLAGS-uint = -O0" >> Mmake.params
+ fi
+
+ echo "EXTRA_LD_LIBFLAGS += -Wl,-soname=libgc.so" >> boehm_gc/Mmake.boehm_gc.params
+ echo "EXTRA_LD_LIBFLAGS += -Wl,-soname=libmer_rt.so" >> runtime/Mmake.runtime.params
+ echo "EXTRA_LD_LIBFLAGS += -Wl,-soname=libmer_std.so" >> library/Mmake.library.params
+
+ # Build Mercury using bootstrap grade
+ emake \
+ PARALLEL="'${MAKEOPTS}'" \
+ TEXI2DVI="" PDFTEX=""
+
+ # We can now patch .m Mercury compiler files since we
+ # have just built mercury_compiler.
+ if [[ -d "${WORKDIR}"/${PV}-mmc ]] ; then
+ eapply "${WORKDIR}"/${PV}-mmc
+ fi
+
+ # Rebuild Mercury compiler using the just built mercury_compiler
+ emake \
+ PARALLEL="'${MAKEOPTS}'" \
+ MERCURY_COMPILER="${S}"/compiler/mercury_compile \
+ TEXI2DVI="" PDFTEX=""
+
+ # The default Mercury grade may not be the same as the bootstrap
+ # grade. Since src_test() is run before src_install() we compile
+ # the default grade now
+ emake \
+ PARALLEL="'${MAKEOPTS}'" \
+ MERCURY_COMPILER="${S}"/compiler/mercury_compile \
+ TEXI2DVI="" PDFTEX="" \
+ default_grade
+}
+
+src_test() {
+ TEST_GRADE=$(scripts/ml --print-grade)
+ if [ -d "${S}"/install_grade_dir.${TEST_GRADE} ] ; then
+ TWS="${S}"/install_grade_dir.${TEST_GRADE}
+ cp runtime/mer_rt.init "${TWS}"/runtime/
+ cp mdbcomp/mer_mdbcomp.init "${TWS}"/mdbcomp/
+ cp browser/mer_browser.init "${TWS}"/browser/
+ else
+ TWS="${S}"
+ fi
+
+ cd "${S}"/tests || die
+ sed -e "s:@WORKSPACE@:${TWS}:" \
+ < WS_FLAGS.ws \
+ > WS_FLAGS \
+ || die "sed WORKSPACE failed"
+ sed -e "s:@WORKSPACE@:${TWS}:" \
+ < .mgnuc_copts.ws \
+ > .mgnuc_copts \
+ || die "sed WORKSPACE failed"
+ find . -mindepth 1 -type d -exec cp .mgnuc_opts {} \;
+ find . -mindepth 1 -type d -exec cp .mgnuc_copts {} \;
+
+ # Mercury tests must be run in C locale since Mercury output is
+ # compared to hard-coded warnings/errors
+ LC_ALL="C" \
+ PATH="${TWS}"/scripts:"${TWS}"/util:"${S}"/slice:"${PATH}" \
+ TERM="" \
+ WORKSPACE="${TWS}" \
+ WORKSPACE_FLAGS=yes \
+ MERCURY_COMPILER="${TWS}"/compiler/mercury_compile \
+ MMAKE_DIR="${TWS}"/scripts \
+ MERCURY_SUPPRESS_STACK_TRACE=yes \
+ GRADE=${TEST_GRADE} \
+ mmake || die "mmake test failed"
+}
+
+src_install() {
+ emake \
+ PARALLEL="'${MAKEOPTS}'" \
+ MERCURY_COMPILER="${S}"/compiler/mercury_compile \
+ TEXI2DVI="" PDFTEX="" \
+ DESTDIR="${D}" \
+ INSTALL_ELISP_DIR="${D}/${SITELISP}"/${PN} \
+ install
+
+ if use java; then
+ keepdir /usr/$(get_libdir)/mercury/modules/java
+ fi
+
+ if use mono; then
+ keepdir /usr/$(get_libdir)/mercury/modules/csharp
+ fi
+
+ if use emacs; then
+ elisp-site-file-install "${FILESDIR}/${SITEFILE}" \
+ || die "elisp-site-file-install failed"
+ fi
+
+ dodoc \
+ BUGS HISTORY LIMITATIONS.md NEWS README README.md \
+ README.Linux README.Linux-m68k README.Linux-PPC \
+ RELEASE_NOTES VERSION || die
+
+ if use java; then
+ dodoc README.Java
+ fi
+
+ if use mono; then
+ dodoc README.CSharp
+ fi
+
+ if use examples; then
+ docinto samples
+ dodoc samples/{*.m,README.md,Mmakefile}
+ dodoc -r samples/c_interface \
+ samples/diff \
+ samples/muz \
+ samples/rot13 \
+ samples/solutions \
+ samples/solver_types
+
+ if use java; then
+ dodoc -r samples/java_interface
+ fi
+
+ ecvs_clean "${D}"/usr/share/doc/${PF}/samples
+ fi
+}
+
+pkg_postinst() {
+ use emacs && elisp-site-regen
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}
diff --git a/dev-lang/mercury/mercury-22.01.ebuild b/dev-lang/mercury/mercury-22.01.ebuild
new file mode 100644
index 000000000000..3524e6009a37
--- /dev/null
+++ b/dev-lang/mercury/mercury-22.01.ebuild
@@ -0,0 +1,201 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit autotools elisp-common flag-o-matic java-pkg-opt-2 multilib vcs-clean xdg-utils
+
+PATCHSET_VER="0"
+MY_P=${PN}-srcdist-${PV}
+
+DESCRIPTION="Mercury is a modern general-purpose logic/functional programming language"
+HOMEPAGE="https://www.mercurylang.org/index.html"
+SRC_URI="https://dl.mercurylang.org/release/${MY_P}.tar.gz
+ https://dev.gentoo.org/~keri/distfiles/mercury/${P}-gentoo-patchset-${PATCHSET_VER}.tar.gz"
+
+LICENSE="GPL-2 LGPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+IUSE="debug doc emacs examples java mono profile readline threads trail"
+
+DEPEND="net-libs/libnsl:0=
+ readline? ( sys-libs/readline:= )
+ java? ( >=virtual/jdk-1.8:* )
+ mono? ( dev-lang/mono )
+ doc? ( sys-apps/texinfo )"
+
+RDEPEND="${DEPEND}
+ emacs? ( >=app-editors/emacs-23.1:* )"
+
+S="${WORKDIR}"/${MY_P}
+
+SITEFILE=50${PN}-gentoo.el
+
+src_prepare() {
+ if [[ -d "${WORKDIR}"/${PV} ]] ; then
+ eapply "${WORKDIR}"/${PV}
+ fi
+ eapply_user
+
+ AT_M4DIR=m4 eautoreconf
+
+ xdg_environment_reset
+}
+
+src_configure() {
+ strip-flags
+
+ local myconf
+ myconf="--libdir=/usr/$(get_libdir) \
+ $(use_enable mono csharp-grade) \
+ $(use_enable java java-grade) \
+ $(use_enable debug debug-grades) \
+ $(use_enable profile prof-grades) \
+ $(use_enable threads par-grades) \
+ $(use_enable trail trail-grades) \
+ $(use_with readline)"
+
+ econf ${myconf}
+}
+
+src_compile() {
+ # Prepare mmake flags
+ echo "EXTRA_CFLAGS = ${CFLAGS} -Wno-error" >> Mmake.params
+ echo "EXTRA_LDFLAGS = ${LDFLAGS}" >> Mmake.params
+ echo "EXTRA_LD_LIBFLAGS = ${LDFLAGS}" >> Mmake.params
+ echo "EXTRA_MLFLAGS = --no-strip" >> Mmake.params
+
+ if use trail; then
+ echo "CFLAGS-int = -O0" >> Mmake.params
+ echo "CFLAGS-uint = -O0" >> Mmake.params
+ fi
+
+ echo "EXTRA_LD_LIBFLAGS += -Wl,-soname=libgc.so" >> boehm_gc/Mmake.boehm_gc.params
+ echo "EXTRA_LD_LIBFLAGS += -Wl,-soname=libmer_rt.so" >> runtime/Mmake.runtime.params
+ echo "EXTRA_LD_LIBFLAGS += -Wl,-soname=libmer_std.so" >> library/Mmake.library.params
+
+ # Build Mercury using bootstrap grade
+ emake \
+ PARALLEL="'${MAKEOPTS}'" \
+ TEXI2DVI="" PDFTEX=""
+
+ # We can now patch .m Mercury compiler files since we
+ # have just built mercury_compiler.
+ if [[ -d "${WORKDIR}"/${PV}-mmc ]] ; then
+ eapply "${WORKDIR}"/${PV}-mmc
+ fi
+
+ # Rebuild Mercury compiler using the just built mercury_compiler
+ emake \
+ PARALLEL="'${MAKEOPTS}'" \
+ MERCURY_COMPILER="${S}"/compiler/mercury_compile \
+ TEXI2DVI="" PDFTEX=""
+
+ # The default Mercury grade may not be the same as the bootstrap
+ # grade. Since src_test() is run before src_install() we compile
+ # the default grade now
+ emake \
+ PARALLEL="'${MAKEOPTS}'" \
+ MERCURY_COMPILER="${S}"/compiler/mercury_compile \
+ TEXI2DVI="" PDFTEX="" \
+ default_grade
+}
+
+src_test() {
+ TEST_GRADE=$(scripts/ml --print-grade)
+ if [ -d "${S}"/install_grade_dir.${TEST_GRADE} ] ; then
+ TWS="${S}"/install_grade_dir.${TEST_GRADE}
+ cp runtime/mer_rt.init "${TWS}"/runtime/
+ cp mdbcomp/mer_mdbcomp.init "${TWS}"/mdbcomp/
+ cp browser/mer_browser.init "${TWS}"/browser/
+ else
+ TWS="${S}"
+ fi
+
+ cd "${S}"/tests || die
+ sed -e "s:@WORKSPACE@:${TWS}:" \
+ < WS_FLAGS.ws \
+ > WS_FLAGS \
+ || die "sed WORKSPACE failed"
+ sed -e "s:@WORKSPACE@:${TWS}:" \
+ < .mgnuc_copts.ws \
+ > .mgnuc_copts \
+ || die "sed WORKSPACE failed"
+ find . -mindepth 1 -type d -exec cp .mgnuc_opts {} \;
+ find . -mindepth 1 -type d -exec cp .mgnuc_copts {} \;
+
+ # Mercury tests must be run in C locale since Mercury output is
+ # compared to hard-coded warnings/errors
+ LC_ALL="C" \
+ PATH="${TWS}"/scripts:"${TWS}"/util:"${S}"/slice:"${PATH}" \
+ TERM="" \
+ WORKSPACE="${TWS}" \
+ WORKSPACE_FLAGS=yes \
+ MERCURY_COMPILER="${TWS}"/compiler/mercury_compile \
+ MMAKE_DIR="${TWS}"/scripts \
+ MERCURY_SUPPRESS_STACK_TRACE=yes \
+ GRADE=${TEST_GRADE} \
+ mmake || die "mmake test failed"
+}
+
+src_install() {
+ emake \
+ PARALLEL="'${MAKEOPTS}'" \
+ MERCURY_COMPILER="${S}"/compiler/mercury_compile \
+ TEXI2DVI="" PDFTEX="" \
+ DESTDIR="${D}" \
+ INSTALL_ELISP_DIR="${D}/${SITELISP}"/${PN} \
+ install
+
+ if use java; then
+ keepdir /usr/$(get_libdir)/mercury/modules/java
+ fi
+
+ if use mono; then
+ keepdir /usr/$(get_libdir)/mercury/modules/csharp
+ fi
+
+ if use emacs; then
+ elisp-site-file-install "${FILESDIR}/${SITEFILE}" \
+ || die "elisp-site-file-install failed"
+ fi
+
+ dodoc \
+ BUGS HISTORY LIMITATIONS.md NEWS README README.md \
+ README.Linux README.Linux-m68k README.Linux-PPC \
+ RELEASE_NOTES VERSION || die
+
+ if use java; then
+ dodoc README.Java
+ fi
+
+ if use mono; then
+ dodoc README.CSharp
+ fi
+
+ if use examples; then
+ docinto samples
+ dodoc samples/{*.m,README,Mmakefile}
+ dodoc -r samples/c_interface \
+ samples/diff \
+ samples/muz \
+ samples/rot13 \
+ samples/solutions \
+ samples/solver_types
+
+ if use java; then
+ dodoc -r samples/java_interface
+ fi
+
+ ecvs_clean "${D}"/usr/share/doc/${PF}/samples
+ fi
+}
+
+pkg_postinst() {
+ use emacs && elisp-site-regen
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}
diff --git a/dev-lang/mercury/metadata.xml b/dev-lang/mercury/metadata.xml
index 9ecd0bc6506f..99628dd871a5 100644
--- a/dev-lang/mercury/metadata.xml
+++ b/dev-lang/mercury/metadata.xml
@@ -1,10 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="person">
- <email>keri@gentoo.org</email>
- <name>Keri Harris</name>
- </maintainer>
+ <!-- maintainer-needed -->
<use>
<flag name="erlang">Support Mercury Erlang grade</flag>
<flag name="trail">Support Mercury trail grades</flag>
diff --git a/dev-lang/metadata.xml b/dev-lang/metadata.xml
index e19c9e95cee0..bfc22839c20a 100644
--- a/dev-lang/metadata.xml
+++ b/dev-lang/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE catmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE catmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<catmetadata>
<longdescription lang="en">
The dev-lang category contains various programming language
@@ -37,4 +37,3 @@
związane z nimi narzędzia.
</longdescription>
</catmetadata>
-
diff --git a/dev-lang/micropython/Manifest b/dev-lang/micropython/Manifest
index 1ac72acd2024..74304d0b18d1 100644
--- a/dev-lang/micropython/Manifest
+++ b/dev-lang/micropython/Manifest
@@ -1 +1 @@
-DIST micropython-1.11.tar.gz 23010708 BLAKE2B 8deb29f2a27b8299f62c8c3d332654889e610ddc6854dc38c6cf7504c89f2f9cbbacccdc2d8e471d96b8bb28bbb920fe7ec1b8fd49b14209924262f54687c3c1 SHA512 255860e56bf51c4f35a00cf66fff3ee37fbef1e0d674af6ed580367d8b3d2d60fb88609a675e8f322fd466a23006e38078b67edd6f306e639d6be12abb2972d2
+DIST micropython-1.17.tar.xz 56606868 BLAKE2B a6338d173de646764c1573ebabdb9818746a479fd2dd618f9be9955881e3829c4d89da4602934e71655734ec1c6f2150a6ac2c54a5fed9bee998905a00d5c6ea SHA512 8074214040e35ae1ca99721ec442f4cef70fa03380b7662016c55cb3acff9178fc54140c0d818c9581389b4daaade142ecf75b65a2919c666a50255423a39a54
diff --git a/dev-lang/micropython/files/micropython-1.11-exclude-float-parse-tests.patch b/dev-lang/micropython/files/micropython-1.11-exclude-float-parse-tests.patch
deleted file mode 100644
index 6d81661790e9..000000000000
--- a/dev-lang/micropython/files/micropython-1.11-exclude-float-parse-tests.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- a/tests/run-tests 2020-06-09 13:09:24.239121947 -0000
-+++ b/tests/run-tests 2020-06-09 13:09:57.315476363 -0000
-@@ -377,6 +377,9 @@
- skip_tests.add('micropython/heapalloc_traceback.py') # because native doesn't have proper traceback info
- skip_tests.add('micropython/schedule.py') # native code doesn't check pending events
-
-+ skip_tests.add('float/float_parse.py')
-+ skip_tests.add('float/float_parse_doubleprec.py')
-+ # these two tests fail for some reason.
- for test_file in tests:
- test_file = test_file.replace('\\', '/')
-
diff --git a/dev-lang/micropython/files/micropython-1.11-prevent-stripping.patch b/dev-lang/micropython/files/micropython-1.11-prevent-stripping.patch
deleted file mode 100644
index 7b78b6fb9f60..000000000000
--- a/dev-lang/micropython/files/micropython-1.11-prevent-stripping.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-diff --git a/py/mkenv.mk b/py/mkenv.mk
-index 46eedf9..2f3f3ca 100644
---- a/py/mkenv.mk
-+++ b/py/mkenv.mk
-@@ -52,7 +52,6 @@ CXX = $(CROSS_COMPILE)g++
- LD = $(CROSS_COMPILE)ld
- OBJCOPY = $(CROSS_COMPILE)objcopy
- SIZE = $(CROSS_COMPILE)size
--STRIP = $(CROSS_COMPILE)strip
- AR = $(CROSS_COMPILE)ar
- ifeq ($(MICROPY_FORCE_32BIT),1)
- CC += -m32
-diff --git a/py/mkrules.mk b/py/mkrules.mk
-index 4e4fdef..149b337 100644
---- a/py/mkrules.mk
-+++ b/py/mkrules.mk
-@@ -133,9 +133,6 @@ $(PROG): $(OBJ)
- # Do not pass COPT here - it's *C* compiler optimizations. For example,
- # we may want to compile using Thumb, but link with non-Thumb libc.
- $(Q)$(CC) -o $@ $^ $(LIB) $(LDFLAGS)
--ifndef DEBUG
-- $(Q)$(STRIP) $(STRIPFLAGS_EXTRA) $(PROG)
--endif
- $(Q)$(SIZE) $$(find $(BUILD) -path "$(BUILD)/build/frozen*.o") $(PROG)
-
- clean: clean-prog
diff --git a/dev-lang/micropython/files/micropython-1.17-exclude-float-parse-tests.patch b/dev-lang/micropython/files/micropython-1.17-exclude-float-parse-tests.patch
new file mode 100644
index 000000000000..8f44d31fd96f
--- /dev/null
+++ b/dev-lang/micropython/files/micropython-1.17-exclude-float-parse-tests.patch
@@ -0,0 +1,11 @@
+--- a/tests/run-tests.py 2021-10-25 12:25:48.422212212 -0000
++++ b/tests/run-tests.py 2021-10-25 12:26:01.382135667 -0000
+@@ -521,6 +521,8 @@
+ "micropython/opt_level_lineno.py"
+ ) # native doesn't have proper traceback info
+ skip_tests.add("micropython/schedule.py") # native code doesn't check pending events
++ skip_tests.add("float/float_parse_doubleprec.py")
++ skip_tests.add("float/float_parse.py")
+
+ def run_one_test(test_file):
+ test_file = test_file.replace("\\", "/")
diff --git a/dev-lang/micropython/files/micropython-1.17-gcc13-build-fix.patch b/dev-lang/micropython/files/micropython-1.17-gcc13-build-fix.patch
new file mode 100644
index 000000000000..306db8d9caa8
--- /dev/null
+++ b/dev-lang/micropython/files/micropython-1.17-gcc13-build-fix.patch
@@ -0,0 +1,62 @@
+https://github.com/micropython/micropython/pull/11402
+https://github.com/micropython/micropython/commit/32572439984e5640c6af46fbe7c27400c30112ce
+
+From f1c6cb7725960487195daa5c5c196fd8d3563811 Mon Sep 17 00:00:00 2001
+From: Damien George <damien@micropython.org>
+Date: Wed, 3 May 2023 15:23:24 +1000
+Subject: [PATCH] py/stackctrl: Add gcc pragmas to ignore dangling-pointer
+ warning.
+
+This warning became apparent in gcc 13.
+
+Signed-off-by: Damien George <damien@micropython.org>
+---
+ py/stackctrl.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/py/stackctrl.c b/py/stackctrl.c
+index c2f3adb5eedc..c2566ebad92b 100644
+--- a/py/stackctrl.c
++++ b/py/stackctrl.c
+@@ -28,8 +28,15 @@
+ #include "py/stackctrl.h"
+
+ void mp_stack_ctrl_init(void) {
++ #if __GNUC__ >= 13
++ #pragma GCC diagnostic push
++ #pragma GCC diagnostic ignored "-Wdangling-pointer"
++ #endif
+ volatile int stack_dummy;
+ MP_STATE_THREAD(stack_top) = (char *)&stack_dummy;
++ #if __GNUC__ >= 13
++ #pragma GCC diagnostic pop
++ #endif
+ }
+
+ void mp_stack_set_top(void *top) {
+
+From 32572439984e5640c6af46fbe7c27400c30112ce Mon Sep 17 00:00:00 2001
+From: Damien George <damien@micropython.org>
+Date: Tue, 7 Mar 2023 14:46:22 +1100
+Subject: [PATCH] mpy-cross/main: Fix return type of mp_import_stat.
+
+Fixes issue #10951.
+
+Signed-off-by: Damien George <damien@micropython.org>
+---
+ mpy-cross/main.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/mpy-cross/main.c b/mpy-cross/main.c
+index 13bb17b13dba..8a4dd5bcbed5 100644
+--- a/mpy-cross/main.c
++++ b/mpy-cross/main.c
+@@ -344,7 +344,7 @@ int main(int argc, char **argv) {
+ return main_(argc, argv);
+ }
+
+-uint mp_import_stat(const char *path) {
++mp_import_stat_t mp_import_stat(const char *path) {
+ (void)path;
+ return MP_IMPORT_STAT_NO_EXIST;
+ }
diff --git a/dev-lang/micropython/files/micropython-1.17-prevent-stripping.patch b/dev-lang/micropython/files/micropython-1.17-prevent-stripping.patch
new file mode 100644
index 000000000000..1c5380ed883b
--- /dev/null
+++ b/dev-lang/micropython/files/micropython-1.17-prevent-stripping.patch
@@ -0,0 +1,12 @@
+--- a/py/mkrules.mk 2021-10-25 12:30:13.723695503 -0000
++++ b/py/mkrules.mk 2021-10-25 12:30:18.460327366 -0000
+@@ -198,9 +198,6 @@
+ # Do not pass COPT here - it's *C* compiler optimizations. For example,
+ # we may want to compile using Thumb, but link with non-Thumb libc.
+ $(Q)$(CC) -o $@ $^ $(LIB) $(LDFLAGS)
+-ifndef DEBUG
+- $(Q)$(STRIP) $(STRIPFLAGS_EXTRA) $@
+-endif
+ $(Q)$(SIZE) $$(find $(BUILD) -path "$(BUILD)/build/frozen*.o") $@
+
+ clean: clean-prog
diff --git a/dev-lang/micropython/metadata.xml b/dev-lang/micropython/metadata.xml
index e644fcc0141c..a4ace3158923 100644
--- a/dev-lang/micropython/metadata.xml
+++ b/dev-lang/micropython/metadata.xml
@@ -1,14 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="person">
- <email>monsieurp@gentoo.org</email>
- <name>Patrice Clement</name>
- </maintainer>
- <maintainer type="project">
- <email>python@gentoo.org</email>
- <name>Python</name>
- </maintainer>
+ <!-- maintainer-needed -->
<upstream>
<remote-id type="github">micropython/micropython</remote-id>
</upstream>
diff --git a/dev-lang/micropython/micropython-1.11.ebuild b/dev-lang/micropython/micropython-1.17.ebuild
index 218dea6ed460..16620cf90890 100644
--- a/dev-lang/micropython/micropython-1.11.ebuild
+++ b/dev-lang/micropython/micropython-1.17.ebuild
@@ -1,27 +1,28 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=6
+EAPI=7
inherit toolchain-funcs
DESCRIPTION="Python implementation for microcontrollers"
HOMEPAGE="https://github.com/micropython/micropython"
-SRC_URI="https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tar.gz"
+SRC_URI="https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tar.xz"
-KEYWORDS="~amd64 ~x86"
+KEYWORDS="~amd64 ~arm64 ~x86"
LICENSE="MIT"
SLOT="0"
IUSE="test"
RESTRICT="!test? ( test )"
DEPEND="
- dev-libs/libffi
+ dev-libs/libffi:=
virtual/pkgconfig"
PATCHES=(
"${FILESDIR}/${P}-prevent-stripping.patch"
"${FILESDIR}/${P}-exclude-float-parse-tests.patch"
+ "${FILESDIR}/${P}-gcc13-build-fix.patch"
)
src_prepare() {
diff --git a/dev-lang/mlton/Manifest b/dev-lang/mlton/Manifest
index 11ed417f8842..85c3ef402744 100644
--- a/dev-lang/mlton/Manifest
+++ b/dev-lang/mlton/Manifest
@@ -1,5 +1,2 @@
-DIST mlton-20130715-1.amd64-linux.tgz 19512324 BLAKE2B 972688dcf6fc6ec17146e2597e6f5dab3b5df4e894697a98c68de61cf4728bf7e2e3ef1cee96befae90f9b555bed0b09cef846912225f8b770d20782fa833212 SHA512 ac41cf8b2afbba80ed25908b1842348eac1507b2aada103648171db1482358c4176b01d9266dfee053b20fc224653ec58ee9d3265672c02fa3774b7562a319bf
-DIST mlton-20130715-1.x86-linux.tgz 18065793 BLAKE2B d05ca4f46fb35b0b819e2678f282943fc9cd8f701bdf2a20da68b285db4618401b4138a227352e8aacef9f604528c7fafc0973631115954cfd91e01e9dd01a9d SHA512 13a996952df27420f05f8290920055231156c8982c1cf3c31259d73e0c534258e2aad91596e51809719ffb0b74652aa052d296000f2ab99462714d4ef9a41859
-DIST mlton-20130715.src.tgz 25606142 BLAKE2B 3fa3e8cf4991faef98e23ae4cbe9e0db5cae2e46ce27be57b784a81b576eeed17a179018e8b70d1264cb9595a3467900f034a2b4a7c114d1bac74025450741e1 SHA512 db273de47dc0059e830332b559918567f5153a0518e067ba71927e3705157f1984d6f6202201cef25aaef29d1a71a637e9a1cb30951e94dbfae4ab1a5e5d40d1
DIST mlton-20180207-1.amd64-linux.tgz 18772644 BLAKE2B 7fe2d9db7edfb2d3e301be88e90b7dffe1441ff315ddac1464ef42fb436be1a9dc4e2c03fdb93880779360aed04cb7662a1a5a733f2d4158082d228f718d8b93 SHA512 74ab847ff567cde365a113f8819bae69cc18df20c441a6c6666b600980d2687faf143311f42be21a261b2493dc5c45fbecb4737c599cf767c3680afec06c2e0c
DIST mlton-20180207.src.tgz 25003695 BLAKE2B 8cddfe83c76e05fda446917ddc85035b3d74534fe4bc597a839cd13cb59a15538f40a3f68bb8f7136f9cf8cb27a582e88ca0d14b8f7a4582a202b3bd075f3c9a SHA512 3599159950e857d257abce92abf5c548dd9c0b0cdc4ba0d7cdf9badb5d997f73386cd1ff79f563221b394dd831cb344e287927f90683b0715678edb3ca0ae15a
diff --git a/dev-lang/mlton/files/mlton-20070826-no-execmem.patch b/dev-lang/mlton/files/mlton-20070826-no-execmem.patch
deleted file mode 100644
index f4d4bdf540bf..000000000000
--- a/dev-lang/mlton/files/mlton-20070826-no-execmem.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 544930de3b1c754fa8803169902a63bce7cc02ba Mon Sep 17 00:00:00 2001
-From: Adam Goode <adam@spicenitz.org>
-Date: Wed, 6 Feb 2008 20:17:51 -0500
-Subject: [PATCH] Remove PROT_EXEC from mprotect
-
-It looks like mprotect is used here as part of signal handling.
-There doesn't seems to be a reason to have the area of memory
-marked as executable. In fact, on Fedora 9, this causes MLton
-compiled binaries (including MLton itself) to fail.
----
- runtime/platform/mmap-protect.c | 2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/runtime/platform/mmap-protect.c b/runtime/platform/mmap-protect.c
-index f0dea49..df42215 100644
---- a/runtime/platform/mmap-protect.c
-+++ b/runtime/platform/mmap-protect.c
-@@ -7,7 +7,7 @@ void *GC_mmapAnon_safe_protect (void *start, size_t length,
- if (mprotect (low, dead_low, PROT_NONE))
- diee ("mprotect failed");
- result = (void*)((pointer)low + dead_low);
-- if (mprotect (result, length, PROT_READ | PROT_WRITE | PROT_EXEC))
-+ if (mprotect (result, length, PROT_READ | PROT_WRITE))
- diee ("mprotect failed");
- high = (void*)((pointer)result + length);
- if (mprotect (high, dead_high, PROT_NONE))
---
-1.5.4
-
diff --git a/dev-lang/mlton/files/mlton-20130715-no-PIE.patch b/dev-lang/mlton/files/mlton-20130715-no-PIE.patch
deleted file mode 100644
index a059b1598bec..000000000000
--- a/dev-lang/mlton/files/mlton-20130715-no-PIE.patch
+++ /dev/null
@@ -1,66 +0,0 @@
---- mlton-20130715-orig/bin/upgrade-basis 2013-07-16 05:59:09.000000000 +1000
-+++ mlton-20130715/bin/upgrade-basis 2013-12-17 18:17:24.165889500 +1100
-@@ -28,7 +28,7 @@
- tmp="$$.sml"
-
- echo "val () = print \"I work\"" >"$tmp"
--if ! mlton "$tmp" 1>&2; then
-+if ! mlton -link-opt -fno-PIE "$tmp" 1>&2; then
- die "Error: cannot upgrade basis because the compiler doesn't work"
- fi
-
---- mlton-20130715-orig/mlton/Makefile 2013-07-16 05:59:09.000000000 +1000
-+++ mlton-20130715/mlton/Makefile 2013-12-17 23:35:06.137421195 +1100
-@@ -106,7 +106,7 @@
- rm -f control/version.sml
- $(MAKE) control/version.sml
- @echo 'Compiling mlton (takes a while)'
-- mlton $(FLAGS) $(FILE)
-+ mlton $(FLAGS) -link-opt -fno-PIE $(FILE)
-
- .PHONY: def-use
- def-use: mlton.def-use
---- mlton-20130715-orig/mllex/Makefile 2013-07-16 05:59:09.000000000 +1000
-+++ mlton-20130715/mllex/Makefile 2013-12-18 07:03:29.592171611 +1100
-@@ -21,7 +21,7 @@
-
- $(NAME): $(NAME).mlb $(shell PATH="$(BIN):$$PATH" && "$(MLTON)" -stop f $(NAME).mlb)
- @echo 'Compiling $(NAME)'
-- "$(MLTON)" $(FLAGS) $(NAME).mlb
-+ "$(MLTON)" $(FLAGS) -link-opt -fno-PIE $(NAME).mlb
-
- html/index.html: $(TEX_FILES)
- mkdir -p html
---- mlton-20130715-orig/mlnlffigen/Makefile 2013-07-16 05:59:09.000000000 +1000
-+++ mlton-20130715/mlnlffigen/Makefile 2013-12-18 11:55:33.590660407 +1100
-@@ -22,7 +22,7 @@
-
- $(NAME): $(NAME).mlb $(shell PATH="$(BIN):$$PATH" && "$(MLTON)" -stop f $(NAME).mlb)
- @echo 'Compiling $(NAME)'
-- $(MLTON) $(FLAGS) $(NAME).mlb
-+ $(MLTON) $(FLAGS) -link-opt -fno-PIE $(NAME).mlb
-
- .PHONY: clean
- clean:
---- mlton-20130715-orig/mlprof/Makefile 2013-07-16 05:59:09.000000000 +1000
-+++ mlton-20130715/mlprof/Makefile 2013-12-20 14:02:50.292677796 +1100
-@@ -21,7 +21,7 @@
-
- $(NAME): $(NAME).mlb $(shell PATH="$(BIN):$$PATH" && "$(MLTON)" -stop f $(NAME).mlb)
- @echo 'Compiling $(NAME)'
-- $(MLTON) $(FLAGS) $(NAME).mlb
-+ $(MLTON) $(FLAGS) -link-opt -fno-PIE $(NAME).mlb
-
- .PHONY: clean
- clean:
---- mlton-20130715-orig/mlyacc/Makefile 2013-07-16 05:59:09.000000000 +1000
-+++ mlton-20130715/mlyacc/Makefile 2013-12-20 15:01:26.567775876 +1100
-@@ -41,7 +41,7 @@
-
- $(NAME): $(NAME).mlb $(shell PATH="$(BIN):$$PATH" && "$(MLTON)" -stop f $(NAME).mlb)
- @echo 'Compiling $(NAME)'
-- "$(MLTON)" $(FLAGS) $(NAME).mlb
-+ "$(MLTON)" $(FLAGS) -link-opt -fno-PIE $(NAME).mlb
-
- src/yacc.lex.sml: src/yacc.lex
- rm -f src/yacc.lex.sml && \
diff --git a/dev-lang/mlton/files/mlton-20130715-split-make-for-pax-mark.patch b/dev-lang/mlton/files/mlton-20130715-split-make-for-pax-mark.patch
deleted file mode 100644
index 3286d44e3522..000000000000
--- a/dev-lang/mlton/files/mlton-20130715-split-make-for-pax-mark.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- mlton-20130715-orig/Makefile 2013-07-16 05:59:09.000000000 +1000
-+++ mlton-20130715/Makefile 2013-12-27 13:29:35.259563131 +1100
-@@ -58,7 +58,7 @@
-
- .PHONY: all-no-docs
- all-no-docs:
-- $(MAKE) dirs runtime compiler basis-no-check script mlbpathmap constants libraries tools
-+ $(MAKE) basis-no-check script mlbpathmap constants libraries tools
- # Remove $(AOUT) so that the $(MAKE) compiler below will remake MLton.
- # We also want to re-run the just-built tools (mllex and mlyacc)
- # because they may be better than those that were used for the first
diff --git a/dev-lang/mlton/metadata.xml b/dev-lang/mlton/metadata.xml
index bcf28489a614..b6e787edaff3 100644
--- a/dev-lang/mlton/metadata.xml
+++ b/dev-lang/mlton/metadata.xml
@@ -1,15 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<!-- maintainer-needed -->
<use>
<flag name="binary">install a binary version</flag>
- <flag name="bootstrap-smlnj">Boostrap mlton with dev-lang/smlnj
+ <flag name="bootstrap-smlnj">Boostrap mlton with <pkg>dev-lang/smlnj</pkg>
(takes a long time)</flag>
<flag name="stage3">After bootstrap building mlton with
- dev-lang/smlnj, rebuild mlton with the second stage build of
+ <pkg>dev-lang/smlnj</pkg>, rebuild mlton with the second stage build of
mlton (recommended).</flag>
- <flag name="pax_kernel">Enable if the user plans to run the
+ <flag name="pax-kernel">Enable if the user plans to run the
package under a pax enabled hardened kernel</flag>
</use>
<upstream>
diff --git a/dev-lang/mlton/mlton-20130715.ebuild b/dev-lang/mlton/mlton-20130715.ebuild
deleted file mode 100644
index 1e3533a37670..000000000000
--- a/dev-lang/mlton/mlton-20130715.ebuild
+++ /dev/null
@@ -1,119 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-
-inherit check-reqs eutils pax-utils
-
-DESCRIPTION="Standard ML optimizing compiler and libraries"
-BASE_URI="mirror://sourceforge/${PN}"
-SRC_URI="!binary? ( ${BASE_URI}/${P}.src.tgz )
- binary? ( amd64? ( ${BASE_URI}/${P}-1.amd64-linux.tgz )
- x86? ( ${BASE_URI}/${P}-1.x86-linux.tgz ) )"
-
-HOMEPAGE="http://www.mlton.org"
-
-LICENSE="HPND MIT"
-SLOT="0/${PV}"
-# there is support for ppc64 and ia64, but no
-# binaries are provided and there is no native
-# code generation for these platforms
-KEYWORDS="-* ~amd64 ~x86"
-IUSE="binary doc"
-
-DEPEND="dev-libs/gmp:*
- doc? ( virtual/latex-base )"
-RDEPEND="dev-libs/gmp:*"
-
-QA_PRESTRIPPED="binary? (
- usr/bin/mlnlffigen
- usr/bin/mllex
- usr/bin/mlprof
- usr/bin/mlyacc
- usr/lib/mlton/mlton-compile
-)"
-
-# The resident set size of mlton-compile is 10GB on amd64
-CHECKREQS_MEMORY="4G"
-
-pkg_pretend() {
- if use !binary; then
- check-reqs_pkg_pretend
- fi
-}
-
-src_unpack() {
- if use !binary; then
- unpack ${A}
- else
- mkdir -p "${S}" || die "Could not create ${S} directory"
- pushd "${S}" || die "Could not cd to ${S}"
- unpack ${A}
- popd
- fi
-}
-
-src_prepare() {
- if use !binary; then
- # The patch removing executable permissions from mmap'd memory regions is not upstreamed:
- # http://pkgs.fedoraproject.org/cgit/mlton.git/tree/mlton-20070826-no-execmem.patch
- epatch "${FILESDIR}/${PN}-20070826-no-execmem.patch"
- # PIE in hardened requires executables to be linked with -fPIC. mlton by default tries
- # to link executables against the non PIC objects in libmlton.a. We may be bootstrapping
- # with an old mlton install, if we tried to patch it (to link with libmlton-pic.a) we would
- # need a patched binary.
- # http://mlton.org/MLtonWorld says Executables that save and load worlds are incompatible
- # with address space layout randomization (ASLR) of the executable.
- epatch "${FILESDIR}/${PN}-20130715-no-PIE.patch"
- # Remove dirs runtime compiler from all-no-docs to avoid repeating these steps.
- # As we need to pax-mark the mlton-compiler executable.
- epatch "${FILESDIR}/${PN}-20130715-split-make-for-pax-mark.patch"
- fi
-}
-
-src_compile() {
- if use !binary; then
- has_version dev-lang/mlton || die "emerge with binary use flag first"
-
- # Fix location in which to install man pages
- sed -i 's@^MAN_PREFIX_EXTRA :=.*@MAN_PREFIX_EXTRA := /share@' \
- Makefile || die 'sed Makefile failed'
-
- emake -j1 dirs runtime compiler CFLAGS="${CFLAGS}"
- pax-mark m "${S}/mlton/mlton-compile"
- pax-mark m "${S}/build/lib/mlton-compile"
-
- # Does not support parallel make
- emake -j1 all-no-docs CFLAGS="${CFLAGS}"
- if use doc; then
- export VARTEXFONTS="${T}/fonts"
- emake docs
- fi
- fi
-}
-
-src_install() {
- if use binary; then
- # Fix location in which to install man pages
- mv "${S}/usr/man" "${S}/usr/share" || die "mv man failed"
- pax-mark m "${S}/usr/lib/mlton/mlton-compile"
- pax-mark m "${S}/usr/bin/mllex"
- pax-mark m "${S}/usr/bin/mlyacc"
- mv "${S}/usr" "${D}" || die "mv failed"
- else
- emake DESTDIR="${D}" install-no-docs
- use doc && emake DESTDIR="${D}" TDOC="${D}"/usr/share/doc/${P} install-docs
- fi
-}
-
-pkg_postinst() {
- # There are PIC objects in libmlton-pic.a. -link-opt -lmlton-pic does not help as mlton
- # specifies -lmlton before -lmlton-pic. It appears that it would be necessary to patch mlton
- # to convince mlton to use the lib*-pic.a libraries when linking an executable.
- ewarn 'PIE in Gentoo hardened requires executables to be linked with -fPIC. mlton by default links'
- ewarn 'executables against the non PIC objects in libmlton.a. http://mlton.org/MLtonWorld notes:'
- ewarn 'Executables that save and load worlds are incompatible with address space layout'
- ewarn 'randomization (ASLR) of the executable.'
- ewarn 'To suppress the generation of position-independent executables.'
- ewarn '-link-opt -fno-PIE'
-}
diff --git a/dev-lang/mlton/mlton-20180207.ebuild b/dev-lang/mlton/mlton-20180207.ebuild
index dc132ad34edc..22cd719e8d45 100644
--- a/dev-lang/mlton/mlton-20180207.ebuild
+++ b/dev-lang/mlton/mlton-20180207.ebuild
@@ -1,12 +1,12 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=6
+EAPI=7
-inherit check-reqs eutils multibuild pax-utils
+inherit check-reqs multibuild pax-utils
DESCRIPTION="Standard ML optimizing compiler and libraries"
-BASE_URI="mirror://sourceforge/${PN}"
+BASE_URI="https://downloads.sourceforge.net/${PN}"
SRC_URI="!binary? ( ${BASE_URI}/${P}.src.tgz )
!bootstrap-smlnj? ( amd64? ( ${BASE_URI}/${P}-1.amd64-linux.tgz ) )"
HOMEPAGE="http://www.mlton.org"
@@ -14,14 +14,14 @@ HOMEPAGE="http://www.mlton.org"
LICENSE="HPND MIT"
SLOT="0/${PV}"
KEYWORDS="~amd64 ~x86"
-IUSE="binary bootstrap-smlnj stage3 doc pax_kernel"
+IUSE="binary bootstrap-smlnj stage3 doc pax-kernel"
DEPEND="dev-libs/gmp:*
bootstrap-smlnj? ( dev-lang/smlnj )
!bootstrap-smlnj? (
!amd64? ( dev-lang/smlnj )
)
- pax_kernel? ( sys-apps/elfix )
+ pax-kernel? ( sys-apps/elfix )
doc? ( virtual/latex-base )"
RDEPEND="dev-libs/gmp:*"
@@ -88,7 +88,7 @@ mlton_bootstrap_variant() {
}
mlton_bootstrap_build_dir() {
- echo $(basename ${S})"-"$(mlton_bootstrap_variant)
+ echo "$(basename "${S}")-$(mlton_bootstrap_variant)"
}
mlton_bootstrap_bin_dir() {
@@ -147,12 +147,15 @@ mlton_create_bin_stubs() {
src_prepare() {
if ! use binary; then
# For Gentoo hardened: paxmark the mlton-compiler, mllex and mlyacc executables
- epatch "${FILESDIR}/${PN}-20180207-paxmark.patch"
+ eapply "${FILESDIR}/${PN}-20180207-paxmark.patch"
# Fix the bootstrap-smlnj and bootstrap-polyml Makefile targets
- epatch "${FILESDIR}/${PN}-20180207-bootstrap.patch"
+ eapply "${FILESDIR}/${PN}-20180207-bootstrap.patch"
fi
+
default
+
$(mlton_create_bin_stubs)
+
if use binary; then
pax-mark m "${R}/lib/${PN}/mlton-compile"
pax-mark m "${R}/bin/mllex"
@@ -172,7 +175,7 @@ mlton_src_compile() {
if [[ ${MULTIBUILD_VARIANT} == $(mlton_bootstrap_variant) ]]; then
emake -j1 \
"bootstrap-smlnj" \
- PAXMARK=$(usex pax_kernel "paxmark.sh" "true") \
+ PAXMARK=$(usex pax-kernel "paxmark.sh" "true") \
CFLAGS="${CFLAGS}" \
WITH_GMP_INC_DIR="${EPREFIX}"/usr/include \
WITH_GMP_LIB_DIR="${EPREFIX}"/$(get_libdir)
diff --git a/dev-lang/mmix/metadata.xml b/dev-lang/mmix/metadata.xml
index e7b0978f1b8a..41492a48020d 100644
--- a/dev-lang/mmix/metadata.xml
+++ b/dev-lang/mmix/metadata.xml
@@ -1,12 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>tamiko@gentoo.org</email>
<name>Matthias Maier</name>
</maintainer>
- <maintainer type="person">
- <email>slyfox@gentoo.org</email>
- <name>Sergei Trofimovich</name>
- </maintainer>
</pkgmetadata>
diff --git a/dev-lang/mmix/mmix-20160804-r1.ebuild b/dev-lang/mmix/mmix-20160804-r1.ebuild
index 620b0c7c3b42..174120e453df 100644
--- a/dev-lang/mmix/mmix-20160804-r1.ebuild
+++ b/dev-lang/mmix/mmix-20160804-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -15,7 +15,7 @@ DEPEND="virtual/tex-base
RDEPEND="!!media-sound/mmix"
SLOT="0"
-LICENSE="${PN}"
+LICENSE="mmix"
KEYWORDS="amd64 x86"
IUSE="doc"
diff --git a/dev-lang/moarvm/Manifest b/dev-lang/moarvm/Manifest
index ce8896647701..35d1166fe9c8 100644
--- a/dev-lang/moarvm/Manifest
+++ b/dev-lang/moarvm/Manifest
@@ -1,8 +1,2 @@
-DIST MoarVM-2020.05.tar.gz 5309065 BLAKE2B ed33f066cc16382218509dd9cf8f9f252c87a7d8bfeaf11be8ccbf4fe2337e1dd598d7f4368d4edc5fa1b7c704ee2b4dfec66ee8824465e6088ce0bdf7c8fac1 SHA512 10dd2bb8c629ac4d7804a8e64f8883617545930520c61ff34b62b29b81f827c425004bb07c8978df9620da446fa204ccb3b5c8889651e243a1fe4da28350ab66
-DIST MoarVM-2020.06.tar.gz 5325582 BLAKE2B 3cef20e2cf8d35cf4e812c2838963938a059393eddf1b87d4f2a69750b5e3eae81db76c671d3fcc137f63acd0b94ff03a6c5c3c2a772d9d9409348cfb33fe235 SHA512 5dae0abb825d8ac1620a62da44de6a0a6ddbeed6862c728b895ad5922c0142fd305f5d63bef9726490d9bab0afa603e93b0a1cfd7e61f5778dedfca0f016664c
-DIST MoarVM-2020.07.tar.gz 5329508 BLAKE2B a761234baf88bfb5d8bc87e621822cd4cc1c11c383d9a42785a33d6cc6aa2f039a7764923044c028677b75fd849fa785edb2b0b9bd4ba1bd5393dbe7269c6dc1 SHA512 7581dc0b028029f34fdb1035c1db75f9c13637f7ba5a0d85ca8478cc1844bb0f5852822a145df453b28037cb19972dc6112f32d9b443854952761223926f4042
-DIST MoarVM-2020.08.tar.gz 5333410 BLAKE2B 4590576148d26c96eda390c9b66966b10205616b1920d6a7e259fa055240a5627fceb00399942eee512278dfd23cec90c5a1e79ee3f94cdad89e526b83c2888f SHA512 610ac56df2cd0da7b284e967fb2f626fa10583f66ef06d8c4368048883bea0627b5029c56e64fd7281e6e70c3f63ac26dcfa463d2145be83433a8e76226fcb3b
-DIST MoarVM-2020.09.tar.gz 5361349 BLAKE2B 4846f7b44a238f6f2b40e829999c4939cb6cd6988ff11ae68dd2381db3144f2c7b7ec37dd71fa6749b4a0147e20224a801342e3ea8bf03dbd758012723468861 SHA512 3859e96e6861dc7bf3f64708db33bb9a761b7a7bc3a05655424d6c27010cf6f01e73066e26bff7256f58ed4044f9aee2f186c886a419c3d6aff23f75102f6c48
-DIST MoarVM-2020.10.tar.gz 5362845 BLAKE2B 1486fbbe5407aaf010a2b929458750989820e62d9baadcf66ae97df55c93914639bc988ffe30055fee0a0b0f88f73d9de8d253e138b6d594581160d976831280 SHA512 5251d564909313ca7a660d462370e899d415cbd0b493da189abde952d80992c3e04525b2d8ae5066c9c4ea2c99860e38f9a8beaee4ea0d53d9b32973104fa7d3
-DIST MoarVM-2020.11.tar.gz 5402860 BLAKE2B f29ec4a8f4979fd65adb24cbfbbed586b69d47dd1176770e1e0e46a8bc35ef90146bae468fd6e088cd19201ba7e43d43d486d569970a81a695d6b642f57c2417 SHA512 c3ffe128db43316f93ad19f2804cd963cd2613dc46ffd29b099a165f122f6e7fdf28ce0b6c226a31f44abaeca72468f6774c39ceac3cea992596e8ce042ae7a5
-DIST MoarVM-2020.12.tar.gz 5429137 BLAKE2B dbf9b0b29226dde10b27ddb9195678c86efc77eff16b57745d31dbcef316c8ba4f5233e2c3672b436d089ce59d4ed9acc908e483d081768946c088708caf5711 SHA512 2e95a3336f0b5687f525a5117daf6cd62da6c59fd6d96d508637a30ca5a0bc7a86a35bb21f09f29068e2ec940b859944838eec4c4a2412a3f3bf8320c3d9cfd5
+DIST MoarVM-2024.02.tar.gz 14951164 BLAKE2B 9416cea0b454b29c6d5662090428d790ea437bca1814a084a2c1478268c0eb74764205bca892b5e8de820b2201df154b92503e6243eb4a927a822374a5c09f86 SHA512 e629edb3fb365fd4cd988d9c08d46ecaf002156452e22c3a0c716641eeadb5b7f0434de4e2ec3ce9c8dc354280dc419d716382c160d400ba3970decffc996ed8
+DIST MoarVM-2024.04.tar.gz 14953770 BLAKE2B d6ea26bb98a1a6b2c3e6f0184a70c670830eb0872238779e9ce763f8c798bce803db4c5ba488c3f18bf5cf65a8d529fea9268a270458a33fff21ce10c74ee206 SHA512 874b22347fce3018884733ef734db0f09faae89191c2d37d7a15a897f8ce88ed9fbbd69768267492e6d1f019035ad224eef844b75e0fc1634cffd4b059314af1
diff --git a/dev-lang/moarvm/metadata.xml b/dev-lang/moarvm/metadata.xml
index 544cc2f4ef43..bb2a82182291 100644
--- a/dev-lang/moarvm/metadata.xml
+++ b/dev-lang/moarvm/metadata.xml
@@ -1,14 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>patrick@gentoo.org</email>
<name>Patrick Lauer</name>
</maintainer>
- <maintainer type="project">
- <email>perl@gentoo.org</email>
- <name>Gentoo Perl Project</name>
- </maintainer>
<use>
<flag name="asan">Enable clang's Address Sanitizer functionality. Expect longer compile time.</flag>
<flag name="clang">Use clang compiler instead of GCC</flag>
diff --git a/dev-lang/moarvm/moarvm-2020.05.ebuild b/dev-lang/moarvm/moarvm-2020.05.ebuild
deleted file mode 100644
index 02948c1eaebd..000000000000
--- a/dev-lang/moarvm/moarvm-2020.05.ebuild
+++ /dev/null
@@ -1,62 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit flag-o-matic
-
-MY_PN="MoarVM"
-if [[ ${PV} == "9999" ]]; then
- EGIT_REPO_URI="https://github.com/${MY_PN}/${MY_PN}.git"
- inherit git-r3
- KEYWORDS=""
- S="${WORKDIR}/${P}"
-else
- SRC_URI="http://moarvm.org/releases/${MY_PN}-${PV}.tar.gz"
- KEYWORDS="~amd64 ~x86"
- S="${WORKDIR}/${MY_PN}-${PV}"
-fi
-
-DESCRIPTION="A 6model-based VM for NQP and Rakudo Perl 6"
-HOMEPAGE="http://moarvm.org"
-LICENSE="Artistic-2"
-SLOT="0"
-
-#USE=optimize triggers makefile bug
-IUSE="asan clang debug doc +jit static-libs ubsan"
-
-RDEPEND="dev-libs/libatomic_ops
- >=dev-libs/libuv-1.26
- dev-lang/lua:0=
- dev-libs/libffi"
-DEPEND="${RDEPEND}
- clang? ( >=sys-devel/clang-3.1 )
- dev-lang/perl"
-
-DOCS=( CREDITS README.markdown )
-
-# Tests are conducted via nqp
-RESTRICT=test
-
-src_configure() {
- MAKEOPTS+=" NOISY=1"
- use doc && DOCS+=( docs/* )
- local prefix="${EPREFIX}/usr"
- local libdir="${EPREFIX}/usr/$(get_libdir)"
- einfo "--prefix '${prefix}'"
- einfo "--libdir '${libdir}'"
- local myconfigargs=(
- "--prefix" "${prefix}"
- "--has-libuv"
- "--has-libatomic_ops"
- "--has-libffi"
- "--libdir" "${libdir}"
- "--compiler" "$(usex clang clang gcc)"
- "$(usex asan --asan)"
- "$(usex debug --debug --no-debug)"
- "$(usex static-libs --static)"
- "$(usex ubsan --ubsan)"
- )
-
- perl Configure.pl "${myconfigargs[@]}" moarshared || die
-}
diff --git a/dev-lang/moarvm/moarvm-2020.06.ebuild b/dev-lang/moarvm/moarvm-2020.06.ebuild
deleted file mode 100644
index 8e60e5d5cdcc..000000000000
--- a/dev-lang/moarvm/moarvm-2020.06.ebuild
+++ /dev/null
@@ -1,62 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit flag-o-matic
-
-MY_PN="MoarVM"
-if [[ ${PV} == "9999" ]]; then
- EGIT_REPO_URI="https://github.com/${MY_PN}/${MY_PN}.git"
- inherit git-r3
- KEYWORDS=""
- S="${WORKDIR}/${P}"
-else
- SRC_URI="http://moarvm.org/releases/${MY_PN}-${PV}.tar.gz"
- KEYWORDS="~amd64 ~x86"
- S="${WORKDIR}/${MY_PN}-${PV}"
-fi
-
-DESCRIPTION="A 6model-based VM for NQP and Rakudo Perl 6"
-HOMEPAGE="http://moarvm.org"
-LICENSE="Artistic-2"
-SLOT="0"
-
-IUSE="asan clang debug doc +jit optimize static-libs ubsan"
-
-RDEPEND="dev-libs/libatomic_ops
- >=dev-libs/libuv-1.26
- dev-lang/lua:0=
- dev-libs/libffi"
-DEPEND="${RDEPEND}
- clang? ( >=sys-devel/clang-3.1 )
- dev-lang/perl"
-
-DOCS=( CREDITS README.markdown )
-
-# Tests are conducted via nqp
-RESTRICT=test
-
-src_configure() {
- MAKEOPTS+=" NOISY=1"
- use doc && DOCS+=( docs/* )
- local prefix="${EPREFIX}/usr"
- local libdir="${EPREFIX}/usr/$(get_libdir)"
- einfo "--prefix '${prefix}'"
- einfo "--libdir '${libdir}'"
- local myconfigargs=(
- "--prefix" "${prefix}"
- "--has-libuv"
- "--has-libatomic_ops"
- "--has-libffi"
- "--libdir" "${libdir}"
- "--compiler" "$(usex clang clang gcc)"
- "$(usex asan --asan)"
- "$(usex debug --debug --no-debug)"
- "$(usex optimize --optimize= --no-optimize)"
- "$(usex static-libs --static)"
- "$(usex ubsan --ubsan)"
- )
-
- perl Configure.pl "${myconfigargs[@]}" moarshared || die
-}
diff --git a/dev-lang/moarvm/moarvm-2020.07.ebuild b/dev-lang/moarvm/moarvm-2020.07.ebuild
deleted file mode 100644
index 8e60e5d5cdcc..000000000000
--- a/dev-lang/moarvm/moarvm-2020.07.ebuild
+++ /dev/null
@@ -1,62 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit flag-o-matic
-
-MY_PN="MoarVM"
-if [[ ${PV} == "9999" ]]; then
- EGIT_REPO_URI="https://github.com/${MY_PN}/${MY_PN}.git"
- inherit git-r3
- KEYWORDS=""
- S="${WORKDIR}/${P}"
-else
- SRC_URI="http://moarvm.org/releases/${MY_PN}-${PV}.tar.gz"
- KEYWORDS="~amd64 ~x86"
- S="${WORKDIR}/${MY_PN}-${PV}"
-fi
-
-DESCRIPTION="A 6model-based VM for NQP and Rakudo Perl 6"
-HOMEPAGE="http://moarvm.org"
-LICENSE="Artistic-2"
-SLOT="0"
-
-IUSE="asan clang debug doc +jit optimize static-libs ubsan"
-
-RDEPEND="dev-libs/libatomic_ops
- >=dev-libs/libuv-1.26
- dev-lang/lua:0=
- dev-libs/libffi"
-DEPEND="${RDEPEND}
- clang? ( >=sys-devel/clang-3.1 )
- dev-lang/perl"
-
-DOCS=( CREDITS README.markdown )
-
-# Tests are conducted via nqp
-RESTRICT=test
-
-src_configure() {
- MAKEOPTS+=" NOISY=1"
- use doc && DOCS+=( docs/* )
- local prefix="${EPREFIX}/usr"
- local libdir="${EPREFIX}/usr/$(get_libdir)"
- einfo "--prefix '${prefix}'"
- einfo "--libdir '${libdir}'"
- local myconfigargs=(
- "--prefix" "${prefix}"
- "--has-libuv"
- "--has-libatomic_ops"
- "--has-libffi"
- "--libdir" "${libdir}"
- "--compiler" "$(usex clang clang gcc)"
- "$(usex asan --asan)"
- "$(usex debug --debug --no-debug)"
- "$(usex optimize --optimize= --no-optimize)"
- "$(usex static-libs --static)"
- "$(usex ubsan --ubsan)"
- )
-
- perl Configure.pl "${myconfigargs[@]}" moarshared || die
-}
diff --git a/dev-lang/moarvm/moarvm-2020.08.ebuild b/dev-lang/moarvm/moarvm-2020.08.ebuild
deleted file mode 100644
index 8e60e5d5cdcc..000000000000
--- a/dev-lang/moarvm/moarvm-2020.08.ebuild
+++ /dev/null
@@ -1,62 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit flag-o-matic
-
-MY_PN="MoarVM"
-if [[ ${PV} == "9999" ]]; then
- EGIT_REPO_URI="https://github.com/${MY_PN}/${MY_PN}.git"
- inherit git-r3
- KEYWORDS=""
- S="${WORKDIR}/${P}"
-else
- SRC_URI="http://moarvm.org/releases/${MY_PN}-${PV}.tar.gz"
- KEYWORDS="~amd64 ~x86"
- S="${WORKDIR}/${MY_PN}-${PV}"
-fi
-
-DESCRIPTION="A 6model-based VM for NQP and Rakudo Perl 6"
-HOMEPAGE="http://moarvm.org"
-LICENSE="Artistic-2"
-SLOT="0"
-
-IUSE="asan clang debug doc +jit optimize static-libs ubsan"
-
-RDEPEND="dev-libs/libatomic_ops
- >=dev-libs/libuv-1.26
- dev-lang/lua:0=
- dev-libs/libffi"
-DEPEND="${RDEPEND}
- clang? ( >=sys-devel/clang-3.1 )
- dev-lang/perl"
-
-DOCS=( CREDITS README.markdown )
-
-# Tests are conducted via nqp
-RESTRICT=test
-
-src_configure() {
- MAKEOPTS+=" NOISY=1"
- use doc && DOCS+=( docs/* )
- local prefix="${EPREFIX}/usr"
- local libdir="${EPREFIX}/usr/$(get_libdir)"
- einfo "--prefix '${prefix}'"
- einfo "--libdir '${libdir}'"
- local myconfigargs=(
- "--prefix" "${prefix}"
- "--has-libuv"
- "--has-libatomic_ops"
- "--has-libffi"
- "--libdir" "${libdir}"
- "--compiler" "$(usex clang clang gcc)"
- "$(usex asan --asan)"
- "$(usex debug --debug --no-debug)"
- "$(usex optimize --optimize= --no-optimize)"
- "$(usex static-libs --static)"
- "$(usex ubsan --ubsan)"
- )
-
- perl Configure.pl "${myconfigargs[@]}" moarshared || die
-}
diff --git a/dev-lang/moarvm/moarvm-2020.09.ebuild b/dev-lang/moarvm/moarvm-2020.09.ebuild
deleted file mode 100644
index 8e60e5d5cdcc..000000000000
--- a/dev-lang/moarvm/moarvm-2020.09.ebuild
+++ /dev/null
@@ -1,62 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit flag-o-matic
-
-MY_PN="MoarVM"
-if [[ ${PV} == "9999" ]]; then
- EGIT_REPO_URI="https://github.com/${MY_PN}/${MY_PN}.git"
- inherit git-r3
- KEYWORDS=""
- S="${WORKDIR}/${P}"
-else
- SRC_URI="http://moarvm.org/releases/${MY_PN}-${PV}.tar.gz"
- KEYWORDS="~amd64 ~x86"
- S="${WORKDIR}/${MY_PN}-${PV}"
-fi
-
-DESCRIPTION="A 6model-based VM for NQP and Rakudo Perl 6"
-HOMEPAGE="http://moarvm.org"
-LICENSE="Artistic-2"
-SLOT="0"
-
-IUSE="asan clang debug doc +jit optimize static-libs ubsan"
-
-RDEPEND="dev-libs/libatomic_ops
- >=dev-libs/libuv-1.26
- dev-lang/lua:0=
- dev-libs/libffi"
-DEPEND="${RDEPEND}
- clang? ( >=sys-devel/clang-3.1 )
- dev-lang/perl"
-
-DOCS=( CREDITS README.markdown )
-
-# Tests are conducted via nqp
-RESTRICT=test
-
-src_configure() {
- MAKEOPTS+=" NOISY=1"
- use doc && DOCS+=( docs/* )
- local prefix="${EPREFIX}/usr"
- local libdir="${EPREFIX}/usr/$(get_libdir)"
- einfo "--prefix '${prefix}'"
- einfo "--libdir '${libdir}'"
- local myconfigargs=(
- "--prefix" "${prefix}"
- "--has-libuv"
- "--has-libatomic_ops"
- "--has-libffi"
- "--libdir" "${libdir}"
- "--compiler" "$(usex clang clang gcc)"
- "$(usex asan --asan)"
- "$(usex debug --debug --no-debug)"
- "$(usex optimize --optimize= --no-optimize)"
- "$(usex static-libs --static)"
- "$(usex ubsan --ubsan)"
- )
-
- perl Configure.pl "${myconfigargs[@]}" moarshared || die
-}
diff --git a/dev-lang/moarvm/moarvm-2020.10.ebuild b/dev-lang/moarvm/moarvm-2020.10.ebuild
deleted file mode 100644
index 8e60e5d5cdcc..000000000000
--- a/dev-lang/moarvm/moarvm-2020.10.ebuild
+++ /dev/null
@@ -1,62 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit flag-o-matic
-
-MY_PN="MoarVM"
-if [[ ${PV} == "9999" ]]; then
- EGIT_REPO_URI="https://github.com/${MY_PN}/${MY_PN}.git"
- inherit git-r3
- KEYWORDS=""
- S="${WORKDIR}/${P}"
-else
- SRC_URI="http://moarvm.org/releases/${MY_PN}-${PV}.tar.gz"
- KEYWORDS="~amd64 ~x86"
- S="${WORKDIR}/${MY_PN}-${PV}"
-fi
-
-DESCRIPTION="A 6model-based VM for NQP and Rakudo Perl 6"
-HOMEPAGE="http://moarvm.org"
-LICENSE="Artistic-2"
-SLOT="0"
-
-IUSE="asan clang debug doc +jit optimize static-libs ubsan"
-
-RDEPEND="dev-libs/libatomic_ops
- >=dev-libs/libuv-1.26
- dev-lang/lua:0=
- dev-libs/libffi"
-DEPEND="${RDEPEND}
- clang? ( >=sys-devel/clang-3.1 )
- dev-lang/perl"
-
-DOCS=( CREDITS README.markdown )
-
-# Tests are conducted via nqp
-RESTRICT=test
-
-src_configure() {
- MAKEOPTS+=" NOISY=1"
- use doc && DOCS+=( docs/* )
- local prefix="${EPREFIX}/usr"
- local libdir="${EPREFIX}/usr/$(get_libdir)"
- einfo "--prefix '${prefix}'"
- einfo "--libdir '${libdir}'"
- local myconfigargs=(
- "--prefix" "${prefix}"
- "--has-libuv"
- "--has-libatomic_ops"
- "--has-libffi"
- "--libdir" "${libdir}"
- "--compiler" "$(usex clang clang gcc)"
- "$(usex asan --asan)"
- "$(usex debug --debug --no-debug)"
- "$(usex optimize --optimize= --no-optimize)"
- "$(usex static-libs --static)"
- "$(usex ubsan --ubsan)"
- )
-
- perl Configure.pl "${myconfigargs[@]}" moarshared || die
-}
diff --git a/dev-lang/moarvm/moarvm-2020.11.ebuild b/dev-lang/moarvm/moarvm-2024.02.ebuild
index 05561a98ca21..e437c851b138 100644
--- a/dev-lang/moarvm/moarvm-2020.11.ebuild
+++ b/dev-lang/moarvm/moarvm-2024.02.ebuild
@@ -1,15 +1,12 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
-
-inherit flag-o-matic
+EAPI=8
MY_PN="MoarVM"
if [[ ${PV} == "9999" ]]; then
EGIT_REPO_URI="https://github.com/${MY_PN}/${MY_PN}.git"
inherit git-r3
- KEYWORDS=""
S="${WORKDIR}/${P}"
else
SRC_URI="http://moarvm.org/releases/${MY_PN}-${PV}.tar.gz"
@@ -17,7 +14,7 @@ else
S="${WORKDIR}/${MY_PN}-${PV}"
fi
-DESCRIPTION="A 6model-based VM for NQP and Rakudo Perl 6"
+DESCRIPTION="A 6model-based VM for NQP and Raku"
HOMEPAGE="http://moarvm.org"
LICENSE="Artistic-2"
SLOT="0"
@@ -25,8 +22,9 @@ SLOT="0"
IUSE="asan clang debug doc +jit optimize static-libs ubsan"
RDEPEND="dev-libs/libatomic_ops
- >=dev-libs/libuv-1.26
- dev-libs/libffi"
+ >=dev-libs/libuv-1.26:=
+ dev-libs/libffi:=
+ dev-libs/mimalloc"
DEPEND="${RDEPEND}
clang? ( >=sys-devel/clang-3.1 )
dev-lang/perl"
@@ -48,6 +46,7 @@ src_configure() {
"--has-libuv"
"--has-libatomic_ops"
"--has-libffi"
+ "--has-mimalloc"
"--libdir" "${libdir}"
"--compiler" "$(usex clang clang gcc)"
"$(usex asan --asan)"
diff --git a/dev-lang/moarvm/moarvm-2020.12.ebuild b/dev-lang/moarvm/moarvm-2024.04.ebuild
index 05561a98ca21..e437c851b138 100644
--- a/dev-lang/moarvm/moarvm-2020.12.ebuild
+++ b/dev-lang/moarvm/moarvm-2024.04.ebuild
@@ -1,15 +1,12 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
-
-inherit flag-o-matic
+EAPI=8
MY_PN="MoarVM"
if [[ ${PV} == "9999" ]]; then
EGIT_REPO_URI="https://github.com/${MY_PN}/${MY_PN}.git"
inherit git-r3
- KEYWORDS=""
S="${WORKDIR}/${P}"
else
SRC_URI="http://moarvm.org/releases/${MY_PN}-${PV}.tar.gz"
@@ -17,7 +14,7 @@ else
S="${WORKDIR}/${MY_PN}-${PV}"
fi
-DESCRIPTION="A 6model-based VM for NQP and Rakudo Perl 6"
+DESCRIPTION="A 6model-based VM for NQP and Raku"
HOMEPAGE="http://moarvm.org"
LICENSE="Artistic-2"
SLOT="0"
@@ -25,8 +22,9 @@ SLOT="0"
IUSE="asan clang debug doc +jit optimize static-libs ubsan"
RDEPEND="dev-libs/libatomic_ops
- >=dev-libs/libuv-1.26
- dev-libs/libffi"
+ >=dev-libs/libuv-1.26:=
+ dev-libs/libffi:=
+ dev-libs/mimalloc"
DEPEND="${RDEPEND}
clang? ( >=sys-devel/clang-3.1 )
dev-lang/perl"
@@ -48,6 +46,7 @@ src_configure() {
"--has-libuv"
"--has-libatomic_ops"
"--has-libffi"
+ "--has-mimalloc"
"--libdir" "${libdir}"
"--compiler" "$(usex clang clang gcc)"
"$(usex asan --asan)"
diff --git a/dev-lang/moarvm/moarvm-9999.ebuild b/dev-lang/moarvm/moarvm-9999.ebuild
index cd8b0916bf63..2ee7ef322dd1 100644
--- a/dev-lang/moarvm/moarvm-9999.ebuild
+++ b/dev-lang/moarvm/moarvm-9999.ebuild
@@ -1,71 +1,58 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-inherit flag-o-matic
+inherit edo
MY_PN="MoarVM"
if [[ ${PV} == "9999" ]]; then
EGIT_REPO_URI="https://github.com/${MY_PN}/${MY_PN}.git"
- EGIT_SUBMODULES=( '*' '-3rdparty/libatomicops' '-3rdparty/libuv' )
inherit git-r3
- KEYWORDS=""
- S="${WORKDIR}/${P}"
else
SRC_URI="http://moarvm.org/releases/${MY_PN}-${PV}.tar.gz"
KEYWORDS="~amd64 ~x86"
S="${WORKDIR}/${MY_PN}-${PV}"
fi
-DESCRIPTION="A 6model-based VM for NQP and Rakudo Perl 6"
+DESCRIPTION="A 6model-based VM for NQP and Raku"
HOMEPAGE="http://moarvm.org"
+
LICENSE="Artistic-2"
SLOT="0"
-IUSE="asan clang debug doc static-libs optimize ubsan"
+IUSE="asan clang debug doc +jit optimize static-libs ubsan"
+# Tests are conducted via nqp
+RESTRICT=test
-RDEPEND="dev-libs/libatomic_ops
- >=dev-libs/libuv-1.26
- dev-libs/libffi"
-DEPEND="${RDEPEND}"
-BDEPEND="${RDEPEND}
+RDEPEND="
+ app-arch/zstd:=
+ dev-libs/libatomic_ops
+ >=dev-libs/libuv-1.26:=
+ dev-libs/libffi:=
+"
+DEPEND="${RDEPEND}
+ dev-lang/perl
clang? ( >=sys-devel/clang-3.1 )
- dev-lang/perl"
+"
DOCS=( CREDITS README.markdown )
-# Tests are conducted via nqp
-RESTRICT=test
-
-src_prepare() {
- if [[ "${PV}" == "9999" ]]; then
- # Stupid upstream try to auto-fetch this themselves
- git rm -f 3rdparty/{libatomicops,libuv} ||
- die "Can't strip unused submodules"
- fi
- default
-}
-
src_configure() {
MAKEOPTS+=" NOISY=1"
use doc && DOCS+=( docs/* )
- local prefix="${EPREFIX}/usr"
- local libdir="${EPREFIX}/usr/$(get_libdir)"
- einfo "--prefix '${prefix}'"
- einfo "--libdir '${libdir}'"
local myconfigargs=(
- "--prefix" "${prefix}"
+ "--prefix" "${EPREFIX}/usr"
"--has-libuv"
"--has-libatomic_ops"
"--has-libffi"
- "--libdir" "${libdir}"
+ "--libdir" "${EPREFIX}/usr/$(get_libdir)"
"--compiler" "$(usex clang clang gcc)"
- "$(usex asan --asan)"
- "$(usex debug --debug --no-debug)"
- "$(usex optimize --optimize= --no-optimize)"
- "$(usex static-libs --static)"
- "$(usex ubsan --ubsan)"
+ "$(usex asan --asan "")"
+ "$(usex debug --debug --no-debug)"
+ "$(usex optimize --optimize= --no-optimize)"
+ "$(usex static-libs --static "")"
+ "$(usex ubsan --ubsan "")"
)
- perl Configure.pl "${myconfigargs[@]}" moarshared || die
+ edo perl Configure.pl "${myconfigargs[@]}" moarshared
}
diff --git a/dev-lang/mond/Manifest b/dev-lang/mond/Manifest
new file mode 100644
index 000000000000..8bd336d4409a
--- /dev/null
+++ b/dev-lang/mond/Manifest
@@ -0,0 +1,55 @@
+DIST fleck.1.2.0.nupkg 92725 BLAKE2B b3aa697a762314735d421a7b943f7f3c80360fbc9f44f83893f4458ebbd2bfe067a9c449de830e03c9cdf033bda1050fa771223c375a0d80718a1a23b94f5eb2 SHA512 f2937a639a184b8413582e158d685ae556e822cb81ba0a070068e3a535b786489a684cffafed2294c9d043ac93aa95a7e376f7e14669e04865a43fdd536c76f1
+DIST microsoft.aspnetcore.authorization.8.0.0.nupkg 140737 BLAKE2B b2abfcfb212e935ab2094e6438704350167807097d46e97341b51c730848279d88634c8b03097778c2983b9f124c20f010001db10bffdbe4bf5764ffc816b8c5 SHA512 a6635fa568e8ebd1e15427a1686f2ac0e8929679e7940b1c29b07d3b538a543412b5a70370d066fe341ff5c48ed07300cae0da84d6dca4cc4f3cf41092188bc6
+DIST microsoft.aspnetcore.components.8.0.0.nupkg 211622 BLAKE2B 397d7f4d70a79434b2001e9e4d6cd030c420e0e4dba6b01f55300f4b5d56b0f092ca48c90c01e65bbdb7cc5c4d28996a16a608e9dceade0e126e2b01f1244193 SHA512 77461cda71988370a71f6cf342e3afa8e1a6af3ed19b7dd02cd92390f28beeca964b59c96eee40e8ca1903faf396282c26b5cef3636d3048d9cb137858f8ec1f
+DIST microsoft.aspnetcore.components.analyzers.8.0.0.nupkg 64530 BLAKE2B 88f6492524765163e51b03ff4bd2b90e7679f428b1448a64645e89e82bc9712024a169c3c5e3020666f72df6ab387a6a48418e0bfd7c1d6b28a3645949d1fb64 SHA512 7eb3b1e13e680a1c175e2b54c8728c0958692315c8b1b1f094c00b45a207c5219d3956307908cafccb07caedcab96ee77747a6bb60a558225dae6024479be488
+DIST microsoft.aspnetcore.components.forms.8.0.0.nupkg 66366 BLAKE2B be05a1f77c1534cf0c70250cbe10bab15b6be647a847b76fbaa02c48dbe57ee0fa6872c028882159fd24dd2a30a6be986e6c32ede2df40f3aa685f8fcb1192f5 SHA512 1e3e62afed30b3708f31cffbae3499a6d80ba405c97627ecfdf55250e1ddabc2bf595a72672bc4ee42b27b11532500d0ebfbe733d17f24d8067984a47df03f0c
+DIST microsoft.aspnetcore.components.web.8.0.0.nupkg 130812 BLAKE2B 43d5ca9f4edf5515a4342983753fd505328cdbb6c0291389b287575fae020133908f3c2710eddc9d5f1e5b3d5886b1569a1a391e5349e8e5d555bde2f6396643 SHA512 84853c93fda0369b942a65a530b5324e35bfeb7688f4dd085ac135eaf42448b5e858a493487a3cbcc2e4ac2fcc4041bc2fa14e40b275604c5e79e306d0a8b263
+DIST microsoft.aspnetcore.components.webassembly.8.0.0.nupkg 119284 BLAKE2B 10ac295d12a94dba91c3925918f4e2a3130511ffe061f47a3ccb40edd26c8c0d7344fde7cbba200b11f850b8fc8e39a29aca624aab467886a70f9086659e2dc6 SHA512 c2e9adf1a7079c4ae3b6182aee6d7236205cd51d5ee2f419fe3649a9b33658da45bf6820aff418d1fe464396230320c82d331b44687b1687200cfd467312c961
+DIST microsoft.aspnetcore.components.webassembly.devserver.8.0.0.nupkg 8460547 BLAKE2B d8f005e38c6886d632f4933867e1f9abf0719d7c2595ba3120a503e1b00f9a13f2e9c98b2e199d2194738dd534c58be213530c70dd3d0ad784d4e1875a769a11 SHA512 3a880c6a778af64931abb77b6c501790f132dbb01ac45391f32a15824e4cdbe0a52e6db4acfb66a82767f62edab48cf467ef9eb280f2f0ca9ee3be89f83ea1f1
+DIST microsoft.aspnetcore.metadata.8.0.0.nupkg 75765 BLAKE2B ce2f27d2b4a751280633c81a0838ba6efbd96c57490b955b0fa02fedaff915e3af9bae98795a5374a99048757d3af75f96ba011daa6477ea663dc1e1a8749866 SHA512 1ba7d8562bc8388ab81b9a627ab99c3b668f5d36c04e476f01082a8236798f889dc0079e037a76b42560fc1bdeff5962d5884d45706b58380156e4e2baadf90b
+DIST microsoft.build.tasks.git.8.0.0.nupkg 463717 BLAKE2B 0c98d762063932ddd139aa0e0c5d09bd83d8c67230f734c71add92c22b8e4692008dec50753eb0965cfe9d88d1b0b33e03d99b70a9ddf5a2714c94ccf0d2ea58 SHA512 0e4eecd441c4fb05e17aaae4d63a75e43779e8def8eaddd95c4171f690b7dfe622e06e765dc74ebd21ad28427e271d14ad0bb2af2e29bf13724e819f618dd188
+DIST microsoft.codeanalysis.analyzers.3.3.4.nupkg 1461577 BLAKE2B 43f2f6df0bfded6ad334f5be4627657f1d013b73a13eeef28c5da5c134f43c1880313711a7dfa577b4dea5ced0df6df6acc4236fc8371c1f7288b96cb34997d9 SHA512 23e462c3affa5a33480b276888da438cdfc618feeee17b0be95b08f651bf3a316e7c7ddf96f484cbf7f1361183546c195b0abfe41967a97f8b1f676685e68f7e
+DIST microsoft.codeanalysis.common.4.8.0.nupkg 6839507 BLAKE2B 4ef3f674c6a6be0207a52984c3bd10e44839ec4811d7e6af76cfad422f9638abc65cee557dce07e1af3af5657dd7060846b61645039c1393ee41508781873cef SHA512 477bbe806b3f45a9221aa9c17fcd27883239ea909a37583eda7eba4262aa8fa7c0bfac70f6e112d81b70b4a3a442c893103a8f9ba564d0ec2b82c3f54bead26c
+DIST microsoft.codeanalysis.csharp.4.8.0.nupkg 17131783 BLAKE2B da62f06503d451bf69054bec6558128d5362b36f07280d71e3ec55761ef924ae1075ae50bf87390931d07b5b80f13dbe46dab82ff0d7765fe1444fd95363253a SHA512 d475570908796f4c3f284eea9e2d93d64d9d2bfe7e3fdb97c0e1eef8d0d4c17e99a65a4d1fde054944010bfc30ce3169c5f99d6217a7d4bbc6934878d1aff468
+DIST microsoft.codecoverage.17.8.0.nupkg 9139132 BLAKE2B b9a9e71595742023f43a50e159ae6c0ec61858b0f786a394eb24438a28708a4583e7cb1914ca5e0a717738452aa01c816258eb032736fd3ee404ffb1994d2988 SHA512 bbfb44e01038c77dc33c175478c5f1107bda23536cfc212c14060385c5e41145411550462f6665924883788fbf66477d2f517acb28c51fad53c0f895ceec288c
+DIST microsoft.extensions.configuration.8.0.0.nupkg 191129 BLAKE2B 907151c54380b8cb10312a5dfe876512912eacd7471c91c0c4972a375c4e91b0b00e5a295cac19523d3e8443b9232aa06e949e071bc4a83ea3b45c7debe44437 SHA512 da48a8ef3b4cd2a6beb78008382d9fccdcdd42ff3a71d9efc5ac69d4020421294ac95b07cf11520341a69ee241925cd040d49a382df243e2fa194f6896ef9734
+DIST microsoft.extensions.configuration.abstractions.8.0.0.nupkg 149230 BLAKE2B e3d49a61ded7a88e0ffeccf5901f1fb021d66ef9914a5e5e7e43e69a193253f1009a55cfb2199579e017dc547050b77f7e777f5fe944dde609def9f66be3217c SHA512 3316170910a94290c8df4fed26fa884a47dd9bf974eb7ad22368d5a63308660a01d2dab4a44662061dacaeccf4ba09cdabfccd4636f76ab3178becec5ad31a2f
+DIST microsoft.extensions.configuration.binder.8.0.0.nupkg 385489 BLAKE2B c97ffb508efb8008d96d29a1cf94da0953ab81a131ae8513f72397eb5fcb4a3788fa1f4b1c43141e867b0a14b50c29a44aae8f3ee8421ceedc0c037d59ff878e SHA512 9a5931e9d417b8cd4903fe8b94aa8ec07a1f0d43386717be38171a5eb432b1765d7da95e7f092e6997eccf3f4828d5716317a68fcc8fed32f0ad4f1f82bb7223
+DIST microsoft.extensions.configuration.fileextensions.8.0.0.nupkg 143829 BLAKE2B 08cb3207888860a202b06304e744d92cbcf5d74d6b7191ed74450614d39b6362c4b5278c95a2eee389bf6a38a414daa4577957415e24e45b79a7b8b49465791f SHA512 451c7ec4e92db858327338e833c923aa10bbb34b9820c4f1d0e5b44123f4009fe02646aabaa58dfaac0a6d37727c38c516a0433e4452b301305eafb88459e5d7
+DIST microsoft.extensions.configuration.json.8.0.0.nupkg 158841 BLAKE2B 68036337611c3f4da5f078439973711ab78126e4f1e11b77546644e44e6cf6fdd6cbbe5c68d7dd04e4b7a95b1dd8050461bd508637bca0fed128fe4068d48517 SHA512 008cd3427c2c80218aadd5a28c09a8dd08680fcd5428eb010fd51b44207ba7d2a84bf799bb192914c373b29d60c5fbd72c73cd0800e4d0f43922e2bc9f13deb2
+DIST microsoft.extensions.dependencyinjection.8.0.0.nupkg 341717 BLAKE2B 4c6e981247ce8ca11783d442e658f69edfc307020adacdb58c28ad93e7d75b7d4b89001cc34787041e44eb6efd2310e4bc8ae25f31d5a2688f4d363f9756d9dc SHA512 96391af4ae0542f4ae96c8009c9ffbf304acadf476cda262a8ea73e33b172529541044186c59d656377bb2de42c9f5925e0632a81f6e7516f2a646e8916f16ec
+DIST microsoft.extensions.dependencyinjection.abstractions.8.0.0.nupkg 276886 BLAKE2B af87cb01e181a5f75df78f59639d4b7dae4fc0b930c7ace4a3ed506c43a98edd447f7359ae964aea1824cfce9213b8f225fd67e9240205a1630d67cd0a274415 SHA512 94bc05ed29755109565d9cdfc901087ee1fa08302dda393106bc9a0bd7384f0dc2b6c2f123c1bd53fce06babdbfa845dc6d22a163c4b0646c5251dcc5aeac282
+DIST microsoft.extensions.fileproviders.abstractions.8.0.0.nupkg 113833 BLAKE2B 04ccc5c3d9c969379c95701e1eccfc5087420f11becfb39f6a2d20b6cffce9ab34fe705391e6b211dc18a1d62b36f7565dbf5dc8682a8e43019bda147f41018f SHA512 fe9aa18f2e819694f20e322c93e075e27bee2d57ddd5380624fc48a95669c526c270ab5c74f58c6a4721d18ecdb5b2febf0315f8794585ae65617831459e2a0b
+DIST microsoft.extensions.fileproviders.physical.8.0.0.nupkg 199058 BLAKE2B d426aae552bfe8aea7ff2c802687beb11d2a3783b1d92dd4e7a8eabfd0a2ca22ee26611b15819c7d09e166d0704f04ac986a7650640512ea3a1f4d645b3b3956 SHA512 7612261a35b76d0b3a337ab262de57c3b605e8a1e55bf4d47f15e374e5577ab2ce4ae370980ef2c1335c4e323e6adcfe3718eee86570ac6e4ff5cb100450331f
+DIST microsoft.extensions.filesystemglobbing.8.0.0.nupkg 192314 BLAKE2B 699c0255bca7e69c87495d05e8235fc0217f885c06e82e8ea00b19587fedda9732ac90268678babdabf48aabf51fbd8bc6fa9d9c9639e6777da1c333c7d42250 SHA512 23a5e50cf695ba18c7a77f7c050e40d6fb065957480db17f5e75e5cf269c8f50763c996c28d0dcfca09e2c1248540898ab53c474cadc705548f5fe491dd263fd
+DIST microsoft.extensions.logging.8.0.0.nupkg 232520 BLAKE2B 79e950dbc495ab3078fe05219ac5afd79051fb841ccc47c919958ffdc94b1077eacd6038a8cb70cb27404295161c75fdd7e19dcaa006bc0f237781c3e4a434d7 SHA512 aa30576c428dff69bac5f5d71721af6c4ef583bc524edbd0a94b49cbd80f698905021260e1a432c32e6d48ce5a30f6822c209f11dcf7c819aba1fa8347925b06
+DIST microsoft.extensions.logging.abstractions.8.0.0.nupkg 795935 BLAKE2B c27db06351766972dd55b3ebf927ba7594aefaa0239fd00e0a8ea9ba6b8acc3c1e040512cd07a9849af5ed066c69450d1ab4d7fc231103db2981d2264f515dcf SHA512 50a0add96d30d90580fb8e02a25cea0aa15f4d22744279b5acfe18cc8568b74402aa062d5db13cc5887a08bfd24e07cbc88b2fc10ee8eec2c37edf3bcda7f8a7
+DIST microsoft.extensions.options.8.0.0.nupkg 492963 BLAKE2B 7724b16d3cbcf0149a9a5a194254ca12103c9162b71f0e07994aeb22ba23a6f3119030d720f79b43dc1d96011ae3156dd003778aaadec4bcbc7526d46095f25b SHA512 1c004082a132e7b75a0c95acef3578a4d5db42c55e0996e40b95b663e9a83c5a20ed481a85db7567fff7e3de3dbba6a7d4fe5c825dc7ce95de956689afa16c5a
+DIST microsoft.extensions.primitives.8.0.0.nupkg 209772 BLAKE2B 46a3392933c0b901d1c535d534f0f9501b63659fee1f83bed47e48b49aa0162da5af1b3190af401d709fa0d4b8bcde3f17f7e4e28f0141328a1a7446e4f81b45 SHA512 1f5475ca3d3ce18463456dd135afac502d6f82fea6e4e4814a61f86616c348decf28b73d15c2bb276d1a3c039ea6064f75e1329f6f3a64caa3520d70ab92c32d
+DIST microsoft.jsinterop.8.0.0.nupkg 79221 BLAKE2B 84f0d109158fe11daede946d61e8a2e926ab54f85a749d64b4f6700991a1d4381b3ddf0ea82d2771dd35a551151db3679e6f05540386d2739547b4463c5867f0 SHA512 d204f1f30381586fa22ef89670f7727975a8673c3162f6a8bb4fd45d20b4817dc3456c5a4b2f0bbf3821b46347c9fe7994f828297019516678b93490f038c32c
+DIST microsoft.jsinterop.webassembly.8.0.0.nupkg 54479 BLAKE2B 8acbf916058d2cd70a080a2e2ed209ab6efb09bdd11bdc5b4374e70a8fe7a103614267f2a80d3d4fda1dfd9e21f0ee021fdfbefafd405f7ff31f7f2dc7bd363b SHA512 0c04d98b0410adb8f81ca8d10b39cb7e25d3bc83b0eba44d1259e6e698d863f0c57e6530888a34f4626fc5a19e7968d18b849e84a22bbe0b09bfd5e6c4d418f1
+DIST microsoft.net.test.sdk.17.8.0.nupkg 37824 BLAKE2B 3ef98fbed1b0fb6e6734939601744c4047ea701681fc7eb5cd13ed33d3a317379aad946d931410492b9efed3543bd50213bb1def3fc465d812ff3ddab0f940cb SHA512 f211f2610137cd114621bd6c8418e52a64149af37c176a79f418892fadb6d5dba31ea4622a95c67e50b32a92fb1b1d5d7fb980502c5c9570dcc4c3258c6787e9
+DIST microsoft.netcore.platforms.1.1.0.nupkg 17960 BLAKE2B 6a9fa22d75f5a1c65746dd71a63c3d4e37c393e99c23007c10f5ecce248a04863bf26e7562c7751177a6985eaac266c29cc6a5443a4a853e773f88994ad2a3fd SHA512 6bf892c274596fe2c7164e3d8503b24e187f64d0b7bec6d9b05eb95f04086fceb7a85ea6b2685d42dc465c52f6f0e6f636c0b3fddac48f6f0125dfd83e92d106
+DIST microsoft.sourcelink.common.8.0.0.nupkg 318281 BLAKE2B d53a9f305dd9ad5b6455d3d3146313e9344a9e4e59680644a239d06cfec03f8dbce6577f01113e0ff36fa3911ac6d6d31ee390e34ceb1a613c202950d79cc0ea SHA512 e1c18c1a5a3c83c1215aff7348d6ca4731161f59ef2aaf286910ba7ff3984ca131b04e2f6bd3ae765367039e7489d30eaa298b06616cf9e013d86f5aefb4023d
+DIST microsoft.sourcelink.github.8.0.0.nupkg 330089 BLAKE2B 5c9683ce4b55e6fad9b335495c993dfa656747b15a049f8df9cc7839c91618a157aeea1d5e3f14cf6d4b20a06c91aa37172cca6d12102b060aaf147ced103fba SHA512 1a46485ed34d76994c0eb761600400519edcbff97181f1bff2a2666d432bd912527e82a267c8a9c13497417c6dc4c503fe63672eea20c21fdfa857716e26db9b
+DIST microsoft.testplatform.objectmodel.17.8.0.nupkg 1492114 BLAKE2B 32a3a7f4e4cb9af1d330fcb2588ee9602414760eb4f2bda49888372b3ed64e8c47347dbdeda11259134e37b717ad5c23b06ffeda9a1a1772e1afe299429e828d SHA512 17119c472fd87ff721677f92a801693eab53a1897582150c26a60429c99eb1764628e7ba895b40e3b10b9edc00f803b18316a6fdc906ffe54dbd2d04ac63db33
+DIST microsoft.testplatform.testhost.17.8.0.nupkg 2806274 BLAKE2B dff54d1c59a6873793bbe2d6fc9ed75c2d610a8dc41f4f9349228b690db3beb7845660c7d90a5d2588443c13aff4d97b6e0a1df58e88a398b3631a344609060c SHA512 39fb1549fd23fc2c7b4f5525043fc1152b8c62cc813a88c9701f33a666041c6690dadd455899d247fef5e6df372d17f081d6098839086007b2c10618e187ac7a
+DIST mond-0.10.0.tar.gz 612465 BLAKE2B b802d7e97fbaf2fd8a7350d19623fe5e8319e0e36e54d98f01c8f49b2a1900003b4c144420faa5a2bd0718474cc93f7e2912ac4afdfe6461b300ce9f9386a0ec SHA512 2e16b4ed4cfa1009b21631cee1b722cf80ff2a3e7c17f53cd36fbc18bdf683e958b25fb60b701be1a164f69eb1d0689c2cb2ff0bfa2082446d8abfd60b23b1de
+DIST netstandard.library.2.0.0.nupkg 3143842 BLAKE2B 7e3fc865e7893fb531b21e2ca791b788af01481316e49a79c4676050c2b8ad413fd8a4ef9890557582ec8b9741c8aa01b080b8d2caa16e02bfff2a7b38777989 SHA512 e3d64072b9cd9f9e86209c06a22688ecda7070427c9a35327d2a9560824c0e1381ccf7bc1d21d2ef8b301761f4bfc7f38fba712df7188d2f4fe4f748aac4d0c7
+DIST netstandard.library.2.0.3.nupkg 3146139 BLAKE2B 311e5367398f76c74e78930bc2cd39e450a86bd8626311ded8d58bd84c94a8a84db3c11b2bc10f3eeba20a9d081fe7827981f702ad746b49ae3108c949ba1022 SHA512 e78f0cea69c14895b1b089644077dbce8631a626055d96522f4d29e061d8bfc3e48aa1419e74faf265b998612c03f721f5f0cef4690f824150a5689764dee601
+DIST newtonsoft.json.13.0.1.nupkg 2065787 BLAKE2B 000c38ce26a2a00bb25a9c1d6fb069ada521ff089bb624a5c1255b25767c10616cc51821524e7bc3d8b45eb8f8ee54c97454db1db9ae5e5c78eb6300a99f979d SHA512 83731b662eaf05379a23f8446ef47bbc111349dd4358b7bd8b51383fe9cf637e2fe62f78cea52a0d7bdd582dc6fbbb5837d4a7b1d53dcf37a0ae7473e21ee7b1
+DIST nuget.frameworks.6.5.0.nupkg 131644 BLAKE2B d8fbfaeb2ec4c269ecad319478b64da5ad9e44d9d82fab8b42400a15ea7d31627bcdb9f1af0f18b15dd8455ac4e92df1b25bc47808f465cd2e972ffa40333f1c SHA512 3f97626af018fa9b03f06751054be2c4e8dbd0d5329de21662b36f3336849838bf5af7d3721643faa6ea90935f836cf502661573953176cff33d4d829d953d56
+DIST nunit.3.14.0.nupkg 1318234 BLAKE2B 4891e0c5bd367bddf1318fb4a1825b7833d46dfab5b5ecded69812a247acdf0e057b8ff0f27236c6ad5c655370bb9867547d4a44475a30aab07b98277f3513c9 SHA512 5d711925b947c9e4a9f53f6b5d769bc4a702efd72bcff6b4fe4fe51a724544a5266d02317fdb5fe5e312f924cebe31549e5eeb2c5781c9c2f35c3e4e31ae3484
+DIST nunit3testadapter.4.5.0.nupkg 504560 BLAKE2B 8fb18358909ef9b5828b2b6c2a5bb1c234b2041cef7d57f22319a287bb187621c6e8e40e33b7e1e23f17b9e5ff01a2cc41f932d54e7affc935edf275f0d397d6 SHA512 be32fd672c3ab18bc948f7a6d9c41f79bdabc1fd8d2b6ad9106c14499b35a613ebf05a720959aae4507c2cc10adab45e79f48aa731c6506c716d300193d69154
+DIST system.buffers.4.5.1.nupkg 93737 BLAKE2B e846885f9ace79f30bf7698a96ff3277a45fc2988a48cddba1862e23650ce55b06dcc6c1bcc29e08cf5380c9700dfcc15964f7263aeb11c737306d27963b34da SHA512 80da6158e55b9bcf7e0b5e6379b9cf45a632914f037b53c5bf5609576e3cd7821f7861956b73d74470d2d0c2e56dd235a5ef4ca6ffe7e192b820dc2d023aaff2
+DIST system.collections.immutable.7.0.0.nupkg 538962 BLAKE2B 865b39a568c4c1643efbeba07b37a9b43adab688cee8174b4875b575c8e02f3a6ebd90ebc20ffcfc096c6a2017089b8e029345cf4eb24f3ccf9b911e57df0be6 SHA512 f084afc9395d74b4f252c47b7d0e378e676d6b8b6033a68636b648b58805e3772dd22ff1ded05d3c8c8553d2e7685b29b753fe1cbb5a333f018abe6422a3ebfa
+DIST system.io.pipelines.8.0.0.nupkg 267394 BLAKE2B 612570554ee41ae37c8987df6ec797583c95b38160aa70b1c2fba9af23f4bd85ac0ba5b7036abfc1ee3cecdbfbdaa83b861e9c017e5fdf3e726478b24e83d957 SHA512 57eb6a11e84f40a48b57b1dc5786a01aa9852122b7d15363490d8a12c9a458bf99a8ddf4c0c0247be98559c2b42e769a10bda2c5a9817735484d960dc652eb12
+DIST system.memory.4.5.5.nupkg 208978 BLAKE2B 487049b1ffd622868d4aa84cc14f13127641c56937826c11d83851b7032ea248ccf8555f48aca93acc4891ac99ce2178ede50bf13ccbd70ba6004226fb583275 SHA512 e8c8e536c97b94ac3443c940b30dad43cf6e97dc7a8c3d989371048fe74e168606384f5e0143bdc0d86f7783bf9fdee8417964cb3a8a5d752713e90b125172dc
+DIST system.numerics.vectors.4.4.0.nupkg 337043 BLAKE2B 94cca7283873edd9199d843db78e23bc5815de039c2aaeb67ba3cbe4cb5e161eab27b89cfbeeb437f0a9d235b48e86a5b31f53306a7e7a2a38feb28d6e5e523c SHA512 81d46b509b3546b8d6dc9079a7cda162303aef1a1e14bbe1d127522168d388df2a13195b16dfd1b57c1560d73906e909fdff4e2b34104ba81a9336c97874ea1e
+DIST system.reflection.metadata.1.6.0.nupkg 852113 BLAKE2B 4d15704a1fe00501c1bd8c945d02cd2e2d77c12ce86aa628edd18383838c9dbbfc449b8026707bb1ac570e55369e988aa6068f57acdea28f519bd3bdfd5b9304 SHA512 f5227666edc6bb1da78b8a8e86a68e9bd647caa2ec6a1580c14a4a5e1fe5cfde3bdaf0d8c23dc210c405a55f83ceb6add1a9adab149dc065b38cfddc9b01ba20
+DIST system.reflection.metadata.7.0.0.nupkg 1029794 BLAKE2B c4eb7069819ae7d6ee8fcf156fcf5fbb5d57022eb2c8e4677f1e64508c69853410da7985a08c936c38eb43201bf5cdcaa8c3c091531238ae78f4037b286b60a8 SHA512 2d93c8ba1a78ceb90d25b7a3b82ae7c7f2452ad29f49ee8e1c60b2bcda19f8f6edf68689d42a586aef5faf9f1049fe5e8095ec9a4ab48a2cd2a950a8b7ec2c85
+DIST system.runtime.compilerservices.unsafe.6.0.0.nupkg 84343 BLAKE2B aea2f833d6da80dbc275c47bfb207d77a1f2dd203a29352ff5a6e96d8b52752ee3c5bde38117c5ecc5dfbad66d8b47b2001efa1e2d564e14cbbf58d0d1fe208e SHA512 d4057301be4ec4936f24b9ce003b5ec4d99681ab6d9b65d5393dd38d04cdec37784aaa12c1a8b50ac3767ed878dae425749490773fec01e734f93cf1045822b3
+DIST system.text.encoding.codepages.7.0.0.nupkg 3198933 BLAKE2B 077972f69636114b3d9db09398f6d9322a681665fcf280a15fb0506d45da644e07c2e3aee91d76c908e1ab1762411bc970978bc8823a5b45aa994b172a7d95bc SHA512 485abfaeb1f9dac307249b2d84375a7d63c4bb175109107ba59e3ab6b476c52a62d677ca3c06f0e9a999afd5bf2f21d396a4b4d534563bb9da8d1b8ed6fc458a
+DIST system.text.encodings.web.8.0.0.nupkg 374440 BLAKE2B 97211e710df3dcd17932f168e254806d7c8692ac01d667a2e89a5ddc956b24fba8467fbc2d451057757b5c502442d2c91bcaf0f867da7e95456b2aa18136b354 SHA512 ba0822c38c3b658aba9495642d269e882b827e3be4ad2dc1426d8a97d3cbc5a2277c5f80847d0cb9381078af01523328c4992caa058146d5d8ee6b8a08609c32
+DIST system.text.json.8.0.0.nupkg 1983421 BLAKE2B 053f3200d5920a5a31b4e4e6d13f0a81490a518ed68363a1a04c1edbbc125f90b9fa8f469614127bde714df352052a0dc56d70c9595277686799d33a16df351b SHA512 59243516d9de8ce90be60d6c5d271ff4c5fc6b2a4b723443022a72bd1b8f98adac3d17439df5543fedead81a8e3b018fd9a89c40a2459d3cb2d1dd935d17b426
+DIST system.threading.tasks.extensions.4.5.4.nupkg 89582 BLAKE2B 728fc5794745b706a7e3a7d05186f34e2a8c1837cafdc7fc9a1bd8fc6fd42025448cbdfa53415a05d872aa08db1deb31d104054630c9ac7ecd29a2ddd973fd5c SHA512 68052086e77d3c7198737a3da163d67740b7c44f93250c39659b3bf21b6547a9abf64cbf40481f5c78f24361af3aaf47d52d188b371554a0928a7f7665c1fc14
diff --git a/dev-lang/mond/metadata.xml b/dev-lang/mond/metadata.xml
new file mode 100644
index 000000000000..a6c649fbdabc
--- /dev/null
+++ b/dev-lang/mond/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+
+<pkgmetadata>
+ <maintainer type="project">
+ <email>dotnet@gentoo.org</email>
+ <name>Gentoo Dotnet Project</name>
+ </maintainer>
+ <upstream>
+ <bugs-to>https://github.com/Rohansi/Mond/issues/</bugs-to>
+ <remote-id type="github">Rohansi/Mond</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-lang/mond/mond-0.10.0.ebuild b/dev-lang/mond/mond-0.10.0.ebuild
new file mode 100644
index 000000000000..bca70e07819d
--- /dev/null
+++ b/dev-lang/mond/mond-0.10.0.ebuild
@@ -0,0 +1,106 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DOTNET_PKG_COMPAT=8.0
+NUGETS="
+fleck@1.2.0
+microsoft.aspnetcore.authorization@8.0.0
+microsoft.aspnetcore.components.analyzers@8.0.0
+microsoft.aspnetcore.components.forms@8.0.0
+microsoft.aspnetcore.components.web@8.0.0
+microsoft.aspnetcore.components.webassembly.devserver@8.0.0
+microsoft.aspnetcore.components.webassembly@8.0.0
+microsoft.aspnetcore.components@8.0.0
+microsoft.aspnetcore.metadata@8.0.0
+microsoft.build.tasks.git@8.0.0
+microsoft.codeanalysis.analyzers@3.3.4
+microsoft.codeanalysis.common@4.8.0
+microsoft.codeanalysis.csharp@4.8.0
+microsoft.codecoverage@17.8.0
+microsoft.extensions.configuration.abstractions@8.0.0
+microsoft.extensions.configuration.binder@8.0.0
+microsoft.extensions.configuration.fileextensions@8.0.0
+microsoft.extensions.configuration.json@8.0.0
+microsoft.extensions.configuration@8.0.0
+microsoft.extensions.dependencyinjection.abstractions@8.0.0
+microsoft.extensions.dependencyinjection@8.0.0
+microsoft.extensions.fileproviders.abstractions@8.0.0
+microsoft.extensions.fileproviders.physical@8.0.0
+microsoft.extensions.filesystemglobbing@8.0.0
+microsoft.extensions.logging.abstractions@8.0.0
+microsoft.extensions.logging@8.0.0
+microsoft.extensions.options@8.0.0
+microsoft.extensions.primitives@8.0.0
+microsoft.jsinterop.webassembly@8.0.0
+microsoft.jsinterop@8.0.0
+microsoft.net.test.sdk@17.8.0
+microsoft.netcore.platforms@1.1.0
+microsoft.sourcelink.common@8.0.0
+microsoft.sourcelink.github@8.0.0
+microsoft.testplatform.objectmodel@17.8.0
+microsoft.testplatform.testhost@17.8.0
+netstandard.library@2.0.0
+newtonsoft.json@13.0.1
+nuget.frameworks@6.5.0
+nunit3testadapter@4.5.0
+nunit@3.14.0
+system.collections.immutable@7.0.0
+system.io.pipelines@8.0.0
+system.reflection.metadata@1.6.0
+system.reflection.metadata@7.0.0
+system.runtime.compilerservices.unsafe@6.0.0
+system.text.encodings.web@8.0.0
+system.text.json@8.0.0
+netstandard.library@2.0.3
+system.buffers@4.5.1
+system.memory@4.5.5
+system.numerics.vectors@4.4.0
+system.text.encoding.codepages@7.0.0
+system.threading.tasks.extensions@4.5.4
+"
+
+inherit dotnet-pkg
+
+DESCRIPTION="Mond is a scripting language for .NET Core"
+HOMEPAGE="https://rohbot.net/mond/
+ https://github.com/Rohansi/Mond/"
+
+if [[ "${PV}" == *9999* ]] ; then
+ inherit git-r3
+
+ EGIT_REPO_URI="https://github.com/Rohansi/${PN^}.git"
+else
+ SRC_URI="https://github.com/Rohansi/${PN^}/archive/v${PV}.tar.gz
+ -> ${P}.tar.gz"
+ S="${WORKDIR}/${P^}"
+
+ KEYWORDS="amd64"
+fi
+
+SRC_URI+=" ${NUGET_URIS} "
+
+LICENSE="MIT"
+SLOT="0"
+
+DOTNET_PKG_BAD_PROJECTS=( TryMond/TryMond.csproj )
+DOTNET_PKG_PROJECTS=( Mond.Repl/Mond.Repl.csproj )
+
+DOCS=( README.md Examples )
+
+src_unpack() {
+ dotnet-pkg_src_unpack
+
+ if [[ -n "${EGIT_REPO_URI}" ]] ; then
+ git-r3_src_unpack
+ fi
+}
+
+src_install() {
+ dotnet-pkg-base_install
+ dotnet-pkg-base_dolauncher "/usr/share/${P}/Mond.Repl" "${PN}"
+
+ docompress -x "/usr/share/doc/${PF}/Examples"
+ einstalldocs
+}
diff --git a/dev-lang/mono-basic/metadata.xml b/dev-lang/mono-basic/metadata.xml
index ce3d691cf0f5..72440edc3bd4 100644
--- a/dev-lang/mono-basic/metadata.xml
+++ b/dev-lang/mono-basic/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>conikost@gentoo.org</email>
diff --git a/dev-lang/mono/Manifest b/dev-lang/mono/Manifest
index 5263681050bc..6060718ffc12 100644
--- a/dev-lang/mono/Manifest
+++ b/dev-lang/mono/Manifest
@@ -1,2 +1 @@
-DIST mono-6.10.0.104.tar.xz 292616252 BLAKE2B 705fb45ab280eae0e66b4c0fa0fc0e3ee87ed47164dd5bfa2f11115c30fb7b788bd9b25bfe7d820db88178bf0863b1cc984def94fe291c9924b311454735deed SHA512 73b853e9fc9af2e1bf5e45f7accb8893dd7e48f9723f74b03d99ea11cf565e2c5bb2d6ae4c81c7e7be0cdfa489016da909ed7b12808c8f84d9d25e33e1cb9874
-DIST mono-6.6.0.161.tar.xz 241179396 BLAKE2B 88cb0599cd5698500431dc8a78fa3b44a148bdc11d3067e950f0019c6bbeff9ebf2142e90f3b1023721c982fc4a59605ee969d84ee2137f968dee66b1ea0b55c SHA512 0b0c72daef9e1c10c0d566292997d4a923766390793ec1196a063b885e853b47a12503238632879cf7397f03b34909137e24c53db9300a4f209164e973284186
+DIST mono-6.12.0.199.tar.xz 304146664 BLAKE2B a38f0f1b80b300132247cee4621fc59bd65845c919ccd0cc55e00928b8a1b85b0695a9bb436c3efc0afd4e7dfa001714485964cf44239bb7c438ca6ed818dabf SHA512 9e379aaeb2e8750edbda74648c0ae9cc8cb9b2d7af85512bf2e729132c2e0322e776ef0b7657da708cbc1ae2a62f5532519d339fa68f465b30a65ca30d4a1e51
diff --git a/dev-lang/mono/files/mono-5.0.1.1-x86_32.patch b/dev-lang/mono/files/mono-5.0.1.1-x86_32.patch
deleted file mode 100644
index 08d443a22038..000000000000
--- a/dev-lang/mono/files/mono-5.0.1.1-x86_32.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-Native toolchain can default to different ABI (amd64 in bug case).
-Set target to i386.
-https://bugs.gentoo.org/600664
-diff --git a/mono/mini/aot-compiler.c b/mono/mini/aot-compiler.c
-index 0656a57..690c96b 100644
---- a/mono/mini/aot-compiler.c
-+++ b/mono/mini/aot-compiler.c
-@@ -9926,4 +9926,6 @@ compile_asm (MonoAotCompile *acfg)
- #ifdef TARGET_WIN32_MSVC
- #define AS_OPTIONS "-c -x assembler"
-+#elif defined(TARGET_X86) && !defined(TARGET_MACH)
-+#define AS_OPTIONS "--32"
- #elif defined(TARGET_AMD64) && !defined(TARGET_MACH)
- #define AS_OPTIONS "--64"
-@@ -9981,4 +9983,6 @@ compile_asm (MonoAotCompile *acfg)
- #elif defined(TARGET_POWERPC64)
- #define LD_OPTIONS "-m elf64ppc"
-+#elif defined(TARGET_X86)
-+#define LD_OPTIONS "-m elf_i386"
- #endif
-
diff --git a/dev-lang/mono/files/mono-6.12.0.122-disable-automagic-ccache.patch b/dev-lang/mono/files/mono-6.12.0.122-disable-automagic-ccache.patch
new file mode 100644
index 000000000000..b92592f6ea32
--- /dev/null
+++ b/dev-lang/mono/files/mono-6.12.0.122-disable-automagic-ccache.patch
@@ -0,0 +1,22 @@
+https://bugs.gentoo.org/831079
+--- a/mono/btls/CMakeLists.txt
++++ b/mono/btls/CMakeLists.txt
+@@ -12,11 +12,6 @@ endif()
+ enable_language(C)
+ enable_language(CXX)
+
+-find_program(CCACHE_PROGRAM ccache)
+-if(CCACHE_PROGRAM)
+- set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${CCACHE_PROGRAM}")
+-endif()
+-
+ if (MSVC OR CYGWIN)
+ set(BTLS_HOST_WIN32 1)
+ endif ()
+@@ -129,4 +124,4 @@ endif ()
+
+ if (CYGWIN)
+ target_link_libraries (mono-btls-shared wsock32 ws2_32)
+-endif ()
+\ No newline at end of file
++endif ()
diff --git a/dev-lang/mono/files/mono-6.12.0.199-configure-c99.patch b/dev-lang/mono/files/mono-6.12.0.199-configure-c99.patch
new file mode 100644
index 000000000000..3018dbe8339c
--- /dev/null
+++ b/dev-lang/mono/files/mono-6.12.0.199-configure-c99.patch
@@ -0,0 +1,51 @@
+https://github.com/mono/mono/pull/21730
+
+From 90315aa24569d13da93230ac2d3e5ec3c96f35b4 Mon Sep 17 00:00:00 2001
+From: Florian Weimer <fweimer@redhat.com>
+Date: Sat, 9 Dec 2023 00:06:09 +0100
+Subject: [PATCH] configure: Fix type errors in __thread test
+
+The thread start routine must return void *, and int and void *
+are distinct types. Compilers increasingly issue errors instead
+of warnings for such type errors, and this causes the configure
+probe to fail unconditionally, even if the system supports
+__thread variables.
+---
+ configure.ac | 10 +++++++---
+ 1 file changed, 7 insertions(+), 3 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index dbc4904d9b2e4..7518439118e37 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -2831,14 +2831,16 @@ if test x$host_win32 = xno; then
+ __thread int i;
+ static int res1, res2;
+
+- void thread_main (void *arg)
++ void *thread_main (void *parg)
+ {
++ int arg = *(int *)parg;
+ i = arg;
+ sleep (1);
+ if (arg == 1)
+ res1 = (i == arg);
+ else
+ res2 = (i == arg);
++ return NULL;
+ }
+
+ int main () {
+@@ -2846,8 +2848,10 @@ if test x$host_win32 = xno; then
+
+ i = 5;
+
+- pthread_create (&t1, NULL, thread_main, 1);
+- pthread_create (&t2, NULL, thread_main, 2);
++ int one = 1;
++ pthread_create (&t1, NULL, thread_main, &one);
++ int two = 2;
++ pthread_create (&t2, NULL, thread_main, &two);
+
+ pthread_join (t1, NULL);
+ pthread_join (t2, NULL);
diff --git a/dev-lang/mono/metadata.xml b/dev-lang/mono/metadata.xml
index 537ed12badec..dfc294ef3952 100644
--- a/dev-lang/mono/metadata.xml
+++ b/dev-lang/mono/metadata.xml
@@ -1,12 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
-<maintainer type="project">
- <email>dotnet@gentoo.org</email>
- <name>Gentoo Dotnet Project</name>
-</maintainer>
-<use>
- <flag name="pax_kernel">Enable if the user plans to run the package under a pax enabled hardened kernel</flag>
- <flag name="xen">Make mono generate code that is considerably faster on xen VMs but slightly slower on for normal systems.</flag>
-</use>
+ <!-- maintainer-needed -->
+ <use>
+ <flag name="pax-kernel">Enable if the user plans to run the package under a pax enabled hardened kernel</flag>
+ <flag name="xen">Make mono generate code that is considerably faster on xen VMs but slightly slower on for normal systems.</flag>
+ </use>
+ <upstream>
+ <remote-id type="github">mono/mono</remote-id>
+ <remote-id type="cpe">cpe:/a:mono-project:mono</remote-id>
+ <changelog>https://www.mono-project.com/docs/about-mono/releases/</changelog>
+ </upstream>
</pkgmetadata>
diff --git a/dev-lang/mono/mono-6.10.0.104.ebuild b/dev-lang/mono/mono-6.12.0.199-r2.ebuild
index 817de94a28c0..41bf74d5c0c3 100644
--- a/dev-lang/mono/mono-6.10.0.104.ebuild
+++ b/dev-lang/mono/mono-6.12.0.199-r2.ebuild
@@ -1,45 +1,53 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=6
+EAPI=7
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86 ~amd64-linux"
-
-SLOT="0"
-
-IUSE="nls minimal pax_kernel xen doc"
-
-inherit autotools eutils linux-info mono-env flag-o-matic pax-utils multilib-minimal
+CHECKREQS_DISK_BUILD="4500M"
+inherit autotools check-reqs flag-o-matic linux-info mono-env pax-utils multilib-minimal
DESCRIPTION="Mono runtime and class libraries, a C# compiler/interpreter"
HOMEPAGE="https://mono-project.com"
-LICENSE="MIT LGPL-2.1 GPL-2 BSD-4 NPL-1.1 Ms-PL GPL-2-with-linking-exception IDPL"
-
SRC_URI="https://download.mono-project.com/sources/mono/${P}.tar.xz"
-#Note: mono works incorrect with older versions of libgdiplus
-#details on dotnet overlay issue: https://github.com/gentoo/dotnet/issues/429
-COMMONDEPEND="
- !minimal? ( >=dev-dotnet/libgdiplus-6.0.2 )
+LICENSE="MIT LGPL-2.1 GPL-2 BSD-4 NPL-1.1 Ms-PL GPL-2-with-linking-exception IDPL"
+SLOT="0"
+KEYWORDS="amd64 ~arm ~arm64 ~ppc ~ppc64 -riscv x86 ~amd64-linux"
+IUSE="doc minimal nls pax-kernel selinux xen"
+
+# Note: mono works incorrect with older versions of libgdiplus
+# Details on dotnet overlay issue: https://github.com/gentoo/dotnet/issues/429
+DEPEND="
+ app-crypt/mit-krb5[${MULTILIB_USEDEP}]
+ sys-libs/zlib[${MULTILIB_USEDEP}]
ia64? ( sys-libs/libunwind )
+ !minimal? ( >=dev-dotnet/libgdiplus-6.0.2 )
nls? ( sys-devel/gettext )
"
-RDEPEND="${COMMONDEPEND}"
-DEPEND="${COMMONDEPEND}
- sys-devel/bc
- virtual/yacc
- pax_kernel? ( sys-apps/elfix )
- dev-util/cmake
+RDEPEND="
+ ${DEPEND}
+ app-misc/ca-certificates
+ selinux? ( sec-policy/selinux-mono )
+"
+# CMake is used for bundled deps
+BDEPEND="
+ dev-build/cmake
+ app-alternatives/bc
+ app-alternatives/yacc
+ pax-kernel? ( sys-apps/elfix )
"
PATCHES=(
- "${FILESDIR}"/mono-5.12-try-catch.patch
+ "${FILESDIR}"/${PN}-5.12-try-catch.patch
+ "${FILESDIR}"/${PN}-6.12.0.122-disable-automagic-ccache.patch
+ "${FILESDIR}"/${PN}-6.12.0.199-configure-c99.patch
)
pkg_pretend() {
linux-info_pkg_setup
- if use kernel_linux; then
- if linux_config_exists; then
+
+ if use kernel_linux ; then
+ if linux_config_exists ; then
linux_chkconfig_builtin SYSVIPC || die "SYSVIPC not enabled in the kernel"
else
# https://github.com/gentoo/gentoo/blob/f200e625bda8de696a28338318c9005b69e34710/eclass/linux-info.eclass#L686
@@ -48,27 +56,28 @@ pkg_pretend() {
ewarn "See https://bugs.gentoo.org/261869 for more info."
fi
fi
+
+ # bug #687892
+ check-reqs_pkg_pretend
}
pkg_setup() {
mono-env_pkg_setup
+ check-reqs_pkg_setup
}
src_prepare() {
- # we need to sed in the paxctl-ng -mr in the runtime/mono-wrapper.in so it don't
- # get killed in the build proces when MPROTECT is enable. #286280
- # RANDMMAP kill the build proces to #347365
- # use paxmark.sh to get PT/XT logic #532244
- if use pax_kernel ; then
+ # We need to sed in the paxctl-ng -mr in the runtime/mono-wrapper.in so it don't
+ # get killed in the build proces when MPROTECT is enabled, bug #286280
+ # RANDMMAP kills the build process too, bug #347365
+ # We use paxmark.sh to get PT/XT logic, bug #532244
+ if use pax-kernel ; then
ewarn "We are disabling MPROTECT on the mono binary."
# issue 9 : https://github.com/Heather/gentoo-dotnet/issues/9
sed '/exec "/ i\paxmark.sh -mr "$r/@mono_runtime@"' -i "${S}"/runtime/mono-wrapper.in || die "Failed to sed mono-wrapper.in"
fi
- # mono build system can fail otherwise
- strip-flags
-
default
# PATCHES contains configure.ac patch
@@ -77,25 +86,36 @@ src_prepare() {
}
multilib_src_configure() {
+ # Many, many unsafe warnings. Miscompiled with -O3 too: bug #915985.
+ append-flags -O2 -fno-strict-aliasing
+ filter-lto
+
local myeconfargs=(
$(use_with xen xen_opt)
--without-ikvm-native
--disable-dtrace
--enable-system-aot
- $(use_with doc mcs-docs)
+ $(multilib_native_use_with doc mcs-docs)
$(use_enable nls)
)
+ # Workaround(?) for bug #779025
+ # May be able to do a real fix by adjusting path used?
+ if multilib_is_native_abi ; then
+ myeconfargs+=( --enable-system-aot )
+ else
+ myeconfargs+=( --disable-system-aot )
+ fi
+
econf "${myeconfargs[@]}"
}
multilib_src_test() {
- cd mcs/tests || die
- emake check
+ emake -C mcs/tests check
}
multilib_src_install() {
- default_src_install
+ default
# Remove files not respecting LDFLAGS and that we are not supposed to provide, see Fedora
# mono.spec and http://www.mail-archive.com/mono-devel-list@lists.ximian.com/msg24870.html
@@ -103,3 +123,8 @@ multilib_src_install() {
rm -f "${ED}"/usr/lib/mono/{2.0,4.5}/mscorlib.dll.so || die
rm -f "${ED}"/usr/lib/mono/{2.0,4.5}/mcs.exe.so || die
}
+
+pkg_postinst() {
+ # bug #762265
+ cert-sync "${EROOT}"/etc/ssl/certs/ca-certificates.crt
+}
diff --git a/dev-lang/mono/mono-6.6.0.161.ebuild b/dev-lang/mono/mono-6.6.0.161.ebuild
deleted file mode 100644
index bc6f0cf7f0b4..000000000000
--- a/dev-lang/mono/mono-6.6.0.161.ebuild
+++ /dev/null
@@ -1,105 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-KEYWORDS="amd64 ~arm ~arm64 ~ppc ~ppc64 x86 ~amd64-linux"
-
-SLOT="0"
-
-IUSE="nls minimal pax_kernel xen doc"
-
-inherit autotools eutils linux-info mono-env flag-o-matic pax-utils multilib-minimal
-
-DESCRIPTION="Mono runtime and class libraries, a C# compiler/interpreter"
-HOMEPAGE="https://mono-project.com"
-LICENSE="MIT LGPL-2.1 GPL-2 BSD-4 NPL-1.1 Ms-PL GPL-2-with-linking-exception IDPL"
-
-SRC_URI="https://download.mono-project.com/sources/mono/${P}.tar.xz"
-
-#Note: mono works incorrect with older versions of libgdiplus
-#details on dotnet overlay issue: https://github.com/gentoo/dotnet/issues/429
-COMMONDEPEND="
- !minimal? ( >=dev-dotnet/libgdiplus-6.0.2 )
- ia64? ( sys-libs/libunwind )
- nls? ( sys-devel/gettext )
-"
-RDEPEND="${COMMONDEPEND}"
-DEPEND="${COMMONDEPEND}
- sys-devel/bc
- virtual/yacc
- pax_kernel? ( sys-apps/elfix )
- dev-util/cmake
-"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-5.0.1.1-x86_32.patch
- "${FILESDIR}"/mono-5.12-try-catch.patch
-)
-
-pkg_pretend() {
- linux-info_pkg_setup
- if use kernel_linux; then
- if linux_config_exists; then
- linux_chkconfig_builtin SYSVIPC || die "SYSVIPC not enabled in the kernel"
- else
- # https://github.com/gentoo/gentoo/blob/f200e625bda8de696a28338318c9005b69e34710/eclass/linux-info.eclass#L686
- ewarn "kernel config not found"
- ewarn "If CONFIG_SYSVIPC is not set in your kernel .config, mono will hang while compiling."
- ewarn "See https://bugs.gentoo.org/261869 for more info."
- fi
- fi
-}
-
-pkg_setup() {
- mono-env_pkg_setup
-}
-
-src_prepare() {
- # we need to sed in the paxctl-ng -mr in the runtime/mono-wrapper.in so it don't
- # get killed in the build proces when MPROTECT is enable. #286280
- # RANDMMAP kill the build proces to #347365
- # use paxmark.sh to get PT/XT logic #532244
- if use pax_kernel ; then
- ewarn "We are disabling MPROTECT on the mono binary."
-
- # issue 9 : https://github.com/Heather/gentoo-dotnet/issues/9
- sed '/exec "/ i\paxmark.sh -mr "$r/@mono_runtime@"' -i "${S}"/runtime/mono-wrapper.in || die "Failed to sed mono-wrapper.in"
- fi
-
- # mono build system can fail otherwise
- strip-flags
-
- default
-
- # PATCHES contains configure.ac patch
- eautoreconf
- multilib_copy_sources
-}
-
-multilib_src_configure() {
- local myeconfargs=(
- $(use_with xen xen_opt)
- --without-ikvm-native
- --disable-dtrace
- $(use_with doc mcs-docs)
- $(use_enable nls)
- )
-
- econf "${myeconfargs[@]}"
-}
-
-multilib_src_test() {
- cd mcs/tests || die
- emake check
-}
-
-multilib_src_install() {
- default_src_install
-
- # Remove files not respecting LDFLAGS and that we are not supposed to provide, see Fedora
- # mono.spec and http://www.mail-archive.com/mono-devel-list@lists.ximian.com/msg24870.html
- # for reference.
- rm -f "${ED}"/usr/lib/mono/{2.0,4.5}/mscorlib.dll.so || die
- rm -f "${ED}"/usr/lib/mono/{2.0,4.5}/mcs.exe.so || die
-}
diff --git a/dev-lang/mozart-stdlib/metadata.xml b/dev-lang/mozart-stdlib/metadata.xml
index c301cedb922a..85e4ed814fa2 100644
--- a/dev-lang/mozart-stdlib/metadata.xml
+++ b/dev-lang/mozart-stdlib/metadata.xml
@@ -1,8 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
-<maintainer type="person">
- <email>keri@gentoo.org</email>
- <name>Keri Harris</name>
-</maintainer>
+<!-- maintainer-needed -->
</pkgmetadata>
diff --git a/dev-lang/mozart-stdlib/mozart-stdlib-2.0.1.ebuild b/dev-lang/mozart-stdlib/mozart-stdlib-2.0.1.ebuild
index 024329f0def8..933aec7b6d3d 100644
--- a/dev-lang/mozart-stdlib/mozart-stdlib-2.0.1.ebuild
+++ b/dev-lang/mozart-stdlib/mozart-stdlib-2.0.1.ebuild
@@ -1,11 +1,10 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
-inherit cmake-utils
-
MY_PN=mozart2-stdlib
+inherit cmake
PATCHSET_VER="0"
@@ -16,21 +15,17 @@ SRC_URI="https://dev.gentoo.org/~keri/distfiles/mozart-stdlib/${MY_PN}-${PV}.tar
LICENSE="Mozart"
SLOT="0"
-KEYWORDS="amd64 x86"
+KEYWORDS="amd64 ~x86"
IUSE=""
RDEPEND=">=dev-lang/mozart-2.0.1"
DEPEND="${RDEPEND}"
S="${WORKDIR}/${MY_PN}"
-BUILD_DIR="${S}/build"
-CMAKE_USE_DIR="${S}"
src_prepare() {
if [[ -d "${WORKDIR}"/${PV} ]] ; then
eapply "${WORKDIR}"/${PV}
fi
- eapply_user
-
- cmake-utils_src_prepare
+ cmake_src_prepare
}
diff --git a/dev-lang/mozart/Manifest b/dev-lang/mozart/Manifest
index 777da6f5120e..15998cc09177 100644
--- a/dev-lang/mozart/Manifest
+++ b/dev-lang/mozart/Manifest
@@ -1,2 +1,2 @@
-DIST mozart-2.0.1-gentoo-patchset-1.tar.gz 39069 BLAKE2B 7490d13665314b3a998fb21bd8a342f262d92a395c3b0bbfa9a7813c044220c82ac02eb0103409127862c9bb4e4c44765b1228a7bdea2cb247492c94264f4fe0 SHA512 ce3cdb8ffebd95d6065439432905ad68b9cd8b86f58478092ab55df7ae7c72498a3e29bda462f3305aff6c99d010c45d786f905e2e906550ee61656ba122bbc6
+DIST mozart-2.0.1-gentoo-patchset-2.tar.gz 39435 BLAKE2B 18fe6f6e0d81d3b7901c73df567d79b6d8d8564bc49eb10dace2669de1448672a48dc0c509afbb5c506e8af65902ce36cb30f48c7fa26b6aa49cc09988218d42 SHA512 407da6fae39734097ab22fec5bc97ad1beb9103b13484ee0429a40a8f5803f6ed2abd2a64cfb56ccdddf9f82a2d9cd0883fe0a8f8a94bee963590606e1667127
DIST mozart-2.0.1.tar.gz 2281261 BLAKE2B 7f071e9ec130a0b482b299f4dac15d64f632702d6ecf55b7af0993087064e533b4de80f77520a725f69f68648a9ce763c8c8826bb24e52af49eda8c3ccfba0b5 SHA512 a72a6fa68296d06af72327fd11310b3be152e5ad9a56f1fc4200ac7b89cd177e9a23a38c6721e1885d4f2ed0870065e919fb9fe3c9a2833fcd8e4ac0fd43aeb4
diff --git a/dev-lang/mozart/files/50mozart-gentoo.el b/dev-lang/mozart/files/50mozart-gentoo.el
new file mode 100644
index 000000000000..3533d49d693b
--- /dev/null
+++ b/dev-lang/mozart/files/50mozart-gentoo.el
@@ -0,0 +1,13 @@
+;;; mozart site-lisp configuration
+
+(or (getenv "OZHOME")
+ (setenv "OZHOME" "/usr"))
+(add-to-list 'load-path "@SITELISP@")
+(autoload 'run-oz' "oz" "Start Mozart as a sub-process" t)
+(autoload 'oz-mode "oz" "Major mode for editing Oz code." t)
+(autoload 'oz-gump-mode "oz"
+ "Major mode for editing Oz code with embedded Gump specifications." t)
+(autoload 'ozm-mode "mozart" "Major mode for displaying Oz machine code." t)
+(add-to-list 'auto-mode-alist '("\\.oz$" . oz-mode))
+(add-to-list 'auto-mode-alist '("\\.ozg$" . oz-gump-mode))
+(add-to-list 'auto-mode-alist '("\\.ozm$" . ozm-mode))
diff --git a/dev-lang/mozart/metadata.xml b/dev-lang/mozart/metadata.xml
index 61b1b5e42a27..16ef0f221f64 100644
--- a/dev-lang/mozart/metadata.xml
+++ b/dev-lang/mozart/metadata.xml
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="person">
- <email>keri@gentoo.org</email>
- <name>Keri Harris</name>
- </maintainer>
+ <!-- maintainer-needed -->
+ <upstream>
+ <remote-id type="github">mozart/mozart2</remote-id>
+ </upstream>
</pkgmetadata>
diff --git a/dev-lang/mozart/mozart-2.0.1.ebuild b/dev-lang/mozart/mozart-2.0.1-r1.ebuild
index 09d87b133828..a575d07c66a9 100644
--- a/dev-lang/mozart/mozart-2.0.1.ebuild
+++ b/dev-lang/mozart/mozart-2.0.1-r1.ebuild
@@ -1,20 +1,21 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-inherit cmake-utils java-pkg-2 java-ant-2
+inherit cmake elisp-common java-pkg-2 java-ant-2
-PATCHSET_VER="1"
+PATCHSET_VER="2"
DESCRIPTION="Advanced development platform for intelligent, distributed applications"
HOMEPAGE="http://mozart2.org/"
SRC_URI="https://github.com/mozart/mozart2/archive/v${PV}.tar.gz -> ${P}.tar.gz
https://dev.gentoo.org/~keri/distfiles/mozart/${P}-gentoo-patchset-${PATCHSET_VER}.tar.gz"
+S="${WORKDIR}/${PN}2-${PV}"
LICENSE="BSD-2"
SLOT="0"
-KEYWORDS="amd64 x86"
+KEYWORDS="amd64 ~x86"
IUSE="emacs test"
RESTRICT="!test? ( test )"
@@ -24,63 +25,67 @@ RDEPEND="dev-libs/boost:=
dev-lang/tk:0
emacs? ( >=app-editors/emacs-23.1:* )"
+# https://bugs.gentoo.org/916882 restrict to <=virtual/jdk-17:*
DEPEND="${RDEPEND}
- dev-java/ant-core
- >=virtual/jdk-1.8:=
+ >=dev-java/ant-1.10.14-r3:0
+ <=virtual/jdk-17:*
dev-lang/scala:2.12
test? ( dev-cpp/gtest:= )"
-S="${WORKDIR}/${PN}2-${PV}"
-BUILD_DIR="${S}/build"
-CMAKE_USE_DIR="${S}"
+SITEFILE="50${PN}-gentoo.el"
src_prepare() {
if [[ -d "${WORKDIR}"/${PV} ]] ; then
eapply "${WORKDIR}"/${PV}
fi
- eapply_user
- touch "${S}"/stdlib/CMakeLists.txt
- touch "${S}"/vm/vm/test/gtest/CMakeLists.txt
+ touch stdlib/CMakeLists.txt || die
+ touch vm/vm/test/gtest/CMakeLists.txt || die
- cmake-utils_src_prepare
+ cmake_src_prepare
}
src_configure() {
- mycmakeargs=(
+ local mycmakeargs=(
-DMOZART_BOOST_USE_STATIC_LIBS=OFF
- -DEMACS=$(if use emacs; then echo /usr/bin/emacs; fi)
- )
+ -DEMACS=$(usex emacs "/usr/bin/emacs" "")
+ )
- cmake-utils_src_configure
+ cmake_src_configure
}
src_compile() {
EANT_GENTOO_CLASSPATH="scala:2.12"
- cd "${S}"/bootcompiler
+ pushd bootcompiler > /dev/null || die
ANT_OPTS="-Xss2M" eant jar
+ popd > /dev/null || die
- cd "${S}"
- cmake-utils_src_compile
+ cmake_src_compile
}
src_test() {
- cmake-utils_src_compile vmtest platform-test
- cmake-utils_src_test -V
+ cmake_build vmtest platform-test
+ cmake_src_test -V
}
src_install() {
- cmake-utils_src_install
+ cmake_src_install
+
+ dolib.so "${BUILD_DIR}"/vm/vm/main/libmozartvm.so
+ dolib.so "${BUILD_DIR}"/vm/boostenv/main/libmozartvmboost.so
- cd "${BUILD_DIR}"
- dolib.so vm/vm/main/libmozartvm.so
- dolib.so vm/boostenv/main/libmozartvmboost.so
+ if use emacs; then
+ elisp-install ${PN} "${S}"/opi/emacs/*.el
+ elisp-site-file-install "${FILESDIR}"/"${SITEFILE}" \
+ || die "elsip-site-file-install failed"
+ fi
}
pkg_postinst() {
if use emacs; then
xdg_icon_cache_update
xdg_desktop_database_update
+ elisp-site-regen
fi
}
@@ -88,5 +93,6 @@ pkg_postrm() {
if use emacs; then
xdg_icon_cache_update
xdg_desktop_database_update
+ elisp-site-regen
fi
}
diff --git a/dev-lang/mujs/Manifest b/dev-lang/mujs/Manifest
index c4b43650c73b..86b6a2c9dd1a 100644
--- a/dev-lang/mujs/Manifest
+++ b/dev-lang/mujs/Manifest
@@ -1 +1,2 @@
-DIST mujs-1.0.9.tar.gz 123113 BLAKE2B c55deaf14508c412394bf5fe3a53ef581d4e4726024d65f2ba5155eb2400a6e2f043c9f6721b170d19297e2cd38c62c462f3b4e102eb4bfe6e7857b40156c18b SHA512 a3dbc8dbf5c16b7de9803954fe38ea9f77c0e5b7de3895966ec0877e063d463c9950499791ea0d102e464bd0426413689f3edb15e38db3f13915d72f27556725
+DIST mujs-1.3.3.tar.gz 128097 BLAKE2B 9b880dc462af8945e647994f9a42cf121461c6b295538db6cef818919a7c2418ebe1df7d36f69214279ad2414d0ce7149a541a3533e766274624b9c44b733db9 SHA512 74288484185473a813c55e08dcc2fefba46f87651d3a1fcea6ac843bb09a4150e13e0d46b348a34380a0defdeaa388cc93b6f7f569a7886091a34b4951b9461b
+DIST mujs-1.3.4.tar.gz 128202 BLAKE2B d07942cce02dc71937ad0207887bcefce67916e19d01f134d68d3673bcc0649eb616a1fadc5a21ddbf372629f12e7c04be4652a31ba604359607e9e7233a8923 SHA512 0806684be5e6dc3cb7305355ab7c7babbfd3fd5bbd22515659a88a82c25f3f4b6af14f7ca07bacd154823b19110b749bba68311c9f317dd684e0fd5628ece573
diff --git a/dev-lang/mujs/files/mujs-1.0.5-flags.patch b/dev-lang/mujs/files/mujs-1.0.5-flags.patch
deleted file mode 100644
index 50de4fcff21e..000000000000
--- a/dev-lang/mujs/files/mujs-1.0.5-flags.patch
+++ /dev/null
@@ -1,30 +0,0 @@
---- a/Makefile 2018-09-11 12:47:31.000000000 +0200
-+++ b/Makefile 2018-10-28 20:09:17.000000000 +0100
-@@ -15,7 +15,7 @@
-
- # Compiler flags for various configurations:
-
--CFLAGS := -std=c99 -pedantic -Wall -Wextra -Wno-unused-parameter
-+CFLAGS += -std=c99 -pedantic -Wall -Wextra -Wno-unused-parameter
-
- ifeq "$(CC)" "clang"
- CFLAGS += -Wunreachable-code
-@@ -30,9 +30,6 @@
- else ifeq "$(build)" "sanitize"
- CFLAGS += -pipe -g -fsanitize=address -fno-omit-frame-pointer
- LDFLAGS += -fsanitize=address
--else
-- CFLAGS += -Os
-- LDFLAGS += -Wl,-s
- endif
-
- ifeq "$(HAVE_READLINE)" "yes"
-@@ -78,7 +75,7 @@
-
- $(OUT)/libmujs.so: one.c $(HDRS)
- @ mkdir -p $(dir $@)
-- $(CC) $(CFLAGS) -fPIC -shared -o $@ $< -lm
-+ $(CC) $(CFLAGS) $(LDFLAGS) -fPIC -shared -o $@ $< -lm
-
- $(OUT)/mujs: $(OUT)/libmujs.o $(OUT)/main.o
- @ mkdir -p $(dir $@)
diff --git a/dev-lang/mujs/files/mujs-1.3.3-flags.patch b/dev-lang/mujs/files/mujs-1.3.3-flags.patch
new file mode 100644
index 000000000000..90709863015f
--- /dev/null
+++ b/dev-lang/mujs/files/mujs-1.3.3-flags.patch
@@ -0,0 +1,12 @@
+diff --git a/Makefile.oirg b/Makefile
+index 24049d3..5d5d58d 100644
+--- a/Makefile.oirg
++++ b/Makefile
+@@ -5,6 +5,7 @@
+ default: build/debug/mujs build/debug/mujs-pp
+
+ CFLAGS = -std=c99 -pedantic -Wall -Wextra -Wno-unused-parameter
++CFLAGS += $(XCFLAGS) $(XLDFLAGS)
+
+ OPTIM = -O3
+
diff --git a/dev-lang/mujs/metadata.xml b/dev-lang/mujs/metadata.xml
index e253a1b97495..6ac2a7946bf4 100644
--- a/dev-lang/mujs/metadata.xml
+++ b/dev-lang/mujs/metadata.xml
@@ -1,9 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="person">
- <email>sam@gentoo.org</email>
- <name>Sam James</name>
+ <maintainer type="person" proxied="yes">
+ <email>rndxelement@protonmail.com</email>
+ <name>Philipp Rösner</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
</maintainer>
<longdescription>
MuJS is a lightweight Javascript interpreter designed for embedding in
diff --git a/dev-lang/mujs/mujs-1.0.9.ebuild b/dev-lang/mujs/mujs-1.0.9.ebuild
deleted file mode 100644
index 86fdb839d116..000000000000
--- a/dev-lang/mujs/mujs-1.0.9.ebuild
+++ /dev/null
@@ -1,60 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit flag-o-matic toolchain-funcs
-
-DESCRIPTION="An embeddable Javascript interpreter in C."
-HOMEPAGE="
- https://mujs.com/
- https://github.com/ccxvii/mujs/
-"
-SRC_URI="https://github.com/ccxvii/mujs/archive/${PV}.tar.gz -> ${P}.tar.gz"
-# Not available right now.
-#SRC_URI="https://mujs.com/downloads/${P}.tar.xz"
-
-LICENSE="ISC"
-# subslot matches SONAME
-SLOT="0/${PV}"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ppc ppc64 s390 sparc x86 ~amd64-linux ~ppc-macos ~x64-macos"
-IUSE="static-libs"
-
-RDEPEND="sys-libs/readline:0="
-DEPEND="${RDEPEND}"
-
-PATCHES=(
- "${FILESDIR}/${PN}-1.0.5-flags.patch"
-)
-
-src_prepare() {
- default
-
- tc-export AR CC
-
- # library's ABI (and API) changes in ~each release:
- # diff 'usr/includemujs.h' across releases to validate
- append-cflags -fPIC -Wl,-soname=lib${PN}.so.${PV}
-}
-
-src_compile() {
- emake VERSION=${PV} prefix=/usr shared
-}
-
-src_install() {
- local myeconfargs=(
- DESTDIR="${ED}"
- install-shared
- libdir="/usr/$(get_libdir)"
- prefix="/usr"
- VERSION="${PV}"
- $(usex static-libs install-static '')
- )
-
- emake "${myeconfargs[@]}"
-
- mv -v "${ED}"/usr/$(get_libdir)/lib${PN}.so{,.${PV}} || die
-
- dosym lib${PN}.so.${PV} /usr/$(get_libdir)/lib${PN}.so
- dosym lib${PN}.so.${PV} /usr/$(get_libdir)/lib${PN}.so.${PV:0:1}
-}
diff --git a/dev-lang/mujs/mujs-1.3.3.ebuild b/dev-lang/mujs/mujs-1.3.3.ebuild
new file mode 100644
index 000000000000..3f02a773e3e3
--- /dev/null
+++ b/dev-lang/mujs/mujs-1.3.3.ebuild
@@ -0,0 +1,61 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit flag-o-matic multilib toolchain-funcs
+
+DESCRIPTION="An embeddable JavaScript interpreter written in C"
+HOMEPAGE="https://mujs.com/ https://github.com/ccxvii/mujs"
+SRC_URI="https://mujs.com/downloads/${P}.tar.gz"
+
+LICENSE="ISC"
+# The subslot matches the SONAME
+SLOT="0/${PV}"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~ppc-macos ~x64-macos"
+
+RDEPEND="sys-libs/readline:="
+DEPEND="${RDEPEND}"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-flags.patch
+)
+
+src_prepare() {
+ default
+
+ tc-export AR CC
+
+ append-cflags -fPIC
+
+ # The library's ABI (and API) might change in new releases
+ # Diff 'usr/include/mujs.h' across releases to validate
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ append-cflags -Wl,-install_name,"${EPREFIX}"/usr/$(get_libdir)/lib${PN}.${PV}.dylib
+ else
+ append-cflags -Wl,-soname=lib${PN}.so.${PV}
+ fi
+}
+
+src_compile() {
+ # We need to use ${PV} for the pkgconfig file, see: #784461
+ emake \
+ VERSION=${PV} \
+ XCFLAGS="${CFLAGS}" \
+ XLDFLAGS="${LDFLAGS}" \
+ prefix=/usr \
+ release
+}
+
+src_install() {
+ emake \
+ DESTDIR="${ED}" \
+ VERSION=${PV} \
+ libdir="/usr/$(get_libdir)" \
+ prefix=/usr \
+ install-shared
+
+ mv -v "${ED}"/usr/$(get_libdir)/lib${PN}$(get_libname) "${ED}"/usr/$(get_libdir)/lib${PN}$(get_libname ${PV}) || die "Failed adding version suffix to mujs shared library"
+ dosym lib${PN}$(get_libname ${PV}) /usr/$(get_libdir)/lib${PN}$(get_libname)
+ dosym lib${PN}$(get_libname ${PV}) /usr/$(get_libdir)/lib${PN}$(get_libname ${PV:0:1})
+}
diff --git a/dev-lang/mujs/mujs-1.3.4.ebuild b/dev-lang/mujs/mujs-1.3.4.ebuild
new file mode 100644
index 000000000000..324a9ff6f664
--- /dev/null
+++ b/dev-lang/mujs/mujs-1.3.4.ebuild
@@ -0,0 +1,63 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit flag-o-matic multilib toolchain-funcs
+
+DESCRIPTION="An embeddable JavaScript interpreter written in C"
+HOMEPAGE="https://mujs.com/ https://github.com/ccxvii/mujs"
+SRC_URI="https://mujs.com/downloads/${P}.tar.gz"
+
+LICENSE="ISC"
+# The subslot matches the SONAME
+SLOT="0/${PV}"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~ppc-macos ~x64-macos"
+
+RDEPEND="sys-libs/readline:="
+DEPEND="${RDEPEND}"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.3.3-flags.patch
+)
+
+src_prepare() {
+ default
+
+ tc-export AR CC
+
+ append-cflags -fPIC
+
+ # The library's ABI (and API) might change in new releases
+ # Diff 'usr/include/mujs.h' across releases to validate
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ append-cflags -Wl,-install_name,"${EPREFIX}"/usr/$(get_libdir)/lib${PN}.${PV}.dylib
+ else
+ append-cflags -Wl,-soname=lib${PN}.so.${PV}
+ fi
+}
+
+src_compile() {
+ # We need to use ${PV} for the pkgconfig file, see: #784461
+ emake \
+ VERSION=${PV} \
+ XCFLAGS="${CFLAGS}" \
+ XLDFLAGS="${LDFLAGS}" \
+ prefix=/usr \
+ release
+}
+
+src_install() {
+ emake \
+ DESTDIR="${ED}" \
+ VERSION=${PV} \
+ libdir="/usr/$(get_libdir)" \
+ prefix=/usr \
+ install-shared
+
+ mv -v "${ED}"/usr/$(get_libdir)/lib${PN}$(get_libname) \
+ "${ED}"/usr/$(get_libdir)/lib${PN}$(get_libname ${PV}) \
+ || die "Failed adding version suffix to mujs shared library"
+ dosym lib${PN}$(get_libname ${PV}) /usr/$(get_libdir)/lib${PN}$(get_libname)
+ dosym lib${PN}$(get_libname ${PV}) /usr/$(get_libdir)/lib${PN}$(get_libname ${PV:0:1})
+}
diff --git a/dev-lang/nasm/Manifest b/dev-lang/nasm/Manifest
index 43b1e8d6ceac..3c759667d311 100644
--- a/dev-lang/nasm/Manifest
+++ b/dev-lang/nasm/Manifest
@@ -1 +1,3 @@
-DIST nasm-2.15.05.tar.xz 995732 BLAKE2B a41434965c2125577b762d907a0a3c251c75d9f9beac230fba4099182c7f7beb08c6d2c05c2432b0dc8ba829f24077f44c3096faea9bd0a533250e6dbbfaef35 SHA512 512f90a2584f1c5811429274b97c64a2cedf37b9fdeffb1bcd0ea64afd9ecc19a2d7877ca8f1e05393aa324153fc9f39ea51dacbf8d25a7d5a2d7728c925dba7
+DIST nasm-2.16.01.tar.xz 1017732 BLAKE2B 0f7e96648e3db6fa4a8e10a89885f61cab7d79af25adbcc9d4706b3af61206c3cae024b7f873d636f5c1b2cb34ce5e7fbecc16af9b59086e9a1f49fb37c59670 SHA512 51fccb5639ce019d9c423c0f279750ffbd74c64cd41dd3b185d1aa1a1aaed79c5d3cd8d4bebbc13ee249a375ed27457ea2abde1a4dbb24d354598fffd1254833
+DIST nasm-2.16.02.tar.xz 1044824 BLAKE2B daa3585e9aef3c388e3b577a52453b31aaa7f13942e621c21bbe6ec744ff30bf2692e853dda193b30006989cb10e40dcc1cf0107176e31fd5ee096baad28c7a1 SHA512 9ccafb4cd9064fb21f6551309d35ba7461de8da138b1239d76c2ea0c070a1a767f1019d5d705088375d625cfb73eebbfd9dfa3588107793b95354d89dcfd22c3
+DIST nasm-2.16.03.tar.xz 1032388 BLAKE2B 742cbf330341fde9f778d8ca13e8c06199f48796d47028ac973d39e3d9e434450cdfebe89f6ab248d372bdaeb0c88a25eb7153a39b66fc05e770523d4c9e11e9 SHA512 0c706e41a9c33e1ac3bad5056e8bf8cbcd51785b551a6e34ce7d0d723df8eaab8603a033e89b3dcda1004b558f9e9ef3196691500f10d8201bf47a323a516f84
diff --git a/dev-lang/nasm/files/nasm-2.16-autoconf-macro-fixes.patch b/dev-lang/nasm/files/nasm-2.16-autoconf-macro-fixes.patch
new file mode 100644
index 000000000000..c2efc5b2e2f6
--- /dev/null
+++ b/dev-lang/nasm/files/nasm-2.16-autoconf-macro-fixes.patch
@@ -0,0 +1,241 @@
+From 5a2d629501d57301fe1d85fe6b2576e318f523d1 Mon Sep 17 00:00:00 2001
+From: "H. Peter Anvin" <hpa@zytor.com>
+Date: Sun, 19 Feb 2023 21:26:15 -0800
+Subject: [PATCH] autoconf: a much of macro fixes... not sure how this ever
+ worked?
+
+Exposed a bunch of problems with the autoconf m4 macro
+library. Hopefulyy fix it, and tidy it up in the process.
+
+Signed-off-by: H. Peter Anvin <hpa@zytor.com>
+--- /dev/null
++++ b/autoconf/m4/pa_add_cppflags.m4
+@@ -0,0 +1,9 @@
++dnl --------------------------------------------------------------------------
++dnl PA_ADD_CPPFLAGS(variable, flag [,actual_flag [,success [,failure]]]])
++dnl
++dnl Attempt to add the given option to xFLAGS, if it doesn't break
++dnl compilation. If the option to be tested is different than the
++dnl option that should actually be added, add the option to be
++dnl actually added as a second argument.
++dnl --------------------------------------------------------------------------
++AC_DEFUN([PA_ADD_CPPFLAGS], [PA_ADD_FLAGS(CPPFLAGS, [$1], [$2], [$3], [$4])])
+--- a/autoconf/m4/pa_add_flags.m4
++++ b/autoconf/m4/pa_add_flags.m4
+@@ -1,23 +1,39 @@
+ dnl --------------------------------------------------------------------------
+-dnl PA_ADD_FLAGS(variable, flag [,actual_flag [,success [,failure]]])
++dnl PA_ADD_FLAGS(flagvar, flags)
+ dnl
+-dnl Attempt to add the given option to CPPFLAGS, if it doesn't break
+-dnl compilation. If the option to be tested is different than the
+-dnl option that should actually be added, add the option to be
+-dnl actually added as a second argument.
++dnl Add [flags] to the variable [flagvar] if and only if it is accepted
++dnl by all languages affected by [flagvar], if those languages have
++dnl been previously seen in the script.
+ dnl --------------------------------------------------------------------------
+ AC_DEFUN([PA_ADD_FLAGS],
+-[AC_MSG_CHECKING([if $CC accepts $2])
+- pa_add_flags__old_flags="$$1"
+- $1="$$1 $2"
+- AC_LINK_IFELSE(
+- [AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
+- [printf("Hello, World!\n");])],
+- [AC_MSG_RESULT([yes])
+- $1="$pa_add_flags__old_flags ifelse([$3],[],[$2],[$3])"
+- AC_DEFINE(PA_SYM([$1_],[$2]), 1,
+- [Define to 1 if compiled with the `$2' compiler flag])
++[
++ AS_VAR_PUSHDEF([old], [_$0_$1_orig])
++ AS_VAR_PUSHDEF([ok], [_$0_$1_ok])
++ AS_VAR_PUSHDEF([flags], [$1])
++
++ AS_VAR_COPY([old], [flags])
++ AS_VAR_SET([flags], ["$flags $2"])
++ AS_VAR_SET([ok], [yes])
++
++ PA_LANG_FOREACH(PA_FLAGS_LANGLIST($1),
++ [AS_VAR_IF([ok], [yes],
++ [AC_MSG_CHECKING([if $]_AC_CC[ accepts $2])
++ PA_BUILD_IFELSE([],
++ [AC_MSG_RESULT([yes])],
++ [AC_MSG_RESULT([no])
++ AS_VAR_SET([ok], [no])])])
++ ])
++
++ AS_VAR_IF([ok], [yes],
++ [m4_ifnblank([$3],[AS_VAR_SET([flags], ["$old $3"])])
++ m4_foreach_w([_pa_add_flags_flag], [m4_ifblank([$3],[$2],[$3])],
++ [AC_DEFINE(PA_SYM([$1_]_pa_add_flags_flag), 1,
++ [Define to 1 if compiled with the ]_pa_add_flags_flag[ compiler flag])])
+ $4],
+- [AC_MSG_RESULT([no])
+- $1="$pa_add_flags__old_flags"
+- $5])])
++ [AS_VAR_SET([flags], ["$old"])
++ $5])
++
++ AS_VAR_POPDEF([flags])
++ AS_VAR_POPDEF([ok])
++ AS_VAR_POPDEF([old])
++])
+--- /dev/null
++++ b/autoconf/m4/pa_build_ifelse.m4
+@@ -0,0 +1,16 @@
++dnl --------------------------------------------------------------------------
++dnl PA_BUILD_IFELSE(input [,success [,failure]])
++dnl
++dnl Same as AC_LINK_IFELSE for languages where linking is applicable,
++dnl otherwise AC_COMPILE_IFELSE.
++dnl
++dnl If the first argument is empty, use _AC_LANG_IO_PROGRAM.
++dnl --------------------------------------------------------------------------
++m4_defun([_PA_BUILD_IFELSE],
++[m4_case(_AC_LANG,
++ [Erlang], [AC_COMPILE_IFELSE($@)],
++ [AC_LINK_IFELSE($@)])])
++
++AC_DEFUN([PA_BUILD_IFELSE],
++[_PA_BUILD_IFELSE([m4_ifblank([$1],[AC_LANG_SOURCE(_AC_LANG_IO_PROGRAM)],
++ [$1])],[$2],[$3])])
+--- /dev/null
++++ b/autoconf/m4/pa_flags_langlist.m4
+@@ -0,0 +1,19 @@
++dnl --------------------------------------------------------------------------
++dnl PA_FLAGS_LANGLIST(flagvar)
++dnl
++dnl Return a list of languages affected by the variable flagvar.
++dnl If flagvar is unknown, assume it affects the current language.
++dnl --------------------------------------------------------------------------
++AC_DEFUN([PA_FLAGS_LANGLIST],
++[m4_dquote(m4_case([$1],
++ [CPPFLAGS], [[C],[C++],[Objective C],[Objective C++]],
++ [CFLAGS], [[C]],
++ [CXXFLAGS], [[C++]],
++ [FFLAGS], [[Fortran 77]],
++ [FCFLAGS], [[Fortran]],
++ [ERLCFLAGS], [[Erlang]],
++ [OBJCFLAGS], [[Objective C]],
++ [OBJCXXFLAGS], [[Objective C++]],
++ [GOFLAGS], [[Go]],
++ [LDFLAGS], [[C],[C++],[Fortran 77],[Fortran],[Objective C],[Objective C++],[Go]],
++ m4_dquote(_AC_LANG)))])
+--- /dev/null
++++ b/autoconf/m4/pa_lang_foreach.m4
+@@ -0,0 +1,15 @@
++dnl --------------------------------------------------------------------------
++dnl PA_LANG_FOREACH(subset, body)
++dnl
++dnl Expand [body] for each language encountered in the configure script also
++dnl present in [subset], or all if [subset] is empty
++dnl --------------------------------------------------------------------------
++AC_DEFUN([_PA_LANG_DO],dnl
++[AC_LANG([$2])dnl
++$1])
++
++AC_DEFUN([PA_LANG_FOREACH],dnl
++[m4_pushdef([_pa_lang_foreach_current],[_AC_LANG])dnl
++m4_map_args([m4_curry([_PA_LANG_DO],[$2])],m4_unquote(PA_LANG_SEEN_LIST($1)))dnl
++AC_LANG(_pa_lang_foreach_current)dnl
++m4_popdef([_pa_lang_foreach_current])])
+--- /dev/null
++++ b/autoconf/m4/pa_lang_seen_list.m4
+@@ -0,0 +1,20 @@
++dnl --------------------------------------------------------------------------
++dnl PA_LANG_SEEN_LIST(subset)
++dnl
++dnl List of the language lang has been used in the configuration
++dnl script so far, possibly subset by [subset].
++dnl
++dnl This relies on overriding _AC_LANG_SET(from, to),
++dnl the internal implementation of _AC_LANG.
++dnl --------------------------------------------------------------------------
++m4_ifndef([_PA_LANG_SET],
++[m4_rename([_AC_LANG_SET], [_PA_LANG_SET])dnl
++m4_defun([_AC_LANG_SET], [m4_set_add([_PA_LANG_SEEN_SET],[$2])dnl
++_PA_LANG_SET($@)])])
++
++AC_DEFUN([PA_LANG_SEEN_LIST],
++[m4_set_delete([_pa_lang_seen_subset])dnl
++m4_pushdef([_pa_lang_seen_subset_list],m4_ifnblank([$1],[$1],m4_dquote(m4_set_list([_PA_LANG_SEEN_SET]))))dnl
++m4_set_add_all([_pa_lang_seen_subset],_pa_lang_seen_subset_list)dnl
++m4_cdr(m4_set_intersection([_pa_lang_seen_subset],[_PA_LANG_SEEN_SET]))dnl
++m4_popdef([_pa_lang_seen_subset_list])])
+--- a/configure.ac
++++ b/configure.ac
+@@ -12,9 +12,6 @@ dnl start; this is used to generate config/unconfig.h.
+ AH_BOTTOM([
+ /* Begin unconfig.h */])
+
+-dnl Save initial CFLAGS, to see if -g -O2 came from configure or not
+-pa_init_cflags="$CFLAGS"
+-
+ dnl This prevents us from running Wine and thinking we are not
+ dnl cross-compiling when in fact we are; running Wine here is at
+ dnl the best very slow and doesn't buy us a single thing at all.
+@@ -27,35 +24,29 @@ AC_CANONICAL_HOST
+ dnl Enable any available C extensions
+ AC_PROG_CC
+ AC_USE_SYSTEM_EXTENSIONS
+-AC_SYS_LARGEFILE
+-PA_ADD_CFLAGS([-std=c17], [], [],
+-[PA_ADD_CFLAGS([-std=c11], [], [],
+- [PA_ADD_CFLAGS([-std=c99])])])
+-
+-dnl If the user did not specify a CFLAGS default, change default
+-dnl to -O0 for debugging
+-PA_ARG_DISABLED([optimization],
+- [compile without optimization (-O0) to help debugging],
+- [pa_no_optimize=true])
++PA_ADD_CPPFLAGS([-std=c17], [], [],
++[PA_ADD_CPPFLAGS([-std=c11], [], [],
++ [PA_ADD_CPPFLAGS([-std=c99])])])
+
+-dnl Other programs
+-pa_no_optimize=false
+-
+-dnl Compile and link with dwarf debug
++dnl Compile and link with gdb debug extensions
+ PA_ARG_ENABLED([gdb],
+- [disable optimization and compile with extra debug information for GDB debugger],
+- [PA_ADD_CFLAGS([-ggdb3])
+- pa_no_optimize=true])
++ [compile with extra debug information for GDB debugger],
++ [PA_ADD_CFLAGS([-ggdb3])])
+
+-AS_IF([$pa_no_optimize],
+- [PA_ADD_CFLAGS([-O0])
+- PA_ADD_CFLAGS([-fno-omit-frame-pointer])])
++dnl Disable optimization
++PA_ARG_DISABLED([optimization],
++ [compile without optimization (-O0) to help debugging],
++ [PA_ADD_CFLAGS([-O0])
++ PA_ADD_CFLAGS([-fno-omit-frame-pointer])])
+
+ dnl Profiling
+ PA_ARG_ENABLED([profiling],
+ [compile with profiling (-pg option)],
+ [PA_ADD_CFLAGS([-pg])])
+
++dnl Large files
++AC_SYS_LARGEFILE
++
+ dnl Abort on panic
+ PA_ARG_ENABLED([panic-abort],
+ [call abort() on panic to trap in the debugger],
+@@ -104,10 +95,10 @@ AC_PROG_MAKE_SET
+ AC_PROG_INSTALL
+ AC_PROG_MKDIR_P
+
+-AC_CHECK_PROGS(NROFF, nroff, false)
+-AC_CHECK_PROGS(ASCIIDOC, asciidoc, false)
+-AC_CHECK_PROGS(XMLTO, xmlto, false)
+-AC_CHECK_PROGS(XZ, xz, false)
++AC_CHECK_PROGS([NROFF], nroff, false)
++AC_CHECK_PROGS([ASCIIDOC], asciidoc, false)
++AC_CHECK_PROGS([XMLTO], xmlto, false)
++AC_CHECK_PROGS([XZ], xz, false)
+
+ dnl Check for progs needed for manpage generation
+ MANPAGES=manpages
diff --git a/dev-lang/nasm/files/nasm-2.16.02-unconfig.patch b/dev-lang/nasm/files/nasm-2.16.02-unconfig.patch
new file mode 100644
index 000000000000..77478b7e68cc
--- /dev/null
+++ b/dev-lang/nasm/files/nasm-2.16.02-unconfig.patch
@@ -0,0 +1,11 @@
+--- a/Makefile.in 2024-04-05 07:51:48.394437050 -0000
++++ b/Makefile.in 2024-04-05 07:52:38.731388961 -0000
+@@ -214,7 +214,7 @@
+ INSDEP = x86/insns.dat x86/insns.pl x86/insns-iflags.ph x86/iflags.ph
+
+ config/unconfig.h: config/config.h.in
+- $(RUNPERL) $(tools)/unconfig.pl \
++ $(RUNPERL) $(top_srcdir)/autoconf/unconfig.pl \
+ '$(srcdir)' config/config.h.in config/unconfig.h
+
+ x86/iflag.c: $(INSDEP)
diff --git a/dev-lang/nasm/metadata.xml b/dev-lang/nasm/metadata.xml
index f7462a193d87..af856ea306f0 100644
--- a/dev-lang/nasm/metadata.xml
+++ b/dev-lang/nasm/metadata.xml
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
- <email>slyfox@gentoo.org</email>
- <name>Sergei Trofimovich</name>
+ <email>matthew@gentoo.org</email>
+ <name>Matthew Smith</name>
</maintainer>
<longdescription>
The Netwide Assembler, NASM, is an 80x86 assembler designed for portability
@@ -14,7 +14,7 @@ and easy to understand, similar to Intel's but less complex. It supports
Pentium, P6, MMX, 3DNow!, SSE and SSE2 opcodes, and has macro capability.
</longdescription>
<upstream>
- <remote-id type="sourceforge">nasm</remote-id>
+ <remote-id type="github">netwide-assembler/nasm</remote-id>
<bugs-to>https://bugzilla.nasm.us/</bugs-to>
</upstream>
</pkgmetadata>
diff --git a/dev-lang/nasm/nasm-2.15.05.ebuild b/dev-lang/nasm/nasm-2.15.05.ebuild
deleted file mode 100644
index c8a16b87337d..000000000000
--- a/dev-lang/nasm/nasm-2.15.05.ebuild
+++ /dev/null
@@ -1,47 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit flag-o-matic
-
-DESCRIPTION="groovy little assembler"
-HOMEPAGE="https://www.nasm.us/"
-SRC_URI="https://www.nasm.us/pub/nasm/releasebuilds/${PV/_}/${P/_}.tar.xz"
-
-LICENSE="BSD-2"
-SLOT="0"
-KEYWORDS="amd64 ~arm64 ~ia64 ~ppc64 x86 ~amd64-linux ~x86-linux"
-IUSE="doc"
-
-RDEPEND=""
-DEPEND=""
-# [fonts note] doc/psfonts.ph defines ordered list of font preference.
-# Currently 'media-fonts/source-pro' is most preferred and is able to
-# satisfy all 6 font flavours: tilt, chapter, head, etc.
-BDEPEND="
- dev-lang/perl
- doc? (
- app-text/ghostscript-gpl
- dev-perl/Font-TTF
- dev-perl/Sort-Versions
- media-fonts/source-pro
- virtual/perl-File-Spec
- )
-"
-
-S=${WORKDIR}/${P/_}
-
-PATCHES=(
- "${FILESDIR}"/${PN}-2.15-bsd-cp-doc.patch
-)
-
-src_compile() {
- default
- use doc && emake doc
-}
-
-src_install() {
- default
- emake DESTDIR="${D}" install_rdf $(usex doc install_doc '')
-}
diff --git a/dev-lang/nasm/nasm-2.16.01-r1.ebuild b/dev-lang/nasm/nasm-2.16.01-r1.ebuild
new file mode 100644
index 000000000000..0f855d0d70ea
--- /dev/null
+++ b/dev-lang/nasm/nasm-2.16.01-r1.ebuild
@@ -0,0 +1,72 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+DESCRIPTION="groovy little assembler"
+HOMEPAGE="https://www.nasm.us/"
+SRC_URI="https://www.nasm.us/pub/nasm/releasebuilds/${PV/_}/${P/_}.tar.xz"
+S="${WORKDIR}"/${P/_}
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="amd64 arm64 ~ia64 ~loong ppc64 ~riscv x86 ~amd64-linux ~x86-linux"
+IUSE="doc"
+
+QA_CONFIG_IMPL_DECL_SKIP=(
+ _BitScanReverse
+ _BitScanReverse64
+ __cpu_to_le16
+ __cpu_to_le32
+ __cpu_to_le64
+ _byteswap_uint64
+ _byteswap_ulong
+ _byteswap_ushort
+ cpu_to_le16
+ cpu_to_le32
+ cpu_to_le64
+)
+
+# [fonts note] doc/psfonts.ph defines ordered list of font preference.
+# Currently 'media-fonts/source-pro' is most preferred and is able to
+# satisfy all 6 font flavours: tilt, chapter, head, etc.
+BDEPEND="
+ dev-lang/perl
+ doc? (
+ app-text/ghostscript-gpl
+ dev-perl/Font-TTF
+ dev-perl/Sort-Versions
+ media-fonts/source-code-pro
+ media-fonts/source-sans:3
+ virtual/perl-File-Spec
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.15-bsd-cp-doc.patch
+ "${FILESDIR}"/${PN}-2.16-autoconf-macro-fixes.patch
+)
+
+src_prepare() {
+ default
+
+ # https://bugs.gentoo.org/870214
+ # During the split of media-fonts/source-pro, the source-sans files
+ # were renamed. Currently depend on media-fonts/source-sans:3 which works
+ # with this sed.
+ sed -i 's/SourceSansPro/SourceSans3/g' doc/psfonts.ph || die
+
+ AT_M4DIR="${S}/autoconf/m4" eautoreconf
+}
+
+src_compile() {
+ default
+ use doc && emake doc
+}
+
+src_install() {
+ default
+ emake DESTDIR="${D}" install $(usex doc install_doc '')
+}
diff --git a/dev-lang/nasm/nasm-2.16.02.ebuild b/dev-lang/nasm/nasm-2.16.02.ebuild
new file mode 100644
index 000000000000..bd26dd550266
--- /dev/null
+++ b/dev-lang/nasm/nasm-2.16.02.ebuild
@@ -0,0 +1,86 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+DESCRIPTION="groovy little assembler"
+HOMEPAGE="https://www.nasm.us/"
+SRC_URI="https://www.nasm.us/pub/nasm/releasebuilds/${PV/_}/${P/_}.tar.xz"
+S="${WORKDIR}"/${P/_}
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~ia64 ~loong ~ppc64 ~riscv ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc"
+
+QA_CONFIG_IMPL_DECL_SKIP=(
+ # Windows.
+ _BitScanReverse
+ _BitScanReverse64
+
+ # Linux headers that are not included.
+ __cpu_to_le16
+ __cpu_to_le32
+ __cpu_to_le64
+ _byteswap_uint64
+ _byteswap_ulong
+ _byteswap_ushort
+ cpu_to_le16
+ cpu_to_le32
+ cpu_to_le64
+
+ # __typeof as gnu extensions are not enabled
+ typeof
+
+ # musl doesn't define __bswap_N in endian.h (it's named _bswapN
+ # instead). could be fixed to call this instead, or to include
+ # musl's byteswap.h instead, but it is much easier to fall back on
+ # __builtin_bswapN. Bug #928848
+ __bswap_16
+ __bswap_32
+ __bswap_64
+)
+
+# [fonts note] doc/psfonts.ph defines ordered list of font preference.
+# Currently 'media-fonts/source-pro' is most preferred and is able to
+# satisfy all 6 font flavours: tilt, chapter, head, etc.
+BDEPEND="
+ dev-lang/perl
+ doc? (
+ app-text/ghostscript-gpl
+ dev-perl/Font-TTF
+ dev-perl/Sort-Versions
+ media-fonts/source-code-pro
+ media-fonts/source-sans:3
+ virtual/perl-File-Spec
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.15-bsd-cp-doc.patch
+ "${FILESDIR}"/${PN}-2.16.02-unconfig.patch
+)
+
+src_prepare() {
+ default
+
+ # https://bugs.gentoo.org/870214
+ # During the split of media-fonts/source-pro, the source-sans files
+ # were renamed. Currently depend on media-fonts/source-sans:3 which works
+ # with this sed.
+ sed -i 's/SourceSansPro/SourceSans3/g' doc/psfonts.ph || die
+
+ AT_M4DIR="${S}/autoconf/m4" eautoreconf
+}
+
+src_compile() {
+ default
+ use doc && emake doc
+}
+
+src_install() {
+ default
+ emake DESTDIR="${D}" install $(usex doc install_doc '')
+}
diff --git a/dev-lang/nasm/nasm-2.16.03.ebuild b/dev-lang/nasm/nasm-2.16.03.ebuild
new file mode 100644
index 000000000000..4c03189e21b1
--- /dev/null
+++ b/dev-lang/nasm/nasm-2.16.03.ebuild
@@ -0,0 +1,92 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+DESCRIPTION="groovy little assembler"
+HOMEPAGE="https://www.nasm.us/"
+SRC_URI="https://www.nasm.us/pub/nasm/releasebuilds/${PV/_}/${P/_}.tar.xz"
+S="${WORKDIR}"/${P/_}
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~ia64 ~loong ~ppc64 ~riscv ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc lto"
+
+QA_CONFIG_IMPL_DECL_SKIP=(
+ # Windows.
+ _BitScanReverse
+ _BitScanReverse64
+
+ # Linux headers that are not included.
+ __cpu_to_le16
+ __cpu_to_le32
+ __cpu_to_le64
+ _byteswap_uint64
+ _byteswap_ulong
+ _byteswap_ushort
+ cpu_to_le16
+ cpu_to_le32
+ cpu_to_le64
+
+ # __typeof as gnu extensions are not enabled
+ typeof
+
+ # musl doesn't define __bswap_N in endian.h (it's named _bswapN
+ # instead). could be fixed to call this instead, or to include
+ # musl's byteswap.h instead, but it is much easier to fall back on
+ # __builtin_bswapN. Bug #928848
+ __bswap_16
+ __bswap_32
+ __bswap_64
+)
+
+# [fonts note] doc/psfonts.ph defines ordered list of font preference.
+# Currently 'media-fonts/source-pro' is most preferred and is able to
+# satisfy all 6 font flavours: tilt, chapter, head, etc.
+BDEPEND="
+ dev-lang/perl
+ doc? (
+ app-text/ghostscript-gpl
+ dev-perl/Font-TTF
+ dev-perl/Sort-Versions
+ media-fonts/source-code-pro
+ media-fonts/source-sans:3
+ virtual/perl-File-Spec
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.15-bsd-cp-doc.patch
+)
+
+src_prepare() {
+ default
+
+ # https://bugs.gentoo.org/870214
+ # During the split of media-fonts/source-pro, the source-sans files
+ # were renamed. Currently depend on media-fonts/source-sans:3 which works
+ # with this sed.
+ sed -i 's/SourceSansPro/SourceSans3/g' doc/psfonts.ph || die
+
+ AT_M4DIR="${S}/autoconf/m4" eautoreconf
+}
+
+src_configure() {
+ local myconfargs=(
+ $(use_enable lto)
+ )
+ econf "${myconfargs[@]}"
+}
+
+src_compile() {
+ default
+ use doc && emake doc
+}
+
+src_install() {
+ default
+ emake DESTDIR="${D}" install $(usex doc install_doc '')
+}
diff --git a/dev-lang/neko/Manifest b/dev-lang/neko/Manifest
new file mode 100644
index 000000000000..6072317ae8ce
--- /dev/null
+++ b/dev-lang/neko/Manifest
@@ -0,0 +1 @@
+DIST neko-2.3.0.tar.gz 514044 BLAKE2B 1214fd15e0bff9df3f0bb3f4c856134772f42da5740adc260051bea6e0203e2e37db852b97114ddeef58d8320313dd01875918dee1a001833a3b9ca7d7c3c512 SHA512 fec51bed0c5500561635656c7456f3da0599aa6a47a25efe739b3c51f9cdded4a8824ed14ab67bab0905d9082cf6f06b3a76c868cb1b61d440957bcd9fd3f3d2
diff --git a/dev-lang/neko/metadata.xml b/dev-lang/neko/metadata.xml
new file mode 100644
index 000000000000..a51263d4fa5b
--- /dev/null
+++ b/dev-lang/neko/metadata.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+
+<pkgmetadata>
+ <maintainer type="project">
+ <email>ml@gentoo.org</email>
+ <name>ML</name>
+ </maintainer>
+ <use>
+ <flag name="apache">Build Apache modules</flag>
+ </use>
+ <longdescription>
+ Neko is a high-level dynamically typed programming language. It can be
+ used as an embedded scripting language. It has been designed to provide
+ a common runtime for several different languages. Learning and using
+ Neko is very easy. You can easily extend the language with C libraries.
+ You can also write generators from your own language to Neko and then
+ use the Neko Runtime to compile, run, and access existing libraries.
+ </longdescription>
+ <upstream>
+ <bugs-to>https://github.com/HaxeFoundation/neko/issues/</bugs-to>
+ <remote-id type="github">HaxeFoundation/neko</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-lang/neko/neko-2.3.0-r2.ebuild b/dev-lang/neko/neko-2.3.0-r2.ebuild
new file mode 100644
index 000000000000..f51030b4e47b
--- /dev/null
+++ b/dev-lang/neko/neko-2.3.0-r2.ebuild
@@ -0,0 +1,57 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit flag-o-matic cmake
+
+DESCRIPTION="Neko is a high-level dynamically typed programming language"
+HOMEPAGE="https://nekovm.org/
+ https://github.com/HaxeFoundation/neko/"
+
+if [[ "${PV}" == *9999* ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/HaxeFoundation/${PN}.git"
+else
+ # 2.3.0 -> 2-3-0
+ MY_PV="${PV//./-}"
+ SRC_URI="https://github.com/HaxeFoundation/${PN}/archive/refs/tags/v${MY_PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+ S="${WORKDIR}/${PN}-${MY_PV}"
+fi
+
+LICENSE="MIT"
+SLOT="0/${PV}"
+IUSE="apache mysql sqlite ssl"
+
+RDEPEND="
+ dev-libs/boehm-gc:=[threads]
+ dev-libs/libpcre:=
+ sys-libs/zlib:=
+ apache? ( www-servers/apache:2= )
+ mysql? ( dev-db/mysql:= )
+ sqlite? ( dev-db/sqlite:3= )
+ ssl? (
+ dev-libs/openssl:=
+ net-libs/mbedtls:=
+ )
+"
+DEPEND="${RDEPEND}"
+
+src_configure() {
+ # -Werror=strict-aliasing warnings, bug #855641
+ filter-lto
+ append-flags -fno-strict-aliasing
+
+ local mycmakeargs=(
+ -DRUN_LDCONFIG=OFF
+ -DWITH_NEKOML=ON
+ -DWITH_REGEXP=ON
+ -DWITH_UI=OFF
+ -DWITH_APACHE=$(usex apache)
+ -DWITH_MYSQL=$(usex mysql)
+ -DWITH_SQLITE=$(usex sqlite)
+ -DWITH_SSL=$(usex ssl)
+ )
+ cmake_src_configure
+}
diff --git a/dev-lang/nelua/Manifest b/dev-lang/nelua/Manifest
new file mode 100644
index 000000000000..c082a18932c2
--- /dev/null
+++ b/dev-lang/nelua/Manifest
@@ -0,0 +1 @@
+DIST nelua-20240113.tar.gz 885879 BLAKE2B 9b2c7bbbcd626d153e879459c4ffc9b4a1673a71342c584d1e482d6eee5c0286833d17f773751df9326e73e57167f26827fb5de8ec822d4df77c59fbf076c91a SHA512 e81bd8ff73bd0b3d458353d64a12aec833717ff18e7a3360b6a16edc3900edc078d308ce464b67fdb3c2b2d16a06da4227e82d1f6ef74204a743f466dc85feb9
diff --git a/dev-lang/nelua/metadata.xml b/dev-lang/nelua/metadata.xml
new file mode 100644
index 000000000000..3d1a31e468ce
--- /dev/null
+++ b/dev-lang/nelua/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+
+<pkgmetadata>
+ <maintainer type="person">
+ <email>xgqt@gentoo.org</email>
+ <name>Maciej Barć</name>
+ </maintainer>
+ <longdescription>
+ Nelua (stands for Native Extensible Lua) is a minimal, efficient,
+ statically-typed and meta-programmable systems programming language heavily
+ inspired by Lua, which compiles to C and native code.
+ </longdescription>
+ <upstream>
+ <bugs-to>https://github.com/edubart/nelua-lang/issues</bugs-to>
+ <remote-id type="github">edubart/nelua-lang</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-lang/nelua/nelua-20240113.ebuild b/dev-lang/nelua/nelua-20240113.ebuild
new file mode 100644
index 000000000000..1c9a4a93c841
--- /dev/null
+++ b/dev-lang/nelua/nelua-20240113.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+DESCRIPTION="Statically-typed systems programming language inspired by Lua"
+HOMEPAGE="https://nelua.io/
+ https://github.com/edubart/nelua-lang/"
+
+if [[ "${PV}" == *9999* ]] ; then
+ inherit git-r3
+
+ EGIT_REPO_URI="https://github.com/edubart/nelua-lang.git"
+else
+ SRC_URI="https://github.com/edubart/nelua-lang/archive/refs/tags/${PV}.tar.gz
+ -> ${P}.tar.gz"
+ S="${WORKDIR}/nelua-lang-${PV}"
+
+ KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ test? (
+ dev-lua/luacheck
+ )
+"
+
+DOCS=( CONTRIBUTING.md README.md )
+
+src_compile() {
+ emake CC="$(tc-getCC)"
+}
+
+src_install() {
+ emake DESTDIR="${ED}" PREFIX="/usr" install
+ einstalldocs
+}
diff --git a/dev-lang/nelua/nelua-99999999.ebuild b/dev-lang/nelua/nelua-99999999.ebuild
new file mode 100644
index 000000000000..1c9a4a93c841
--- /dev/null
+++ b/dev-lang/nelua/nelua-99999999.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+DESCRIPTION="Statically-typed systems programming language inspired by Lua"
+HOMEPAGE="https://nelua.io/
+ https://github.com/edubart/nelua-lang/"
+
+if [[ "${PV}" == *9999* ]] ; then
+ inherit git-r3
+
+ EGIT_REPO_URI="https://github.com/edubart/nelua-lang.git"
+else
+ SRC_URI="https://github.com/edubart/nelua-lang/archive/refs/tags/${PV}.tar.gz
+ -> ${P}.tar.gz"
+ S="${WORKDIR}/nelua-lang-${PV}"
+
+ KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ test? (
+ dev-lua/luacheck
+ )
+"
+
+DOCS=( CONTRIBUTING.md README.md )
+
+src_compile() {
+ emake CC="$(tc-getCC)"
+}
+
+src_install() {
+ emake DESTDIR="${ED}" PREFIX="/usr" install
+ einstalldocs
+}
diff --git a/dev-lang/nim/Manifest b/dev-lang/nim/Manifest
index a8f288975e8b..62f7ed856e14 100644
--- a/dev-lang/nim/Manifest
+++ b/dev-lang/nim/Manifest
@@ -1 +1,4 @@
-DIST nim-1.4.2.tar.xz 4770616 BLAKE2B 95561a22fedaa1eb42f099589b7b13e6833d1804d1d9bf8c4ec6514a4db89622d7f678b19ce9bed1c3ac5dffa3956b73e6b12fa6335f8e39a8b0dee90ae50457 SHA512 a357eaa5ef6c71b296fe6c53ed25be8b864a2895871a4ef6f23f2d31ce1c17d6dfb12eaf2bb8e71d122b7cf46746873109f424388ac2b6e84826699c1c5493fe
+DIST nim-1.6.14.tar.xz 5266632 BLAKE2B f6eadf44365a099f45d1b734dea494e5d098b0427791c19a5e0b7ee6fa8069fee606005920cbcbfd7c88a36ace870949ff797d1e37fc1f84e14d5dd1aeb4bd1d SHA512 6923ea98627ea48b5c939438618caa8e6860f248086e43bc101b543aa78e7c475bc8e56b8acb90dc4a3771ca0d2e27fbdda6a0b477dbb906acda8a7b39c272d3
+DIST nim-2.0.4.tar.xz 7620508 BLAKE2B cf7c737d734c5a468ac9229fb021bcd252c5c4f20ab091ec0ce27eb36ba44be8b438536aa39aa8c583483a7ce15dfbb91b1deb1c19794b3d77506d23096a4460 SHA512 1918b3d4a4fc02714677b2ca5051dc69e1d1daead2cf4dcc9b997076540d07d58ee4fe3049de86a37faa3143de1d3b95bedfa31f31d8463987bb267107459793
+DIST nim-atlas-0.8.0.tar.gz 59097 BLAKE2B 231b238ac3b15cc2c2d9ad927f80ae72d8ae4c649277515f32df6cc04275ccd38db5307d627572af547501e6522c06c86dc279dc3e13b5385f14e24032f6fe69 SHA512 747c13e2c5bd45a1dc6c1426f8c7637f638ada9dd4c9aa3edf4ef8367060e73226dc4bcde6380fac25ed47ebf4097fd223c72fadc3cceba8c71dd0f0571e47eb
+DIST nim-patches-1.6.6_p1.tar.gz 2632 BLAKE2B 64980d9510dc48e3c566473dc618d00cafba04783882d62b12015e8435c9c0515d7726da30f0b74dca6a41aa88a9c9aed2189a65b3325c28839d0051de8a3365 SHA512 7ba251675cd564452669bf5ec3748565db818324f58506f20a5036e4b54df10f4d7c149cece8cb97c853222cfa7d4d8d26856d92aaa25e613e31c6f5c2a8243d
diff --git a/dev-lang/nim/files/nim-1.6.14-clang16-musl-fix.patch b/dev-lang/nim/files/nim-1.6.14-clang16-musl-fix.patch
new file mode 100644
index 000000000000..1bc4f8f25d55
--- /dev/null
+++ b/dev-lang/nim/files/nim-1.6.14-clang16-musl-fix.patch
@@ -0,0 +1,13 @@
+Bug: https://bugs.gentoo.org/894410
+Refer: https://github.com/nim-lang/Nim/issues/20886#issuecomment-1511708198
+--- a/lib/system/threadlocalstorage.nim
++++ b/lib/system/threadlocalstorage.nim
+@@ -129,7 +129,7 @@ else:
+ when (defined(linux) or defined(nintendoswitch)) and defined(amd64):
+ type
+ SysThread* {.importc: "pthread_t",
+- header: "<sys/types.h>" .} = distinct culong
++ header: "<sys/types.h>" .} = distinct pointer
+ Pthread_attr {.importc: "pthread_attr_t",
+ header: "<sys/types.h>".} = object
+ abi: array[56 div sizeof(clong), clong]
diff --git a/dev-lang/nim/files/nim-1.6.14-testament-skipfile.txt b/dev-lang/nim/files/nim-1.6.14-testament-skipfile.txt
new file mode 100644
index 000000000000..2e7e0b48f9fc
--- /dev/null
+++ b/dev-lang/nim/files/nim-1.6.14-testament-skipfile.txt
@@ -0,0 +1,61 @@
+# broken
+tests/assert/tassert_c.nim
+tests/async/tasync_traceback.nim
+tests/coroutines/twait.nim
+tests/errmsgs/t14444.nim
+tests/errmsgs/tcall_with_default_arg.nim
+tests/errmsgs/tproper_stacktrace.nim
+tests/errmsgs/tproper_stacktrace2.nim
+tests/errmsgs/tproper_stacktrace3.nim
+tests/exception/t13115.nim
+tests/js/tmangle.nim
+tests/js/twritestacktrace.nim
+tests/lent/tbasic_lent_check.nim
+tests/misc/trunner.nim
+tests/misc/tstrace.nim
+tests/misc/twarningaserror.nim
+tests/parser/t20922.nim
+tests/pragmas/thintprocessing.nim
+tests/pragmas/tused.nim
+tests/pragmas/twarning_off.nim
+tests/stdlib/tos.nim
+tests/stdlib/tstackframes.nim
+tests/stdlib/tstats.nim
+tests/system/talloc.nim
+tests/testament/tshould_not_work.nim
+# broken on musl + llvm
+tests/coroutines/tgc.nim
+tests/coroutines/twait.nim
+tests/misc/t18077.nim
+tests/misc/temit.nim
+tests/nimdoc/t15916.nim
+tests/nimdoc/trunnableexamples.nim
+tests/nimdoc/trunnableexamples2.nim
+tests/objects/tobjcov.nim
+tests/objects/toop1.nim
+tests/stdlib/tencodings.nim
+tests/stdlib/tgetaddrinfo.nim
+tests/stdlib/tstdlib_various.nim
+tests/stdlib/tstreams.nim
+tests/stdlib/ttimes.nim
+tests/vm/tvmmisc.nim
+# require network
+tests/stdlib/thttpclient.nim
+tests/stdlib/tnetconnect.nim
+tests/stdlib/tssl.nim
+# don't work without megatest
+tests/misc/tjoinable.nim
+tests/testament/tjoinable.nim
+# don't work with "--hint:all:off" hack
+tests/concepts/t3330.nim
+tests/stylecheck/t20397_2.nim
+tests/stylecheck/treject.nim
+tests/stylecheck/tusages.nim
+# need external dependencies
+tests/manyloc/keineschweine/keineschweine.nim
+tests/manyloc/nake/nakefile.nim
+tests/niminaction/Chapter7/Tweeter/src/tweeter.nim
+# need functional valgrind
+tests/destructor/tnewruntime_strutils.nim
+tests/destructor/tv2_raise.nim
+tests/views/tsplit_into_openarray.nim
diff --git a/dev-lang/nim/files/nim-1.6.6-csources-flags.patch b/dev-lang/nim/files/nim-1.6.6-csources-flags.patch
new file mode 100644
index 000000000000..9a39a900e82a
--- /dev/null
+++ b/dev-lang/nim/files/nim-1.6.6-csources-flags.patch
@@ -0,0 +1,11 @@
+--- a/build.sh
++++ b/build.sh
+@@ -60,7 +60,7 @@
+ fi
+ CC="sem -j $parallel --id $$ ${CC}"
+ fi
+-COMP_FLAGS="${CPPFLAGS:-} ${CFLAGS:-} -w -fmax-errors=3 -O3 -fno-strict-aliasing -fno-ident $extraBuildArgs"
++COMP_FLAGS="${CPPFLAGS:-} ${CFLAGS:-} -w -fmax-errors=3 -fno-strict-aliasing -fno-ident $extraBuildArgs"
+ LINK_FLAGS="${LDFLAGS:-} "
+ PS4=""
+ # platform detection
diff --git a/dev-lang/nim/files/nim-2.0.4-testament-skipfile.txt b/dev-lang/nim/files/nim-2.0.4-testament-skipfile.txt
new file mode 100644
index 000000000000..0e209464c4fb
--- /dev/null
+++ b/dev-lang/nim/files/nim-2.0.4-testament-skipfile.txt
@@ -0,0 +1,80 @@
+# -*- conf -*-
+# broken, bug https://bugs.gentoo.org/930542
+tests/c/temit.nim
+tests/ccgbugs/t10964.nim
+tests/niminaction/Chapter3/ChatApp/src/client.nim
+tests/niminaction/Chapter3/various3.nim
+tests/niminaction/Chapter6/WikipediaStats/concurrency.nim
+tests/niminaction/Chapter6/WikipediaStats/concurrency_regex.nim
+tests/niminaction/Chapter6/WikipediaStats/parallel_counts.nim
+tests/niminaction/Chapter8/sdl/sdl_test.nim
+tests/parallel/tdeepcopy.nim
+tests/parallel/tdeepcopy2.nim
+tests/parallel/tflowvar.nim
+tests/parallel/tlet_spawn.nim
+tests/parallel/tpi.nim
+tests/parallel/tsysspawn.nim
+tests/parallel/twaitany.nim
+tests/stdlib/thttpclient_ssl.nim
+tests/stdlib/tthreadpool.nim
+# broken
+tests/assert/tassert_c.nim
+tests/async/tasync_traceback.nim
+tests/coroutines/twait.nim
+tests/errmsgs/t14444.nim
+tests/errmsgs/tcall_with_default_arg.nim
+tests/errmsgs/tproper_stacktrace.nim
+tests/errmsgs/tproper_stacktrace2.nim
+tests/errmsgs/tproper_stacktrace3.nim
+tests/exception/t13115.nim
+tests/js/tmangle.nim
+tests/js/twritestacktrace.nim
+tests/lent/tbasic_lent_check.nim
+tests/misc/trunner.nim
+tests/misc/tstrace.nim
+tests/misc/twarningaserror.nim
+tests/parser/t20922.nim
+tests/pragmas/thintprocessing.nim
+tests/pragmas/tused.nim
+tests/pragmas/twarning_off.nim
+tests/stdlib/tos.nim
+tests/stdlib/tstackframes.nim
+tests/stdlib/tstats.nim
+tests/system/talloc.nim
+tests/testament/tshould_not_work.nim
+# broken on musl + llvm
+tests/coroutines/tgc.nim
+tests/coroutines/twait.nim
+tests/misc/t18077.nim
+tests/misc/temit.nim
+tests/nimdoc/t15916.nim
+tests/nimdoc/trunnableexamples.nim
+tests/nimdoc/trunnableexamples2.nim
+tests/objects/tobjcov.nim
+tests/objects/toop1.nim
+tests/stdlib/tencodings.nim
+tests/stdlib/tgetaddrinfo.nim
+tests/stdlib/tstdlib_various.nim
+tests/stdlib/tstreams.nim
+tests/stdlib/ttimes.nim
+tests/vm/tvmmisc.nim
+# require network
+tests/stdlib/thttpclient.nim
+tests/stdlib/tnetconnect.nim
+tests/stdlib/tssl.nim
+# don't work without megatest
+tests/misc/tjoinable.nim
+tests/testament/tjoinable.nim
+# don't work with "--hint:all:off" hack
+tests/concepts/t3330.nim
+tests/stylecheck/t20397_2.nim
+tests/stylecheck/treject.nim
+tests/stylecheck/tusages.nim
+# need external dependencies
+tests/manyloc/keineschweine/keineschweine.nim
+tests/manyloc/nake/nakefile.nim
+tests/niminaction/Chapter7/Tweeter/src/tweeter.nim
+# need functional valgrind
+tests/destructor/tnewruntime_strutils.nim
+tests/destructor/tv2_raise.nim
+tests/views/tsplit_into_openarray.nim
diff --git a/dev-lang/nim/files/nim-sets.conf b/dev-lang/nim/files/nim-sets.conf
new file mode 100644
index 000000000000..294d9835364c
--- /dev/null
+++ b/dev-lang/nim/files/nim-sets.conf
@@ -0,0 +1,5 @@
+# Installed packages for which vdb *DEPEND includes dev-lang/nim.
+[nim-rebuild]
+class = portage.sets.dbapi.VariableSet
+variable = BDEPEND
+includes = dev-lang/nim
diff --git a/dev-lang/nim/metadata.xml b/dev-lang/nim/metadata.xml
index b7796e3694d8..43513b90b646 100644
--- a/dev-lang/nim/metadata.xml
+++ b/dev-lang/nim/metadata.xml
@@ -1,11 +1,47 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+
<pkgmetadata>
- <maintainer type="person">
- <email>slyfox@gentoo.org</email>
- <name>Sergei Trofimovich</name>
- </maintainer>
- <upstream>
- <remote-id type="github">nim-lang/Nim</remote-id>
- </upstream>
+ <maintainer type="person">
+ <email>xgqt@gentoo.org</email>
+ <name>Maciej Barć</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>nim@gentoo.org</email>
+ <name>Gentoo Nim Project</name>
+ </maintainer>
+ <longdescription>
+ Nim is a statically typed compiled systems programming language.
+ It combines successful concepts from mature languages like Python,
+ Ada and Modula.
+ Nim generates native dependency-free executables, not dependent on a
+ virtual machine, which are small and allow easy redistribution.
+ The Nim compiler and the generated executables support all major platforms
+ like Windows, Linux, BSD and macOS.
+ Nim's memory management is deterministic and customizable with destructors
+ and move semantics, inspired by C++ and Rust. It is well-suited for
+ embedded, hard-realtime systems.
+ Modern concepts like zero-overhead iterators and compile-time evaluation of
+ user-defined functions, in combination with the preference of value-based
+ datatypes allocated on the stack, lead to extremely performant code.
+ Support for various backends: it compiles to C, C++ or JavaScript so that
+ Nim can be used for all backend and frontend needs.
+ Nim is self-contained: the compiler and the standard library are
+ implemented in Nim.
+ Nim has a powerful macro system which allows direct manipulation of the
+ AST, offering nearly unlimited opportunities.
+ Macros cannot change Nim's syntax because there is no need for it — the
+ syntax is flexible enough.
+ Modern type system with local type inference, tuples, generics and sum
+ types.
+ Statements are grouped by indentation but can span multiple lines.
+ </longdescription>
+ <upstream>
+ <bugs-to>https://github.com/nim-lang/Nim/issues/</bugs-to>
+ <remote-id type="github">nim-lang/Nim</remote-id>
+ </upstream>
+ <use>
+ <flag name="experimental">Apply experimental patches</flag>
+ <flag name="test-js">Enable tests that require Node.js</flag>
+ </use>
</pkgmetadata>
diff --git a/dev-lang/nim/nim-1.4.2.ebuild b/dev-lang/nim/nim-1.4.2.ebuild
deleted file mode 100644
index 9a273afb6271..000000000000
--- a/dev-lang/nim/nim-1.4.2.ebuild
+++ /dev/null
@@ -1,80 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit bash-completion-r1 multiprocessing toolchain-funcs
-
-DESCRIPTION="compiled, garbage-collected systems programming language"
-HOMEPAGE="https://nim-lang.org/"
-SRC_URI="https://nim-lang.org/download/${P}.tar.xz"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~x86"
-IUSE="+readline test"
-
-RESTRICT=test # need to sort out depends and numerous failures
-
-RDEPEND="
- readline? ( sys-libs/readline:0= )
-"
-DEPEND="
- ${DEPEND}
- test? ( net-libs/nodejs )
-"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-0.20.0-paths.patch
-)
-
-_run() {
- echo "$@"
- "$@" || die "'$*' failed"
-}
-
-nim_use_enable() {
- [[ -z $2 ]] && die "usage: nim_use_enable <USE flag> <compiler flag>"
- use $1 && echo "-d:$2"
-}
-
-src_configure() {
- export XDG_CACHE_HOME=${T}/cache #667182
- tc-export CC LD
-
- # Override default CC=gcc.
- echo "gcc.exe = \"$(tc-getCC)\"" >> config/nim.cfg || die
- echo "gcc.linkerexe = \"$(tc-getCC)\"" >> config/nim.cfg || die
- echo "gcc.cpp.exe = \"$(tc-getCXX)\"" >> config/nim.cfg || die
- echo "gcc.cpp.linkerexe = \"$(tc-getCXX)\"" >> config/nim.cfg || die
-}
-
-src_compile() {
-
- _run ./build.sh
-
- _run ./bin/nim --parallelBuild:$(makeopts_jobs) c koch
- _run ./koch boot --parallelBuild:$(makeopts_jobs) -d:release $(nim_use_enable readline useGnuReadline)
- PATH="./bin:$PATH" _run ./koch tools --parallelBuild:$(makeopts_jobs)
-}
-
-src_test() {
- PATH="./bin:$PATH" _run ./koch test --parallelBuild:$(makeopts_jobs)
-}
-
-src_install() {
- PATH="./bin:$PATH" _run ./koch install "${ED}"
- rm -r "${ED}/usr/share/nim/doc" || die "failed to remove 'doc'"
-
- exeinto /usr/bin
-
- local bin_exe
- for bin_exe in bin/*; do
- # './koch install' installs only 'nim' binary
- # but not the rest
- [[ ${bin_exe} == bin/nim ]] && continue
- doexe "${bin_exe}"
- done
-
- newbashcomp tools/nim.bash-completion ${PN}
-}
diff --git a/dev-lang/nim/nim-1.6.14-r1.ebuild b/dev-lang/nim/nim-1.6.14-r1.ebuild
new file mode 100644
index 000000000000..07e043cf4ffb
--- /dev/null
+++ b/dev-lang/nim/nim-1.6.14-r1.ebuild
@@ -0,0 +1,211 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PATCH_PV="1.6.6_p1"
+
+inherit bash-completion-r1 edo multiprocessing toolchain-funcs xdg-utils
+
+DESCRIPTION="Compiled, garbage-collected systems programming language"
+HOMEPAGE="https://nim-lang.org/"
+SRC_URI="
+ https://nim-lang.org/download/${P}.tar.xz
+ experimental? (
+ https://git.sr.ht/~cyber/${PN}-patches/archive/${PATCH_PV}.tar.gz
+ -> nim-patches-${PATCH_PV}.tar.gz
+ )
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 ~arm ~x86"
+IUSE="doc experimental test-js test"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+ test? (
+ dev-db/sqlite:3
+ dev-libs/boehm-gc
+ dev-libs/libffi
+ dev-libs/libpcre:3
+ dev-libs/openssl
+ media-libs/libsdl
+ media-libs/libsfml
+ )
+"
+BDEPEND="
+ sys-process/parallel
+ test? (
+ test-js? (
+ net-libs/nodejs
+ )
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.20.0-paths.patch
+ "${FILESDIR}"/${PN}-1.6.6-csources-flags.patch
+)
+
+# Borrowed from nim-utils.eclass (guru overlay).
+nim_gen_config() {
+ cat > nim.cfg <<- EOF || die "Failed to create Nim config"
+ cc:"gcc"
+ gcc.exe:"$(tc-getCC)"
+ gcc.linkerexe:"$(tc-getCC)"
+ gcc.cpp.exe:"$(tc-getCXX)"
+ gcc.cpp.linkerexe:"$(tc-getCXX)"
+ gcc.options.speed:"${CFLAGS}"
+ gcc.options.size:"${CFLAGS}"
+ gcc.options.debug:"${CFLAGS}"
+ gcc.options.always:"${CPPFLAGS}"
+ gcc.options.linker:"${LDFLAGS}"
+ gcc.cpp.options.speed:"${CXXFLAGS}"
+ gcc.cpp.options.size:"${CXXFLAGS}"
+ gcc.cpp.options.debug:"${CXXFLAGS}"
+ gcc.cpp.options.always:"${CPPFLAGS}"
+ gcc.cpp.options.linker:"${LDFLAGS}"
+
+ $([[ "${NOCOLOR}" == true || "${NOCOLOR}" == yes ]] && echo '--colors:"off"')
+ -d:"release"
+ --parallelBuild:"$(makeopts_jobs)"
+
+ # some tests don't work with processing hints
+ --processing:"off"
+ EOF
+}
+
+src_prepare() {
+ default
+
+ # note: there are consumers in the ::guru overlay
+ use experimental && eapply "${WORKDIR}"/nim-patches-${PATCH_PV}
+
+ # refer: https://github.com/nim-lang/Nim/issues/20886#issuecomment-1511708198
+ # bug: https://bugs.gentoo.org/894410
+ use elibc_musl && eapply "${FILESDIR}"/${PN}-1.6.14-clang16-musl-fix.patch
+}
+
+src_configure() {
+ xdg_environment_reset # bug 667182
+
+ unset NIMBLE_DIR
+ tc-export CC CXX LD
+
+ nim_gen_config
+
+ mkdir "${HOME}"/.parallel || die
+ touch "${HOME}"/.parallel/will-cite || die "parallel setup failed"
+}
+
+src_compile() {
+ local -x PATH="${S}/bin:${PATH}"
+
+ edo ./build.sh --parallel "$(makeopts_jobs)"
+
+ ebegin "Waiting for unfinished parallel jobs"
+ while [[ ! -f "bin/nim" ]] ; do
+ sleep 3
+ done
+ sleep 10
+ eend 0
+
+ edo chmod +x ./bin/nim
+ edo ./bin/nim compile koch
+ edo ./koch boot -d:nimUseLinenoise --skipParentCfg:off
+ edo ./koch tools
+
+ if use doc; then
+ local -a docargs=(
+ # set git tag
+ --git.commit:v${PV}
+ # skip runnableExamples as some of them need net
+ --docCmd:skip
+ # make logs less verbose
+ --hints:off
+ --warnings:off
+ )
+ edo ./koch doc "${docargs[@]}"
+ HTML_DOCS=( web/upload/${PV}/. )
+ fi
+}
+
+src_test() {
+ local -x PATH="${S}/bin:${PATH}"
+ local -a nimflags=(
+ # Leave only the safe hints enabled.
+ --hint:all:off
+ --hint:User:on
+ --hint:UserRaw:on
+ )
+ local -a testament_args=(
+ --skipFrom:"${FILESDIR}/${PN}-1.6.14-testament-skipfile.txt"
+ --nim:"bin/nim"
+ --targets:"$(usex test-js 'c js' 'c')"
+ )
+
+ [[ "${NOCOLOR}" == true || "${NOCOLOR}" == yes ]] && \
+ testament_args+=( --colors:off )
+
+ local -a categories
+ readarray -t categories < <(find tests -mindepth 1 -maxdepth 1 -type d -printf "%P\n" | sort)
+
+ # AdditionalCategories from "testament/categories.nim".
+ categories+=( debugger examples lib )
+
+ local test_return=0
+
+ local tcat
+ local checkpoint
+ for tcat in "${categories[@]}"; do
+ # Use checkpoints for less painful testing.
+ checkpoint="${T}/.testament-${tcat}"
+
+ [[ -f "${checkpoint}" ]] && continue
+
+ case ${tcat} in
+ testdata )
+ :
+ ;;
+ arc | ic | valgrind )
+ einfo "Skipped category '${tcat}'"
+ ;;
+ * )
+ einfo "Running tests in category '${tcat}'"
+ nonfatal edo ./bin/testament "${testament_args[@]}" \
+ category "${tcat}" "${nimflags[@]}" || test_return=1
+ ;;
+ esac
+
+ touch "${checkpoint}" || die
+ done
+
+ [[ "${test_return}" -eq 1 ]] &&
+ die "tests failed, please inspect the failed test categories above"
+}
+
+src_install() {
+ local -x PATH="${S}/bin:${PATH}"
+
+ edo ./koch install "${ED}"
+ einstalldocs
+
+ # "./koch install" installs only "nim" binary but not the rest.
+ local exe
+ for exe in bin/* ; do
+ [[ "${exe}" == bin/nim ]] && continue
+ dobin "${exe}"
+ done
+
+ newbashcomp tools/nim.bash-completion nim
+ newbashcomp dist/nimble/nimble.bash-completion nimble
+
+ insinto /usr/share/zsh/site-functions
+ newins tools/nim.zsh-completion _nim
+ newins dist/nimble/nimble.zsh-completion _nimble
+
+ # Install the @nim-rebuild set for Portage.
+ insinto /usr/share/portage/config/sets
+ newins "${FILESDIR}"/nim-sets.conf nim.conf
+}
diff --git a/dev-lang/nim/nim-2.0.4.ebuild b/dev-lang/nim/nim-2.0.4.ebuild
new file mode 100644
index 000000000000..d91d6fed17c5
--- /dev/null
+++ b/dev-lang/nim/nim-2.0.4.ebuild
@@ -0,0 +1,183 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+ATLAS_V="0.8.0"
+
+inherit bash-completion-r1 edo multiprocessing toolchain-funcs xdg-utils
+
+DESCRIPTION="Compiled, garbage-collected systems programming language"
+HOMEPAGE="https://nim-lang.org/
+ https://github.com/nim-lang/Nim/"
+SRC_URI="
+ https://nim-lang.org/download/${P}.tar.xz
+ https://github.com/nim-lang/atlas/archive/refs/tags/${ATLAS_V}.tar.gz
+ -> nim-atlas-${ATLAS_V}.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE="test-js test"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+ test? (
+ dev-db/sqlite:3
+ dev-libs/boehm-gc
+ dev-libs/libffi
+ dev-libs/libpcre:3
+ dev-libs/openssl
+ media-libs/libsdl
+ media-libs/libsfml
+ )
+"
+BDEPEND="
+ sys-process/parallel
+ test? (
+ test-js? (
+ net-libs/nodejs
+ )
+ )
+"
+
+src_configure() {
+ xdg_environment_reset # bug #667182
+
+ unset NIMBLE_DIR
+ tc-export CC CXX LD
+
+ mkdir "${HOME}/.parallel" || die
+ touch "${HOME}/.parallel/will-cite" || die "parallel setup failed"
+
+ cat > nim.cfg <<- EOF || die "Failed to create Nim config"
+ cc:"gcc"
+ gcc.exe:"$(tc-getCC)"
+ gcc.linkerexe:"$(tc-getCC)"
+ gcc.cpp.exe:"$(tc-getCXX)"
+ gcc.cpp.linkerexe:"$(tc-getCXX)"
+ gcc.options.speed:"${CFLAGS}"
+ gcc.options.size:"${CFLAGS}"
+ gcc.options.debug:"${CFLAGS}"
+ gcc.options.always:"${CPPFLAGS}"
+ gcc.options.linker:"${LDFLAGS}"
+ gcc.cpp.options.speed:"${CXXFLAGS}"
+ gcc.cpp.options.size:"${CXXFLAGS}"
+ gcc.cpp.options.debug:"${CXXFLAGS}"
+ gcc.cpp.options.always:"${CPPFLAGS}"
+ gcc.cpp.options.linker:"${LDFLAGS}"
+
+ $([[ "${NOCOLOR}" == true || "${NOCOLOR}" == yes ]] && echo '--colors:"off"')
+ -d:"release"
+ --parallelBuild:"$(makeopts_jobs)"
+
+ # some tests don't work with processing hints
+ --processing:"off"
+ EOF
+
+ cp -r "${WORKDIR}/atlas-${ATLAS_V}" "${S}/dist/atlas" || die
+}
+
+src_compile() {
+ local -x PATH="${S}/bin:${PATH}"
+
+ edo ./build.sh --parallel "$(makeopts_jobs)"
+
+ ebegin "Waiting for unfinished parallel jobs"
+ while [[ ! -f "bin/nim" ]] ; do
+ sleep 3
+ done
+ sleep 10
+ eend 0
+
+ edo chmod +x ./bin/nim
+ edo ./bin/nim compile -d:release koch
+ edo ./koch boot -d:nimUseLinenoise -d:release --skipParentCfg:off
+ edo ./koch tools -d:release
+ edo ./bin/nim compile -d:release ./tools/niminst/niminst.nim
+}
+
+src_test() {
+ local -x PATH="${S}/bin:${PATH}"
+ local -a -r nimflags=(
+ # Leave only the safe hints enabled.
+ --hint:all:off
+ --hint:User:on
+ --hint:UserRaw:on
+ )
+ local -a testament_args=(
+ --skipFrom:"${FILESDIR}/${PN}-2.0.4-testament-skipfile.txt"
+ --nim:"bin/nim"
+ --targets:"$(usex test-js 'c js' 'c')"
+ )
+
+ [[ "${NOCOLOR}" == true || "${NOCOLOR}" == yes ]] \
+ && testament_args+=( --colors:off )
+
+ local -a categories
+ readarray -t categories < <(find tests -mindepth 1 -maxdepth 1 -type d -printf "%P\n" | sort)
+
+ # AdditionalCategories from "testament/categories.nim".
+ categories+=( debugger examples lib )
+
+ local test_return=0
+
+ local tcat
+ local checkpoint
+ for tcat in "${categories[@]}"; do
+ # Use checkpoints for less painful testing.
+ checkpoint="${T}/.testament-${tcat}"
+
+ [[ -f "${checkpoint}" ]] && continue
+
+ case "${tcat}" in
+ testdata )
+ :
+ ;;
+ arc | gc | ic | js | msgs | stylecheck \
+ | testament | untestable | objects | valgrind )
+ einfo "Skipped nim test category: ${tcat}"
+ ;;
+ * )
+ einfo "Running tests in category '${tcat}'"
+ nonfatal edo ./bin/testament "${testament_args[@]}" \
+ category "${tcat}" "${nimflags[@]}" \
+ || test_return=1
+ ;;
+ esac
+
+ touch "${checkpoint}" || die
+ done
+
+ [[ "${test_return}" -eq 1 ]] \
+ && die "tests failed, please inspect the failed test categories above"
+}
+
+src_install() {
+ local -x PATH="${S}/bin:${PATH}"
+
+ edo ./koch install "${ED}/usr/lib"
+ dosym -r /usr/lib/nim/bin/nim /usr/bin/nim
+
+ # "./koch install" installs only "nim" binary but not the rest.
+ exeinto /usr/bin
+ local exe
+ while read -r exe ; do
+ einfo "Installing nim support tool: ${exe}"
+ doexe "${exe}"
+ done < <(find ./bin -type f -not -iname nim)
+
+ newbashcomp tools/nim.bash-completion nim
+ newbashcomp dist/nimble/nimble.bash-completion nimble
+
+ insinto /usr/share/zsh/site-functions
+ newins tools/nim.zsh-completion _nim
+ newins dist/nimble/nimble.zsh-completion _nimble
+
+ # Install the @nim-rebuild set for Portage.
+ insinto /usr/share/portage/config/sets
+ newins "${FILESDIR}/nim-sets.conf" nim.conf
+
+ einstalldocs
+}
diff --git a/dev-lang/nprolog/Manifest b/dev-lang/nprolog/Manifest
new file mode 100644
index 000000000000..a4891ee68459
--- /dev/null
+++ b/dev-lang/nprolog/Manifest
@@ -0,0 +1 @@
+DIST nprolog-1.94.tar.gz 128172 BLAKE2B b3a2de8e5e247bce55fc6eabbd06dddee1d42d8d993b38a2effb505647e5a4a60f89f85f14be4e469d81b5488b4494e0a45c2672b2ba00b8f06ae0545951d08e SHA512 7db39847ecfa91b65fad1e035ddb9267856726adc9741a76fdd088c8f678ba8e98eef3890283b543d345a9441dabada4038984e12709898c6887a186a19136c9
diff --git a/dev-lang/nprolog/metadata.xml b/dev-lang/nprolog/metadata.xml
new file mode 100644
index 000000000000..576d9f408128
--- /dev/null
+++ b/dev-lang/nprolog/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+
+<pkgmetadata>
+ <maintainer type="person">
+ <email>xgqt@gentoo.org</email>
+ <name>Maciej Barć</name>
+ </maintainer>
+ <longdescription>
+ N-Prolog(NPL) is an interpreter and compiler to be compatible with
+ Arity/Prolog32. N-Prolog is NOT ISO-Prolog. About Arity/prolog32 see
+ http://petergabel.info/ArityProlog32/ArityProlog32PredList/
+ </longdescription>
+ <upstream>
+ <bugs-to>https://github.com/sasagawa888/nprolog/issues</bugs-to>
+ <remote-id type="github">sasagawa888/nprolog</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-lang/nprolog/nprolog-1.94.ebuild b/dev-lang/nprolog/nprolog-1.94.ebuild
new file mode 100644
index 000000000000..1f92e4123250
--- /dev/null
+++ b/dev-lang/nprolog/nprolog-1.94.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+DESCRIPTION="Interpreter and compiler to be compatible with Arity/Prolog32"
+HOMEPAGE="https://github.com/sasagawa888/nprolog/"
+SRC_URI="https://github.com/sasagawa888/nprolog/archive/v${PV}.tar.gz
+ -> ${P}.tar.gz"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="amd64 ~x86"
+
+DOCS=( README{,-ja}.md document )
+
+src_compile() {
+ emake CC="$(tc-getCC)" CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}"
+}
+
+src_install() {
+ exeinto /usr/bin
+ doexe npl
+
+ insinto /usr/share/${PN}
+ doins -r example library
+
+ einstalldocs
+}
diff --git a/dev-lang/nqp/Manifest b/dev-lang/nqp/Manifest
index 13900a24a5df..9ca0c13fb3f5 100644
--- a/dev-lang/nqp/Manifest
+++ b/dev-lang/nqp/Manifest
@@ -1,8 +1,2 @@
-DIST nqp-2020.05.tar.gz 3945402 BLAKE2B d73bb5cf5dcd2f0e0d42928fb12382428355f3c19bbcd015950c2a9e49ab73c215ce8ce21f3686283866c387823f1cbb3ba8179de8f7a66dca43afae94a45a42 SHA512 a60e9bcf9ef8d4c0492cc193893d398d0c62a114e829375ac9a7601336bc2cc820b8f486b10f8b647302d473f3e85ebd13559d4089d38ef6c95b0b7e8778c5cd
-DIST nqp-2020.06.tar.gz 3945129 BLAKE2B 0cc378bd5be89bdc8e8b1a72ae64a8d93ccd189811540fc29a72105df1024790deab649349fdc96087f2ce8f3b57eef97e0edf56ee98d7ba3c329e6d47386c46 SHA512 f9a930f7bc9197a9e79ba5f2f72009b4d7ceafe8e3cd7902eb3f04ffb264228b1fba2a826a7ab686322e611557e624c8dbc271dc9eac067a9cc482fc0c6b9460
-DIST nqp-2020.07.tar.gz 3949070 BLAKE2B 194cd52dabe307dab41bec8508a28d00f05c043c16d2ba1beec4a9da63be0d26be3303cb95647ab4f028985ce8913b16f6724f79a395fdf3a6878a2953d33958 SHA512 70b8fa525abc5b6d0749b3e1f090ace60095517d78f9ec84425f12496e46454f89e8f5ea0cbdd77e5f891a6abaa894c9dbc7be955652dfde1cc8d034aec237d3
-DIST nqp-2020.08.tar.gz 3951313 BLAKE2B 0eda6b50268cd4faf49a7311e4d94d9846e223072a54d0ce5c4b2095abe47645924ce6a256edafd6301380ca99b8268a97551cbc6013210e9058713d5a8b1321 SHA512 6acc8d4b443b67a2731d30b4ed81c3ff654189dc51c463d7e4f30ca1a2ac4791b3393238b6370f8bc915278ecdb1bbc403427eb2292b41717ec7d01605a3de4b
-DIST nqp-2020.09.tar.gz 3951646 BLAKE2B 9ec1d121f9dc276ad52ea22d43fb24fefeda009f648b64f330669d7f9aaaef599522cca708b3671f982969cba0a1346cc078c55c98247545408b3a929899edd1 SHA512 dcebf63ea062c0fec95d701b1f20c492c845060599f4524fa87758ce5f8e52f6eae9a409c31b238783285f30a497acffd97242dc2ca7fbe4b8dd20291104b261
-DIST nqp-2020.10.tar.gz 3954398 BLAKE2B 5c44a20c3696bb596bd1d3088fba8db8c63ce6e612f00c2d24456dc7d908b12a214b4bde7e4e79505c39f6237a6f91578de47778185fa6cc3b6287c90e6c370e SHA512 279715fa0b2012852cc31b9e7898092510a1ba76005576a3ffe38f9dc8e9c002a4161be8f0b66e38c501e656a8124a320dbf2c90c89f53e57d0950e1baa1ea2b
-DIST nqp-2020.11.tar.gz 3954688 BLAKE2B d273c78c8f2083908b2815dc10787fec31404eb13c1e64253e7e5ae896d27a3755cf5c8045d47c4f465178568731e0d74951db6e45d103cf3ee18470124e97e0 SHA512 51b5e7f9d290bca7ada24cf9c12c61608be92269fc848976cada49f7445694e0f26929b5f9e90a9153eb379f0d74a6bb8068cd5ebf383d4501f75535b70e7605
-DIST nqp-2020.12.tar.gz 3957981 BLAKE2B d45ad66ebb0788db6e7191b4b7af4093b73e63e5f66ab4ccab62163b0285adb7d4e18a7c906c34f99dd63e0920f4d6e16e11005eb5df1d726796e9f106f9c4f8 SHA512 4ce87dc868c91565ebe896db766403bb018b2f5ea919bd0fb5b173498ba124712ffa795ec4e219240e5aabb59c55285bee5e46d3ac3d5869fc445b0ab3ea8485
+DIST nqp-2024.02.tar.gz 6041352 BLAKE2B cdf1863f80d3a2d64fea3d6b783c91ad3fec44866d0b5a1967e0ac682ef3942a3361c4a4f355a11af938846ef47404df4a5d39fe46ebfef121ab2118d1444e64 SHA512 4dd943920900f0b58385b0a1b7dcc732557a0215975868f322860ec204cbc43d081ce292beb4b2bce70863684d3ec1d981fb809c4558755e791dd7cb0208e05b
+DIST nqp-2024.04.tar.gz 9726771 BLAKE2B 5582aed194438bc57b862e6b1f14b8fdf1548c5e0048e69315e411913b049fec6df640b95bbd0df3e5b541554473fe207c81dbd083d477f12194c22d22119be3 SHA512 988518e5db2d7bdee6ed55bb337e640d091f404d6cc2b2687e9b542cc91ea755add415b40e8b3ac9ef501e150d2026867d0f1f1bfa32f1767e01ec30ae050dd0
diff --git a/dev-lang/nqp/metadata.xml b/dev-lang/nqp/metadata.xml
index c4bd99a587e8..d8098a08f702 100644
--- a/dev-lang/nqp/metadata.xml
+++ b/dev-lang/nqp/metadata.xml
@@ -1,14 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>patrick@gentoo.org</email>
<name>Patrick Lauer</name>
</maintainer>
- <maintainer type="project">
- <email>perl@gentoo.org</email>
- <name>Gentoo Perl Project</name>
- </maintainer>
<use>
<flag name="clang">Toggle usage of the clang compiler in conjunction with MoarVM</flag>
<flag name="moar">Build the MoarVM backend (experimental/broken)</flag>
diff --git a/dev-lang/nqp/nqp-2020.05.ebuild b/dev-lang/nqp/nqp-2020.05.ebuild
deleted file mode 100644
index c41412d388c5..000000000000
--- a/dev-lang/nqp/nqp-2020.05.ebuild
+++ /dev/null
@@ -1,160 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit java-pkg-opt-2 multibuild
-
-if [[ ${PV} == "9999" ]]; then
- EGIT_REPO_URI="https://github.com/perl6/${PN}.git"
- inherit git-r3
- KEYWORDS=""
-else
- SRC_URI="https://github.com/perl6/${PN}/releases/download/${PV}/${P}.tar.gz"
- KEYWORDS="~amd64 ~x86"
-fi
-
-DESCRIPTION="Not Quite Perl, a Perl 6 bootstrapping compiler"
-HOMEPAGE="https://rakudo.org"
-
-LICENSE="Artistic-2"
-SLOT="0"
-IUSE="doc clang java +moar test"
-RESTRICT="!test? ( test )"
-REQUIRED_USE="|| ( java moar )"
-
-CDEPEND="java? (
- dev-java/asm:4
- dev-java/jline:0
- dev-java/jna:4
- )
- moar? ( ~dev-lang/moarvm-${PV}[clang=] )"
-RDEPEND="${CDEPEND}
- java? ( >=virtual/jre-1.8 )"
-DEPEND="${CDEPEND}"
-BDEPEND="${CDEPEND}
- clang? ( sys-devel/clang )
- java? ( >=virtual/jdk-1.8 )
- dev-lang/perl"
-
-pkg_pretend() {
- if has_version dev-lang/rakudo || has_version dev-lang/nqp; then
- ewarn "NQP is known to fail compilation/installation with Rakudo and/or NQP"
- ewarn "already being installed. So if it fails, try uninstalling both"
- ewarn "dev-lang/nqp and dev-lang/rakudo, then do a new installation."
- ewarn "(see Bug #584394)"
- fi
-}
-
-java_prepare() {
- # Don't clean stage0 jars.
- einfo "Cleaning upstream jars"
- java-pkg_clean 3rdparty/
-
- # Don't use jars we just deleted.
- sed -i -r 's/(:3rdparty[^:]*)+/:${THIRDPARTY_JARS}/g' \
- src/vm/jvm/runners/nqp-j || die
-}
-
-src_prepare() {
- MULTIBUILD_VARIANTS=()
- use moar && MULTIBUILD_VARIANTS+=( moar )
- use java && MULTIBUILD_VARIANTS+=( jvm )
-
- multibuild_copy_sources
-
- # This will pull in conditional java_prepare
- default
-}
-
-nqp_configure() {
- pushd "${BUILD_DIR}" > /dev/null || die
- local myconfargs=(
- "--backend=${MULTIBUILD_VARIANT}"
- "--prefix=${EPREFIX}/usr" )
-
- perl Configure.pl "${myconfargs[@]}" || die
- popd || die
-}
-
-nqp_compile() {
- if [[ "${MULTIBUILD_VARIANT}" = jvm ]]; then
- emake -j1 \
- -C "${BUILD_DIR}" \
- THIRDPARTY_JARS=$(java-pkg_getjars --with-dependencies asm-4,jline,jna-4) \
- JAVAC="$(java-pkg_get-javac) $(java-pkg_javac-args)"
- elif [[ "${MULTIBUILD_VARIANT}" = moar ]]; then
- emake -j1 \
- -C "${BUILD_DIR}"
- fi
-}
-
-nqp_test() {
- emake -j1 \
- -C "${BUILD_DIR}" \
- test
-}
-
-nqp_install() {
- # This is the actual reason we need multibuild.eclass.
- # We need to distinguish the install procedure for MoarVM and JVM backends.
- case "${MULTIBUILD_VARIANT}" in
- moar)
- emake \
- DESTDIR="${ED}" \
- -C "${BUILD_DIR}" \
- install
- ;;
- jvm)
- pushd "${BUILD_DIR}" > /dev/null || die
- # Set JAVA_PKG_JARDEST early.
- java-pkg_init_paths_
-
- # Upstream sets the classpath to this location. Perhaps it's
- # used to locate the additional libraries?
- java-pkg_addcp "${JAVA_PKG_JARDEST}"
-
- insinto "${JAVA_PKG_JARDEST}"
- local jar
-
- for jar in *.jar; do
- if has ${jar} ${PN}.jar ${PN}-runtime.jar; then
- # jars for NQP itself.
- java-pkg_dojar ${jar}
- else
- # jars used by NQP.
- doins ${jar}
- fi
- done
-
- # Upstream uses -Xbootclasspath/a, which is faster due to lack
- # of verification, but gjl isn't flexible enough yet. :(
- java-pkg_dolauncher ${PN}-j --main ${PN}
- dosym ${PN}-j /usr/bin/${PN}
- dobin tools/jvm/eval-client.pl
- popd > /dev/null || die
- ;;
- *)
- die "Unknown MULTIBUILD_VARIANT ${MULTIBUILD_VARIANT}."
- ;;
- esac
-}
-
-src_configure() {
- multibuild_foreach_variant nqp_configure
-}
-
-src_compile() {
- multibuild_foreach_variant nqp_compile
-}
-
-src_test() {
- multibuild_foreach_variant nqp_test
-}
-
-src_install() {
- multibuild_foreach_variant nqp_install
-
- dodoc CREDITS README.pod
- use doc && dodoc -r docs/*
-}
diff --git a/dev-lang/nqp/nqp-2020.06.ebuild b/dev-lang/nqp/nqp-2020.06.ebuild
deleted file mode 100644
index c41412d388c5..000000000000
--- a/dev-lang/nqp/nqp-2020.06.ebuild
+++ /dev/null
@@ -1,160 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit java-pkg-opt-2 multibuild
-
-if [[ ${PV} == "9999" ]]; then
- EGIT_REPO_URI="https://github.com/perl6/${PN}.git"
- inherit git-r3
- KEYWORDS=""
-else
- SRC_URI="https://github.com/perl6/${PN}/releases/download/${PV}/${P}.tar.gz"
- KEYWORDS="~amd64 ~x86"
-fi
-
-DESCRIPTION="Not Quite Perl, a Perl 6 bootstrapping compiler"
-HOMEPAGE="https://rakudo.org"
-
-LICENSE="Artistic-2"
-SLOT="0"
-IUSE="doc clang java +moar test"
-RESTRICT="!test? ( test )"
-REQUIRED_USE="|| ( java moar )"
-
-CDEPEND="java? (
- dev-java/asm:4
- dev-java/jline:0
- dev-java/jna:4
- )
- moar? ( ~dev-lang/moarvm-${PV}[clang=] )"
-RDEPEND="${CDEPEND}
- java? ( >=virtual/jre-1.8 )"
-DEPEND="${CDEPEND}"
-BDEPEND="${CDEPEND}
- clang? ( sys-devel/clang )
- java? ( >=virtual/jdk-1.8 )
- dev-lang/perl"
-
-pkg_pretend() {
- if has_version dev-lang/rakudo || has_version dev-lang/nqp; then
- ewarn "NQP is known to fail compilation/installation with Rakudo and/or NQP"
- ewarn "already being installed. So if it fails, try uninstalling both"
- ewarn "dev-lang/nqp and dev-lang/rakudo, then do a new installation."
- ewarn "(see Bug #584394)"
- fi
-}
-
-java_prepare() {
- # Don't clean stage0 jars.
- einfo "Cleaning upstream jars"
- java-pkg_clean 3rdparty/
-
- # Don't use jars we just deleted.
- sed -i -r 's/(:3rdparty[^:]*)+/:${THIRDPARTY_JARS}/g' \
- src/vm/jvm/runners/nqp-j || die
-}
-
-src_prepare() {
- MULTIBUILD_VARIANTS=()
- use moar && MULTIBUILD_VARIANTS+=( moar )
- use java && MULTIBUILD_VARIANTS+=( jvm )
-
- multibuild_copy_sources
-
- # This will pull in conditional java_prepare
- default
-}
-
-nqp_configure() {
- pushd "${BUILD_DIR}" > /dev/null || die
- local myconfargs=(
- "--backend=${MULTIBUILD_VARIANT}"
- "--prefix=${EPREFIX}/usr" )
-
- perl Configure.pl "${myconfargs[@]}" || die
- popd || die
-}
-
-nqp_compile() {
- if [[ "${MULTIBUILD_VARIANT}" = jvm ]]; then
- emake -j1 \
- -C "${BUILD_DIR}" \
- THIRDPARTY_JARS=$(java-pkg_getjars --with-dependencies asm-4,jline,jna-4) \
- JAVAC="$(java-pkg_get-javac) $(java-pkg_javac-args)"
- elif [[ "${MULTIBUILD_VARIANT}" = moar ]]; then
- emake -j1 \
- -C "${BUILD_DIR}"
- fi
-}
-
-nqp_test() {
- emake -j1 \
- -C "${BUILD_DIR}" \
- test
-}
-
-nqp_install() {
- # This is the actual reason we need multibuild.eclass.
- # We need to distinguish the install procedure for MoarVM and JVM backends.
- case "${MULTIBUILD_VARIANT}" in
- moar)
- emake \
- DESTDIR="${ED}" \
- -C "${BUILD_DIR}" \
- install
- ;;
- jvm)
- pushd "${BUILD_DIR}" > /dev/null || die
- # Set JAVA_PKG_JARDEST early.
- java-pkg_init_paths_
-
- # Upstream sets the classpath to this location. Perhaps it's
- # used to locate the additional libraries?
- java-pkg_addcp "${JAVA_PKG_JARDEST}"
-
- insinto "${JAVA_PKG_JARDEST}"
- local jar
-
- for jar in *.jar; do
- if has ${jar} ${PN}.jar ${PN}-runtime.jar; then
- # jars for NQP itself.
- java-pkg_dojar ${jar}
- else
- # jars used by NQP.
- doins ${jar}
- fi
- done
-
- # Upstream uses -Xbootclasspath/a, which is faster due to lack
- # of verification, but gjl isn't flexible enough yet. :(
- java-pkg_dolauncher ${PN}-j --main ${PN}
- dosym ${PN}-j /usr/bin/${PN}
- dobin tools/jvm/eval-client.pl
- popd > /dev/null || die
- ;;
- *)
- die "Unknown MULTIBUILD_VARIANT ${MULTIBUILD_VARIANT}."
- ;;
- esac
-}
-
-src_configure() {
- multibuild_foreach_variant nqp_configure
-}
-
-src_compile() {
- multibuild_foreach_variant nqp_compile
-}
-
-src_test() {
- multibuild_foreach_variant nqp_test
-}
-
-src_install() {
- multibuild_foreach_variant nqp_install
-
- dodoc CREDITS README.pod
- use doc && dodoc -r docs/*
-}
diff --git a/dev-lang/nqp/nqp-2020.09.ebuild b/dev-lang/nqp/nqp-2020.09.ebuild
deleted file mode 100644
index c41412d388c5..000000000000
--- a/dev-lang/nqp/nqp-2020.09.ebuild
+++ /dev/null
@@ -1,160 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit java-pkg-opt-2 multibuild
-
-if [[ ${PV} == "9999" ]]; then
- EGIT_REPO_URI="https://github.com/perl6/${PN}.git"
- inherit git-r3
- KEYWORDS=""
-else
- SRC_URI="https://github.com/perl6/${PN}/releases/download/${PV}/${P}.tar.gz"
- KEYWORDS="~amd64 ~x86"
-fi
-
-DESCRIPTION="Not Quite Perl, a Perl 6 bootstrapping compiler"
-HOMEPAGE="https://rakudo.org"
-
-LICENSE="Artistic-2"
-SLOT="0"
-IUSE="doc clang java +moar test"
-RESTRICT="!test? ( test )"
-REQUIRED_USE="|| ( java moar )"
-
-CDEPEND="java? (
- dev-java/asm:4
- dev-java/jline:0
- dev-java/jna:4
- )
- moar? ( ~dev-lang/moarvm-${PV}[clang=] )"
-RDEPEND="${CDEPEND}
- java? ( >=virtual/jre-1.8 )"
-DEPEND="${CDEPEND}"
-BDEPEND="${CDEPEND}
- clang? ( sys-devel/clang )
- java? ( >=virtual/jdk-1.8 )
- dev-lang/perl"
-
-pkg_pretend() {
- if has_version dev-lang/rakudo || has_version dev-lang/nqp; then
- ewarn "NQP is known to fail compilation/installation with Rakudo and/or NQP"
- ewarn "already being installed. So if it fails, try uninstalling both"
- ewarn "dev-lang/nqp and dev-lang/rakudo, then do a new installation."
- ewarn "(see Bug #584394)"
- fi
-}
-
-java_prepare() {
- # Don't clean stage0 jars.
- einfo "Cleaning upstream jars"
- java-pkg_clean 3rdparty/
-
- # Don't use jars we just deleted.
- sed -i -r 's/(:3rdparty[^:]*)+/:${THIRDPARTY_JARS}/g' \
- src/vm/jvm/runners/nqp-j || die
-}
-
-src_prepare() {
- MULTIBUILD_VARIANTS=()
- use moar && MULTIBUILD_VARIANTS+=( moar )
- use java && MULTIBUILD_VARIANTS+=( jvm )
-
- multibuild_copy_sources
-
- # This will pull in conditional java_prepare
- default
-}
-
-nqp_configure() {
- pushd "${BUILD_DIR}" > /dev/null || die
- local myconfargs=(
- "--backend=${MULTIBUILD_VARIANT}"
- "--prefix=${EPREFIX}/usr" )
-
- perl Configure.pl "${myconfargs[@]}" || die
- popd || die
-}
-
-nqp_compile() {
- if [[ "${MULTIBUILD_VARIANT}" = jvm ]]; then
- emake -j1 \
- -C "${BUILD_DIR}" \
- THIRDPARTY_JARS=$(java-pkg_getjars --with-dependencies asm-4,jline,jna-4) \
- JAVAC="$(java-pkg_get-javac) $(java-pkg_javac-args)"
- elif [[ "${MULTIBUILD_VARIANT}" = moar ]]; then
- emake -j1 \
- -C "${BUILD_DIR}"
- fi
-}
-
-nqp_test() {
- emake -j1 \
- -C "${BUILD_DIR}" \
- test
-}
-
-nqp_install() {
- # This is the actual reason we need multibuild.eclass.
- # We need to distinguish the install procedure for MoarVM and JVM backends.
- case "${MULTIBUILD_VARIANT}" in
- moar)
- emake \
- DESTDIR="${ED}" \
- -C "${BUILD_DIR}" \
- install
- ;;
- jvm)
- pushd "${BUILD_DIR}" > /dev/null || die
- # Set JAVA_PKG_JARDEST early.
- java-pkg_init_paths_
-
- # Upstream sets the classpath to this location. Perhaps it's
- # used to locate the additional libraries?
- java-pkg_addcp "${JAVA_PKG_JARDEST}"
-
- insinto "${JAVA_PKG_JARDEST}"
- local jar
-
- for jar in *.jar; do
- if has ${jar} ${PN}.jar ${PN}-runtime.jar; then
- # jars for NQP itself.
- java-pkg_dojar ${jar}
- else
- # jars used by NQP.
- doins ${jar}
- fi
- done
-
- # Upstream uses -Xbootclasspath/a, which is faster due to lack
- # of verification, but gjl isn't flexible enough yet. :(
- java-pkg_dolauncher ${PN}-j --main ${PN}
- dosym ${PN}-j /usr/bin/${PN}
- dobin tools/jvm/eval-client.pl
- popd > /dev/null || die
- ;;
- *)
- die "Unknown MULTIBUILD_VARIANT ${MULTIBUILD_VARIANT}."
- ;;
- esac
-}
-
-src_configure() {
- multibuild_foreach_variant nqp_configure
-}
-
-src_compile() {
- multibuild_foreach_variant nqp_compile
-}
-
-src_test() {
- multibuild_foreach_variant nqp_test
-}
-
-src_install() {
- multibuild_foreach_variant nqp_install
-
- dodoc CREDITS README.pod
- use doc && dodoc -r docs/*
-}
diff --git a/dev-lang/nqp/nqp-2020.10.ebuild b/dev-lang/nqp/nqp-2020.10.ebuild
deleted file mode 100644
index c41412d388c5..000000000000
--- a/dev-lang/nqp/nqp-2020.10.ebuild
+++ /dev/null
@@ -1,160 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit java-pkg-opt-2 multibuild
-
-if [[ ${PV} == "9999" ]]; then
- EGIT_REPO_URI="https://github.com/perl6/${PN}.git"
- inherit git-r3
- KEYWORDS=""
-else
- SRC_URI="https://github.com/perl6/${PN}/releases/download/${PV}/${P}.tar.gz"
- KEYWORDS="~amd64 ~x86"
-fi
-
-DESCRIPTION="Not Quite Perl, a Perl 6 bootstrapping compiler"
-HOMEPAGE="https://rakudo.org"
-
-LICENSE="Artistic-2"
-SLOT="0"
-IUSE="doc clang java +moar test"
-RESTRICT="!test? ( test )"
-REQUIRED_USE="|| ( java moar )"
-
-CDEPEND="java? (
- dev-java/asm:4
- dev-java/jline:0
- dev-java/jna:4
- )
- moar? ( ~dev-lang/moarvm-${PV}[clang=] )"
-RDEPEND="${CDEPEND}
- java? ( >=virtual/jre-1.8 )"
-DEPEND="${CDEPEND}"
-BDEPEND="${CDEPEND}
- clang? ( sys-devel/clang )
- java? ( >=virtual/jdk-1.8 )
- dev-lang/perl"
-
-pkg_pretend() {
- if has_version dev-lang/rakudo || has_version dev-lang/nqp; then
- ewarn "NQP is known to fail compilation/installation with Rakudo and/or NQP"
- ewarn "already being installed. So if it fails, try uninstalling both"
- ewarn "dev-lang/nqp and dev-lang/rakudo, then do a new installation."
- ewarn "(see Bug #584394)"
- fi
-}
-
-java_prepare() {
- # Don't clean stage0 jars.
- einfo "Cleaning upstream jars"
- java-pkg_clean 3rdparty/
-
- # Don't use jars we just deleted.
- sed -i -r 's/(:3rdparty[^:]*)+/:${THIRDPARTY_JARS}/g' \
- src/vm/jvm/runners/nqp-j || die
-}
-
-src_prepare() {
- MULTIBUILD_VARIANTS=()
- use moar && MULTIBUILD_VARIANTS+=( moar )
- use java && MULTIBUILD_VARIANTS+=( jvm )
-
- multibuild_copy_sources
-
- # This will pull in conditional java_prepare
- default
-}
-
-nqp_configure() {
- pushd "${BUILD_DIR}" > /dev/null || die
- local myconfargs=(
- "--backend=${MULTIBUILD_VARIANT}"
- "--prefix=${EPREFIX}/usr" )
-
- perl Configure.pl "${myconfargs[@]}" || die
- popd || die
-}
-
-nqp_compile() {
- if [[ "${MULTIBUILD_VARIANT}" = jvm ]]; then
- emake -j1 \
- -C "${BUILD_DIR}" \
- THIRDPARTY_JARS=$(java-pkg_getjars --with-dependencies asm-4,jline,jna-4) \
- JAVAC="$(java-pkg_get-javac) $(java-pkg_javac-args)"
- elif [[ "${MULTIBUILD_VARIANT}" = moar ]]; then
- emake -j1 \
- -C "${BUILD_DIR}"
- fi
-}
-
-nqp_test() {
- emake -j1 \
- -C "${BUILD_DIR}" \
- test
-}
-
-nqp_install() {
- # This is the actual reason we need multibuild.eclass.
- # We need to distinguish the install procedure for MoarVM and JVM backends.
- case "${MULTIBUILD_VARIANT}" in
- moar)
- emake \
- DESTDIR="${ED}" \
- -C "${BUILD_DIR}" \
- install
- ;;
- jvm)
- pushd "${BUILD_DIR}" > /dev/null || die
- # Set JAVA_PKG_JARDEST early.
- java-pkg_init_paths_
-
- # Upstream sets the classpath to this location. Perhaps it's
- # used to locate the additional libraries?
- java-pkg_addcp "${JAVA_PKG_JARDEST}"
-
- insinto "${JAVA_PKG_JARDEST}"
- local jar
-
- for jar in *.jar; do
- if has ${jar} ${PN}.jar ${PN}-runtime.jar; then
- # jars for NQP itself.
- java-pkg_dojar ${jar}
- else
- # jars used by NQP.
- doins ${jar}
- fi
- done
-
- # Upstream uses -Xbootclasspath/a, which is faster due to lack
- # of verification, but gjl isn't flexible enough yet. :(
- java-pkg_dolauncher ${PN}-j --main ${PN}
- dosym ${PN}-j /usr/bin/${PN}
- dobin tools/jvm/eval-client.pl
- popd > /dev/null || die
- ;;
- *)
- die "Unknown MULTIBUILD_VARIANT ${MULTIBUILD_VARIANT}."
- ;;
- esac
-}
-
-src_configure() {
- multibuild_foreach_variant nqp_configure
-}
-
-src_compile() {
- multibuild_foreach_variant nqp_compile
-}
-
-src_test() {
- multibuild_foreach_variant nqp_test
-}
-
-src_install() {
- multibuild_foreach_variant nqp_install
-
- dodoc CREDITS README.pod
- use doc && dodoc -r docs/*
-}
diff --git a/dev-lang/nqp/nqp-2020.11.ebuild b/dev-lang/nqp/nqp-2020.11.ebuild
deleted file mode 100644
index c41412d388c5..000000000000
--- a/dev-lang/nqp/nqp-2020.11.ebuild
+++ /dev/null
@@ -1,160 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit java-pkg-opt-2 multibuild
-
-if [[ ${PV} == "9999" ]]; then
- EGIT_REPO_URI="https://github.com/perl6/${PN}.git"
- inherit git-r3
- KEYWORDS=""
-else
- SRC_URI="https://github.com/perl6/${PN}/releases/download/${PV}/${P}.tar.gz"
- KEYWORDS="~amd64 ~x86"
-fi
-
-DESCRIPTION="Not Quite Perl, a Perl 6 bootstrapping compiler"
-HOMEPAGE="https://rakudo.org"
-
-LICENSE="Artistic-2"
-SLOT="0"
-IUSE="doc clang java +moar test"
-RESTRICT="!test? ( test )"
-REQUIRED_USE="|| ( java moar )"
-
-CDEPEND="java? (
- dev-java/asm:4
- dev-java/jline:0
- dev-java/jna:4
- )
- moar? ( ~dev-lang/moarvm-${PV}[clang=] )"
-RDEPEND="${CDEPEND}
- java? ( >=virtual/jre-1.8 )"
-DEPEND="${CDEPEND}"
-BDEPEND="${CDEPEND}
- clang? ( sys-devel/clang )
- java? ( >=virtual/jdk-1.8 )
- dev-lang/perl"
-
-pkg_pretend() {
- if has_version dev-lang/rakudo || has_version dev-lang/nqp; then
- ewarn "NQP is known to fail compilation/installation with Rakudo and/or NQP"
- ewarn "already being installed. So if it fails, try uninstalling both"
- ewarn "dev-lang/nqp and dev-lang/rakudo, then do a new installation."
- ewarn "(see Bug #584394)"
- fi
-}
-
-java_prepare() {
- # Don't clean stage0 jars.
- einfo "Cleaning upstream jars"
- java-pkg_clean 3rdparty/
-
- # Don't use jars we just deleted.
- sed -i -r 's/(:3rdparty[^:]*)+/:${THIRDPARTY_JARS}/g' \
- src/vm/jvm/runners/nqp-j || die
-}
-
-src_prepare() {
- MULTIBUILD_VARIANTS=()
- use moar && MULTIBUILD_VARIANTS+=( moar )
- use java && MULTIBUILD_VARIANTS+=( jvm )
-
- multibuild_copy_sources
-
- # This will pull in conditional java_prepare
- default
-}
-
-nqp_configure() {
- pushd "${BUILD_DIR}" > /dev/null || die
- local myconfargs=(
- "--backend=${MULTIBUILD_VARIANT}"
- "--prefix=${EPREFIX}/usr" )
-
- perl Configure.pl "${myconfargs[@]}" || die
- popd || die
-}
-
-nqp_compile() {
- if [[ "${MULTIBUILD_VARIANT}" = jvm ]]; then
- emake -j1 \
- -C "${BUILD_DIR}" \
- THIRDPARTY_JARS=$(java-pkg_getjars --with-dependencies asm-4,jline,jna-4) \
- JAVAC="$(java-pkg_get-javac) $(java-pkg_javac-args)"
- elif [[ "${MULTIBUILD_VARIANT}" = moar ]]; then
- emake -j1 \
- -C "${BUILD_DIR}"
- fi
-}
-
-nqp_test() {
- emake -j1 \
- -C "${BUILD_DIR}" \
- test
-}
-
-nqp_install() {
- # This is the actual reason we need multibuild.eclass.
- # We need to distinguish the install procedure for MoarVM and JVM backends.
- case "${MULTIBUILD_VARIANT}" in
- moar)
- emake \
- DESTDIR="${ED}" \
- -C "${BUILD_DIR}" \
- install
- ;;
- jvm)
- pushd "${BUILD_DIR}" > /dev/null || die
- # Set JAVA_PKG_JARDEST early.
- java-pkg_init_paths_
-
- # Upstream sets the classpath to this location. Perhaps it's
- # used to locate the additional libraries?
- java-pkg_addcp "${JAVA_PKG_JARDEST}"
-
- insinto "${JAVA_PKG_JARDEST}"
- local jar
-
- for jar in *.jar; do
- if has ${jar} ${PN}.jar ${PN}-runtime.jar; then
- # jars for NQP itself.
- java-pkg_dojar ${jar}
- else
- # jars used by NQP.
- doins ${jar}
- fi
- done
-
- # Upstream uses -Xbootclasspath/a, which is faster due to lack
- # of verification, but gjl isn't flexible enough yet. :(
- java-pkg_dolauncher ${PN}-j --main ${PN}
- dosym ${PN}-j /usr/bin/${PN}
- dobin tools/jvm/eval-client.pl
- popd > /dev/null || die
- ;;
- *)
- die "Unknown MULTIBUILD_VARIANT ${MULTIBUILD_VARIANT}."
- ;;
- esac
-}
-
-src_configure() {
- multibuild_foreach_variant nqp_configure
-}
-
-src_compile() {
- multibuild_foreach_variant nqp_compile
-}
-
-src_test() {
- multibuild_foreach_variant nqp_test
-}
-
-src_install() {
- multibuild_foreach_variant nqp_install
-
- dodoc CREDITS README.pod
- use doc && dodoc -r docs/*
-}
diff --git a/dev-lang/nqp/nqp-2020.12.ebuild b/dev-lang/nqp/nqp-2020.12.ebuild
deleted file mode 100644
index c41412d388c5..000000000000
--- a/dev-lang/nqp/nqp-2020.12.ebuild
+++ /dev/null
@@ -1,160 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit java-pkg-opt-2 multibuild
-
-if [[ ${PV} == "9999" ]]; then
- EGIT_REPO_URI="https://github.com/perl6/${PN}.git"
- inherit git-r3
- KEYWORDS=""
-else
- SRC_URI="https://github.com/perl6/${PN}/releases/download/${PV}/${P}.tar.gz"
- KEYWORDS="~amd64 ~x86"
-fi
-
-DESCRIPTION="Not Quite Perl, a Perl 6 bootstrapping compiler"
-HOMEPAGE="https://rakudo.org"
-
-LICENSE="Artistic-2"
-SLOT="0"
-IUSE="doc clang java +moar test"
-RESTRICT="!test? ( test )"
-REQUIRED_USE="|| ( java moar )"
-
-CDEPEND="java? (
- dev-java/asm:4
- dev-java/jline:0
- dev-java/jna:4
- )
- moar? ( ~dev-lang/moarvm-${PV}[clang=] )"
-RDEPEND="${CDEPEND}
- java? ( >=virtual/jre-1.8 )"
-DEPEND="${CDEPEND}"
-BDEPEND="${CDEPEND}
- clang? ( sys-devel/clang )
- java? ( >=virtual/jdk-1.8 )
- dev-lang/perl"
-
-pkg_pretend() {
- if has_version dev-lang/rakudo || has_version dev-lang/nqp; then
- ewarn "NQP is known to fail compilation/installation with Rakudo and/or NQP"
- ewarn "already being installed. So if it fails, try uninstalling both"
- ewarn "dev-lang/nqp and dev-lang/rakudo, then do a new installation."
- ewarn "(see Bug #584394)"
- fi
-}
-
-java_prepare() {
- # Don't clean stage0 jars.
- einfo "Cleaning upstream jars"
- java-pkg_clean 3rdparty/
-
- # Don't use jars we just deleted.
- sed -i -r 's/(:3rdparty[^:]*)+/:${THIRDPARTY_JARS}/g' \
- src/vm/jvm/runners/nqp-j || die
-}
-
-src_prepare() {
- MULTIBUILD_VARIANTS=()
- use moar && MULTIBUILD_VARIANTS+=( moar )
- use java && MULTIBUILD_VARIANTS+=( jvm )
-
- multibuild_copy_sources
-
- # This will pull in conditional java_prepare
- default
-}
-
-nqp_configure() {
- pushd "${BUILD_DIR}" > /dev/null || die
- local myconfargs=(
- "--backend=${MULTIBUILD_VARIANT}"
- "--prefix=${EPREFIX}/usr" )
-
- perl Configure.pl "${myconfargs[@]}" || die
- popd || die
-}
-
-nqp_compile() {
- if [[ "${MULTIBUILD_VARIANT}" = jvm ]]; then
- emake -j1 \
- -C "${BUILD_DIR}" \
- THIRDPARTY_JARS=$(java-pkg_getjars --with-dependencies asm-4,jline,jna-4) \
- JAVAC="$(java-pkg_get-javac) $(java-pkg_javac-args)"
- elif [[ "${MULTIBUILD_VARIANT}" = moar ]]; then
- emake -j1 \
- -C "${BUILD_DIR}"
- fi
-}
-
-nqp_test() {
- emake -j1 \
- -C "${BUILD_DIR}" \
- test
-}
-
-nqp_install() {
- # This is the actual reason we need multibuild.eclass.
- # We need to distinguish the install procedure for MoarVM and JVM backends.
- case "${MULTIBUILD_VARIANT}" in
- moar)
- emake \
- DESTDIR="${ED}" \
- -C "${BUILD_DIR}" \
- install
- ;;
- jvm)
- pushd "${BUILD_DIR}" > /dev/null || die
- # Set JAVA_PKG_JARDEST early.
- java-pkg_init_paths_
-
- # Upstream sets the classpath to this location. Perhaps it's
- # used to locate the additional libraries?
- java-pkg_addcp "${JAVA_PKG_JARDEST}"
-
- insinto "${JAVA_PKG_JARDEST}"
- local jar
-
- for jar in *.jar; do
- if has ${jar} ${PN}.jar ${PN}-runtime.jar; then
- # jars for NQP itself.
- java-pkg_dojar ${jar}
- else
- # jars used by NQP.
- doins ${jar}
- fi
- done
-
- # Upstream uses -Xbootclasspath/a, which is faster due to lack
- # of verification, but gjl isn't flexible enough yet. :(
- java-pkg_dolauncher ${PN}-j --main ${PN}
- dosym ${PN}-j /usr/bin/${PN}
- dobin tools/jvm/eval-client.pl
- popd > /dev/null || die
- ;;
- *)
- die "Unknown MULTIBUILD_VARIANT ${MULTIBUILD_VARIANT}."
- ;;
- esac
-}
-
-src_configure() {
- multibuild_foreach_variant nqp_configure
-}
-
-src_compile() {
- multibuild_foreach_variant nqp_compile
-}
-
-src_test() {
- multibuild_foreach_variant nqp_test
-}
-
-src_install() {
- multibuild_foreach_variant nqp_install
-
- dodoc CREDITS README.pod
- use doc && dodoc -r docs/*
-}
diff --git a/dev-lang/nqp/nqp-2020.08.ebuild b/dev-lang/nqp/nqp-2024.02.ebuild
index c41412d388c5..efed9b5e0109 100644
--- a/dev-lang/nqp/nqp-2020.08.ebuild
+++ b/dev-lang/nqp/nqp-2024.02.ebuild
@@ -1,20 +1,19 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
inherit java-pkg-opt-2 multibuild
if [[ ${PV} == "9999" ]]; then
EGIT_REPO_URI="https://github.com/perl6/${PN}.git"
inherit git-r3
- KEYWORDS=""
else
SRC_URI="https://github.com/perl6/${PN}/releases/download/${PV}/${P}.tar.gz"
KEYWORDS="~amd64 ~x86"
fi
-DESCRIPTION="Not Quite Perl, a Perl 6 bootstrapping compiler"
+DESCRIPTION="Not Quite Perl, a Raku bootstrapping compiler"
HOMEPAGE="https://rakudo.org"
LICENSE="Artistic-2"
@@ -24,17 +23,16 @@ RESTRICT="!test? ( test )"
REQUIRED_USE="|| ( java moar )"
CDEPEND="java? (
- dev-java/asm:4
- dev-java/jline:0
+ dev-java/asm:9
dev-java/jna:4
)
moar? ( ~dev-lang/moarvm-${PV}[clang=] )"
RDEPEND="${CDEPEND}
- java? ( >=virtual/jre-1.8 )"
+ java? ( >=virtual/jre-11 )"
DEPEND="${CDEPEND}"
BDEPEND="${CDEPEND}
clang? ( sys-devel/clang )
- java? ( >=virtual/jdk-1.8 )
+ java? ( >=virtual/jdk-11 )
dev-lang/perl"
pkg_pretend() {
@@ -46,16 +44,6 @@ pkg_pretend() {
fi
}
-java_prepare() {
- # Don't clean stage0 jars.
- einfo "Cleaning upstream jars"
- java-pkg_clean 3rdparty/
-
- # Don't use jars we just deleted.
- sed -i -r 's/(:3rdparty[^:]*)+/:${THIRDPARTY_JARS}/g' \
- src/vm/jvm/runners/nqp-j || die
-}
-
src_prepare() {
MULTIBUILD_VARIANTS=()
use moar && MULTIBUILD_VARIANTS+=( moar )
@@ -81,8 +69,7 @@ nqp_compile() {
if [[ "${MULTIBUILD_VARIANT}" = jvm ]]; then
emake -j1 \
-C "${BUILD_DIR}" \
- THIRDPARTY_JARS=$(java-pkg_getjars --with-dependencies asm-4,jline,jna-4) \
- JAVAC="$(java-pkg_get-javac) $(java-pkg_javac-args)"
+ JAVAC="$(java-pkg_get-javac)"
elif [[ "${MULTIBUILD_VARIANT}" = moar ]]; then
emake -j1 \
-C "${BUILD_DIR}"
diff --git a/dev-lang/nqp/nqp-2020.07.ebuild b/dev-lang/nqp/nqp-2024.04.ebuild
index c41412d388c5..efed9b5e0109 100644
--- a/dev-lang/nqp/nqp-2020.07.ebuild
+++ b/dev-lang/nqp/nqp-2024.04.ebuild
@@ -1,20 +1,19 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
inherit java-pkg-opt-2 multibuild
if [[ ${PV} == "9999" ]]; then
EGIT_REPO_URI="https://github.com/perl6/${PN}.git"
inherit git-r3
- KEYWORDS=""
else
SRC_URI="https://github.com/perl6/${PN}/releases/download/${PV}/${P}.tar.gz"
KEYWORDS="~amd64 ~x86"
fi
-DESCRIPTION="Not Quite Perl, a Perl 6 bootstrapping compiler"
+DESCRIPTION="Not Quite Perl, a Raku bootstrapping compiler"
HOMEPAGE="https://rakudo.org"
LICENSE="Artistic-2"
@@ -24,17 +23,16 @@ RESTRICT="!test? ( test )"
REQUIRED_USE="|| ( java moar )"
CDEPEND="java? (
- dev-java/asm:4
- dev-java/jline:0
+ dev-java/asm:9
dev-java/jna:4
)
moar? ( ~dev-lang/moarvm-${PV}[clang=] )"
RDEPEND="${CDEPEND}
- java? ( >=virtual/jre-1.8 )"
+ java? ( >=virtual/jre-11 )"
DEPEND="${CDEPEND}"
BDEPEND="${CDEPEND}
clang? ( sys-devel/clang )
- java? ( >=virtual/jdk-1.8 )
+ java? ( >=virtual/jdk-11 )
dev-lang/perl"
pkg_pretend() {
@@ -46,16 +44,6 @@ pkg_pretend() {
fi
}
-java_prepare() {
- # Don't clean stage0 jars.
- einfo "Cleaning upstream jars"
- java-pkg_clean 3rdparty/
-
- # Don't use jars we just deleted.
- sed -i -r 's/(:3rdparty[^:]*)+/:${THIRDPARTY_JARS}/g' \
- src/vm/jvm/runners/nqp-j || die
-}
-
src_prepare() {
MULTIBUILD_VARIANTS=()
use moar && MULTIBUILD_VARIANTS+=( moar )
@@ -81,8 +69,7 @@ nqp_compile() {
if [[ "${MULTIBUILD_VARIANT}" = jvm ]]; then
emake -j1 \
-C "${BUILD_DIR}" \
- THIRDPARTY_JARS=$(java-pkg_getjars --with-dependencies asm-4,jline,jna-4) \
- JAVAC="$(java-pkg_get-javac) $(java-pkg_javac-args)"
+ JAVAC="$(java-pkg_get-javac)"
elif [[ "${MULTIBUILD_VARIANT}" = moar ]]; then
emake -j1 \
-C "${BUILD_DIR}"
diff --git a/dev-lang/nqp/nqp-9999.ebuild b/dev-lang/nqp/nqp-9999.ebuild
index c41412d388c5..fc12e500ef7b 100644
--- a/dev-lang/nqp/nqp-9999.ebuild
+++ b/dev-lang/nqp/nqp-9999.ebuild
@@ -1,20 +1,19 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
inherit java-pkg-opt-2 multibuild
if [[ ${PV} == "9999" ]]; then
EGIT_REPO_URI="https://github.com/perl6/${PN}.git"
inherit git-r3
- KEYWORDS=""
else
SRC_URI="https://github.com/perl6/${PN}/releases/download/${PV}/${P}.tar.gz"
KEYWORDS="~amd64 ~x86"
fi
-DESCRIPTION="Not Quite Perl, a Perl 6 bootstrapping compiler"
+DESCRIPTION="Not Quite Perl, a Raku bootstrapping compiler"
HOMEPAGE="https://rakudo.org"
LICENSE="Artistic-2"
@@ -24,17 +23,16 @@ RESTRICT="!test? ( test )"
REQUIRED_USE="|| ( java moar )"
CDEPEND="java? (
- dev-java/asm:4
- dev-java/jline:0
+ dev-java/asm:9
dev-java/jna:4
)
moar? ( ~dev-lang/moarvm-${PV}[clang=] )"
RDEPEND="${CDEPEND}
- java? ( >=virtual/jre-1.8 )"
+ java? ( >=virtual/jre-11 )"
DEPEND="${CDEPEND}"
BDEPEND="${CDEPEND}
clang? ( sys-devel/clang )
- java? ( >=virtual/jdk-1.8 )
+ java? ( >=virtual/jdk-11 )
dev-lang/perl"
pkg_pretend() {
@@ -46,16 +44,6 @@ pkg_pretend() {
fi
}
-java_prepare() {
- # Don't clean stage0 jars.
- einfo "Cleaning upstream jars"
- java-pkg_clean 3rdparty/
-
- # Don't use jars we just deleted.
- sed -i -r 's/(:3rdparty[^:]*)+/:${THIRDPARTY_JARS}/g' \
- src/vm/jvm/runners/nqp-j || die
-}
-
src_prepare() {
MULTIBUILD_VARIANTS=()
use moar && MULTIBUILD_VARIANTS+=( moar )
@@ -81,8 +69,7 @@ nqp_compile() {
if [[ "${MULTIBUILD_VARIANT}" = jvm ]]; then
emake -j1 \
-C "${BUILD_DIR}" \
- THIRDPARTY_JARS=$(java-pkg_getjars --with-dependencies asm-4,jline,jna-4) \
- JAVAC="$(java-pkg_get-javac) $(java-pkg_javac-args)"
+ JAVAC="$(java-pkg_get-javac)"
elif [[ "${MULTIBUILD_VARIANT}" = moar ]]; then
emake -j1 \
-C "${BUILD_DIR}"
diff --git a/dev-lang/nwcc/Manifest b/dev-lang/nwcc/Manifest
deleted file mode 100644
index c81646941ca7..000000000000
--- a/dev-lang/nwcc/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-DIST nwcc_0.8.3.tar.gz 954946 BLAKE2B 260ed49d247b7b84e392525db2b61e84a439eab2d0aad2efb93ddef1adf620084a8ec44713bd75216c2f9db30c04715b74d208d45465b700556bda2df6c6fd29 SHA512 f6af50bd18e13070b512bfac6659f49d10d3ad65ea2c4c5ca3f199c8b87540ec145c7dbbe97272f48903ca1c8afaf58c146ec763c851da0b352d5980746f94f6
diff --git a/dev-lang/nwcc/metadata.xml b/dev-lang/nwcc/metadata.xml
deleted file mode 100644
index 8eb223c5161b..000000000000
--- a/dev-lang/nwcc/metadata.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
- <maintainer type="person">
- <email>patrick@gentoo.org</email>
- <name>Patrick Lauer</name>
- </maintainer>
- <upstream>
- <remote-id type="sourceforge">nwcc</remote-id>
- </upstream>
-</pkgmetadata>
diff --git a/dev-lang/nwcc/nwcc-0.8.3.ebuild b/dev-lang/nwcc/nwcc-0.8.3.ebuild
deleted file mode 100644
index 7cbc0ca287aa..000000000000
--- a/dev-lang/nwcc/nwcc-0.8.3.ebuild
+++ /dev/null
@@ -1,24 +0,0 @@
-# Copyright 1999-2013 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-
-MY_P="${PN}_${PV}"
-
-DESCRIPTION="Nils Weller's C Compiler"
-HOMEPAGE="http://nwcc.sourceforge.net/index.html"
-SRC_URI="http://downloads.sourceforge.net/project/${PN}/${PN}/nwcc%200.8.3/${MY_P}.tar.gz"
-SLOT="0"
-LICENSE="BSD-2"
-KEYWORDS="~amd64 ~x86"
-IUSE=""
-
-DEPEND=""
-RDEPEND="${DEPEND}"
-
-S="${WORKDIR}/${MY_P}"
-
-src_configure() {
- # custom hackery hack
- ABI="" ./configure --installprefix=/usr || die
-}
diff --git a/dev-lang/ocaml/Manifest b/dev-lang/ocaml/Manifest
index 84240dde1f1b..b24d4629ee2c 100644
--- a/dev-lang/ocaml/Manifest
+++ b/dev-lang/ocaml/Manifest
@@ -1,8 +1,10 @@
-DIST ocaml-4.04.2.tar.gz 4061873 BLAKE2B 756936592c7e0c87da27f154f07850eb3e4b2ed46ff3b36ff57541375840cd56b170dbe646ef6682f63d4e15ae209d3c125581803641f07403e9eb838c265519 SHA512 8b6a0319307cbb7451594d2f7c63851299d3e7d6ae7879e7525373304f9fd5a9b01d503ecd313a12a3cae24a4a7cb909f7aeebbb70efaa5277137189ea4558cb
-DIST ocaml-4.05.0.tar.gz 4431750 BLAKE2B c2ab003a13e0a581ebd0e1c96eeb8a9baea9bfe6bee08823b0e4541819201ec109f1846e13fc1aefa51a001eefbb8f73320ba854d41975fc68cef41bc75b1ecc SHA512 9a060ae4b741e1687277403e5bdb8f6eda2e2ebf6c45f7c0149b66ea1213cb26d13febfbb3f11c12543e244cfdd053b786b09c4145e2348e5d89a7206f7de225
+DIST ocaml-4.09.0-patches-1.tar.bz2 3300 BLAKE2B ef710ea5ed5a243ae684f68b7f203ba454192c9f8f19c32697d336bf18cf2a0e8ea08df232b0fd8e2475a000758a5ba95b3794096ec7d0d1b292a715ab3de86f SHA512 94096b99fd58b32232e418c5736203f08ab3c1558154ed00d4290730bd4db849bc60dfae6160f344acce63bbb8eaceecee25cf836bb73fa419d7bbf4eac433f1
DIST ocaml-4.09.0.tar.gz 4838748 BLAKE2B 80f29d535c64bf2371b480217723ed20b2b21cfd93ce31366a7b91e7ddffdf68db4e88d085288b7e21efee567a13f42ecff24c3a0115507b006acf844239cefd SHA512 dc0271e591bf929b751705835790949a9d741e12d085c8b207c3689b5838a02ea8de80da8b2605d2e6744f2f541b0d1694ffafff9509e99ce01f3a391f6ef2ae
-DIST ocaml-4.10.0.tar.gz 4927867 BLAKE2B 71b8448a10bf3049e3b005dfbb2030d479e69e4c2ef00055f1dacd38eff838b0a5c18b4883d899b5eb4cbd05bb7ca35867010794ed25682ad51b2fe19ef2114d SHA512 f39269d572b3f7755f7881b7a9fdfe5253e49d847835ae2a8695f67e3309fc1e925523d66ecbe1fb8bc0cc3b5602e077ce7feac4926aab571383766442265179
+DIST ocaml-4.10.2-patches-1.tar.bz2 3180 BLAKE2B 474471e10c4525e4da730fcf8602fddf5209f7d8eb15bd76894ed2bc22213a6e61aa7f52b1b67dff6c8bf04eac7d759ada28f1783c83a075cc65e7e5caadc715 SHA512 1456f90c0c833461eb9d1c140ba1a7358aa9351f6303e83b0e19bb8688dcb17bdad211f4cec1281a47180bbdddcfdbf44367b47a6b301d2ea41fa9d926bd03a5
DIST ocaml-4.10.2.tar.gz 4933135 BLAKE2B ec5e92adb23c28a254247182c79ab555fd82603e02f24799049b8057abf869d18234302408c8ae89b9997a2b210ed6965e45c2c03e4f0cab34262ad3f6ebb528 SHA512 1dd827da07f01e815fd74dd7ee84db0900f24782f8f7fd426e2d71b9fb03c7b8045f22e018120a0446c362315751365d1bd8c1724edef2b182394e76eb0a07b2
-DIST ocaml-4.11.1.tar.gz 5069552 BLAKE2B a731d4b60d7965c860dda5c9dfb26b968320760501ff3cac908b8cd96e34391c417e16077cdf753b27b85a79857451e6ff0b566a9158178026a0e6bd5240aac4 SHA512 93fa8b2ff71d5f645e3ed72913205e7d35aa523cfa87d1939d77e796495b94c2fdb4a429ea65330cdeecfb0a36f7ab053b15090d9baa151b58e5331148dc8150
-DIST ocaml-patches-8.tar.bz2 1803 BLAKE2B 5e76a198c2f5ca9f231d4e80499d784cf061ec79bf6b5e3aac917e1260d1f2b927f0f8015d39c01ce4fd481d32a5d211c31e081a7ab87ba1e7c7d5def95bc0fb SHA512 fc477fbb5bdec60a3c4d3dfa110119bb579560ac0e0e57e30e076da72643bda6359c06fd3745fd3436c5d611dbbd888ec2921e9d1920f4929df633c35a797411
-DIST ocaml-patches-9.tar.bz2 1700 BLAKE2B 4e46b8fb490db28f815414e285f54e251394ea53e1d25c529bbea9f03e426fd19132b1e2c7c2be7d14983fceb4cad073d191b001f6da522fee4226371d4a2eca SHA512 cc19f9104fac69aecc5effa8cb772342e1fb61cdcd38ba0176efe04cf3d710b1c56d5178748f3bd29099af91fa684da432a8ef8d42de76dbd1b6954a255ea6c0
+DIST ocaml-4.11.2.tar.gz 5075323 BLAKE2B bdc503d9a8d0e39dd11060febcd0287657b460e50ed81e55578a3e778af990ca5d4ef9011753eee4e1a144da33eb76c95b1672dc99b76e65a2e107eee472fe06 SHA512 03d8a9f6e130142c121ff2eb3d54f584f1e7c8475f066a5803bb0edd2fa172ca06a56a3ec548b225f5c8b12112d7a68511b1e16f3ade075b5f02610d4247bbb3
+DIST ocaml-4.12.1.tar.gz 5181696 BLAKE2B 9d21438e09b1a9680eabb65f5c78d9fe84459592ef7bb797a1933e5383f7b6d5cefffa8cdc184abc102417f5dbc0fca8ef624c9b560f89eaff6537544b5b395f SHA512 e942e5cf5530804690ec45c40936ad2acbb60e11279fc676e0f04181fe1855f84ee5c3cb9c337fc5d01f6ee0e7b2251a6c04f7de56d99c20bb62026dff6c5671
+DIST ocaml-4.13.1.tar.gz 5323203 BLAKE2B f1dcb1601ebfa2a37351e3a466a7ca601518c2da403b01aeb182738a54d5887523ab554d747d6591cb09b07b417865e20907f7877117b2d2d069ef6c9edc0fae SHA512 da3434177438c852da53c0fda7bc2519adcda6384d97d45e44137ed0fd384ffb3da61958a7b51296edb3f88f5a5310ca71b6862f6d756aaa4012d1f54e5955f6
+DIST ocaml-4.14.0.tar.gz 5494844 BLAKE2B f2f9142a95722c7fc5fda205ea6b951939f7d285963b8aa14dc157ac10202ef9d00c7590beabdc97ed83548d61e5ef28b60a360f1a492420a54f4e26dfbf89f0 SHA512 3c5e5b9f00bb109dd99b5f7b0078cf8663d4247e548f3e601d6b2a55582e04bb20f6de85005c4cf2f78ae9aaa449f5ca6f2bab2f6ce83eeb3aeb386e3f2fcc32
+DIST ocaml-4.14.1.tar.gz 5498436 BLAKE2B 6113283ab0f7ac39ade1f35a02c203a6956f8f4efa4f174daf53483c1d874613195c2705ca02760f0ff4abd9b37c91f8dec59c010ac8ae8731790cdd6f429673 SHA512 6340e145c7d11a1ee9fa1699fc6a8a6785f14ff9c05dca708cf278194642ec9b7c562d744d8b38e5dab74b88fa3a5760035e214f5f8fab8b233a344b035db8fb
+DIST ocaml-4.14.2.tar.gz 5505119 BLAKE2B 518c2a69ee32e1c141b574a9800a64efc445381eb2808985b5dbb9d5ec54228aa25042a1c410307c3556488ba12a751980396b0d9a01e60a1ea84ac5b52e6dd6 SHA512 61bfa7961aae02458210f10865a5703f7a50a9be2452379e820cf2dfac2c6037da553c31835145e50a776880bdeb2ec78cd7a3147d65f418e7b3e593534e8a04
diff --git a/dev-lang/ocaml/files/ocaml-4.04.2-tinfo.patch b/dev-lang/ocaml/files/ocaml-4.04.2-tinfo.patch
deleted file mode 100644
index ceeb82991098..000000000000
--- a/dev-lang/ocaml/files/ocaml-4.04.2-tinfo.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-https://bugs.gentoo.org/459512
-
---- ocaml-4.04.2/configure
-+++ ocaml-4.04.2/configure
-@@ -1095,7 +1095,7 @@
- # For the terminfo module
-
- if test "$with_curses" = "yes"; then
-- for libs in "" "-lcurses" "-ltermcap" "-lcurses -ltermcap" "-lncurses"; do
-+ for libs in "" "-ltinfo" "-lcurses" "-ltermcap" "-lcurses -ltermcap" "-lncurses"; do
- if sh ./hasgot $libs tgetent tgetstr tgetnum tputs; then
- inf "termcap functions found (with libraries '$libs')"
- echo "#define HAS_TERMCAP" >> s.h
diff --git a/dev-lang/ocaml/files/ocaml-4.09.0-gcc-10.patch b/dev-lang/ocaml/files/ocaml-4.09.0-gcc-10.patch
deleted file mode 100644
index e25d55a5f668..000000000000
--- a/dev-lang/ocaml/files/ocaml-4.09.0-gcc-10.patch
+++ /dev/null
@@ -1,21 +0,0 @@
---- a/runtime/backtrace.c
-+++ b/runtime/backtrace.c
-@@ -28,7 +28,7 @@
- #include "caml/fail.h"
-
- /* The table of debug information fragments */
--struct ext_table caml_debug_info;
-+extern struct ext_table caml_debug_info;
-
- CAMLexport int32_t caml_backtrace_active = 0;
- CAMLexport int32_t caml_backtrace_pos = 0;
---- a/runtime/startup_nat.c
-+++ b/runtime/startup_nat.c
-@@ -44,7 +44,6 @@
- #endif
-
- extern int caml_parser_trace;
--CAMLexport header_t caml_atom_table[256];
- char * caml_code_area_start, * caml_code_area_end;
- struct ext_table caml_code_fragments_table;
-
diff --git a/dev-lang/ocaml/files/ocaml-4.11.2-cflags.patch b/dev-lang/ocaml/files/ocaml-4.11.2-cflags.patch
new file mode 100644
index 000000000000..7adb1ea0768d
--- /dev/null
+++ b/dev-lang/ocaml/files/ocaml-4.11.2-cflags.patch
@@ -0,0 +1,42 @@
+--- a/runtime/Makefile
++++ b/runtime/Makefile
+@@ -335,7 +335,7 @@
+ # (without the extension, which is added by the macro)
+ define COMPILE_C_FILE
+ $(1).$(O): %.c
+- $$(CC) -c $$(OC_CFLAGS) $$(OC_CPPFLAGS) $$(OUTPUTOBJ)$$@ $$<
++ $$(CC) -c $$(OC_CFLAGS) $(CFLAGS) $$(OC_CPPFLAGS) $$(OUTPUTOBJ)$$@ $$<
+ endef
+
+ object_types := % %_b %_bd %_bi %_bpic %_n %_nd %_ni %_np %_npic
+--- a/otherlibs/Makefile.otherlibs.common
++++ b/otherlibs/Makefile.otherlibs.common
+@@ -138,4 +138,4 @@
+ $(CAMLOPT) -c $(COMPFLAGS) $(OPTCOMPFLAGS) $<
+
+ .c.$(O):
+- $(CC) -c $(OC_CFLAGS) $(OC_CPPFLAGS) $(OUTPUTOBJ)$@ $<
++ $(CC) -c $(OC_CFLAGS) $(CFLAGS) $(OC_CPPFLAGS) $(OUTPUTOBJ)$@ $<
+--- a/otherlibs/systhreads/Makefile
++++ b/otherlibs/systhreads/Makefile
+@@ -102,10 +102,10 @@
+ st_stubs_n.$(O): OC_CPPFLAGS += $(NATIVE_CPPFLAGS)
+
+ st_stubs_b.$(O): st_stubs.c $(HEADER)
+- $(CC) -c $(OC_CFLAGS) $(OC_CPPFLAGS) $(OUTPUTOBJ)$@ $<
++ $(CC) -c $(OC_CFLAGS) $(CFLAGS) $(OC_CPPFLAGS) $(OUTPUTOBJ)$@ $<
+
+ st_stubs_n.$(O): st_stubs.c $(HEADER)
+- $(CC) -c $(OC_CFLAGS) $(OC_CPPFLAGS) $(OUTPUTOBJ)$@ $<
++ $(CC) -c $(OC_CFLAGS) $(CFLAGS) $(OC_CPPFLAGS) $(OUTPUTOBJ)$@ $<
+
+ partialclean:
+ rm -f *.cm*
+--- a/Makefile.common.in
++++ b/Makefile.common.in
+@@ -79,4 +79,4 @@
+ # general (it supports both .o and .obj)
+
+ %.$(O): %.c
+- $(CC) -c $(OC_CFLAGS) $(OC_CPPFLAGS) $(OUTPUTOBJ)$@ $<
++ $(CC) -c $(OC_CFLAGS) $(CFLAGS) $(OC_CPPFLAGS) $(OUTPUTOBJ)$@ $<
diff --git a/dev-lang/ocaml/files/ocaml-4.11.2-glibc-2.34.patch b/dev-lang/ocaml/files/ocaml-4.11.2-glibc-2.34.patch
new file mode 100644
index 000000000000..22cbb806e6ea
--- /dev/null
+++ b/dev-lang/ocaml/files/ocaml-4.11.2-glibc-2.34.patch
@@ -0,0 +1,91 @@
+https://gitlab.com/redhat/centos-stream/rpms/ocaml/-/raw/c9s/0006-Dynamically-allocate-the-alternate-signal-stack-1026.patch
+https://bugs.gentoo.org/804498
+
+From 24a9db7784ddfcf0af2d2be2f51616ed960ae7e8 Mon Sep 17 00:00:00 2001
+From: Xavier Leroy <xavierleroy@users.noreply.github.com>
+Date: Fri, 5 Mar 2021 19:14:07 +0100
+Subject: [PATCH 6/6] Dynamically allocate the alternate signal stack (#10266)
+
+In Glibc 2.34 and later, SIGSTKSZ may not be a compile-time constant.
+It is no longer possible to statically allocate the alternate signal
+stack for the main thread, as we've been doing for the last 25 years.
+
+This commit implements dynamic allocation of the alternate signal stack
+even for the main thread. It reuses the code already in place to allocate
+the alternate signal stack for other threads.
+
+Fixes: #10250.
+(cherry picked from commit fc9534746bf5d08a4c109f22e344cf49d5d46d54)
+--- a/runtime/caml/signals.h
++++ b/runtime/caml/signals.h
+@@ -82,7 +82,7 @@ void caml_set_action_pending (void);
+ value caml_do_pending_actions_exn (void);
+ value caml_process_pending_actions_with_root (value extra_root); // raises
+ int caml_set_signal_action(int signo, int action);
+-void caml_setup_stack_overflow_detection(void);
++CAMLextern int caml_setup_stack_overflow_detection(void);
+
+ CAMLextern void (*caml_enter_blocking_section_hook)(void);
+ CAMLextern void (*caml_leave_blocking_section_hook)(void);
+--- a/runtime/signals_byt.c
++++ b/runtime/signals_byt.c
+@@ -86,4 +86,4 @@ int caml_set_signal_action(int signo, int action)
+ return 0;
+ }
+
+-void caml_setup_stack_overflow_detection(void) {}
++CAMLexport int caml_setup_stack_overflow_detection(void) { return 0; }
+--- a/runtime/signals_nat.c
++++ b/runtime/signals_nat.c
+@@ -195,8 +195,6 @@ DECLARE_SIGNAL_HANDLER(trap_handler)
+ #error "CONTEXT_SP is required if HAS_STACK_OVERFLOW_DETECTION is defined"
+ #endif
+
+-static char sig_alt_stack[SIGSTKSZ];
+-
+ /* Code compiled with ocamlopt never accesses more than
+ EXTRA_STACK bytes below the stack pointer. */
+ #define EXTRA_STACK 256
+@@ -282,28 +280,33 @@ void caml_init_signals(void)
+ #endif
+
+ #ifdef HAS_STACK_OVERFLOW_DETECTION
+- {
+- stack_t stk;
++ if (caml_setup_stack_overflow_detection() != -1) {
+ struct sigaction act;
+- stk.ss_sp = sig_alt_stack;
+- stk.ss_size = SIGSTKSZ;
+- stk.ss_flags = 0;
+ SET_SIGACT(act, segv_handler);
+ act.sa_flags |= SA_ONSTACK | SA_NODEFER;
+ sigemptyset(&act.sa_mask);
+- if (sigaltstack(&stk, NULL) == 0) { sigaction(SIGSEGV, &act, NULL); }
++ sigaction(SIGSEGV, &act, NULL);
+ }
+ #endif
+ }
+
+-void caml_setup_stack_overflow_detection(void)
++/* Allocate and select an alternate stack for handling signals,
++ especially SIGSEGV signals.
++ Each thread needs its own alternate stack.
++ The alternate stack used to be statically-allocated for the main thread,
++ but this is incompatible with Glibc 2.34 and newer, where SIGSTKSZ
++ may not be a compile-time constant (issue #10250). */
++
++CAMLexport int caml_setup_stack_overflow_detection(void)
+ {
+ #ifdef HAS_STACK_OVERFLOW_DETECTION
+ stack_t stk;
+ stk.ss_sp = malloc(SIGSTKSZ);
++ if (stk.ss_sp == NULL) return -1;
+ stk.ss_size = SIGSTKSZ;
+ stk.ss_flags = 0;
+- if (stk.ss_sp)
+- sigaltstack(&stk, NULL);
++ return sigaltstack(&stk, NULL);
++#else
++ return 0;
+ #endif
+ }
diff --git a/dev-lang/ocaml/files/ocaml-4.12.0-glibc-2.34.patch b/dev-lang/ocaml/files/ocaml-4.12.0-glibc-2.34.patch
new file mode 100644
index 000000000000..486b44846a86
--- /dev/null
+++ b/dev-lang/ocaml/files/ocaml-4.12.0-glibc-2.34.patch
@@ -0,0 +1,91 @@
+https://src.fedoraproject.org/rpms/ocaml/blob/129153b85109944bf0b2922949f77ef8f32b39a1/f/0004-Dynamically-allocate-the-alternate-signal-stack-1026.patch
+https://bugs.gentoo.org/816765
+
+From 3104d92743614f8f52039e0520116af4179880a5 Mon Sep 17 00:00:00 2001
+From: Xavier Leroy <xavierleroy@users.noreply.github.com>
+Date: Fri, 5 Mar 2021 19:14:07 +0100
+Subject: [PATCH 4/4] Dynamically allocate the alternate signal stack (#10266)
+
+In Glibc 2.34 and later, SIGSTKSZ may not be a compile-time constant.
+It is no longer possible to statically allocate the alternate signal
+stack for the main thread, as we've been doing for the last 25 years.
+
+This commit implements dynamic allocation of the alternate signal stack
+even for the main thread. It reuses the code already in place to allocate
+the alternate signal stack for other threads.
+
+Fixes: #10250.
+(cherry picked from commit fc9534746bf5d08a4c109f22e344cf49d5d46d54)
+--- a/runtime/caml/signals.h
++++ b/runtime/caml/signals.h
+@@ -87,7 +87,7 @@ value caml_do_pending_actions_exn (void);
+ value caml_process_pending_actions_with_root (value extra_root); // raises
+ value caml_process_pending_actions_with_root_exn (value extra_root);
+ int caml_set_signal_action(int signo, int action);
+-CAMLextern void caml_setup_stack_overflow_detection(void);
++CAMLextern int caml_setup_stack_overflow_detection(void);
+
+ CAMLextern void (*caml_enter_blocking_section_hook)(void);
+ CAMLextern void (*caml_leave_blocking_section_hook)(void);
+--- a/runtime/signals_byt.c
++++ b/runtime/signals_byt.c
+@@ -81,4 +81,4 @@ int caml_set_signal_action(int signo, int action)
+ return 0;
+ }
+
+-CAMLexport void caml_setup_stack_overflow_detection(void) {}
++CAMLexport int caml_setup_stack_overflow_detection(void) { return 0; }
+--- a/runtime/signals_nat.c
++++ b/runtime/signals_nat.c
+@@ -181,8 +181,6 @@ DECLARE_SIGNAL_HANDLER(trap_handler)
+ #error "CONTEXT_SP is required if HAS_STACK_OVERFLOW_DETECTION is defined"
+ #endif
+
+-static char sig_alt_stack[SIGSTKSZ];
+-
+ /* Code compiled with ocamlopt never accesses more than
+ EXTRA_STACK bytes below the stack pointer. */
+ #define EXTRA_STACK 256
+@@ -276,28 +274,33 @@ void caml_init_signals(void)
+ #endif
+
+ #ifdef HAS_STACK_OVERFLOW_DETECTION
+- {
+- stack_t stk;
++ if (caml_setup_stack_overflow_detection() != -1) {
+ struct sigaction act;
+- stk.ss_sp = sig_alt_stack;
+- stk.ss_size = SIGSTKSZ;
+- stk.ss_flags = 0;
+ SET_SIGACT(act, segv_handler);
+ act.sa_flags |= SA_ONSTACK | SA_NODEFER;
+ sigemptyset(&act.sa_mask);
+- if (sigaltstack(&stk, NULL) == 0) { sigaction(SIGSEGV, &act, NULL); }
++ sigaction(SIGSEGV, &act, NULL);
+ }
+ #endif
+ }
+
+-CAMLexport void caml_setup_stack_overflow_detection(void)
++/* Allocate and select an alternate stack for handling signals,
++ especially SIGSEGV signals.
++ Each thread needs its own alternate stack.
++ The alternate stack used to be statically-allocated for the main thread,
++ but this is incompatible with Glibc 2.34 and newer, where SIGSTKSZ
++ may not be a compile-time constant (issue #10250). */
++
++CAMLexport int caml_setup_stack_overflow_detection(void)
+ {
+ #ifdef HAS_STACK_OVERFLOW_DETECTION
+ stack_t stk;
+ stk.ss_sp = malloc(SIGSTKSZ);
++ if (stk.ss_sp == NULL) return -1;
+ stk.ss_size = SIGSTKSZ;
+ stk.ss_flags = 0;
+- if (stk.ss_sp)
+- sigaltstack(&stk, NULL);
++ return sigaltstack(&stk, NULL);
++#else
++ return 0;
+ #endif
+ }
diff --git a/dev-lang/ocaml/files/ocaml-4.12.1-fix-textrel-riscv.patch b/dev-lang/ocaml/files/ocaml-4.12.1-fix-textrel-riscv.patch
new file mode 100644
index 000000000000..5ba8582d3a65
--- /dev/null
+++ b/dev-lang/ocaml/files/ocaml-4.12.1-fix-textrel-riscv.patch
@@ -0,0 +1,46 @@
+From ddf99786f8229c8282905af5c7c74360d4f2fbd0 Mon Sep 17 00:00:00 2001
+From: Alex Fan <alex.fan.q@gmail.com>
+Date: Tue, 22 Feb 2022 19:28:30 +1100
+Subject: [PATCH] riscv: Generate frametable in data section to improve code
+ relocatability (#11042)
+
+Similar to what PowerPC and System-Z have done in commit 24980d3fd9848e281761ef2b8fe383e71261789b
+
+With this commit ocamlopt produces .so shared libraries and PIE relocatable
+executables that contain no relocations in the text segment.
+
+Upstream status: merged in 4.14 and 5.x
+---
+ Changes | 5 +++++
+ asmcomp/riscv/emit.mlp | 2 +-
+ 2 files changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/Changes b/Changes
+index 4898e9d69fc..2bec76daac6 100644
+--- a/Changes
++++ b/Changes
+@@ -477,6 +477,11 @@ OCaml 4.14.0
+ - #10907, #10959: Wrong type inferred from existential types
+ (Jacques Garrigue and Gabriel Scherer, report by @dyzsr, review by Leo White)
+
++- #10688: Move frame descriptor table from `rodata` to `data` section on
++ RISC-V. Improves support for building DLLs and PIEs. In particular, this
++ applies to all binaries in distributions that build PIEs by default (eg
++ Gentoo and Alpine).
++ (Alex Fan, review by Gabriel Scherer)
+
+ OCaml 4.13 maintenance branch
+ -----------------------------
+diff --git a/asmcomp/riscv/emit.mlp b/asmcomp/riscv/emit.mlp
+index 474a3c6857a..b36aa0ea38c 100644
+--- a/asmcomp/riscv/emit.mlp
++++ b/asmcomp/riscv/emit.mlp
+@@ -645,7 +645,7 @@ let end_assembly() =
+ `{emit_symbol lbl_end}:\n`;
+ ` .quad 0\n`;
+ (* Emit the frame descriptors *)
+- ` {emit_string rodata_space}\n`;
++ ` {emit_string data_space}\n`; (* not rodata because relocations inside *)
+ let lbl = Compilenv.make_symbol (Some "frametable") in
+ declare_global_data lbl;
+ `{emit_symbol lbl}:\n`;
diff --git a/dev-lang/ocaml/files/ocaml-4.14.0-clang.patch b/dev-lang/ocaml/files/ocaml-4.14.0-clang.patch
new file mode 100644
index 000000000000..cd3c042f2639
--- /dev/null
+++ b/dev-lang/ocaml/files/ocaml-4.14.0-clang.patch
@@ -0,0 +1,132 @@
+commit 28b553622bd0f168411d86ddcfba1adab0d87b92
+Author: Yawar Amin <yawar.amin@gmail.com>
+Date: Mon Nov 15 22:40:43 2021 -0500
+
+ Fix ranlib error
+
+ - Always pass ranlib one file argument at a time to avoid error 'Exactly
+ one archive should be specified'
+ - Call ranlib without cd'ing into the library's directory
+ - Use Makefile functionality to simplify recipes
+
+diff --git a/Makefile b/Makefile
+index c2522c775..2e4e44faa 100644
+--- a/Makefile
++++ b/Makefile
+@@ -549,6 +549,8 @@ else
+ endif
+ $(MAKE) -C tools installopt
+
++LIBRARIES = $(addsuffix .$(A), ocamlcommon ocamlbytecomp ocamloptcomp)
++
+ .PHONY: installoptopt
+ installoptopt:
+ $(INSTALL_PROG) ocamlc.opt$(EXE) "$(INSTALL_BINDIR)"
+@@ -585,8 +587,11 @@ endif
+ ifeq "$(INSTALL_OCAMLNAT)" "true"
+ $(INSTALL_PROG) ocamlnat$(EXE) "$(INSTALL_BINDIR)"
+ endif
+- cd "$(INSTALL_COMPLIBDIR)" && \
+- $(RANLIB) ocamlcommon.$(A) ocamlbytecomp.$(A) ocamloptcomp.$(A)
++# Some versions of ranlib do not support multiple archives
++ for library in $(LIBRARIES); \
++ do \
++ $(RANLIB) "$(INSTALL_COMPLIBDIR)/$$library"; \
++ done
+
+ # Installation of the *.ml sources of compiler-libs
+ .PHONY: install-compiler-sources
+diff --git a/otherlibs/Makefile.otherlibs.common b/otherlibs/Makefile.otherlibs.common
+index 95ff4d58f..6a4451e47 100644
+--- a/otherlibs/Makefile.otherlibs.common
++++ b/otherlibs/Makefile.otherlibs.common
+@@ -95,7 +95,7 @@ install::
+ fi
+ ifneq "$(STUBSLIB)" ""
+ $(INSTALL_DATA) $(STUBSLIB) "$(INSTALL_LIBDIR)/"
+- cd "$(INSTALL_LIBDIR)"; $(RANLIB) lib$(CLIBNAME).$(A)
++ $(RANLIB) "$(INSTALL_LIBDIR)/lib$(CLIBNAME).$(A)"
+ endif
+
+ $(INSTALL_DATA) \
+@@ -104,7 +104,7 @@ endif
+ ifeq "$(INSTALL_SOURCE_ARTIFACTS)" "true"
+ $(INSTALL_DATA) \
+ $(CMIFILES:.cmi=.mli) \
+- $(CMIFILES:.cmi=.cmti) \
++ $(CMIFILES:.cmi=.cmti) \
+ "$(INSTALL_LIBDIR)/"
+ endif
+ if test -n "$(HEADERS)"; then \
+@@ -115,7 +115,7 @@ installopt:
+ $(INSTALL_DATA) \
+ $(CAMLOBJS_NAT) $(LIBNAME).cmxa $(LIBNAME).$(A) \
+ "$(INSTALL_LIBDIR)/"
+- cd "$(INSTALL_LIBDIR)"; $(RANLIB) $(LIBNAME).a
++ $(RANLIB) "$(INSTALL_LIBDIR)/$(LIBNAME).$(A)"
+ if test -f $(LIBNAME).cmxs; then \
+ $(INSTALL_PROG) $(LIBNAME).cmxs "$(INSTALL_LIBDIR)"; \
+ fi
+diff --git a/otherlibs/dynlink/Makefile b/otherlibs/dynlink/Makefile
+index 6b02dc197..dccc45103 100644
+--- a/otherlibs/dynlink/Makefile
++++ b/otherlibs/dynlink/Makefile
+@@ -249,12 +249,12 @@ ifeq "$(INSTALL_SOURCE_ARTIFACTS)" "true"
+ endif
+
+ installopt:
+- if $(NATDYNLINK); then \
+- $(INSTALL_DATA) \
+- $(NATOBJS) dynlink.cmxa dynlink.$(A) \
+- "$(INSTALL_LIBDIR)" && \
+- cd "$(INSTALL_LIBDIR)" && $(RANLIB) dynlink.$(A); \
+- fi
++ifeq "$(NATDYNLINK)" "true"
++ $(INSTALL_DATA) \
++ $(NATOBJS) dynlink.cmxa dynlink.$(A) \
++ "$(INSTALL_LIBDIR)"
++ $(RANLIB) "$(INSTALL_LIBDIR)/dynlink.$(A)"
++endif
+
+ partialclean:
+ rm -f $(extract_crc) *.cm[ioaxt] *.cmti *.cmxa \
+diff --git a/otherlibs/systhreads/Makefile b/otherlibs/systhreads/Makefile
+index 8fc1bdb92..379c530fa 100644
+--- a/otherlibs/systhreads/Makefile
++++ b/otherlibs/systhreads/Makefile
+@@ -121,7 +121,7 @@ install:
+ $(INSTALL_PROG) dllthreads$(EXT_DLL) "$(INSTALL_STUBLIBDIR)"; \
+ fi
+ $(INSTALL_DATA) libthreads.$(A) "$(INSTALL_LIBDIR)"
+- cd "$(INSTALL_LIBDIR)"; $(RANLIB) libthreads.$(A)
++ $(RANLIB) "$(INSTALL_LIBDIR)/libthreads.$(A)"
+ mkdir -p "$(INSTALL_THREADSLIBDIR)"
+ $(INSTALL_DATA) \
+ $(CMIFILES) threads.cma \
+@@ -136,11 +136,11 @@ endif
+
+ installopt:
+ $(INSTALL_DATA) libthreadsnat.$(A) "$(INSTALL_LIBDIR)"
+- cd "$(INSTALL_LIBDIR)"; $(RANLIB) libthreadsnat.$(A)
++ $(RANLIB) "$(INSTALL_LIBDIR)/libthreadsnat.$(A)"
+ $(INSTALL_DATA) \
+ $(THREADS_NCOBJS) threads.cmxa threads.$(A) \
+ "$(INSTALL_THREADSLIBDIR)"
+- cd "$(INSTALL_THREADSLIBDIR)" && $(RANLIB) threads.$(A)
++ $(RANLIB) "$(INSTALL_THREADSLIBDIR)/threads.$(A)"
+
+ %.cmi: %.mli
+ $(CAMLC) -c $(COMPFLAGS) $<
+diff --git a/stdlib/Makefile b/stdlib/Makefile
+index df34bc2d4..32c5dab56 100644
+--- a/stdlib/Makefile
++++ b/stdlib/Makefile
+@@ -105,7 +105,7 @@ installopt-default::
+ $(INSTALL_DATA) \
+ stdlib.cmxa stdlib.$(A) std_exit.$(O) *.cmx \
+ "$(INSTALL_LIBDIR)"
+- cd "$(INSTALL_LIBDIR)"; $(RANLIB) stdlib.$(A)
++ $(RANLIB) "$(INSTALL_LIBDIR)/stdlib.$(A)"
+
+ ifeq "$(UNIX_OR_WIN32)" "unix"
+ HEADERPROGRAM = header
diff --git a/dev-lang/ocaml/metadata.xml b/dev-lang/ocaml/metadata.xml
index d0ecd9cc9290..7fa4e02cc246 100644
--- a/dev-lang/ocaml/metadata.xml
+++ b/dev-lang/ocaml/metadata.xml
@@ -1,14 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>ml@gentoo.org</email>
<name>ML</name>
</maintainer>
- <maintainer type="person">
- <email>gienah@gentoo.org</email>
- <name>Mark Wright</name>
- </maintainer>
<use>
<flag name="flambda">Enables the Flambda optimizer: A new intermediate representation (introduced in ocaml 4.03) in the depths of the compiler designed to allow for better inlining.</flag>
<flag name="spacetime">Enables the Spacetime memory profiler. See https://caml.inria.fr/pub/docs/manual-ocaml/spacetime.html for more information.</flag>
diff --git a/dev-lang/ocaml/ocaml-4.04.2-r1.ebuild b/dev-lang/ocaml/ocaml-4.04.2-r1.ebuild
deleted file mode 100644
index 72014ebdabdb..000000000000
--- a/dev-lang/ocaml/ocaml-4.04.2-r1.ebuild
+++ /dev/null
@@ -1,128 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="5"
-
-inherit flag-o-matic eutils multilib versionator toolchain-funcs
-
-PATCHLEVEL="8"
-MY_P="${P/_/-}"
-DESCRIPTION="Type-inferring functional programming language descended from the ML family"
-HOMEPAGE="https://ocaml.org"
-SRC_URI="https://github.com/ocaml/ocaml/archive/${PV/_/+}.tar.gz -> ${MY_P}.tar.gz
- mirror://gentoo/${PN}-patches-${PATCHLEVEL}.tar.bz2"
-
-LICENSE="QPL-1.0 LGPL-2"
-# Everytime ocaml is updated to a new version, everything ocaml must be rebuilt,
-# so here we go with the subslot.
-SLOT="0/${PV}"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 x86 ~amd64-linux ~x86-linux"
-IUSE="emacs flambda latex ncurses +ocamlopt X xemacs"
-
-RDEPEND="
- sys-libs/binutils-libs:=
- ncurses? ( sys-libs/ncurses:0= )
- X? ( x11-libs/libX11 )"
-DEPEND="${RDEPEND}
- virtual/pkgconfig"
-
-PDEPEND="emacs? ( app-emacs/ocaml-mode )
- xemacs? ( app-xemacs/ocaml )"
-
-S="${WORKDIR}/${MY_P}"
-pkg_setup() {
- # dev-lang/ocaml creates its own objects but calls gcc for linking, which will
- # results in relocations if gcc wants to create a PIE executable
- if gcc-specs-pie ; then
- append-ldflags -nopie
- ewarn "Ocaml generates its own native asm, you're using a PIE compiler"
- ewarn "We have appended -nopie to ocaml build options"
- ewarn "because linking an executable with pie while the objects are not pic will not work"
- fi
-}
-
-src_prepare() {
- EPATCH_SUFFIX="patch" epatch "${WORKDIR}/patches"
- epatch "${FILESDIR}/${PN}-4.04.2-tinfo.patch" #459512
-}
-
-src_configure() {
- export LC_ALL=C
- local myconf=""
-
- # Causes build failures because it builds some programs with -pg,
- # bug #270920
- filter-flags -fomit-frame-pointer
- # Bug #285993
- filter-mfpmath sse
-
- # -ggdb3 & co makes it behave weirdly, breaks sexplib
- replace-flags -ggdb* -ggdb
-
- # It doesn't compile on alpha without this LDFLAGS
- use alpha && append-ldflags "-Wl,--no-relax"
-
- use ncurses || myconf="${myconf} -no-curses"
- use X || myconf="${myconf} -no-graph"
- use flambda && myconf="${myconf} -flambda"
-
- # ocaml uses a home-brewn configure script, preventing it to use econf.
- RAW_LDFLAGS="$(raw-ldflags)" ./configure \
- --prefix "${EPREFIX}"/usr \
- --bindir "${EPREFIX}"/usr/bin \
- --target-bindir "${EPREFIX}"/usr/bin \
- --libdir "${EPREFIX}"/usr/$(get_libdir)/ocaml \
- --mandir "${EPREFIX}"/usr/share/man \
- -target "${CHOST}" \
- -host "${CBUILD}" \
- -cc "$(tc-getCC)" \
- -as "$(tc-getAS)" \
- -aspp "$(tc-getCC) -c" \
- -partialld "$(tc-getLD) -r" \
- --with-pthread ${myconf} || die "configure failed!"
-
- # http://caml.inria.fr/mantis/view.php?id=4698
- export CCLINKFLAGS="${LDFLAGS}"
-}
-
-src_compile() {
- emake world
-
- # Native code generation can be disabled now
- if use ocamlopt ; then
- # bug #279968
- emake opt
- emake opt.opt
- fi
-}
-
-src_test() {
- if use ocamlopt ; then
- emake -j1 tests
- else
- ewarn "${PN} testsuite requires ocamlopt useflag"
- fi
-}
-
-src_install() {
- emake BINDIR="${ED}"/usr/bin \
- LIBDIR="${ED}"/usr/$(get_libdir)/ocaml \
- MANDIR="${ED}"/usr/share/man \
- install
-
- # Symlink the headers to the right place
- dodir /usr/include
- dosym /usr/$(get_libdir)/ocaml/caml /usr/include/caml
-
- dodoc Changes README.adoc
-
- # Create and envd entry for latex input files
- if use latex ; then
- echo "TEXINPUTS=${EPREFIX}/usr/$(get_libdir)/ocaml/ocamldoc:" > "${T}"/99ocamldoc
- doenvd "${T}"/99ocamldoc
- fi
-
- # Install ocaml-rebuild portage set
- insinto /usr/share/portage/config/sets
- doins "${FILESDIR}/ocaml.conf"
-}
diff --git a/dev-lang/ocaml/ocaml-4.05.0-r1.ebuild b/dev-lang/ocaml/ocaml-4.05.0-r1.ebuild
deleted file mode 100644
index f1e64c43cdab..000000000000
--- a/dev-lang/ocaml/ocaml-4.05.0-r1.ebuild
+++ /dev/null
@@ -1,130 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="5"
-
-inherit flag-o-matic eutils multilib versionator toolchain-funcs
-
-PATCHLEVEL="9"
-MY_P="${P/_/-}"
-DESCRIPTION="Type-inferring functional programming language descended from the ML family"
-HOMEPAGE="https://ocaml.org"
-SRC_URI="https://github.com/ocaml/ocaml/archive/${PV/_/+}.tar.gz -> ${MY_P}.tar.gz
- mirror://gentoo/${PN}-patches-${PATCHLEVEL}.tar.bz2"
-
-LICENSE="QPL-1.0 LGPL-2"
-# Everytime ocaml is updated to a new version, everything ocaml must be rebuilt,
-# so here we go with the subslot.
-SLOT="0/${PV}"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~sparc-solaris ~x86-solaris"
-IUSE="emacs flambda latex ncurses +ocamlopt spacetime X xemacs"
-
-RDEPEND="
- sys-libs/binutils-libs:=
- ncurses? ( sys-libs/ncurses:0= )
- spacetime? ( sys-libs/libunwind:= )
- X? ( x11-libs/libX11 )"
-DEPEND="${RDEPEND}
- virtual/pkgconfig"
-
-PDEPEND="emacs? ( app-emacs/ocaml-mode )
- xemacs? ( app-xemacs/ocaml )"
-
-S="${WORKDIR}/${MY_P}"
-pkg_setup() {
- # dev-lang/ocaml creates its own objects but calls gcc for linking, which will
- # results in relocations if gcc wants to create a PIE executable
- if gcc-specs-pie ; then
- append-ldflags -nopie
- ewarn "Ocaml generates its own native asm, you're using a PIE compiler"
- ewarn "We have appended -nopie to ocaml build options"
- ewarn "because linking an executable with pie while the objects are not pic will not work"
- fi
-}
-
-src_prepare() {
- EPATCH_SUFFIX="patch" epatch "${WORKDIR}/patches"
- epatch "${FILESDIR}/${PN}-4.04.2-tinfo.patch" #459512
-}
-
-src_configure() {
- export LC_ALL=C
- local myconf=""
-
- # Causes build failures because it builds some programs with -pg,
- # bug #270920
- filter-flags -fomit-frame-pointer
- # Bug #285993
- filter-mfpmath sse
-
- # -ggdb3 & co makes it behave weirdly, breaks sexplib
- replace-flags -ggdb* -ggdb
-
- # It doesn't compile on alpha without this LDFLAGS
- use alpha && append-ldflags "-Wl,--no-relax"
-
- use ncurses || myconf="${myconf} -no-curses"
- use X || myconf="${myconf} -no-graph"
- use flambda && myconf="${myconf} -flambda"
- use spacetime && myconf="${myconf} -spacetime"
-
- # ocaml uses a home-brewn configure script, preventing it to use econf.
- RAW_LDFLAGS="$(raw-ldflags)" ./configure \
- --prefix "${EPREFIX}"/usr \
- --bindir "${EPREFIX}"/usr/bin \
- --target-bindir "${EPREFIX}"/usr/bin \
- --libdir "${EPREFIX}"/usr/$(get_libdir)/ocaml \
- --mandir "${EPREFIX}"/usr/share/man \
- -target "${CHOST}" \
- -host "${CBUILD}" \
- -cc "$(tc-getCC)" \
- -as "$(tc-getAS)" \
- -aspp "$(tc-getCC) -c" \
- -partialld "$(tc-getLD) -r" \
- --with-pthread ${myconf} || die "configure failed!"
-
- # http://caml.inria.fr/mantis/view.php?id=4698
- export CCLINKFLAGS="${LDFLAGS}"
-}
-
-src_compile() {
- emake world
-
- # Native code generation can be disabled now
- if use ocamlopt ; then
- # bug #279968
- emake opt
- emake -j1 opt.opt
- fi
-}
-
-src_test() {
- if use ocamlopt ; then
- emake -j1 tests
- else
- ewarn "${PN} testsuite requires ocamlopt useflag"
- fi
-}
-
-src_install() {
- emake BINDIR="${ED}"/usr/bin \
- LIBDIR="${ED}"/usr/$(get_libdir)/ocaml \
- MANDIR="${ED}"/usr/share/man \
- install
-
- # Symlink the headers to the right place
- dodir /usr/include
- dosym /usr/$(get_libdir)/ocaml/caml /usr/include/caml
-
- dodoc Changes README.adoc
-
- # Create and envd entry for latex input files
- if use latex ; then
- echo "TEXINPUTS=${EPREFIX}/usr/$(get_libdir)/ocaml/ocamldoc:" > "${T}"/99ocamldoc
- doenvd "${T}"/99ocamldoc
- fi
-
- # Install ocaml-rebuild portage set
- insinto /usr/share/portage/config/sets
- doins "${FILESDIR}/ocaml.conf"
-}
diff --git a/dev-lang/ocaml/ocaml-4.10.2.ebuild b/dev-lang/ocaml/ocaml-4.09.0-r3.ebuild
index f29e4ae72201..e77d3241e08f 100644
--- a/dev-lang/ocaml/ocaml-4.10.2.ebuild
+++ b/dev-lang/ocaml/ocaml-4.09.0-r3.ebuild
@@ -1,15 +1,18 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
-HOMEPAGE="https://ocaml.org/"
-SRC_URI="https://github.com/ocaml/ocaml/archive/${PV}.tar.gz -> ${P}.tar.gz"
+inherit flag-o-matic
+
DESCRIPTION="Programming language supporting functional, imperative & object-oriented styles"
+HOMEPAGE="https://ocaml.org/"
+SRC_URI="https://github.com/ocaml/ocaml/archive/${PV}.tar.gz -> ${P}.tar.gz
+ https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}-patches-1.tar.bz2"
LICENSE="LGPL-2.1"
-SLOT="0/${PV}"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~sparc-solaris ~x86-solaris"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="amd64 arm arm64 ~hppa ~ia64 ~mips ~ppc ppc64 x86 ~amd64-linux ~x86-linux ~ppc-macos"
IUSE="emacs flambda latex +ocamlopt spacetime xemacs"
RDEPEND="sys-libs/binutils-libs:=
@@ -19,8 +22,30 @@ BDEPEND="${RDEPEND}
PDEPEND="emacs? ( app-emacs/ocaml-mode )
xemacs? ( app-xemacs/ocaml )"
+QA_FLAGS_IGNORED='usr/lib.*/ocaml/bigarray.cmxs'
+
+PATCHES=(
+ "${WORKDIR}"/${P}-patches-1/
+)
+
src_prepare() {
default
+
+ cp "${FILESDIR}"/ocaml.conf "${T}" || die
+
+ # Broken until 4.12
+ # bug #818445
+ filter-lto
+ append-flags -fno-strict-aliasing
+
+ # OCaml generates textrels on 32-bit arches
+ # We can't do anything about it, but disabling it means that tests
+ # for OCaml-based packages won't fail on unexpected output
+ # bug #773226
+ if use arm || use ppc || use x86 ; then
+ append-ldflags "-Wl,-z,notext"
+ fi
+
# Upstream build ignores LDFLAGS in several places.
sed -i -e 's/\(^MKDLL=.*\)/\1 $(LDFLAGS)/' \
-e 's/\(^OC_CFLAGS=.*\)/\1 $(LDFLAGS)/' \
@@ -39,7 +64,8 @@ src_configure() {
$(use_enable flambda)
$(use_enable spacetime)
)
- econf ${opt[@]}
+
+ econf "${opt[@]}"
}
src_compile() {
@@ -62,18 +88,18 @@ src_test() {
src_install() {
default
dodir /usr/include
-
# Create symlink for header files
dosym "../$(get_libdir)/ocaml/caml" /usr/include/caml
dodoc Changes README.adoc
-
# Create envd entry for latex input files
if use latex ; then
- echo "TEXINPUTS=\"${EPREFIX}/usr/$(get_libdir)/ocaml/ocamldoc:\"" > "${T}/99ocamldoc"
- doenvd "${T}/99ocamldoc"
+ echo "TEXINPUTS=\"${EPREFIX}/usr/$(get_libdir)/ocaml/ocamldoc:\"" > "${T}"/99ocamldoc || die
+ doenvd "${T}"/99ocamldoc
fi
+ sed -i -e "s:lib:$(get_libdir):" "${T}"/ocaml.conf || die
+
# Install ocaml-rebuild portage set
insinto /usr/share/portage/config/sets
- doins "${FILESDIR}/ocaml.conf"
+ doins "${T}"/ocaml.conf
}
diff --git a/dev-lang/ocaml/ocaml-4.09.0.ebuild b/dev-lang/ocaml/ocaml-4.10.2-r3.ebuild
index 181f30b8fef2..2f80ff02a1ee 100644
--- a/dev-lang/ocaml/ocaml-4.09.0.ebuild
+++ b/dev-lang/ocaml/ocaml-4.10.2-r3.ebuild
@@ -1,15 +1,18 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
-HOMEPAGE="https://ocaml.org/"
-SRC_URI="https://github.com/ocaml/ocaml/archive/${PV}.tar.gz -> ${P}.tar.gz"
+inherit flag-o-matic
+
DESCRIPTION="Programming language supporting functional, imperative & object-oriented styles"
+HOMEPAGE="https://ocaml.org/"
+SRC_URI="https://github.com/ocaml/ocaml/archive/${PV}.tar.gz -> ${P}.tar.gz
+ https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}-patches-1.tar.bz2"
LICENSE="LGPL-2.1"
-SLOT="0/${PV}"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 x86 ~amd64-linux ~x86-linux ~ppc-macos ~sparc-solaris ~x86-solaris"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos"
IUSE="emacs flambda latex +ocamlopt spacetime xemacs"
RDEPEND="sys-libs/binutils-libs:=
@@ -19,10 +22,30 @@ BDEPEND="${RDEPEND}
PDEPEND="emacs? ( app-emacs/ocaml-mode )
xemacs? ( app-xemacs/ocaml )"
-PATCHES=("${FILESDIR}"/${PN}-4.09.0-gcc-10.patch)
+QA_FLAGS_IGNORED='usr/lib.*/ocaml/bigarray.cmxs'
+
+PATCHES=(
+ "${WORKDIR}"/${P}-patches-1/
+)
src_prepare() {
default
+
+ cp "${FILESDIR}"/ocaml.conf "${T}" || die
+
+ # Broken until 4.12
+ # bug #818445
+ filter-lto
+ append-flags -fno-strict-aliasing
+
+ # OCaml generates textrels on 32-bit arches
+ # We can't do anything about it, but disabling it means that tests
+ # for OCaml-based packages won't fail on unexpected output
+ # bug #773226
+ if use arm || use ppc || use x86 ; then
+ append-ldflags "-Wl,-z,notext"
+ fi
+
# Upstream build ignores LDFLAGS in several places.
sed -i -e 's/\(^MKDLL=.*\)/\1 $(LDFLAGS)/' \
-e 's/\(^OC_CFLAGS=.*\)/\1 $(LDFLAGS)/' \
@@ -41,7 +64,8 @@ src_configure() {
$(use_enable flambda)
$(use_enable spacetime)
)
- econf ${opt[@]}
+
+ econf "${opt[@]}"
}
src_compile() {
@@ -64,15 +88,20 @@ src_test() {
src_install() {
default
dodir /usr/include
+
# Create symlink for header files
dosym "../$(get_libdir)/ocaml/caml" /usr/include/caml
dodoc Changes README.adoc
+
# Create envd entry for latex input files
if use latex ; then
- echo "TEXINPUTS=\"${EPREFIX}/usr/$(get_libdir)/ocaml/ocamldoc:\"" > "${T}/99ocamldoc"
- doenvd "${T}/99ocamldoc"
+ echo "TEXINPUTS=\"${EPREFIX}/usr/$(get_libdir)/ocaml/ocamldoc:\"" > "${T}/99ocamldoc" || die
+ doenvd "${T}"/99ocamldoc
fi
+
+ sed -i -e "s:lib:$(get_libdir):" "${T}"/ocaml.conf || die
+
# Install ocaml-rebuild portage set
insinto /usr/share/portage/config/sets
- doins "${FILESDIR}/ocaml.conf"
+ doins "${T}"/ocaml.conf
}
diff --git a/dev-lang/ocaml/ocaml-4.11.1.ebuild b/dev-lang/ocaml/ocaml-4.11.2-r2.ebuild
index 280d813184b1..489cf0a32fef 100644
--- a/dev-lang/ocaml/ocaml-4.11.1.ebuild
+++ b/dev-lang/ocaml/ocaml-4.11.2-r2.ebuild
@@ -1,15 +1,17 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
+inherit flag-o-matic
+
HOMEPAGE="https://ocaml.org/"
SRC_URI="https://github.com/ocaml/ocaml/archive/${PV}.tar.gz -> ${P}.tar.gz"
DESCRIPTION="Programming language supporting functional, imperative & object-oriented styles"
LICENSE="QPL-1.0 LGPL-2"
-SLOT="0/${PV}"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~sparc-solaris ~x86-solaris"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="amd64 arm arm64 ~hppa ~ia64 ~mips ~ppc ppc64 ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos"
IUSE="emacs flambda latex +ocamlopt spacetime xemacs"
RDEPEND="sys-libs/binutils-libs:=
@@ -19,8 +21,31 @@ BDEPEND="${RDEPEND}
PDEPEND="emacs? ( app-emacs/ocaml-mode )
xemacs? ( app-xemacs/ocaml )"
+QA_FLAGS_IGNORED='/usr/lib.*/ocaml/bigarray.cmxs'
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-4.11.2-glibc-2.34.patch
+ "${FILESDIR}"/${PN}-4.11.2-cflags.patch
+)
+
src_prepare() {
default
+
+ cp "${FILESDIR}"/ocaml.conf "${T}" || die
+
+ # Broken until 4.12
+ # bug #818445
+ filter-lto
+ append-flags -fno-strict-aliasing
+
+ # OCaml generates textrels on 32-bit arches
+ # We can't do anything about it, but disabling it means that tests
+ # for OCaml-based packages won't fail on unexpected output
+ # bug #773226
+ if use arm || use ppc || use x86 ; then
+ append-ldflags "-Wl,-z,notext"
+ fi
+
# Upstream build ignores LDFLAGS in several places.
sed -i -e 's/\(^MKDLL=.*\)/\1 $(LDFLAGS)/' \
-e 's/\(^OC_CFLAGS=.*\)/\1 $(LDFLAGS)/' \
@@ -65,10 +90,13 @@ src_install() {
dodoc Changes README.adoc
# Create envd entry for latex input files
if use latex ; then
- echo "TEXINPUTS=\"${EPREFIX}/usr/$(get_libdir)/ocaml/ocamldoc:\"" > "${T}/99ocamldoc"
- doenvd "${T}/99ocamldoc"
+ echo "TEXINPUTS=\"${EPREFIX}/usr/$(get_libdir)/ocaml/ocamldoc:\"" > "${T}"/99ocamldoc || die
+ doenvd "${T}"/99ocamldoc
fi
+
+ sed -i -e "s:lib:$(get_libdir):" "${T}"/ocaml.conf || die
+
# Install ocaml-rebuild portage set
insinto /usr/share/portage/config/sets
- doins "${FILESDIR}/ocaml.conf"
+ doins "${T}"/ocaml.conf
}
diff --git a/dev-lang/ocaml/ocaml-4.12.1.ebuild b/dev-lang/ocaml/ocaml-4.12.1.ebuild
new file mode 100644
index 000000000000..9294aeacdc06
--- /dev/null
+++ b/dev-lang/ocaml/ocaml-4.12.1.ebuild
@@ -0,0 +1,104 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit flag-o-matic
+
+HOMEPAGE="https://ocaml.org/"
+SRC_URI="https://github.com/ocaml/ocaml/archive/${PV}.tar.gz -> ${P}.tar.gz"
+DESCRIPTION="Programming language supporting functional, imperative & object-oriented styles"
+
+LICENSE="QPL-1.0 LGPL-2"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos"
+IUSE="emacs flambda latex +ocamlopt xemacs"
+
+RDEPEND="sys-libs/binutils-libs:="
+BDEPEND="${RDEPEND}
+ virtual/pkgconfig"
+PDEPEND="emacs? ( app-emacs/ocaml-mode )
+ xemacs? ( app-xemacs/ocaml )"
+
+QA_FLAGS_IGNORED='/usr/lib.*/ocaml/bigarray.cmxs'
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-4.12.0-glibc-2.34.patch
+ "${FILESDIR}"/${P}-fix-textrel-riscv.patch
+)
+
+src_prepare() {
+ default
+
+ cp "${FILESDIR}"/ocaml.conf "${T}" || die
+
+ # OCaml generates textrels on 32-bit arches
+ # We can't do anything about it, but disabling it means that tests
+ # for OCaml-based packages won't fail on unexpected output
+ # bug #773226
+ if use arm || use ppc || use x86 ; then
+ append-ldflags "-Wl,-z,notext"
+ fi
+
+ # Upstream build ignores LDFLAGS in several places.
+ sed -i -e 's/\(^MKDLL=.*\)/\1 $(LDFLAGS)/' \
+ -e 's/\(^OC_CFLAGS=.*\)/\1 $(LDFLAGS)/' \
+ -e 's/\(^OC_LDFLAGS=.*\)/\1 $(LDFLAGS)/' \
+ Makefile.config.in || die "LDFLAGS fix failed"
+}
+
+src_configure() {
+ local opt=(
+ --bindir="${EPREFIX}/usr/bin"
+ --libdir="${EPREFIX}/usr/$(get_libdir)/ocaml"
+ --mandir="${EPREFIX}/usr/share/man"
+ --prefix="${EPREFIX}/usr"
+ $(use_enable flambda)
+ )
+
+ econf "${opt[@]}"
+}
+
+src_compile() {
+ env -u P emake world
+
+ if use ocamlopt ; then
+ env -u P emake opt
+ env -u P emake opt.opt
+ fi
+}
+
+src_test() {
+ emake -j
+
+ # OCaml tests only work when run sequentially
+ if use ocamlopt ; then
+ emake -j1 ocamltest.opt
+ else
+ emake -j1 ocamltest
+ #ewarn "${PN} was built without 'ocamlopt' USE flag; skipping tests."
+ fi
+
+ emake -j1 tests
+}
+
+src_install() {
+ default
+
+ dodir /usr/include
+ # Create symlink for header files
+ dosym "../$(get_libdir)/ocaml/caml" /usr/include/caml
+ dodoc Changes README.adoc
+
+ # Create envd entry for latex input files
+ if use latex ; then
+ echo "TEXINPUTS=\"${EPREFIX}/usr/$(get_libdir)/ocaml/ocamldoc:\"" > "${T}"/99ocamldoc || die
+ doenvd "${T}"/99ocamldoc
+ fi
+
+ sed -i -e "s:lib:$(get_libdir):" "${T}"/ocaml.conf || die
+
+ # Install ocaml-rebuild portage set
+ insinto /usr/share/portage/config/sets
+ doins "${T}"/ocaml.conf
+}
diff --git a/dev-lang/ocaml/ocaml-4.13.1.ebuild b/dev-lang/ocaml/ocaml-4.13.1.ebuild
new file mode 100644
index 000000000000..73ab996ee176
--- /dev/null
+++ b/dev-lang/ocaml/ocaml-4.13.1.ebuild
@@ -0,0 +1,103 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit flag-o-matic
+
+HOMEPAGE="https://ocaml.org/"
+SRC_URI="https://github.com/ocaml/ocaml/archive/${PV}.tar.gz -> ${P}.tar.gz"
+DESCRIPTION="Programming language supporting functional, imperative & object-oriented styles"
+
+LICENSE="QPL-1.0 LGPL-2"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos"
+IUSE="emacs flambda latex +ocamlopt xemacs"
+
+RDEPEND="sys-libs/binutils-libs:="
+BDEPEND="${RDEPEND}
+ virtual/pkgconfig"
+PDEPEND="emacs? ( app-emacs/ocaml-mode )
+ xemacs? ( app-xemacs/ocaml )"
+
+QA_FLAGS_IGNORED='/usr/lib.*/ocaml/bigarray.cmxs'
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-4.12.1-fix-textrel-riscv.patch
+)
+
+src_prepare() {
+ default
+
+ cp "${FILESDIR}"/ocaml.conf "${T}" || die
+
+ # OCaml generates textrels on 32-bit arches
+ # We can't do anything about it, but disabling it means that tests
+ # for OCaml-based packages won't fail on unexpected output
+ # bug #773226
+ if use arm || use ppc || use x86 ; then
+ append-ldflags "-Wl,-z,notext"
+ fi
+
+ # Upstream build ignores LDFLAGS in several places.
+ sed -i -e 's/\(^MKDLL=.*\)/\1 $(LDFLAGS)/' \
+ -e 's/\(^OC_CFLAGS=.*\)/\1 $(LDFLAGS)/' \
+ -e 's/\(^OC_LDFLAGS=.*\)/\1 $(LDFLAGS)/' \
+ Makefile.config.in || die "LDFLAGS fix failed"
+}
+
+src_configure() {
+ local opt=(
+ --bindir="${EPREFIX}/usr/bin"
+ --libdir="${EPREFIX}/usr/$(get_libdir)/ocaml"
+ --mandir="${EPREFIX}/usr/share/man"
+ --prefix="${EPREFIX}/usr"
+ $(use_enable flambda)
+ )
+
+ econf "${opt[@]}"
+}
+
+src_compile() {
+ env -u P emake world
+
+ if use ocamlopt ; then
+ env -u P emake opt
+ env -u P emake opt.opt
+ fi
+}
+
+src_test() {
+ emake -j
+
+ # OCaml tests only work when run sequentially
+ if use ocamlopt ; then
+ emake -j1 ocamltest.opt
+ else
+ emake -j1 ocamltest
+ #ewarn "${PN} was built without 'ocamlopt' USE flag; skipping tests."
+ fi
+
+ emake -j1 tests
+}
+
+src_install() {
+ default
+
+ dodir /usr/include
+ # Create symlink for header files
+ dosym "../$(get_libdir)/ocaml/caml" /usr/include/caml
+ dodoc Changes README.adoc
+
+ # Create envd entry for latex input files
+ if use latex ; then
+ echo "TEXINPUTS=\"${EPREFIX}/usr/$(get_libdir)/ocaml/ocamldoc:\"" > "${T}"/99ocamldoc || die
+ doenvd "${T}"/99ocamldoc
+ fi
+
+ sed -i -e "s:lib:$(get_libdir):" "${T}"/ocaml.conf || die
+
+ # Install ocaml-rebuild portage set
+ insinto /usr/share/portage/config/sets
+ doins "${T}"/ocaml.conf
+}
diff --git a/dev-lang/ocaml/ocaml-4.14.0-r1.ebuild b/dev-lang/ocaml/ocaml-4.14.0-r1.ebuild
new file mode 100644
index 000000000000..83dfc2f12fc2
--- /dev/null
+++ b/dev-lang/ocaml/ocaml-4.14.0-r1.ebuild
@@ -0,0 +1,104 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit flag-o-matic
+
+HOMEPAGE="https://ocaml.org/"
+SRC_URI="https://github.com/ocaml/ocaml/archive/${PV}.tar.gz -> ${P}.tar.gz"
+DESCRIPTION="Programming language supporting functional, imperative & object-oriented styles"
+
+LICENSE="QPL-1.0 LGPL-2"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="amd64 arm arm64 ~hppa ~ia64 ~loong ~mips ~ppc ppc64 ~riscv ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos"
+IUSE="emacs flambda latex +ocamlopt xemacs"
+
+RDEPEND="sys-libs/binutils-libs:="
+BDEPEND="${RDEPEND}
+ virtual/pkgconfig"
+PDEPEND="emacs? ( app-emacs/ocaml-mode )
+ xemacs? ( app-xemacs/ocaml )"
+
+QA_FLAGS_IGNORED='/usr/lib.*/ocaml/bigarray.cmxs'
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-4.14.0-clang.patch
+)
+
+src_prepare() {
+ default
+
+ cp "${FILESDIR}"/ocaml.conf "${T}" || die
+
+ # OCaml generates textrels on 32-bit arches
+ # We can't do anything about it, but disabling it means that tests
+ # for OCaml-based packages won't fail on unexpected output
+ # bug #773226
+ if use arm || use ppc || use x86 ; then
+ append-ldflags "-Wl,-z,notext"
+ fi
+
+ # Upstream build ignores LDFLAGS in several places.
+ sed -i -e 's/\(^MKDLL=.*\)/\1 $(LDFLAGS)/' \
+ -e 's/\(^OC_CFLAGS=.*\)/\1 $(LDFLAGS)/' \
+ -e 's/\(^OC_LDFLAGS=.*\)/\1 $(LDFLAGS)/' \
+ Makefile.config.in || die "LDFLAGS fix failed"
+}
+
+src_configure() {
+ filter-lto #bug 870349
+ local opt=(
+ --bindir="${EPREFIX}/usr/bin"
+ --libdir="${EPREFIX}/usr/$(get_libdir)/ocaml"
+ --mandir="${EPREFIX}/usr/share/man"
+ --prefix="${EPREFIX}/usr"
+ $(use_enable flambda)
+ )
+
+ econf "${opt[@]}"
+}
+
+src_compile() {
+ env -u P emake world
+
+ if use ocamlopt ; then
+ env -u P emake opt
+ env -u P emake opt.opt
+ fi
+}
+
+src_test() {
+ emake -j
+
+ # OCaml tests only work when run sequentially
+ if use ocamlopt ; then
+ emake -j1 ocamltest.opt
+ else
+ emake -j1 ocamltest
+ #ewarn "${PN} was built without 'ocamlopt' USE flag; skipping tests."
+ fi
+
+ emake -j1 tests
+}
+
+src_install() {
+ default
+
+ dodir /usr/include
+ # Create symlink for header files
+ dosym "../$(get_libdir)/ocaml/caml" /usr/include/caml
+ dodoc Changes README.adoc
+
+ # Create envd entry for latex input files
+ if use latex ; then
+ echo "TEXINPUTS=\"${EPREFIX}/usr/$(get_libdir)/ocaml/ocamldoc:\"" > "${T}"/99ocamldoc || die
+ doenvd "${T}"/99ocamldoc
+ fi
+
+ sed -i -e "s:lib:$(get_libdir):" "${T}"/ocaml.conf || die
+
+ # Install ocaml-rebuild portage set
+ insinto /usr/share/portage/config/sets
+ doins "${T}"/ocaml.conf
+}
diff --git a/dev-lang/ocaml/ocaml-4.10.0.ebuild b/dev-lang/ocaml/ocaml-4.14.1.ebuild
index 903534e88c81..fe9b42d885eb 100644
--- a/dev-lang/ocaml/ocaml-4.10.0.ebuild
+++ b/dev-lang/ocaml/ocaml-4.14.1.ebuild
@@ -1,78 +1,100 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
+
+inherit flag-o-matic
HOMEPAGE="https://ocaml.org/"
SRC_URI="https://github.com/ocaml/ocaml/archive/${PV}.tar.gz -> ${P}.tar.gz"
DESCRIPTION="Programming language supporting functional, imperative & object-oriented styles"
-LICENSE="LGPL-2.1"
+LICENSE="QPL-1.0 LGPL-2"
SLOT="0/${PV}"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~sparc-solaris ~x86-solaris"
-IUSE="emacs flambda latex +ocamlopt spacetime xemacs"
+KEYWORDS="amd64 arm arm64 ~hppa ~ia64 ~loong ~mips ~ppc ppc64 ~riscv ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos"
+IUSE="emacs flambda latex +ocamlopt xemacs"
-RDEPEND="sys-libs/binutils-libs:=
- spacetime? ( sys-libs/libunwind:= )"
+RDEPEND="sys-libs/binutils-libs:="
BDEPEND="${RDEPEND}
virtual/pkgconfig"
PDEPEND="emacs? ( app-emacs/ocaml-mode )
xemacs? ( app-xemacs/ocaml )"
-#PATCHES=("${FILESDIR}"/${PN}-4.10.0-gcc-10.patch)
+QA_FLAGS_IGNORED='/usr/lib.*/ocaml/bigarray.cmxs'
src_prepare() {
default
+
+ cp "${FILESDIR}"/ocaml.conf "${T}" || die
+
+ # OCaml generates textrels on 32-bit arches
+ # We can't do anything about it, but disabling it means that tests
+ # for OCaml-based packages won't fail on unexpected output
+ # bug #773226
+ if use arm || use ppc || use x86 ; then
+ append-ldflags "-Wl,-z,notext"
+ fi
+
# Upstream build ignores LDFLAGS in several places.
sed -i -e 's/\(^MKDLL=.*\)/\1 $(LDFLAGS)/' \
-e 's/\(^OC_CFLAGS=.*\)/\1 $(LDFLAGS)/' \
-e 's/\(^OC_LDFLAGS=.*\)/\1 $(LDFLAGS)/' \
Makefile.config.in || die "LDFLAGS fix failed"
- # ${P} overrides upstream build's own P due to a wrong assignment operator.
- sed -i -e 's/^P ?=/P =/' stdlib/StdlibModules || die "P fix failed"
}
src_configure() {
+ filter-lto #bug 870349
local opt=(
--bindir="${EPREFIX}/usr/bin"
--libdir="${EPREFIX}/usr/$(get_libdir)/ocaml"
--mandir="${EPREFIX}/usr/share/man"
--prefix="${EPREFIX}/usr"
$(use_enable flambda)
- $(use_enable spacetime)
)
- econf ${opt[@]}
+
+ econf "${opt[@]}"
}
src_compile() {
+ env -u P emake world
+
if use ocamlopt ; then
- emake world.opt
- else
- emake world
+ env -u P emake opt
+ env -u P emake opt.opt
fi
}
src_test() {
+ emake -j
+
+ # OCaml tests only work when run sequentially
if use ocamlopt ; then
- # OCaml tests only work when run sequentially
- emake -j1 -C testsuite all
+ emake -j1 ocamltest.opt
else
- ewarn "${PN} was built without 'ocamlopt' USE flag; skipping tests."
+ emake -j1 ocamltest
+ #ewarn "${PN} was built without 'ocamlopt' USE flag; skipping tests."
fi
+
+ emake -j1 tests
}
src_install() {
default
+
dodir /usr/include
# Create symlink for header files
dosym "../$(get_libdir)/ocaml/caml" /usr/include/caml
dodoc Changes README.adoc
+
# Create envd entry for latex input files
if use latex ; then
- echo "TEXINPUTS=\"${EPREFIX}/usr/$(get_libdir)/ocaml/ocamldoc:\"" > "${T}/99ocamldoc"
- doenvd "${T}/99ocamldoc"
+ echo "TEXINPUTS=\"${EPREFIX}/usr/$(get_libdir)/ocaml/ocamldoc:\"" > "${T}"/99ocamldoc || die
+ doenvd "${T}"/99ocamldoc
fi
+
+ sed -i -e "s:lib:$(get_libdir):" "${T}"/ocaml.conf || die
+
# Install ocaml-rebuild portage set
insinto /usr/share/portage/config/sets
- doins "${FILESDIR}/ocaml.conf"
+ doins "${T}"/ocaml.conf
}
diff --git a/dev-lang/ocaml/ocaml-4.14.2.ebuild b/dev-lang/ocaml/ocaml-4.14.2.ebuild
new file mode 100644
index 000000000000..f94e0f851126
--- /dev/null
+++ b/dev-lang/ocaml/ocaml-4.14.2.ebuild
@@ -0,0 +1,100 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit flag-o-matic
+
+DESCRIPTION="Programming language supporting functional, imperative & object-oriented styles"
+HOMEPAGE="https://ocaml.org/"
+SRC_URI="https://github.com/ocaml/ocaml/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="QPL-1.0 LGPL-2"
+SLOT="0/${PV}"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos"
+IUSE="emacs flambda latex +ocamlopt xemacs"
+
+RDEPEND="sys-libs/binutils-libs:="
+BDEPEND="${RDEPEND}
+ virtual/pkgconfig"
+PDEPEND="emacs? ( app-emacs/ocaml-mode )
+ xemacs? ( app-xemacs/ocaml )"
+
+QA_FLAGS_IGNORED='/usr/lib.*/ocaml/bigarray.cmxs'
+
+src_prepare() {
+ default
+
+ cp "${FILESDIR}"/ocaml.conf "${T}" || die
+
+ # OCaml generates textrels on 32-bit arches
+ # We can't do anything about it, but disabling it means that tests
+ # for OCaml-based packages won't fail on unexpected output
+ # bug #773226
+ if use arm || use ppc || use x86 ; then
+ append-ldflags "-Wl,-z,notext"
+ fi
+
+ # Upstream build ignores LDFLAGS in several places.
+ sed -i -e 's/\(^MKDLL=.*\)/\1 $(LDFLAGS)/' \
+ -e 's/\(^OC_CFLAGS=.*\)/\1 $(LDFLAGS)/' \
+ -e 's/\(^OC_LDFLAGS=.*\)/\1 $(LDFLAGS)/' \
+ Makefile.config.in || die "LDFLAGS fix failed"
+}
+
+src_configure() {
+ filter-lto #bug 870349
+ local opt=(
+ --bindir="${EPREFIX}/usr/bin"
+ --libdir="${EPREFIX}/usr/$(get_libdir)/ocaml"
+ --mandir="${EPREFIX}/usr/share/man"
+ --prefix="${EPREFIX}/usr"
+ $(use_enable flambda)
+ )
+
+ econf "${opt[@]}"
+}
+
+src_compile() {
+ env -u P emake world
+
+ if use ocamlopt ; then
+ env -u P emake opt
+ env -u P emake opt.opt
+ fi
+}
+
+src_test() {
+ emake -j
+
+ # OCaml tests only work when run sequentially
+ if use ocamlopt ; then
+ emake -j1 ocamltest.opt
+ else
+ emake -j1 ocamltest
+ #ewarn "${PN} was built without 'ocamlopt' USE flag; skipping tests."
+ fi
+
+ emake -j1 tests
+}
+
+src_install() {
+ default
+
+ dodir /usr/include
+ # Create symlink for header files
+ dosym "../$(get_libdir)/ocaml/caml" /usr/include/caml
+ dodoc Changes README.adoc
+
+ # Create envd entry for latex input files
+ if use latex ; then
+ echo "TEXINPUTS=\"${EPREFIX}/usr/$(get_libdir)/ocaml/ocamldoc:\"" > "${T}"/99ocamldoc || die
+ doenvd "${T}"/99ocamldoc
+ fi
+
+ sed -i -e "s:lib:$(get_libdir):" "${T}"/ocaml.conf || die
+
+ # Install ocaml-rebuild portage set
+ insinto /usr/share/portage/config/sets
+ doins "${T}"/ocaml.conf
+}
diff --git a/dev-lang/oorexx/Manifest b/dev-lang/oorexx/Manifest
new file mode 100644
index 000000000000..9baf8267b212
--- /dev/null
+++ b/dev-lang/oorexx/Manifest
@@ -0,0 +1 @@
+DIST oorexx-5.0.0-12583.tar.gz 6398458 BLAKE2B 3df1eb024eae75f9c29bd46a7c9e0c8fffecf54545e5926f872b6757f0cba56530c4b457e94ec44debbd98e514e1043ba751384dc0f1dabb4812aa52da4381e0 SHA512 141af22e0a99731d50492940d5db55cc59099e5a7fa8acba918d1ae82bcd6e2983fb0ca71bbbf044cc4fc89e740c8a0ac81237eea5812d7a570f825bba5d08b9
diff --git a/dev-lang/oorexx/files/oorexx-5.0.0-man.patch b/dev-lang/oorexx/files/oorexx-5.0.0-man.patch
new file mode 100644
index 000000000000..61679305cd49
--- /dev/null
+++ b/dev-lang/oorexx/files/oorexx-5.0.0-man.patch
@@ -0,0 +1,21 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1791,13 +1791,13 @@ install(PROGRAMS ${CMAKE_SAMPLES_OUTPUT_DIRECTORY}/rexxcps.rex COMPONENT Samples
+
+ if (NOT WIN32)
+ macro (add_manpage name cat)
+- add_custom_command(OUTPUT ${name}.${cat}.gz
+- COMMAND gzip -c
++ add_custom_command(OUTPUT ${name}.${cat}
++ COMMAND cp
+ ${CMAKE_CURRENT_SOURCE_DIR}/${build_platform_dir}/${name}.${cat}
+- > ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${name}.${cat}.gz
++ ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${name}.${cat}
+ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${build_platform_dir}/${name}.${cat})
+- add_custom_target(${name}_man ALL DEPENDS ${name}.${cat}.gz)
+- install(FILES ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${name}.${cat}.gz
++ add_custom_target(${name}_man ALL DEPENDS ${name}.${cat})
++ install(FILES ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${name}.${cat}
+ DESTINATION ${INSTALL_MAN_DIR}/man${cat}
+ PERMISSIONS OWNER_READ GROUP_READ WORLD_READ OWNER_WRITE)
+ endmacro (add_manpage)
diff --git a/dev-lang/oorexx/metadata.xml b/dev-lang/oorexx/metadata.xml
new file mode 100644
index 000000000000..0f076930b212
--- /dev/null
+++ b/dev-lang/oorexx/metadata.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+
+<pkgmetadata>
+ <maintainer type="person">
+ <email>xgqt@gentoo.org</email>
+ <name>Maciej Barć</name>
+ </maintainer>
+ <longdescription>
+ Open Object Rexx (ooRexx) is an Open Source project managed by Rexx
+ Language Association (RexxLA) providing a free implementation of Object
+ Rexx. ooRexx is distributed under Common Public License (CPL) v1.0. Object
+ Rexx is an enhancement of classic Rexx; a powerful, full-featured
+ programming language which has a human-oriented syntax.
+ </longdescription>
+ <upstream>
+ <bugs-to>https://sourceforge.net/p/oorexx/bugs/</bugs-to>
+ <remote-id type="sourceforge">oorexx</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-lang/oorexx/oorexx-5.0.0.ebuild b/dev-lang/oorexx/oorexx-5.0.0.ebuild
new file mode 100644
index 000000000000..51c81bc9f4f2
--- /dev/null
+++ b/dev-lang/oorexx/oorexx-5.0.0.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+APP_REVISION=12583
+
+inherit cmake
+
+DESCRIPTION="Open source implementation of Object Rexx"
+HOMEPAGE="https://www.oorexx.org/about.html
+ https://sourceforge.net/projects/oorexx/"
+SRC_URI="https://sourceforge.net/projects/${PN}/files/${PN}/${PV}/${P}-${APP_REVISION}.tar.gz"
+S="${WORKDIR}/${P}"
+
+LICENSE="CPL-1.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="
+ sys-libs/ncurses:=
+ virtual/libcrypt:=
+"
+DEPEND="
+ ${RDEPEND}
+"
+
+PATCHES=( "${FILESDIR}/${PN}-5.0.0-man.patch" )
+
+src_unpack() {
+ default
+
+ # HACK: Dance around cmake.eclass S directory requirements.
+ mv "${WORKDIR}" "${T}/${P}" || die
+ mkdir -p "${WORKDIR}" || die
+ mv "${T}/${P}" "${S}" || die
+}
diff --git a/dev-lang/open-cobol/Manifest b/dev-lang/open-cobol/Manifest
deleted file mode 100644
index 81739e232484..000000000000
--- a/dev-lang/open-cobol/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-DIST open-cobol-1.1.tar.gz 1007791 BLAKE2B 9154590626d885a75043c2426c1fafb146e0f7213d05f353f6d01c0e6b8cd8073e12f454a19ae1d3c712606f1c15958f241a7c54f76c995d0ce396d1eba1a0b0 SHA512 eb06cec456425ba5f4a091ae4ac0bfd14f38549bc147c606a022804f602102df6dbf0d399614f0eda49d50dee17eef55087748853a8cc8bdd1248f94fd09110c
diff --git a/dev-lang/open-cobol/metadata.xml b/dev-lang/open-cobol/metadata.xml
deleted file mode 100644
index 9264d5aa4508..000000000000
--- a/dev-lang/open-cobol/metadata.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
- <maintainer type="person">
- <email>patrick@gentoo.org</email>
- <name>Patrick Lauer</name>
- </maintainer>
- <upstream>
- <remote-id type="sourceforge">open-cobol</remote-id>
- </upstream>
-</pkgmetadata>
diff --git a/dev-lang/open-cobol/open-cobol-1.1.ebuild b/dev-lang/open-cobol/open-cobol-1.1.ebuild
deleted file mode 100644
index d7fd39c417a0..000000000000
--- a/dev-lang/open-cobol/open-cobol-1.1.ebuild
+++ /dev/null
@@ -1,39 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-MY_PN="open-cobol"
-# Future proof pkg if maintainer or p-m want to bump to latest GNUCobol
-
-DESCRIPTION="an open-source COBOL compiler"
-HOMEPAGE="https://sourceforge.net/projects/open-cobol/"
-SRC_URI="mirror://sourceforge/${MY_PN}/${MY_PN}-${PV}.tar.gz"
-
-LICENSE="GPL-2 LGPL-2.1"
-# License must be changed to GPL-3+ if/when pkgmove is done
-SLOT="0"
-KEYWORDS="~amd64 ~ppc ~x86"
-IUSE="berkdb nls readline"
-
-RDEPEND="dev-libs/gmp:0=
- berkdb? ( sys-libs/db:4.8= )
- sys-libs/ncurses
- readline? ( sys-libs/readline )"
-DEPEND="${RDEPEND}
- sys-devel/libtool"
-
-DOCS=( AUTHORS ChangeLog NEWS README )
-
-src_configure() {
- econf \
- $(use_with berkdb db) \
- $(use_enable nls) \
- $(use_with readline) \
- --disable-static
-}
-
-src_install() {
- default
- find "${ED}" -name '*.la' -delete || die
-}
diff --git a/dev-lang/orc/Manifest b/dev-lang/orc/Manifest
index 8df1a57c6ab0..1c4abf5d2b4e 100644
--- a/dev-lang/orc/Manifest
+++ b/dev-lang/orc/Manifest
@@ -1,3 +1 @@
-DIST orc-0.4.28.tar.xz 469460 BLAKE2B 86fa2d10a33fbffbb2b96827adbddaa81d0baa8135fe21fba338cbcd25a1c1e853873ec1c4ef5c0a32d66ba95f855f1f16ddbc32f68a89e5a98c75b9b0261aa7 SHA512 2ae3100e7d0c03eba9a8a10a8924da4d729e1967b63e5dfdf88c4aee907d7ece82c782d74f4cb7e28a366dd74ce5e1ddc6e2b971e5a2f879b0501cc313b93410
-DIST orc-0.4.29.tar.xz 465076 BLAKE2B f7c81429d95af7031f190a4c3d52959eda1835d3092493e3fa15e4b6719290c1c1f23459448f7c499ba4085ad8d7b9f49e687521d76823a1e8ce6d3916b39a37 SHA512 57aa75bbefa9ba9ffcce97affd504c13c57612e2409863c011555bed6ff6ba224d38ed66b715bf103679a8ee28ddae427db3d78c7b4a2ddfa7dbd72a4fa81726
-DIST orc-0.4.31.tar.xz 177768 BLAKE2B f06fd6be70063ebc82b45c1801a53aab66b5fc8a85c33991602488ec8ed29f2271df20c3780655953cabe33e865530b1218aafa0592261bcc5dccc4a4b3945e7 SHA512 4e97597e70982dbfc239d1ef9a8913b0155e5aaac15d91162d7f73a1095bd944e27fbe6d6194b9f74af07b985a44b1d9dddbe917425e1ad9e8da17ce86495696
+DIST orc-0.4.38.tar.xz 227152 BLAKE2B f7babfec5f4d792fb52eb0ca23743b6c06a12625edcf0cecbf8e3cb88c13171a760c6874061a3e55a43df5389346b3c3d0ba3463d6e1ef32f685162f7478e631 SHA512 49f34be85f6980e4b5e94f848016f5788b658323f3a120110bc237722ac99938c02976efbe96022d148054330432899533305d4dd21be8fab76fd1995179339a
diff --git a/dev-lang/orc/files/0.4.29-test-rounding.patch b/dev-lang/orc/files/0.4.29-test-rounding.patch
deleted file mode 100644
index 653132fcb8e0..000000000000
--- a/dev-lang/orc/files/0.4.29-test-rounding.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-From 73986d82e1ae60b224b401143cd4ce2c452bf326 Mon Sep 17 00:00:00 2001
-From: Doug Nazar <nazard@nazar.ca>
-Date: Wed, 7 Aug 2019 00:11:35 -0400
-Subject: [PATCH] orctest: Switch nearby float comparison to ULP method
-
----
- orc-test/orcarray.c | 7 ++-----
- orc-test/orctest.c | 8 ++++----
- 2 files changed, 6 insertions(+), 9 deletions(-)
-
-diff --git a/orc-test/orcarray.c b/orc-test/orcarray.c
-index c0666c5..b27a1f9 100644
---- a/orc-test/orcarray.c
-+++ b/orc-test/orcarray.c
-@@ -211,9 +211,6 @@ orc_array_set_pattern_2 (OrcArray *array, OrcRandomContext *context,
- }
- }
-
--#define MIN_NONDENORMAL (1.1754944909521339405e-38)
--#define MIN_NONDENORMAL_D (2.2250738585072014e-308)
--
- int
- orc_array_compare (OrcArray *array1, OrcArray *array2, int flags)
- {
-@@ -230,7 +227,7 @@ orc_array_compare (OrcArray *array1, OrcArray *array2, int flags)
- for (i=0;i<array1->n;i++){
- if (isnan(a[i]) && isnan(b[i])) continue;
- if (a[i] == b[i]) continue;
-- if (fabs(a[i] - b[i]) < MIN_NONDENORMAL) continue;
-+ if ((a[i] < 0.0) == (b[i] < 0.0) && abs(*(orc_uint32 *)&a[i] - *(orc_uint32 *)&b[i]) <= 2) continue;
- return FALSE;
- }
- }
-@@ -247,7 +244,7 @@ orc_array_compare (OrcArray *array1, OrcArray *array2, int flags)
- for (i=0;i<array1->n;i++){
- if (isnan(a[i]) && isnan(b[i])) continue;
- if (a[i] == b[i]) continue;
-- if (fabs(a[i] - b[i]) < MIN_NONDENORMAL_D) continue;
-+ if ((a[i] < 0.0) == (b[i] < 0.0) && abs(*(orc_uint64 *)&a[i] - *(orc_uint64 *)&b[i]) <= 2) continue;
- return FALSE;
- }
- }
-diff --git a/orc-test/orctest.c b/orc-test/orctest.c
-index 9f0e942..54658bc 100644
---- a/orc-test/orctest.c
-+++ b/orc-test/orctest.c
-@@ -44,8 +44,6 @@
- #define snprintf _snprintf
- #endif
-
--#define MIN_NONDENORMAL (1.1754944909521339405e-38)
--
- void _orc_profile_init(void);
-
- OrcRandomContext rand_context;
-@@ -527,10 +525,12 @@ float_compare (OrcArray *array1, OrcArray *array2, int i, int j)
- case 4:
- if (isnan(*(float *)ptr1) && isnan(*(float *)ptr2)) return TRUE;
- if (*(float *)ptr1 == *(float *)ptr2) return TRUE;
-- if (fabs(*(float *)ptr1 - *(float *)ptr2) < MIN_NONDENORMAL) return TRUE;
-+ if ((*(float *)ptr1 < 0.0) == (*(float *)ptr2 < 0.0) && abs(*(orc_uint32 *)ptr1 - *(orc_uint32 *)ptr2) <= 2) return TRUE;
- return FALSE;
- case 8:
-- /* FIXME */
-+ if (isnan(*(double *)ptr1) && isnan(*(double *)ptr2)) return TRUE;
-+ if (*(double *)ptr1 == *(double *)ptr2) return TRUE;
-+ if ((*(double *)ptr1 < 0.0) == (*(double *)ptr2 < 0.0) && abs(*(orc_uint64 *)ptr1 - *(orc_uint64 *)ptr2) <= 2) return TRUE;
- return FALSE;
- }
- return FALSE;
---
-2.21.0
-
diff --git a/dev-lang/orc/metadata.xml b/dev-lang/orc/metadata.xml
index 2ac858de72bb..4f371f8c3e60 100644
--- a/dev-lang/orc/metadata.xml
+++ b/dev-lang/orc/metadata.xml
@@ -1,11 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>gstreamer@gentoo.org</email>
<name>GStreamer package maintainers</name>
</maintainer>
-<use>
- <flag name="pax_kernel">Apply patch needed for pax enabled kernels.</flag>
-</use>
</pkgmetadata>
diff --git a/dev-lang/orc/orc-0.4.28-r1.ebuild b/dev-lang/orc/orc-0.4.28-r1.ebuild
deleted file mode 100644
index 1d22e3f53076..000000000000
--- a/dev-lang/orc/orc-0.4.28-r1.ebuild
+++ /dev/null
@@ -1,75 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit eutils flag-o-matic ltprune multilib-minimal pax-utils
-
-DESCRIPTION="The Oil Runtime Compiler, a just-in-time compiler for array operations"
-HOMEPAGE="https://gstreamer.freedesktop.org/"
-SRC_URI="https://gstreamer.freedesktop.org/src/${PN}/${P}.tar.xz"
-
-LICENSE="BSD BSD-2"
-SLOT="0"
-KEYWORDS="amd64 arm ~arm64 ~hppa ppc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-IUSE="examples pax_kernel static-libs"
-
-RDEPEND=""
-DEPEND="${RDEPEND}
- app-arch/xz-utils
- >=dev-util/gtk-doc-am-1.12
-"
-
-DOCS=( README RELEASE )
-
-src_prepare() {
- default
-
- # Do not build examples
- sed -e '/SUBDIRS/ s:examples::' \
- -i Makefile.am Makefile.in || die
-}
-
-multilib_src_configure() {
- # any optimisation on PPC/Darwin yields in a complaint from the assembler
- # Parameter error: r0 not allowed for parameter %lu (code as 0 not r0)
- # the same for Intel/Darwin, although the error message there is different
- # but along the same lines
- [[ ${CHOST} == *-darwin* ]] && filter-flags -O*
-
- # FIXME: handle backends per arch? What about cross-compiling for the other arches?
- ECONF_SOURCE="${S}" econf \
- --disable-gtk-doc \
- --enable-backend=all \
- $(use_enable static-libs static)
- # TODO: bug #645232 - Not ready for this yet, as it installs some headers to live and gst-plugins-base:0.10 includes some
- # Additionally it doesn't seem good that FEATURES=test would change what files are installed (headers + orctest.so + orc-bugreport)
- # $(use_enable test tests)
-}
-
-multilib_src_install() {
- emake DESTDIR="${D}" install
- prune_libtool_files --all
-
- if use pax_kernel; then
- pax-mark m "${ED}"usr/bin/orc-bugreport
- pax-mark m "${ED}"usr/bin/orcc
- pax-mark m "${ED}"usr/$(get_libdir)/liborc*.so*
- fi
-}
-
-multilib_src_install_all() {
- einstalldocs
-
- if use examples; then
- insinto /usr/share/doc/${PF}/examples
- doins examples/{*.c,*.orc}
- fi
-}
-
-pkg_postinst() {
- if use pax_kernel; then
- ewarn "Please run \"revdep-pax\" after installation".
- ewarn "It's provided by sys-apps/elfix."
- fi
-}
diff --git a/dev-lang/orc/orc-0.4.29.ebuild b/dev-lang/orc/orc-0.4.29.ebuild
deleted file mode 100644
index 11728d5cf617..000000000000
--- a/dev-lang/orc/orc-0.4.29.ebuild
+++ /dev/null
@@ -1,81 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit eutils flag-o-matic ltprune multilib-minimal pax-utils
-
-DESCRIPTION="The Oil Runtime Compiler, a just-in-time compiler for array operations"
-HOMEPAGE="https://gstreamer.freedesktop.org/"
-SRC_URI="https://gstreamer.freedesktop.org/src/${PN}/${P}.tar.xz"
-
-LICENSE="BSD BSD-2"
-SLOT="0"
-KEYWORDS="amd64 arm ~arm64 ~hppa ppc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-IUSE="examples pax_kernel static-libs"
-
-RDEPEND=""
-DEPEND="${RDEPEND}
- app-arch/xz-utils
- >=dev-util/gtk-doc-am-1.12
-"
-
-DOCS=( README RELEASE )
-
-PATCHES=(
- # Fixes some tests on various platforms (AMD Phenom, ARM, etc) with more suitable
- # float comparison - https://gitlab.freedesktop.org/gstreamer/orc/issues/18
- "${FILESDIR}"/${PV}-test-rounding.patch
-)
-
-src_prepare() {
- default
-
- # Do not build examples
- sed -e '/SUBDIRS/ s:examples::' \
- -i Makefile.am Makefile.in || die
-}
-
-multilib_src_configure() {
- # any optimisation on PPC/Darwin yields in a complaint from the assembler
- # Parameter error: r0 not allowed for parameter %lu (code as 0 not r0)
- # the same for Intel/Darwin, although the error message there is different
- # but along the same lines
- [[ ${CHOST} == *-darwin* ]] && filter-flags -O*
-
- # FIXME: handle backends per arch? What about cross-compiling for the other arches?
- ECONF_SOURCE="${S}" econf \
- --disable-gtk-doc \
- --enable-backend=all \
- $(use_enable static-libs static)
- # TODO: bug #645232 - Not ready for this yet, as it installs some headers to live and gst-plugins-base:0.10 includes some
- # Additionally it doesn't seem good that FEATURES=test would change what files are installed (headers + orctest.so + orc-bugreport)
- # $(use_enable test tests)
-}
-
-multilib_src_install() {
- emake DESTDIR="${D}" install
- prune_libtool_files --all
-
- if use pax_kernel; then
- pax-mark m "${ED}"usr/bin/orc-bugreport
- pax-mark m "${ED}"usr/bin/orcc
- pax-mark m "${ED}"usr/$(get_libdir)/liborc*.so*
- fi
-}
-
-multilib_src_install_all() {
- einstalldocs
-
- if use examples; then
- insinto /usr/share/doc/${PF}/examples
- doins examples/{*.c,*.orc}
- fi
-}
-
-pkg_postinst() {
- if use pax_kernel; then
- ewarn "Please run \"revdep-pax\" after installation".
- ewarn "It's provided by sys-apps/elfix."
- fi
-}
diff --git a/dev-lang/orc/orc-0.4.31.ebuild b/dev-lang/orc/orc-0.4.38.ebuild
index f6afe427d1ae..529f1ea84d32 100644
--- a/dev-lang/orc/orc-0.4.31.ebuild
+++ b/dev-lang/orc/orc-0.4.38.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-inherit meson multilib-minimal
+inherit meson-multilib
DESCRIPTION="The Oil Runtime Compiler, a just-in-time compiler for array operations"
HOMEPAGE="https://gstreamer.freedesktop.org/"
@@ -11,42 +11,31 @@ SRC_URI="https://gstreamer.freedesktop.org/src/${PN}/${P}.tar.xz"
LICENSE="BSD BSD-2"
SLOT="0"
-KEYWORDS="amd64 arm arm64 ~hppa ppc ppc64 x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
RESTRICT="!test? ( test )"
IUSE="gtk-doc static-libs test"
-DEPEND=""
-RDEPEND=""
BDEPEND="
gtk-doc? (
dev-util/gtk-doc
app-text/docbook-xml-dtd:4.1.2
- app-text/docbook-xml-dtd:4.3 )
+ app-text/docbook-xml-dtd:4.3
+ )
"
+DOCS=( CONTRIBUTING.md README RELEASE )
+
multilib_src_configure() {
# FIXME: handle backends per arch? What about cross-compiling for the other arches?
local emesonargs=(
-Ddefault_library=$(usex static-libs both shared)
-Dorc-backend=all
- -Dorc-test=enabled # FIXME: always installs static library, bug 645232
+ -Dorc-test=enabled
-Dbenchmarks=disabled
-Dexamples=disabled
- $(meson_feature gtk-doc gtk_doc)
+ $(meson_native_use_feature gtk-doc gtk_doc)
$(meson_feature test tests)
-Dtools=enabled # requires orc-test
)
meson_src_configure
}
-
-multilib_src_compile() {
- meson_src_compile
-}
-
-multilib_src_test() {
- meson_src_test
-}
-
-multilib_src_install() {
- meson_src_install
-}
diff --git a/dev-lang/parrot/metadata.xml b/dev-lang/parrot/metadata.xml
index 7faa8dfe9af4..8c430c09661a 100644
--- a/dev-lang/parrot/metadata.xml
+++ b/dev-lang/parrot/metadata.xml
@@ -1,8 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
-<maintainer type="project">
- <email>perl@gentoo.org</email>
- <name>Gentoo Perl Project</name>
+<maintainer type="person">
+ <email>patrick@gentoo.org</email>
</maintainer>
</pkgmetadata>
diff --git a/dev-lang/parrot/parrot-8.1.0-r2.ebuild b/dev-lang/parrot/parrot-8.1.0-r4.ebuild
index f0a61b39bbf4..1612f5348710 100644
--- a/dev-lang/parrot/parrot-8.1.0-r2.ebuild
+++ b/dev-lang/parrot/parrot-8.1.0-r4.ebuild
@@ -3,11 +3,6 @@
EAPI=7
-inherit eutils multilib
-
-# weird failures
-RESTRICT="test"
-
DESCRIPTION="Virtual machine designed to compile and execute bytecode for dynamic languages"
HOMEPAGE="http://www.parrot.org/"
SRC_URI="ftp://ftp.parrot.org/pub/parrot/releases/all/${PV}/${P}.tar.gz"
@@ -17,13 +12,17 @@ SLOT="0/${PV}"
KEYWORDS="~amd64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
IUSE="opengl nls doc examples gdbm +gmp ssl +unicode pcre"
+# weird failures
+RESTRICT="test"
+
CDEPEND="sys-libs/readline:0=
- dev-libs/libffi
+ dev-libs/libffi:=
net-libs/libnsl:0=
+ virtual/libcrypt:=
opengl? ( media-libs/freeglut )
nls? ( sys-devel/gettext )
unicode? ( >=dev-libs/icu-2.6:= )
- gdbm? ( >=sys-libs/gdbm-1.8.3-r1 )
+ gdbm? ( >=sys-libs/gdbm-1.8.3-r1:= )
gmp? ( >=dev-libs/gmp-4.1.4:0= )
ssl? ( dev-libs/openssl:0= )
pcre? ( dev-libs/libpcre )
diff --git a/dev-lang/pcc/files/pcc-1.1.0-multiarch.patch b/dev-lang/pcc/files/pcc-1.1.0-multiarch.patch
index 8420908e9f9d..8ee850ea655d 100644
--- a/dev-lang/pcc/files/pcc-1.1.0-multiarch.patch
+++ b/dev-lang/pcc/files/pcc-1.1.0-multiarch.patch
@@ -1,5 +1,5 @@
---- cc/cc/cc.c 2014-12-06 09:52:55.000000000 +0000
-+++ cc/cc/cc.c.new 2015-03-09 09:22:25.569376330 +0000
+--- a/cc/cc/cc.c
++++ b/cc/cc/cc.c
@@ -206,7 +206,7 @@
#define PCCLIBDIR NULL
#endif
diff --git a/dev-lang/pcc/metadata.xml b/dev-lang/pcc/metadata.xml
index 40aa45df2b01..2ce0e74f9864 100644
--- a/dev-lang/pcc/metadata.xml
+++ b/dev-lang/pcc/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>patrick@gentoo.org</email>
diff --git a/dev-lang/pcc/pcc-1.1.0-r1.ebuild b/dev-lang/pcc/pcc-1.1.0-r1.ebuild
index e360baaad232..b4e31f8eea76 100644
--- a/dev-lang/pcc/pcc-1.1.0-r1.ebuild
+++ b/dev-lang/pcc/pcc-1.1.0-r1.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=5
+EAPI=7
-inherit eutils versionator autotools
+inherit autotools flag-o-matic
DESCRIPTION="pcc portable c compiler"
HOMEPAGE="http://pcc.ludd.ltu.se"
@@ -13,25 +13,21 @@ SRC_URI="ftp://pcc.ludd.ltu.se/pub/pcc-releases/${P}.tgz"
LICENSE="BSD"
SLOT="0"
KEYWORDS="~amd64 ~x86"
-IUSE=""
+
DEPEND=">=dev-libs/pcc-libs-${PV}"
RDEPEND="${DEPEND}"
+PATCHES=( "${FILESDIR}"/${P}-multiarch.patch )
+
src_prepare() {
- sed -i -e 's/AC_CHECK_PROG(strip,strip,yes,no)//' configure.ac || die "Failed to fix configure.ac"
- sed -i -e 's/AC_SUBST(strip)//' configure.ac || die "Failed to fix configure.ac more"
+ default
+ sed -i \
+ -e 's/AC_CHECK_PROG(strip,strip,yes,no)//' \
+ -e 's/AC_SUBST(strip)//' configure.ac || die
eautoreconf
- epatch "${FILESDIR}/${P}-multiarch.patch" || die
}
src_configure() {
+ append-cflags -fcommon
econf --disable-stripping
}
-
-src_compile() {
- emake
-}
-
-src_install() {
- emake DESTDIR="${D}" install
-}
diff --git a/dev-lang/pcc/pcc-9999.ebuild b/dev-lang/pcc/pcc-9999.ebuild
deleted file mode 100644
index f9f4e3801713..000000000000
--- a/dev-lang/pcc/pcc-9999.ebuild
+++ /dev/null
@@ -1,44 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-
-inherit eutils versionator autotools
-
-DESCRIPTION="pcc portable c compiler"
-HOMEPAGE="http://pcc.ludd.ltu.se"
-
-if [[ ${PV} = 9999 ]]; then
- inherit cvs
- ECVS_SERVER="pcc.ludd.ltu.se:/cvsroot"
- ECVS_MODULE="${PN}"
- KEYWORDS=""
- S="${WORKDIR}/${PN}"
-else
- SRC_URI="ftp://pcc.ludd.ltu.se/pub/pcc-releases/${P}.tgz"
- KEYWORDS="~amd64 ~x86"
-fi
-
-LICENSE="BSD"
-SLOT="0"
-IUSE=""
-DEPEND=">=dev-libs/pcc-libs-${PV}"
-RDEPEND="${DEPEND}"
-
-src_prepare() {
- sed -i -e 's/AC_CHECK_PROG(strip,strip,yes,no)//' configure.ac || die "Failed to fix configure.ac"
- sed -i -e 's/AC_SUBST(strip)//' configure.ac || die "Failed to fix configure.ac more"
- eautoreconf
-}
-
-src_configure() {
- econf --disable-stripping
-}
-
-src_compile() {
- emake
-}
-
-src_install() {
- emake DESTDIR="${D}" install
-}
diff --git a/dev-lang/perl/Manifest b/dev-lang/perl/Manifest
index 31450f944336..aecb4fde543c 100644
--- a/dev-lang/perl/Manifest
+++ b/dev-lang/perl/Manifest
@@ -1,7 +1,3 @@
-DIST perl-5.30.0-patches-1.tar.xz 17352 BLAKE2B 67eb1c4ce6ada27e05962d06fa9c5675ca1d22623b5fd172ce8ceaa17f2e51d61f9451955f9f6acf6d97ea7d71c72b583be1378ccbf9174c88580baec2049a48 SHA512 4fe1f2de5e72e56890858148d20b772df63dce34cb3977ec47d8ed5323c4843929130f660f1558c282c97e65efa1c6d2fdacf9e2dcc0ef1d487a0b69dbb5bbb4
-DIST perl-5.30.3-patches-1.tar.xz 20292 BLAKE2B 34ca8dbdf08650deaaa59bba634c3a40c6da7d91b282365eec217cc421b17678837b1ae02de5d6b0b632858a0251b796ce28ddbdd7a86aca6697f18a527fcb62 SHA512 ba9aafcaff405c931b61ffc917be8ef71e538fd5277a3bcfafbaffc965b53f9c1811670558a0bc75c538586a30f11aba3ce59bd2214982eaad3b5afa64e67999
-DIST perl-5.30.3.tar.xz 12375128 BLAKE2B ff0668c896e46ea35a1b8bd4a7d800c8668d6995185cd8c43fca332da2fa63965bb5276b2d5cf9738c0b7fb735140f6e33f1b4582899017903f86753065f417b SHA512 0ea62cf17532ee99217a218c39aa530472857c7a1982494f3a01693683062b4cdebe383a79f7b64452c713337b554ed5e0fd6eda018ea29e83c3538a13c24f3c
-DIST perl-5.32.0-patches-1.tar.xz 20220 BLAKE2B 46ebca5c74f59aa935ceec2a5807426c0e653ad7ba27de441d26e049e62dc67b17d58dfe5755f31bdd157e349d47fd46a98699207729f8f4f747930ed1064ba2 SHA512 42ed00f5f6be40af59e02691ff439a048cccd96fb970cca0976209faa921af98a773cc4cb1466e164328350d58cb46950ffa8c6f2fddabbeb3e8819349b06849
-DIST perl-5.32.0.tar.xz 12717336 BLAKE2B 4abad9f1ddabaad5f2bbfe8ab6d061aeb8c558e458d4bf1bcf737a8ecc1cf20f7dffaddd0bc867578b457787ec284fa81be3fae1edd7f72d58aeec7b5cd744e5 SHA512 1540247415893bbd94dfeede7b4fba6052688dc0bf27ced817f448246fcdc6e9a6486abc34577dec5b00bf02ed607b2d24ccd4977c3b3c51e8e6edfc0b81c760
-DIST perl-cross-1.3.2.tar.gz 108350 BLAKE2B ddb352fdbec66a04de62425f5cae1aaa3bc7251b9d6f4837b66a0bd79c53c60212fad3997dad4c38055774a2769d45b5b83927bf48b0fb00a130fee429eba702 SHA512 d61d25066a8d87c34aeacc5b9bd86fab964b33c4c65e84a89e4077fe1d8011c0bdf810a304631af44fae32edcffd6c99fc17b0c584ea83d1ce5ce492aaedfea5
-DIST perl-cross-1.3.4.tar.gz 108461 BLAKE2B 28f207d235f51ebf681598cf85f7f16923574aafb593426a59d67578135ee3632efb12b9e1a672759195a79f80e49f5c929ec42b2b4571b1d36f5d8c8dceadc2 SHA512 7e1fc7b2b19d8c2e2fb8615e074e218b2e1a4d276b563ffabccfd0c7398bc8680fca96da89cc61d611993f38a2c67dfbb0201c58658e05437395ad8c00d31874
+DIST perl-5.38.0-patches-1.tar.gz 26047 BLAKE2B 809dd5242f9868e54525ae8056598d3252c889afc72ed6f122174f828947223399a5ba4dbc16dd43501f7138205991f8c102cbe0ed94175ae3353040c53a0162 SHA512 c66160e20095555aa21d3be70050dce934d62e55e01dcf0f716129b2faa390923958a48bc448b4fab6f55e5b097eb378f7a6409a92c024fe68c8b34fddcfc5e4
+DIST perl-5.38.2.tar.xz 13679524 BLAKE2B 74250e30dde76911902a787134808dae69113c07029cdf09ab4777e7bb4e6c389cdefb9cb08be87e106a4bcd40dacaf188907d7a62c5aca22c1e374741855b39 SHA512 0ca51e447c7a18639627c281a1c7ae6662c773745ea3c86bede46336d5514ecc97ded2c61166e1ac15635581489dc596368907aa3a775b34db225b76d7402d10
+DIST perl-cross-1.5.2.tar.gz 120097 BLAKE2B 8703816363b41ea5fe528b192ed28b169cf0bfc3c61a9332682240bdc02f6ef0208fc0202517ba03e7c177bfbb52783c833aacaf2d16583e0f90bd58805a03ff SHA512 fb16316add0a7458f087295077518402eddaa1c759da6e268742e9ba5439cb3f1db7adcd7ef769c4a613b7518ff9e48849f60b24bd2a6daaaf6e96b59bbf0ac8
diff --git a/dev-lang/perl/files/perl-5.26.2-hppa.patch b/dev-lang/perl/files/perl-5.26.2-hppa.patch
deleted file mode 100644
index 83ed944353e5..000000000000
--- a/dev-lang/perl/files/perl-5.26.2-hppa.patch
+++ /dev/null
@@ -1,105 +0,0 @@
-https://bugs.gentoo.org/634162
-
-Source:
-https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=869122
-
-Index: perl-5.26.0/op.c
-===================================================================
---- perl-5.26.0.orig/op.c
-+++ perl-5.26.0/op.c
-@@ -14832,6 +14832,7 @@ Perl_custom_op_get_field(pTHX_ const OP
- SV *keysv;
- HE *he = NULL;
- XOP *xop;
-+ XOPRETANY any;
-
- static const XOP xop_null = { 0, 0, 0, 0, 0 };
-
-@@ -14874,58 +14875,37 @@ Perl_custom_op_get_field(pTHX_ const OP
- else
- xop = INT2PTR(XOP *, SvIV(HeVAL(he)));
- }
-- {
-- XOPRETANY any;
-- if(field == XOPe_xop_ptr) {
-- any.xop_ptr = xop;
-- } else {
-- const U32 flags = XopFLAGS(xop);
-- if(flags & field) {
-- switch(field) {
-- case XOPe_xop_name:
-- any.xop_name = xop->xop_name;
-- break;
-- case XOPe_xop_desc:
-- any.xop_desc = xop->xop_desc;
-- break;
-- case XOPe_xop_class:
-- any.xop_class = xop->xop_class;
-- break;
-- case XOPe_xop_peep:
-- any.xop_peep = xop->xop_peep;
-- break;
-- default:
-- NOT_REACHED; /* NOTREACHED */
-- break;
-- }
-- } else {
-- switch(field) {
-- case XOPe_xop_name:
-- any.xop_name = XOPd_xop_name;
-- break;
-- case XOPe_xop_desc:
-- any.xop_desc = XOPd_xop_desc;
-- break;
-- case XOPe_xop_class:
-- any.xop_class = XOPd_xop_class;
-- break;
-- case XOPe_xop_peep:
-- any.xop_peep = XOPd_xop_peep;
-- break;
-- default:
-- NOT_REACHED; /* NOTREACHED */
-- break;
-- }
-- }
-+
-+ if(field == XOPe_xop_ptr) {
-+ any.xop_ptr = xop;
-+ } else {
-+ const U32 flags = XopFLAGS(xop);
-+ switch(field) {
-+ case XOPe_xop_name:
-+ any.xop_name = (flags & field) ? xop->xop_name : XOPd_xop_name;
-+ break;
-+ case XOPe_xop_desc:
-+ any.xop_desc = (flags & field) ? xop->xop_desc : XOPd_xop_desc;
-+ break;
-+ case XOPe_xop_class:
-+ any.xop_class = (flags & field) ? xop->xop_class : XOPd_xop_class;
-+ break;
-+ case XOPe_xop_peep:
-+ any.xop_peep = (flags & field) ? xop->xop_peep : XOPd_xop_peep;
-+ break;
-+ default:
-+ NOT_REACHED; /* NOTREACHED */
-+ break;
- }
-- /* On some platforms (HP-UX, IA64) gcc emits a warning for this function:
-- * op.c: In function 'Perl_custom_op_get_field':
-- * op.c:...: warning: 'any.xop_name' may be used uninitialized in this function [-Wmaybe-uninitialized]
-- * This is because on those platforms (with -DEBUGGING) NOT_REACHED
-- * expands to assert(0), which expands to ((0) ? (void)0 :
-- * __assert(...)), and gcc doesn't know that __assert can never return. */
-- return any;
- }
-+
-+ /* On some platforms (HP-UX, IA64) gcc emits a warning for this function:
-+ * op.c: In function 'Perl_custom_op_get_field':
-+ * op.c:...: warning: 'any.xop_name' may be used uninitialized in this function [-Wmaybe-uninitialized]
-+ * This is because on those platforms (with -DEBUGGING) NOT_REACHED
-+ * expands to assert(0), which expands to ((0) ? (void)0 :
-+ * __assert(...)), and gcc doesn't know that __assert can never return. */
-+ return any;
- }
-
- /*
diff --git a/dev-lang/perl/files/perl-5.30.3-darwin-macos11.patch b/dev-lang/perl/files/perl-5.30.3-darwin-macos11.patch
deleted file mode 100644
index 73879b398c4d..000000000000
--- a/dev-lang/perl/files/perl-5.30.3-darwin-macos11.patch
+++ /dev/null
@@ -1,180 +0,0 @@
-https://github.com/Perl/perl5/pull/17946
-https://bugs.gentoo.org/757249
----
-From b382aafc793fe1007f9058a5145a1d39d56cef70 Mon Sep 17 00:00:00 2001
-From: Adam Hartley <git@ahartley.com>
-Date: Mon, 6 Jul 2020 22:59:42 +0100
-Subject: [PATCH 1/7] Add 11.x support for darwin.sh
-
----
- hints/darwin.sh | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/hints/darwin.sh b/hints/darwin.sh
-index 0a91bc083c0..c0f06de1cab 100644
---- a/hints/darwin.sh
-+++ b/hints/darwin.sh
-@@ -301,7 +301,7 @@ case "$osvers" in # Note: osvers is the kernel version, not the 10.x
- # We now use MACOSX_DEPLOYMENT_TARGET, if set, as an override by
- # capturing its value and adding it to the flags.
- case "$MACOSX_DEPLOYMENT_TARGET" in
-- 10.*)
-+ 10.* | 11.*)
- add_macosx_version_min ccflags $MACOSX_DEPLOYMENT_TARGET
- add_macosx_version_min ldflags $MACOSX_DEPLOYMENT_TARGET
- ;;
-@@ -327,7 +327,7 @@ EOM
- # "ProductVersion: 10.11" "10.11"
- prodvers=`sw_vers|awk '/^ProductVersion:/{print $2}'|awk -F. '{print $1"."$2}'`
- case "$prodvers" in
-- 10.*)
-+ 10.* | 11.*)
- add_macosx_version_min ccflags $prodvers
- add_macosx_version_min ldflags $prodvers
- ;;
-
-From 960d1a5c4225d1dd12636a469e10a568464e4e7c Mon Sep 17 00:00:00 2001
-From: Adam Hartley <git@ahartley.com>
-Date: Wed, 8 Jul 2020 19:10:33 +0100
-Subject: [PATCH 3/7] Update error message
-
----
- hints/darwin.sh | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/hints/darwin.sh b/hints/darwin.sh
-index c0f06de1cab..988b766c4f4 100644
---- a/hints/darwin.sh
-+++ b/hints/darwin.sh
-@@ -313,7 +313,7 @@ case "$osvers" in # Note: osvers is the kernel version, not the 10.x
-
- *** Unexpected MACOSX_DEPLOYMENT_TARGET=$MACOSX_DEPLOYMENT_TARGET
- ***
--*** Please either set it to 10.something, or to empty.
-+*** Please either set it to 10.something, 11.something or to empty.
-
- EOM
- exit 1
-
-From d633cced1d5174e19c5f2234a9fb4c7603cfb9db Mon Sep 17 00:00:00 2001
-From: Adam Hartley <git@ahartley.com>
-Date: Sat, 11 Jul 2020 11:41:27 +0100
-Subject: [PATCH 4/7] Update deprecated syscall check for 11.x and greater
-
----
- hints/darwin.sh | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/hints/darwin.sh b/hints/darwin.sh
-index 988b766c4f4..4f73a9995e7 100644
---- a/hints/darwin.sh
-+++ b/hints/darwin.sh
-@@ -342,11 +342,11 @@ EOM
- exit 1
- esac
-
-- # The X in 10.X
-+ prodvers_major=$(echo $prodvers|awk -F. '{print $1}')
- prodvers_minor=$(echo $prodvers|awk -F. '{print $2}')
-
- # macOS (10.12) deprecated syscall().
-- if [ "$prodvers_minor" -ge 12 ]; then
-+ if [[ ( "$prodvers_minor" -ge 12 && "$prodvers_major" -eq 10 ) || "$prodvers_major" -ge 11 ]]; then
- d_syscall='undef'
- # If deploying to pre-10.12, suppress Time::HiRes's detection of the system clock_gettime()
- case "$MACOSX_DEPLOYMENT_TARGET" in
-
-From 9c3890f8521a7db6d9b2aa21561c7d0dae9fb91d Mon Sep 17 00:00:00 2001
-From: Adam Hartley <BytesGuy@users.noreply.github.com>
-Date: Wed, 22 Jul 2020 13:15:30 +0100
-Subject: [PATCH 5/7] Simplify syscall check
-
----
- hints/darwin.sh | 7 +++----
- 1 file changed, 3 insertions(+), 4 deletions(-)
-
-diff --git a/hints/darwin.sh b/hints/darwin.sh
-index 4f73a9995e7..40c84cf267a 100644
---- a/hints/darwin.sh
-+++ b/hints/darwin.sh
-@@ -342,11 +342,10 @@ EOM
- exit 1
- esac
-
-- prodvers_major=$(echo $prodvers|awk -F. '{print $1}')
-- prodvers_minor=$(echo $prodvers|awk -F. '{print $2}')
-+ darwin_major=$(echo $osvers|awk -F. '{print $1}')
-
-- # macOS (10.12) deprecated syscall().
-- if [[ ( "$prodvers_minor" -ge 12 && "$prodvers_major" -eq 10 ) || "$prodvers_major" -ge 11 ]]; then
-+ # macOS 10.12 (darwin 6.0.0) deprecated syscall().
-+ if [ "$darwin_major" -ge 6 ]; then
- d_syscall='undef'
- # If deploying to pre-10.12, suppress Time::HiRes's detection of the system clock_gettime()
- case "$MACOSX_DEPLOYMENT_TARGET" in
-
-From 99ff8934992102a3db63805e8ba9710577de164e Mon Sep 17 00:00:00 2001
-From: Adam Hartley <BytesGuy@users.noreply.github.com>
-Date: Wed, 22 Jul 2020 13:15:53 +0100
-Subject: [PATCH 6/7] Update darwin.sh
-
----
- hints/darwin.sh | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/hints/darwin.sh b/hints/darwin.sh
-index 40c84cf267a..1709d224f7c 100644
---- a/hints/darwin.sh
-+++ b/hints/darwin.sh
-@@ -344,8 +344,8 @@ EOM
-
- darwin_major=$(echo $osvers|awk -F. '{print $1}')
-
-- # macOS 10.12 (darwin 6.0.0) deprecated syscall().
-- if [ "$darwin_major" -ge 6 ]; then
-+ # macOS 10.12 (darwin 16.0.0) deprecated syscall().
-+ if [ "$darwin_major" -ge 16 ]; then
- d_syscall='undef'
- # If deploying to pre-10.12, suppress Time::HiRes's detection of the system clock_gettime()
- case "$MACOSX_DEPLOYMENT_TARGET" in
-
-From 1b712e4b359d9508461a0a832d06baa6e589b955 Mon Sep 17 00:00:00 2001
-From: Adam Hartley <BytesGuy@users.noreply.github.com>
-Date: Thu, 23 Jul 2020 19:53:07 +0100
-Subject: [PATCH 7/7] Future proof version check
-
----
- hints/darwin.sh | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/hints/darwin.sh b/hints/darwin.sh
-index 1709d224f7c..fdfbdd4a3b9 100644
---- a/hints/darwin.sh
-+++ b/hints/darwin.sh
-@@ -301,7 +301,7 @@ case "$osvers" in # Note: osvers is the kernel version, not the 10.x
- # We now use MACOSX_DEPLOYMENT_TARGET, if set, as an override by
- # capturing its value and adding it to the flags.
- case "$MACOSX_DEPLOYMENT_TARGET" in
-- 10.* | 11.*)
-+ [1-9][0-9].*)
- add_macosx_version_min ccflags $MACOSX_DEPLOYMENT_TARGET
- add_macosx_version_min ldflags $MACOSX_DEPLOYMENT_TARGET
- ;;
-@@ -313,7 +313,7 @@ case "$osvers" in # Note: osvers is the kernel version, not the 10.x
-
- *** Unexpected MACOSX_DEPLOYMENT_TARGET=$MACOSX_DEPLOYMENT_TARGET
- ***
--*** Please either set it to 10.something, 11.something or to empty.
-+*** Please either set it to a valid macOS version number (e.g., 10.15) or to empty.
-
- EOM
- exit 1
-@@ -327,7 +327,7 @@ EOM
- # "ProductVersion: 10.11" "10.11"
- prodvers=`sw_vers|awk '/^ProductVersion:/{print $2}'|awk -F. '{print $1"."$2}'`
- case "$prodvers" in
-- 10.* | 11.*)
-+ [1-9][0-9].*)
- add_macosx_version_min ccflags $prodvers
- add_macosx_version_min ldflags $prodvers
- ;;
diff --git a/dev-lang/perl/files/perl-5.34.0-crossfit.patch b/dev-lang/perl/files/perl-5.34.0-crossfit.patch
new file mode 100644
index 000000000000..e33e6d01845e
--- /dev/null
+++ b/dev-lang/perl/files/perl-5.34.0-crossfit.patch
@@ -0,0 +1,13 @@
+diff --git a/cnf/configure_path.sh b/cnf/configure_path.sh
+index fe7eac7..f55317f 100644
+--- a/cnf/configure_path.sh
++++ b/cnf/configure_path.sh
+@@ -67,6 +67,8 @@ define d_inc_version_list 'undef'
+ define otherlibdirs ''
+ define d_perl_otherlibdirs 'undef'
+
++define d_gentoolibdirs 'undef'
++
+ define siteman1dir "$man1dir"
+ define siteman3dir "$man3dir"
+ define sitehtml1dir "$html1dir"
diff --git a/dev-lang/perl/files/perl-5.36.0-fix-configure-for-clang.patch b/dev-lang/perl/files/perl-5.36.0-fix-configure-for-clang.patch
new file mode 100644
index 000000000000..3ad508c95f7e
--- /dev/null
+++ b/dev-lang/perl/files/perl-5.36.0-fix-configure-for-clang.patch
@@ -0,0 +1,41 @@
+From 40db21129c0ba08ea457b6e40e7357e86ea1404b Mon Sep 17 00:00:00 2001
+From: Raul E Rangel <rrangel@chromium.org>
+Date: Fri, 28 Jul 2023 15:50:49 -0600
+Subject: [PATCH] hints/linux: Add additional expression when matching clang
+
+Newer versions of clang actually print the distro before `clang` when
+calling `$CC --version`. This changes fixes the regex so it can match
+this new pattern.
+
+i.e.,
+
+ $ clang --version
+ Debian clang version 14.0.6
+
+ $ x86_64-pc-linux-gnu-clang --version
+ Chromium OS 17.0_pre496208_p20230501-r1 clang version 17.0.0
+
+Fixes #21099
+
+BUG=b:283275881
+See: https://github.com/Perl/perl5/issues/21099
+---
+ hints/linux.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/hints/linux.sh b/hints/linux.sh
+index e1508c7509..5202b28b09 100644
+--- a/hints/linux.sh
++++ b/hints/linux.sh
+@@ -166,7 +166,7 @@ esac
+ if [ -x /usr/bin/gcc ] ; then
+ gcc=/usr/bin/gcc
+ # clang also provides -print-search-dirs
+-elif ${cc:-cc} --version 2>/dev/null | grep -q '^clang ' ; then
++elif ${cc:-cc} --version 2>/dev/null | grep -q -e '^clang version' -e ' clang version'; then
+ gcc=${cc:-cc}
+ else
+ gcc=gcc
+--
+2.41.0.585.gd2178a4bd4-goog
+
diff --git a/dev-lang/perl/metadata.xml b/dev-lang/perl/metadata.xml
index 0edcddc60b41..c36cc7ac8780 100644
--- a/dev-lang/perl/metadata.xml
+++ b/dev-lang/perl/metadata.xml
@@ -1,5 +1,5 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>perl@gentoo.org</email>
@@ -7,8 +7,11 @@
</maintainer>
<use>
<flag name="ithreads">Enable Perl threads, has some compatibility problems</flag>
+ <flag name="quadmath">Enable 128bit floating point arithmetic via libquadmath</flag>
</use>
<upstream>
+ <remote-id type="cpe">cpe:/a:perl:perl</remote-id>
+ <remote-id type="github">Perl/perl5</remote-id>
<remote-id type="github">arsv/perl-cross</remote-id>
</upstream>
</pkgmetadata>
diff --git a/dev-lang/perl/perl-5.30.3-r1.ebuild b/dev-lang/perl/perl-5.30.3-r1.ebuild
deleted file mode 100644
index 7dc3e6631a75..000000000000
--- a/dev-lang/perl/perl-5.30.3-r1.ebuild
+++ /dev/null
@@ -1,668 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit eutils alternatives flag-o-matic toolchain-funcs multilib multiprocessing
-
-PATCH_VER=1
-CROSS_VER=1.3.4
-PATCH_BASE="perl-5.30.0-patches-${PATCH_VER}"
-PATCH_DEV=dilfridge
-
-DIST_AUTHOR=XSAWYERX
-
-# Greatest first, don't include yourself
-# Devel point-releases are not ABI-intercompatible, but stable point releases are
-# BIN_OLDVERSEN is contains only C-ABI-intercompatible versions
-PERL_BIN_OLDVERSEN="5.30.0 5.30.1 5.30.2"
-
-if [[ "${PV##*.}" == "9999" ]]; then
- DIST_VERSION=5.30.0
-else
- DIST_VERSION="${PV/_rc/-RC}"
-fi
-SHORT_PV="${DIST_VERSION%.*}"
-# Even numbered major versions are ABI intercompatible
-# Odd numbered major versions are not
-if [[ $(( ${SHORT_PV#*.} % 2 )) == 1 ]]; then
- SUBSLOT="${DIST_VERSION%-RC*}"
-else
- SUBSLOT="${DIST_VERSION%.*}"
-fi
-# Used only in tar paths
-MY_P="perl-${DIST_VERSION}"
-# Used in library paths
-MY_PV="${DIST_VERSION%-RC*}"
-
-DESCRIPTION="Larry Wall's Practical Extraction and Report Language"
-
-SRC_URI="
- mirror://cpan/src/5.0/${MY_P}.tar.xz
- mirror://cpan/authors/id/${DIST_AUTHOR:0:1}/${DIST_AUTHOR:0:2}/${DIST_AUTHOR}/${MY_P}.tar.xz
- https://github.com/gentoo-perl/perl-patchset/releases/download/${PATCH_BASE}/${PATCH_BASE}.tar.xz
- mirror://gentoo/${PATCH_BASE}.tar.xz
- https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${PATCH_BASE}.tar.xz
- https://github.com/arsv/perl-cross/releases/download/${CROSS_VER}/perl-cross-${CROSS_VER}.tar.gz
-"
-HOMEPAGE="https://www.perl.org/"
-
-LICENSE="|| ( Artistic GPL-1+ )"
-SLOT="0/${SUBSLOT}"
-
-if [[ "${PV##*.}" != "9999" ]] && [[ "${PV/rc//}" == "${PV}" ]] ; then
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-fi
-
-IUSE="berkdb debug doc gdbm ithreads minimal"
-
-RDEPEND="
- berkdb? ( sys-libs/db:= )
- gdbm? ( >=sys-libs/gdbm-1.8.3:= )
- app-arch/bzip2
- sys-libs/zlib
- virtual/libcrypt:=
-"
-DEPEND="${RDEPEND}"
-PDEPEND="
- !minimal? (
- >=app-admin/perl-cleaner-2.5
- >=virtual/perl-File-Temp-0.230.400-r2
- >=virtual/perl-Data-Dumper-2.154.0
- virtual/perl-Test-Harness
- )
-"
-# bug 390719, bug 523624
-# virtual/perl-Test-Harness is here for the bundled ExtUtils::MakeMaker
-
-S="${WORKDIR}/${MY_P}"
-
-dual_scripts() {
- src_remove_dual perl-core/Archive-Tar 2.320.0 ptar ptardiff ptargrep
- src_remove_dual perl-core/CPAN 2.220.0 cpan
- src_remove_dual perl-core/Digest-SHA 6.20.0 shasum
- src_remove_dual perl-core/Encode 3.10.0 enc2xs piconv
- src_remove_dual perl-core/ExtUtils-MakeMaker 7.340.0 instmodsh
- src_remove_dual perl-core/ExtUtils-ParseXS 3.400.0 xsubpp
- src_remove_dual perl-core/IO-Compress 2.84.0 zipdetails
- src_remove_dual perl-core/JSON-PP 4.20.0 json_pp
- src_remove_dual perl-core/Module-CoreList 5.202.6.13.0_rc corelist
- src_remove_dual perl-core/Pod-Parser 1.630.0 pod2usage podchecker podselect
- src_remove_dual perl-core/Pod-Perldoc 3.280.100 perldoc
- src_remove_dual perl-core/Test-Harness 3.420.0 prove
- src_remove_dual perl-core/podlators 4.110.0 pod2man pod2text
- src_remove_dual_man perl-core/podlators 4.110.0 /usr/share/man/man1/perlpodstyle.1
-}
-
-check_rebuild() {
- # Fresh install
- if [[ -z "${REPLACING_VERSIONS}" ]]; then
- return 0;
- # Major Upgrade
- # doesn't matter if there's multiple copies, it still needs a rebuild
- # if the string is anything other than "5.CURRENTMAJOR"
- elif [[ "${REPLACING_VERSIONS%.*}" != "${PV%.*}" ]]; then
- echo ""
- ewarn "UPDATE THE PERL MODULES:"
- ewarn "After updating dev-lang/perl the installed Perl modules"
- ewarn "have to be re-installed. In most cases, this is done automatically"
- ewarn "by the package manager, but subsequent steps are still recommended"
- ewarn "to ensure system consistency."
- ewarn
- ewarn "You should start with a depclean to remove any unused perl dependencies"
- ewarn "that may confuse portage in future. Regular depcleans are also encouraged"
- ewarn "as part of your regular update cycle, as that will keep perl upgrades working."
- ewarn "Recommended: emerge --depclean -va"
- ewarn
- ewarn "You should then call perl-cleaner to clean up any old files and trigger any"
- ewarn "remaining rebuilds portage may have missed."
- ewarn "Use: perl-cleaner --all"
- return 0;
-
- # Reinstall w/ USE Change
- elif ( use ithreads && ! has_version dev-lang/perl[ithreads] ) || \
- ( ! use ithreads && has_version dev-lang/perl[ithreads] ) || \
- ( use debug && ! has_version dev-lang/perl[debug] ) || \
- ( ! use debug && has_version dev-lang/perl[debug] ) ; then
- echo ""
- ewarn "TOGGLED USE-FLAGS WARNING:"
- ewarn "You changed one of the use-flags ithreads or debug."
- ewarn "You must rebuild all perl-modules installed."
- ewarn "Use: perl-cleaner --modules ; perl-cleaner --force --libperl"
- fi
-}
-
-pkg_setup() {
- case ${CHOST} in
- *-freebsd*) osname="freebsd" ;;
- *-dragonfly*) osname="dragonfly" ;;
- *-netbsd*) osname="netbsd" ;;
- *-openbsd*) osname="openbsd" ;;
- *-darwin*) osname="darwin" ;;
- *-solaris*) osname="solaris" ;;
- *-cygwin*) osname="cygwin" ;;
- *) osname="linux" ;;
- esac
-
- myarch="${CHOST%%-*}-${osname}"
- if use debug ; then
- myarch+="-debug"
- fi
- if use ithreads ; then
- mythreading="-multi"
- myarch+="-thread"
- fi
-
- PRIV_BASE="/usr/$(get_libdir)/perl5"
- SITE_BASE="/usr/local/$(get_libdir)/perl5"
- VENDOR_BASE="/usr/$(get_libdir)/perl5/vendor_perl"
-
- LIBPERL="libperl$(get_libname ${MY_PV} )"
- PRIV_LIB="${PRIV_BASE}/${MY_PV}"
- ARCH_LIB="${PRIV_BASE}/${MY_PV}/${myarch}${mythreading}"
- SITE_LIB="${SITE_BASE}/${MY_PV}"
- SITE_ARCH="${SITE_BASE}/${MY_PV}/${myarch}${mythreading}"
- VENDOR_LIB="${VENDOR_BASE}/${MY_PV}"
- VENDOR_ARCH="${VENDOR_BASE}/${MY_PV}/${myarch}${mythreading}"
-
- dual_scripts
-}
-
-src_remove_dual_file() {
- local i pkg ver
- pkg="$1"
- ver="$2"
- shift 2
- case "${EBUILD_PHASE:-none}" in
- postinst|postrm)
- for i in "$@" ; do
- alternatives_auto_makesym "${i}" "${i}-[0-9]*"
- done
- ;;
- setup)
- for i in "$@" ; do
- if [[ -f ${EROOT}${i} && ! -h ${EROOT}${i} ]] ; then
- has_version ${pkg} && ewarn "You must reinstall ${pkg} !"
- break
- fi
- done
- ;;
- install)
- for i in "$@" ; do
- if ! [[ -f "${ED}"${i} ]] ; then
- ewarn "${i} does not exist!"
- continue
- fi
- mv "${ED}"${i}{,-${ver}-${P}} || die
- done
- ;;
- esac
-}
-
-src_remove_dual_man() {
- local i pkg ver ff
- pkg="$1"
- ver="$2"
- shift 2
- case "${EBUILD_PHASE:-none}" in
- postinst|postrm)
- for i in "$@" ; do
- ff=`echo "${EROOT}${i%.[0-9]}-${ver}-${P}${i#${i%.[0-9]}}"*`
- ff=${ff##*${i#${i%.[0-9]}}}
- alternatives_auto_makesym "${i}${ff}" "${i%.[0-9]}-[0-9]*"
- done
- ;;
- install)
- for i in "$@" ; do
- if ! [[ -f "${ED}"${i} ]] ; then
- ewarn "${i} does not exist!"
- continue
- fi
- mv "${ED}"${i} "${ED}"${i%.[0-9]}-${ver}-${P}${i#${i%.[0-9]}} || die
- done
- ;;
- esac
-}
-
-src_remove_dual() {
- local i pkg ver
- pkg="$1"
- ver="$2"
- shift 2
- for i in "$@" ; do
- src_remove_dual_file "${pkg}" "${ver}" "/usr/bin/${i}"
- src_remove_dual_man "${pkg}" "${ver}" "/usr/share/man/man1/${i}.1"
- done
-}
-
-src_prepare_update_patchlevel_h() {
- # Copied and modified from debian:
- # Copyright 2011 Niko Tyni
- # This program is free software; you can redistribute it and/or modify
- # it under the same terms as Perl itself.
- local patchdir="${WORKDIR}/patches"
- local prefix
- local patchoutput="patchlevel-gentoo.h"
-
- [[ -f ${patchdir}/series ]] || return 0
-
-while read patch
-do
- patchname=$(echo $patch | sed 's/\.diff$//')
- < $patchdir/$patch sed -e '/^Subject:/ { N; s/\n / / }' | sed -n -e '
-
- # massage the patch headers
- s|^Bug: .*https\?://rt\.perl\.org/.*id=\(.*\).*|[perl #\1]|; tprepend;
- s|^Bug: .*https\?://rt\.cpan\.org/.*id=\(.*\).*|[rt.cpan.org #\1]|; tprepend;
- s|^Bug-Gentoo: ||; tprepend;
- s/^\(Subject\|Description\): //; tappend;
- s|^Origin: .*http://perl5\.git\.perl\.org/perl\.git/commit\(diff\)\?/\(.......\).*|[\2]|; tprepend;
-
- # post-process at the end of input
- $ { x;
- # include the version number in the patchlevel.h description (if available)
- s/List packaged patches/&'" for ${PF}(#${PATCH_VER})"'/;
-
- # escape any backslashes and double quotes
- s|\\|\\\\|g; s|"|\\"|g;
-
- # add a prefix
- s|^|\t,"'"$prefix$patchname"' - |;
- # newlines away
- s/\n/ /g; s/ */ /g;
- # add a suffix
- s/ *$/"/; p
- };
- # stop all processing
- d;
- # label: append to the hold space
- :append H; d;
- # label: prepend to the hold space
- :prepend x; H; d;
- '
-done < "${WORKDIR}"/patches/series > "${S}/${patchoutput}"
-echo "${patchoutput}" >> "${S}/MANIFEST"
-}
-
-src_prepare_perlcross() {
- cp -a ../perl-cross-${CROSS_VER}/* . || die
-
- # bug 604072
- MAKEOPTS+=" -j1"
- export MAKEOPTS
-}
-src_prepare_dynamic() {
- ln -s ${LIBPERL} libperl$(get_libname ${SHORT_PV}) || die
- ln -s ${LIBPERL} libperl$(get_libname ) || die
-}
-
-src_prepare() {
- local patch
- EPATCH_OPTS+=" -p1"
-
- if use hppa ; then
- epatch "${FILESDIR}/${PN}-5.26.2-hppa.patch" # bug 634162
- fi
-
- if [[ ${CHOST} == *-solaris* ]] ; then
- # do NOT mess with nsl, on Solaris this is always necessary,
- # when -lsocket is used e.g. to get h_errno
- sed -i '/gentoo\/no-nsl-cl\.patch/d' "${WORKDIR}/patches/series" || die
- fi
-
- einfo "Applying patches from ${PATCH_BASE} ..."
- while read patch ; do
- EPATCH_SINGLE_MSG=" ${patch} ..."
- epatch "${WORKDIR}"/patches/${patch}
- done < "${WORKDIR}"/patches/series
-
- src_prepare_update_patchlevel_h
-
- tc-is-cross-compiler && src_prepare_perlcross
-
- tc-is-static-only || src_prepare_dynamic
-
- if use gdbm; then
- sed -i "s:INC => .*:INC => \"-I${EROOT}usr/include/gdbm\":g" \
- ext/NDBM_File/Makefile.PL || die
- fi
-
- # Use errno.h from prefix rather than from host system, bug #645804
- if use prefix && [[ -e "${EPREFIX}"/usr/include/errno.h ]] ; then
- sed -i "/my..sysroot/s:'':'${EPREFIX}':" ext/Errno/Errno_pm.PL || die
- fi
-
- if [[ ${CHOST} == *-solaris* ]] ; then
- # set a soname, fix linking against just built libperl
- sed -i -e 's/netbsd\*/netbsd*|solaris*/' Makefile.SH || die
- fi
-
- if [[ ${CHOST} == *-darwin* ]] ; then
- # fix install_name (soname) not to reference $D
- sed -i -e '/install_name `pwd/s/`pwd`/\\$(shrpdir)/' Makefile.SH || die
-
- # Upstreamed, but not in this version.
- # Need to recognise macOS 11 / 10.16. #757249
- eapply "${FILESDIR}/${PN}-5.30.3-darwin-macos11.patch"
- fi
-
- default
-}
-
-myconf() {
- # the myconf array is declared in src_configure
- myconf=( "${myconf[@]}" "$@" )
-}
-
-src_configure() {
- declare -a myconf
-
- export LC_ALL="C"
- [[ ${COLUMNS:-1} -ge 1 ]] || unset COLUMNS # bug #394091
-
- # Perl has problems compiling with -Os in your flags with glibc
- use elibc_uclibc || replace-flags "-Os" "-O2"
-
- # xlocale.h is going away in glibc-2.26, so it's counterproductive
- # if we use it and include it in CORE/perl.h ... Perl builds just
- # fine with glibc and locale.h only.
- # However, the darwin prefix people have no locale.h ...
- use elibc_glibc && myconf -Ui_xlocale
-
- # This flag makes compiling crash in interesting ways
- filter-flags "-malign-double"
-
- # Generic LTO broken since 5.28, triggers EUMM failures
- filter-flags "-flto"
-
- use sparc && myconf -Ud_longdbl
-
- export BUILD_BZIP2=0
- export BZIP2_INCLUDE=${EROOT}/usr/include
- export BZIP2_LIB=${EROOT}/usr/$(get_libdir)
-
- export BUILD_ZLIB=False
- export ZLIB_INCLUDE=${EROOT}/usr/include
- export ZLIB_LIB=${EROOT}/usr/$(get_libdir)
-
- # allow either gdbm to provide ndbm (in <gdbm/ndbm.h>) or db1
- myndbm='U'
- mygdbm='U'
- mydb='U'
- if use gdbm ; then
- mygdbm='D'
- if use berkdb ; then
- myndbm='D'
- fi
- fi
- if use berkdb ; then
- mydb='D'
- has_version '=sys-libs/db-1*' && myndbm='D'
- fi
-
- myconf "-${myndbm}i_ndbm" "-${mygdbm}i_gdbm" "-${mydb}i_db"
-
- if use alpha && [[ "$(tc-getCC)" = "ccc" ]] ; then
- ewarn "Perl will not be built with berkdb support, use gcc if you needed it..."
- myconf -Ui_db -Ui_ndbm
- fi
-
- use ithreads && myconf -Dusethreads
-
- if use debug ; then
- append-cflags "-g"
- myconf -DDEBUGGING
- elif [[ ${CFLAGS} == *-g* ]] ; then
- myconf -DDEBUGGING=-g
- else
- myconf -DDEBUGGING=none
- fi
-
- # Autodiscover all old version directories, some of them will even be newer
- # if you downgrade
- if [[ -z ${PERL_OLDVERSEN} ]]; then
- PERL_OLDVERSEN="$(
- find "${EROOT%/}${PRIV_BASE}" "${EROOT%/}${SITE_BASE}" "${EROOT%/}${VENDOR_BASE}" \
- -maxdepth 1 -mindepth 1 -type d -regex '.*/5[.][0-9]+[.][0-9]+$' \
- -printf "%f " 2>/dev/null )"
- fi
- # Fixup versions, removing self match, fixing order and dupes
- PERL_OLDVERSEN="$(
- echo "${PERL_OLDVERSEN}" |\
- tr " " "\n" |\
- grep -vF "${DIST_VERSION%-RC}" |\
- sort -u -nr -t'.' -k1,1 -k2,2 -k3,3
- )"
-
- # Experts who want a "Pure" install can set PERL_OLDVERSEN to an empty string
- if [[ -n "${PERL_OLDVERSEN// }" ]]; then
- local inclist="$(
- for v in ${PERL_OLDVERSEN}; do
- has "${v}" ${PERL_BIN_OLDVERSEN} && echo -n "${v}/${myarch}${mythreading} ";
- echo -n "${v} ";
- done )"
- einfo "This version of perl may partially support modules previously"
- einfo "installed in any of the following paths:"
- for incpath in ${inclist}; do
- [[ -e "${EROOT%/}${VENDOR_BASE}/${incpath}" ]] && einfo " ${EROOT%/}${VENDOR_BASE}/${incpath}"
- [[ -e "${EROOT%/}${PRIV_BASE}/${incpath}" ]] && einfo " ${EROO%/T}${PRIV_BASE}/${incpath}"
- [[ -e "${EROOT%/}${SITE_BASE}/${incpath}" ]] && einfo " ${EROOT%/}${SITE_BASE}/${incpath}"
- done
- einfo "This is a temporary measure and you should aim to cleanup these paths"
- einfo "via world updates and perl-cleaner"
- myconf -Dinc_version_list="${inclist}"
- fi
-
- [[ ${ELIBC} == "FreeBSD" ]] && myconf "-Dlibc=/usr/$(get_libdir)/libc.a"
-
- # Make sure we can do the final link #523730, need to set deployment
- # target to override hardcoded 10.3 which breaks on modern OSX
- [[ ${CHOST} == *-darwin* ]] && \
- myconf "-Dld=env MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} $(tc-getCC)"
-
- # Older macOS with non-Apple GCC chokes on inline in system headers
- # using c89 mode as injected by cflags.SH
- [[ ${CHOST} == *-darwin* && ${CHOST##*darwin} -le 9 ]] && tc-is-gcc && \
- append-cflags -Dinline=__inline__
-
- # flock on 32-bit sparc Solaris is broken, fall back to fcntl
- [[ ${CHOST} == sparc-*-solaris* ]] && \
- myconf -Ud_flock
-
- # fix unaligned access misdetection
- # https://rt.perl.org/Public/Bug/Display.html?id=133495
- # https://rt.perl.org/Public/Bug/Display.html?id=133803
- # bug #676062, bug #688432
- use hppa || use sparc || [[ ${CHOST} == sparc*-solaris* ]] || \
- [[ ${CHOST} == armv5tel* ]] \
- && myconf "-Dd_u32align='define'"
-
- # Prefix: the host system needs not to follow Gentoo multilib stuff, and in
- # Prefix itself we don't do multilib either, so make sure perl can find
- # something compatible.
- if use prefix ; then
- # Set a hook to check for each detected library whether it actually works.
- export libscheck="
- ( echo 'main(){}' > '${T}'/conftest.c &&
- $(tc-getCC) -o '${T}'/conftest '${T}'/conftest.c -l\$thislib >/dev/null 2>/dev/null
- ) || xxx=/dev/null"
-
- # Use all host paths that might contain useful stuff, the hook above will filter out bad choices.
- local paths="/lib/*-linux-gnu /usr/lib/*-linux-gnu /lib64 /lib/64 /usr/lib64 /usr/lib/64 /lib32 /usr/lib32 /lib /usr/lib"
- myconf "-Dlibpth=${EPREFIX}/$(get_libdir) ${EPREFIX}/usr/$(get_libdir) ${paths}"
- elif [[ $(get_libdir) != "lib" ]] ; then
- # We need to use " and not ', as the written config.sh use ' ...
- myconf "-Dlibpth=/usr/local/$(get_libdir) /$(get_libdir) /usr/$(get_libdir)"
- fi
-
- # don't try building ODBM, bug #354453
- disabled_extensions="ODBM_File"
-
- if ! use gdbm ; then
- # workaround for bug #157774: don't try building GDBM related stuff with USE="-gdbm"
- disabled_extensions="${disabled_extensions} GDBM_File NDBM_File"
- fi
-
- myconf -Dnoextensions="${disabled_extensions}"
-
- [[ "${PV##*.}" == "9999" ]] && myconf -Dusedevel -Uversiononly
-
- [[ -n "${EXTRA_ECONF}" ]] && ewarn During Perl build, EXTRA_ECONF=${EXTRA_ECONF}
- # allow fiddling via EXTRA_ECONF, bug 558070
- eval "local -a EXTRA_ECONF=(${EXTRA_ECONF})"
-
- # setting -Dld= to tc-getLD breaks perl and all perl things
- # https://github.com/Perl/perl5/issues/17791#issuecomment-630145202
- myconf \
- -Duseshrplib \
- -Darchname="${myarch}" \
- -Dcc="$(tc-getCC)" \
- -Dar="$(tc-getAR)" \
- -Dnm="$(tc-getNM)" \
- -Dcpp="$(tc-getCPP)" \
- -Dranlib="$(tc-getRANLIB)" \
- -Doptimize="${CFLAGS}" \
- -Dldflags="${LDFLAGS}" \
- -Dprefix="${EPREFIX}"'/usr' \
- -Dsiteprefix="${EPREFIX}"'/usr/local' \
- -Dvendorprefix="${EPREFIX}"'/usr' \
- -Dscriptdir="${EPREFIX}"'/usr/bin' \
- -Dprivlib="${EPREFIX}${PRIV_LIB}" \
- -Darchlib="${EPREFIX}${ARCH_LIB}" \
- -Dsitelib="${EPREFIX}${SITE_LIB}" \
- -Dsitearch="${EPREFIX}${SITE_ARCH}" \
- -Dvendorlib="${EPREFIX}${VENDOR_LIB}" \
- -Dvendorarch="${EPREFIX}${VENDOR_ARCH}" \
- -Dman1dir="${EPREFIX}"/usr/share/man/man1 \
- -Dman3dir="${EPREFIX}"/usr/share/man/man3 \
- -Dsiteman1dir="${EPREFIX}"/usr/local/man/man1 \
- -Dsiteman3dir="${EPREFIX}"/usr/local/man/man3 \
- -Dvendorman1dir="${EPREFIX}"/usr/share/man/man1 \
- -Dvendorman3dir="${EPREFIX}"/usr/share/man/man3 \
- -Dman1ext='1' \
- -Dman3ext='3pm' \
- -Dlibperl="${LIBPERL}" \
- -Dlocincpth="${EPREFIX}"'/usr/include ' \
- -Dglibpth="${EPREFIX}/$(get_libdir) ${EPREFIX}/usr/$(get_libdir)"' ' \
- -Duselargefiles \
- -Dd_semctl_semun \
- -Dcf_by='Gentoo' \
- -Dmyhostname='localhost' \
- -Dperladmin='root@localhost' \
- -Ud_csh \
- -Dsh="${EPREFIX}"/bin/sh \
- -Dtargetsh="${EPREFIX}"/bin/sh \
- -Uusenm \
- "${myconf[@]}" \
- "${EXTRA_ECONF[@]}"
-
- if tc-is-cross-compiler; then
- ./configure \
- --target="${CHOST}" \
- --build="${CBUILD}" \
- -Dinstallprefix='' \
- -Dinstallusrbinperl='undef' \
- -Dusevendorprefix='define' \
- "${myconf[@]}" \
- || die "Unable to configure"
- else
- sh Configure \
- -des \
- -Dinstallprefix="${EPREFIX}"'/usr' \
- -Dinstallusrbinperl='n' \
- "${myconf[@]}" \
- || die "Unable to configure"
- fi
-}
-
-src_test() {
- export NO_GENTOO_NETWORK_TESTS=1;
- export GENTOO_ASSUME_SANDBOXED="${GENTOO_ASSUME_SANDBOXED:-1}"
- export GENTOO_NO_PORTING_TESTS="${GENTOO_NO_PORTING_TESTS:-1}"
- if [[ ${EUID} == 0 ]] ; then
- ewarn "Test fails with a sandbox error (#328793) if run as root. Skipping tests..."
- return 0
- fi
- use elibc_uclibc && export MAKEOPTS+=" -j1"
- TEST_JOBS="$(makeopts_jobs)" make test_harness || die "test failed"
-}
-
-src_install() {
- local i
- local coredir="${ARCH_LIB}/CORE"
-
- emake DESTDIR="${D}" install
-
- rm -f "${ED}/usr/bin/perl${MY_PV}"
- ln -s perl "${ED}"/usr/bin/perl${MY_PV} || die
-
- if ! tc-is-static-only ; then
- dolib.so "${ED}"${coredir}/${LIBPERL}
- rm -f "${ED}"${coredir}/${LIBPERL}
- ln -sf ${LIBPERL} "${ED}"/usr/$(get_libdir)/libperl$(get_libname ${SHORT_PV}) || die
- ln -sf ${LIBPERL} "${ED}"/usr/$(get_libdir)/libperl$(get_libname) || die
-
- ln -sf ../../../../${LIBPERL} "${ED}"${coredir}/${LIBPERL} || die
- ln -sf ../../../../${LIBPERL} "${ED}"${coredir}/libperl$(get_libname ${SHORT_PV}) || die
- ln -sf ../../../../${LIBPERL} "${ED}"${coredir}/libperl$(get_libname) || die
- fi
-
- rm -rf "${ED}"/usr/share/man/man3 || die "Unable to remove module man pages"
-
- # This removes ${D} from Config.pm
- for i in $(find "${D}" -iname "Config.pm" ) ; do
- einfo "Removing ${D} from ${i}..."
- sed -i -e "s:${D}::" "${i}" || die "Sed failed"
- done
-
- dodoc Changes* README AUTHORS
-
- if use doc ; then
- # HTML Documentation
- # We expect errors, warnings, and such with the following.
-
- dodir /usr/share/doc/${PF}/html
- LD_LIBRARY_PATH=. ./perl installhtml \
- --podroot='.' \
- --podpath='lib:ext:pod:vms' \
- --recurse \
- --htmldir="${ED}/usr/share/doc/${PF}/html"
- fi
-
- [[ -d ${ED}/usr/local ]] && rm -r "${ED}"/usr/local
-
- dual_scripts
-}
-
-pkg_preinst() {
- check_rebuild
-}
-
-pkg_postinst() {
- dual_scripts
-
- if [[ "${ROOT}" = "/" ]] ; then
- local INC DIR file
- INC=$(perl -e 'for $line (@INC) { next if $line eq "."; next if $line =~ m/'${SHORT_PV}'|etc|local|perl$/; print "$line\n" }')
- einfo "Removing old .ph files"
- for DIR in ${INC} ; do
- if [[ -d "${DIR}" ]] ; then
- for file in $(find "${DIR}" -name "*.ph" -type f ) ; do
- rm -f "${file}"
- einfo "<< ${file}"
- done
- fi
- done
- # Silently remove the now empty dirs
- for DIR in ${INC} ; do
- if [[ -d "${DIR}" ]] ; then
- find "${DIR}" -depth -type d -print0 | xargs -0 -r rmdir &> /dev/null
- fi
- done
-
- fi
-}
-
-pkg_postrm() {
- dual_scripts
-}
diff --git a/dev-lang/perl/perl-5.30.3.ebuild b/dev-lang/perl/perl-5.30.3.ebuild
deleted file mode 100644
index 8f88325107c3..000000000000
--- a/dev-lang/perl/perl-5.30.3.ebuild
+++ /dev/null
@@ -1,651 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit eutils alternatives flag-o-matic toolchain-funcs multilib multiprocessing
-
-PATCH_VER=1
-CROSS_VER=1.3.2
-PATCH_BASE="perl-5.30.0-patches-${PATCH_VER}"
-PATCH_DEV=dilfridge
-
-DIST_AUTHOR=XSAWYERX
-
-# Greatest first, don't include yourself
-# Devel point-releases are not ABI-intercompatible, but stable point releases are
-# BIN_OLDVERSEN is contains only C-ABI-intercompatible versions
-PERL_BIN_OLDVERSEN="5.30.0 5.30.1 5.30.2"
-
-if [[ "${PV##*.}" == "9999" ]]; then
- DIST_VERSION=5.30.0
-else
- DIST_VERSION="${PV/_rc/-RC}"
-fi
-SHORT_PV="${DIST_VERSION%.*}"
-# Even numbered major versions are ABI intercompatible
-# Odd numbered major versions are not
-if [[ $(( ${SHORT_PV#*.} % 2 )) == 1 ]]; then
- SUBSLOT="${DIST_VERSION%-RC*}"
-else
- SUBSLOT="${DIST_VERSION%.*}"
-fi
-# Used only in tar paths
-MY_P="perl-${DIST_VERSION}"
-# Used in library paths
-MY_PV="${DIST_VERSION%-RC*}"
-
-DESCRIPTION="Larry Wall's Practical Extraction and Report Language"
-
-SRC_URI="
- mirror://cpan/src/5.0/${MY_P}.tar.xz
- mirror://cpan/authors/id/${DIST_AUTHOR:0:1}/${DIST_AUTHOR:0:2}/${DIST_AUTHOR}/${MY_P}.tar.xz
- https://github.com/gentoo-perl/perl-patchset/releases/download/${PATCH_BASE}/${PATCH_BASE}.tar.xz
- mirror://gentoo/${PATCH_BASE}.tar.xz
- https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${PATCH_BASE}.tar.xz
- https://github.com/arsv/perl-cross/releases/download/${CROSS_VER}/perl-cross-${CROSS_VER}.tar.gz
-"
-HOMEPAGE="https://www.perl.org/"
-
-LICENSE="|| ( Artistic GPL-1+ )"
-SLOT="0/${SUBSLOT}"
-
-if [[ "${PV##*.}" != "9999" ]] && [[ "${PV/rc//}" == "${PV}" ]] ; then
-KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-fi
-
-IUSE="berkdb debug doc gdbm ithreads"
-
-RDEPEND="
- berkdb? ( sys-libs/db:= )
- gdbm? ( >=sys-libs/gdbm-1.8.3:= )
- app-arch/bzip2
- sys-libs/zlib
-"
-DEPEND="${RDEPEND}"
-PDEPEND="
- >=app-admin/perl-cleaner-2.5
- >=virtual/perl-File-Temp-0.230.400-r2
- >=virtual/perl-Data-Dumper-2.154.0
- virtual/perl-Test-Harness
-"
-# bug 390719, bug 523624
-# virtual/perl-Test-Harness is here for the bundled ExtUtils::MakeMaker
-
-S="${WORKDIR}/${MY_P}"
-
-dual_scripts() {
- src_remove_dual perl-core/Archive-Tar 2.320.0 ptar ptardiff ptargrep
- src_remove_dual perl-core/CPAN 2.220.0 cpan
- src_remove_dual perl-core/Digest-SHA 6.20.0 shasum
- src_remove_dual perl-core/Encode 3.10.0 enc2xs piconv
- src_remove_dual perl-core/ExtUtils-MakeMaker 7.340.0 instmodsh
- src_remove_dual perl-core/ExtUtils-ParseXS 3.400.0 xsubpp
- src_remove_dual perl-core/IO-Compress 2.84.0 zipdetails
- src_remove_dual perl-core/JSON-PP 4.20.0 json_pp
- src_remove_dual perl-core/Module-CoreList 5.202.6.13.0_rc corelist
- src_remove_dual perl-core/Pod-Parser 1.630.0 pod2usage podchecker podselect
- src_remove_dual perl-core/Pod-Perldoc 3.280.100 perldoc
- src_remove_dual perl-core/Test-Harness 3.420.0 prove
- src_remove_dual perl-core/podlators 4.110.0 pod2man pod2text
- src_remove_dual_man perl-core/podlators 4.110.0 /usr/share/man/man1/perlpodstyle.1
-}
-
-check_rebuild() {
- # Fresh install
- if [[ -z "${REPLACING_VERSIONS}" ]]; then
- return 0;
- # Major Upgrade
- # doesn't matter if there's multiple copies, it still needs a rebuild
- # if the string is anything other than "5.CURRENTMAJOR"
- elif [[ "${REPLACING_VERSIONS%.*}" != "${PV%.*}" ]]; then
- echo ""
- ewarn "UPDATE THE PERL MODULES:"
- ewarn "After updating dev-lang/perl the installed Perl modules"
- ewarn "have to be re-installed. In most cases, this is done automatically"
- ewarn "by the package manager, but subsequent steps are still recommended"
- ewarn "to ensure system consistency."
- ewarn
- ewarn "You should start with a depclean to remove any unused perl dependencies"
- ewarn "that may confuse portage in future. Regular depcleans are also encouraged"
- ewarn "as part of your regular update cycle, as that will keep perl upgrades working."
- ewarn "Recommended: emerge --depclean -va"
- ewarn
- ewarn "You should then call perl-cleaner to clean up any old files and trigger any"
- ewarn "remaining rebuilds portage may have missed."
- ewarn "Use: perl-cleaner --all"
- return 0;
-
- # Reinstall w/ USE Change
- elif ( use ithreads && ! has_version dev-lang/perl[ithreads] ) || \
- ( ! use ithreads && has_version dev-lang/perl[ithreads] ) || \
- ( use debug && ! has_version dev-lang/perl[debug] ) || \
- ( ! use debug && has_version dev-lang/perl[debug] ) ; then
- echo ""
- ewarn "TOGGLED USE-FLAGS WARNING:"
- ewarn "You changed one of the use-flags ithreads or debug."
- ewarn "You must rebuild all perl-modules installed."
- ewarn "Use: perl-cleaner --modules ; perl-cleaner --force --libperl"
- fi
-}
-
-pkg_setup() {
- case ${CHOST} in
- *-freebsd*) osname="freebsd" ;;
- *-dragonfly*) osname="dragonfly" ;;
- *-netbsd*) osname="netbsd" ;;
- *-openbsd*) osname="openbsd" ;;
- *-darwin*) osname="darwin" ;;
- *-solaris*) osname="solaris" ;;
- *-cygwin*) osname="cygwin" ;;
- *) osname="linux" ;;
- esac
-
- myarch="${CHOST%%-*}-${osname}"
- if use debug ; then
- myarch+="-debug"
- fi
- if use ithreads ; then
- mythreading="-multi"
- myarch+="-thread"
- fi
-
- PRIV_BASE="/usr/$(get_libdir)/perl5"
- SITE_BASE="/usr/local/$(get_libdir)/perl5"
- VENDOR_BASE="/usr/$(get_libdir)/perl5/vendor_perl"
-
- LIBPERL="libperl$(get_libname ${MY_PV} )"
- PRIV_LIB="${PRIV_BASE}/${MY_PV}"
- ARCH_LIB="${PRIV_BASE}/${MY_PV}/${myarch}${mythreading}"
- SITE_LIB="${SITE_BASE}/${MY_PV}"
- SITE_ARCH="${SITE_BASE}/${MY_PV}/${myarch}${mythreading}"
- VENDOR_LIB="${VENDOR_BASE}/${MY_PV}"
- VENDOR_ARCH="${VENDOR_BASE}/${MY_PV}/${myarch}${mythreading}"
-
- dual_scripts
-}
-
-src_remove_dual_file() {
- local i pkg ver
- pkg="$1"
- ver="$2"
- shift 2
- case "${EBUILD_PHASE:-none}" in
- postinst|postrm)
- for i in "$@" ; do
- alternatives_auto_makesym "${i}" "${i}-[0-9]*"
- done
- ;;
- setup)
- for i in "$@" ; do
- if [[ -f ${EROOT}${i} && ! -h ${EROOT}${i} ]] ; then
- has_version ${pkg} && ewarn "You must reinstall ${pkg} !"
- break
- fi
- done
- ;;
- install)
- for i in "$@" ; do
- if ! [[ -f "${ED}"${i} ]] ; then
- ewarn "${i} does not exist!"
- continue
- fi
- mv "${ED}"${i}{,-${ver}-${P}} || die
- done
- ;;
- esac
-}
-
-src_remove_dual_man() {
- local i pkg ver ff
- pkg="$1"
- ver="$2"
- shift 2
- case "${EBUILD_PHASE:-none}" in
- postinst|postrm)
- for i in "$@" ; do
- ff=`echo "${EROOT}${i%.[0-9]}-${ver}-${P}${i#${i%.[0-9]}}"*`
- ff=${ff##*${i#${i%.[0-9]}}}
- alternatives_auto_makesym "${i}${ff}" "${i%.[0-9]}-[0-9]*"
- done
- ;;
- install)
- for i in "$@" ; do
- if ! [[ -f "${ED}"${i} ]] ; then
- ewarn "${i} does not exist!"
- continue
- fi
- mv "${ED}"${i} "${ED}"${i%.[0-9]}-${ver}-${P}${i#${i%.[0-9]}} || die
- done
- ;;
- esac
-}
-
-src_remove_dual() {
- local i pkg ver
- pkg="$1"
- ver="$2"
- shift 2
- for i in "$@" ; do
- src_remove_dual_file "${pkg}" "${ver}" "/usr/bin/${i}"
- src_remove_dual_man "${pkg}" "${ver}" "/usr/share/man/man1/${i}.1"
- done
-}
-
-src_prepare_update_patchlevel_h() {
- # Copied and modified from debian:
- # Copyright 2011 Niko Tyni
- # This program is free software; you can redistribute it and/or modify
- # it under the same terms as Perl itself.
- local patchdir="${WORKDIR}/patches"
- local prefix
- local patchoutput="patchlevel-gentoo.h"
-
- [[ -f ${patchdir}/series ]] || return 0
-
-while read patch
-do
- patchname=$(echo $patch | sed 's/\.diff$//')
- < $patchdir/$patch sed -e '/^Subject:/ { N; s/\n / / }' | sed -n -e '
-
- # massage the patch headers
- s|^Bug: .*https\?://rt\.perl\.org/.*id=\(.*\).*|[perl #\1]|; tprepend;
- s|^Bug: .*https\?://rt\.cpan\.org/.*id=\(.*\).*|[rt.cpan.org #\1]|; tprepend;
- s|^Bug-Gentoo: ||; tprepend;
- s/^\(Subject\|Description\): //; tappend;
- s|^Origin: .*http://perl5\.git\.perl\.org/perl\.git/commit\(diff\)\?/\(.......\).*|[\2]|; tprepend;
-
- # post-process at the end of input
- $ { x;
- # include the version number in the patchlevel.h description (if available)
- s/List packaged patches/&'" for ${PF}(#${PATCH_VER})"'/;
-
- # escape any backslashes and double quotes
- s|\\|\\\\|g; s|"|\\"|g;
-
- # add a prefix
- s|^|\t,"'"$prefix$patchname"' - |;
- # newlines away
- s/\n/ /g; s/ */ /g;
- # add a suffix
- s/ *$/"/; p
- };
- # stop all processing
- d;
- # label: append to the hold space
- :append H; d;
- # label: prepend to the hold space
- :prepend x; H; d;
- '
-done < "${WORKDIR}"/patches/series > "${S}/${patchoutput}"
-echo "${patchoutput}" >> "${S}/MANIFEST"
-}
-
-src_prepare_perlcross() {
- cp -a ../perl-cross-${CROSS_VER}/* . || die
-
- # bug 604072
- MAKEOPTS+=" -j1"
- export MAKEOPTS
-}
-src_prepare_dynamic() {
- ln -s ${LIBPERL} libperl$(get_libname ${SHORT_PV}) || die
- ln -s ${LIBPERL} libperl$(get_libname ) || die
-}
-
-src_prepare() {
- local patch
- EPATCH_OPTS+=" -p1"
-
- if use hppa ; then
- epatch "${FILESDIR}/${PN}-5.26.2-hppa.patch" # bug 634162
- fi
-
- if [[ ${CHOST} == *-solaris* ]] ; then
- # do NOT mess with nsl, on Solaris this is always necessary,
- # when -lsocket is used e.g. to get h_errno
- sed -i '/gentoo\/no-nsl-cl\.patch/d' "${WORKDIR}/patches/series" || die
- fi
-
- einfo "Applying patches from ${PATCH_BASE} ..."
- while read patch ; do
- EPATCH_SINGLE_MSG=" ${patch} ..."
- epatch "${WORKDIR}"/patches/${patch}
- done < "${WORKDIR}"/patches/series
-
- src_prepare_update_patchlevel_h
-
- tc-is-cross-compiler && src_prepare_perlcross
-
- tc-is-static-only || src_prepare_dynamic
-
- if use gdbm; then
- sed -i "s:INC => .*:INC => \"-I${EROOT}usr/include/gdbm\":g" \
- ext/NDBM_File/Makefile.PL || die
- fi
-
- # Use errno.h from prefix rather than from host system, bug #645804
- if use prefix && [[ -e "${EPREFIX}"/usr/include/errno.h ]] ; then
- sed -i "/my..sysroot/s:'':'${EPREFIX}':" ext/Errno/Errno_pm.PL || die
- fi
-
- if [[ ${CHOST} == *-solaris* ]] ; then
- # set a soname, fix linking against just built libperl
- sed -i -e 's/netbsd\*/netbsd*|solaris*/' Makefile.SH || die
- fi
-
- if [[ ${CHOST} == *-darwin* ]] ; then
- # fix install_name (soname) not to reference $D
- sed -i -e '/install_name `pwd/s/`pwd`/\\$(shrpdir)/' Makefile.SH || die
- fi
-
- default
-}
-
-myconf() {
- # the myconf array is declared in src_configure
- myconf=( "${myconf[@]}" "$@" )
-}
-
-src_configure() {
- declare -a myconf
-
- export LC_ALL="C"
- [[ ${COLUMNS:-1} -ge 1 ]] || unset COLUMNS # bug #394091
-
- # Perl has problems compiling with -Os in your flags with glibc
- use elibc_uclibc || replace-flags "-Os" "-O2"
-
- # xlocale.h is going away in glibc-2.26, so it's counterproductive
- # if we use it and include it in CORE/perl.h ... Perl builds just
- # fine with glibc and locale.h only.
- # However, the darwin prefix people have no locale.h ...
- use elibc_glibc && myconf -Ui_xlocale
-
- # This flag makes compiling crash in interesting ways
- filter-flags "-malign-double"
-
- # Generic LTO broken since 5.28, triggers EUMM failures
- filter-flags "-flto"
-
- use sparc && myconf -Ud_longdbl
-
- export BUILD_BZIP2=0
- export BZIP2_INCLUDE=${EROOT}/usr/include
- export BZIP2_LIB=${EROOT}/usr/$(get_libdir)
-
- export BUILD_ZLIB=False
- export ZLIB_INCLUDE=${EROOT}/usr/include
- export ZLIB_LIB=${EROOT}/usr/$(get_libdir)
-
- # allow either gdbm to provide ndbm (in <gdbm/ndbm.h>) or db1
- myndbm='U'
- mygdbm='U'
- mydb='U'
- if use gdbm ; then
- mygdbm='D'
- if use berkdb ; then
- myndbm='D'
- fi
- fi
- if use berkdb ; then
- mydb='D'
- has_version '=sys-libs/db-1*' && myndbm='D'
- fi
-
- myconf "-${myndbm}i_ndbm" "-${mygdbm}i_gdbm" "-${mydb}i_db"
-
- if use alpha && [[ "$(tc-getCC)" = "ccc" ]] ; then
- ewarn "Perl will not be built with berkdb support, use gcc if you needed it..."
- myconf -Ui_db -Ui_ndbm
- fi
-
- use ithreads && myconf -Dusethreads
-
- if use debug ; then
- append-cflags "-g"
- myconf -DDEBUGGING
- elif [[ ${CFLAGS} == *-g* ]] ; then
- myconf -DDEBUGGING=-g
- else
- myconf -DDEBUGGING=none
- fi
-
- # Autodiscover all old version directories, some of them will even be newer
- # if you downgrade
- if [[ -z ${PERL_OLDVERSEN} ]]; then
- PERL_OLDVERSEN="$(
- find "${EROOT%/}${PRIV_BASE}" "${EROOT%/}${SITE_BASE}" "${EROOT%/}${VENDOR_BASE}" \
- -maxdepth 1 -mindepth 1 -type d -regex '.*/5[.][0-9]+[.][0-9]+$' \
- -printf "%f " 2>/dev/null )"
- fi
- # Fixup versions, removing self match, fixing order and dupes
- PERL_OLDVERSEN="$(
- echo "${PERL_OLDVERSEN}" |\
- tr " " "\n" |\
- grep -vF "${DIST_VERSION%-RC}" |\
- sort -u -nr -t'.' -k1,1 -k2,2 -k3,3
- )"
-
- # Experts who want a "Pure" install can set PERL_OLDVERSEN to an empty string
- if [[ -n "${PERL_OLDVERSEN// }" ]]; then
- local inclist="$(
- for v in ${PERL_OLDVERSEN}; do
- has "${v}" ${PERL_BIN_OLDVERSEN} && echo -n "${v}/${myarch}${mythreading} ";
- echo -n "${v} ";
- done )"
- einfo "This version of perl may partially support modules previously"
- einfo "installed in any of the following paths:"
- for incpath in ${inclist}; do
- [[ -e "${EROOT%/}${VENDOR_BASE}/${incpath}" ]] && einfo " ${EROOT%/}${VENDOR_BASE}/${incpath}"
- [[ -e "${EROOT%/}${PRIV_BASE}/${incpath}" ]] && einfo " ${EROO%/T}${PRIV_BASE}/${incpath}"
- [[ -e "${EROOT%/}${SITE_BASE}/${incpath}" ]] && einfo " ${EROOT%/}${SITE_BASE}/${incpath}"
- done
- einfo "This is a temporary measure and you should aim to cleanup these paths"
- einfo "via world updates and perl-cleaner"
- myconf -Dinc_version_list="${inclist}"
- fi
-
- [[ ${ELIBC} == "FreeBSD" ]] && myconf "-Dlibc=/usr/$(get_libdir)/libc.a"
-
- # Make sure we can do the final link #523730, need to set deployment
- # target to override hardcoded 10.3 which breaks on modern OSX
- [[ ${CHOST} == *-darwin* ]] && \
- myconf "-Dld=env MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} $(tc-getCC)"
-
- # Older macOS with non-Apple GCC chokes on inline in system headers
- # using c89 mode as injected by cflags.SH
- [[ ${CHOST} == *-darwin* && ${CHOST##*darwin} -le 9 ]] && tc-is-gcc && \
- append-cflags -Dinline=__inline__
-
- # fix unaligned access misdetection
- # https://rt.perl.org/Public/Bug/Display.html?id=133495
- # https://rt.perl.org/Public/Bug/Display.html?id=133803
- # bug #676062, bug #688432
- use hppa || use sparc || [[ ${CHOST} == sparc*-solaris* ]] || \
- [[ ${CHOST} == armv5tel* ]] \
- && myconf "-Dd_u32align='define'"
-
- # Prefix: the host system needs not to follow Gentoo multilib stuff, and in
- # Prefix itself we don't do multilib either, so make sure perl can find
- # something compatible.
- if use prefix ; then
- # Set a hook to check for each detected library whether it actually works.
- export libscheck="
- ( echo 'main(){}' > '${T}'/conftest.c &&
- $(tc-getCC) -o '${T}'/conftest '${T}'/conftest.c -l\$thislib >/dev/null 2>/dev/null
- ) || xxx=/dev/null"
-
- # Use all host paths that might contain useful stuff, the hook above will filter out bad choices.
- local paths="/lib/*-linux-gnu /usr/lib/*-linux-gnu /lib64 /lib/64 /usr/lib64 /usr/lib/64 /lib32 /usr/lib32 /lib /usr/lib"
- myconf "-Dlibpth=${EPREFIX}/$(get_libdir) ${EPREFIX}/usr/$(get_libdir) ${paths}"
- elif [[ $(get_libdir) != "lib" ]] ; then
- # We need to use " and not ', as the written config.sh use ' ...
- myconf "-Dlibpth=/usr/local/$(get_libdir) /$(get_libdir) /usr/$(get_libdir)"
- fi
-
- # don't try building ODBM, bug #354453
- disabled_extensions="ODBM_File"
-
- if ! use gdbm ; then
- # workaround for bug #157774: don't try building GDBM related stuff with USE="-gdbm"
- disabled_extensions="${disabled_extensions} GDBM_File NDBM_File"
- fi
-
- myconf -Dnoextensions="${disabled_extensions}"
-
- [[ "${PV##*.}" == "9999" ]] && myconf -Dusedevel -Uversiononly
-
- [[ -n "${EXTRA_ECONF}" ]] && ewarn During Perl build, EXTRA_ECONF=${EXTRA_ECONF}
- # allow fiddling via EXTRA_ECONF, bug 558070
- eval "local -a EXTRA_ECONF=(${EXTRA_ECONF})"
-
- myconf \
- -Duseshrplib \
- -Darchname="${myarch}" \
- -Dcc="$(tc-getCC)" \
- -Doptimize="${CFLAGS}" \
- -Dldflags="${LDFLAGS}" \
- -Dprefix="${EPREFIX}"'/usr' \
- -Dsiteprefix="${EPREFIX}"'/usr/local' \
- -Dvendorprefix="${EPREFIX}"'/usr' \
- -Dscriptdir="${EPREFIX}"'/usr/bin' \
- -Dprivlib="${EPREFIX}${PRIV_LIB}" \
- -Darchlib="${EPREFIX}${ARCH_LIB}" \
- -Dsitelib="${EPREFIX}${SITE_LIB}" \
- -Dsitearch="${EPREFIX}${SITE_ARCH}" \
- -Dvendorlib="${EPREFIX}${VENDOR_LIB}" \
- -Dvendorarch="${EPREFIX}${VENDOR_ARCH}" \
- -Dman1dir="${EPREFIX}"/usr/share/man/man1 \
- -Dman3dir="${EPREFIX}"/usr/share/man/man3 \
- -Dsiteman1dir="${EPREFIX}"/usr/local/man/man1 \
- -Dsiteman3dir="${EPREFIX}"/usr/local/man/man3 \
- -Dvendorman1dir="${EPREFIX}"/usr/share/man/man1 \
- -Dvendorman3dir="${EPREFIX}"/usr/share/man/man3 \
- -Dman1ext='1' \
- -Dman3ext='3pm' \
- -Dlibperl="${LIBPERL}" \
- -Dlocincpth="${EPREFIX}"'/usr/include ' \
- -Dglibpth="${EPREFIX}/$(get_libdir) ${EPREFIX}/usr/$(get_libdir)"' ' \
- -Duselargefiles \
- -Dd_semctl_semun \
- -Dcf_by='Gentoo' \
- -Dmyhostname='localhost' \
- -Dperladmin='root@localhost' \
- -Ud_csh \
- -Dsh="${EPREFIX}"/bin/sh \
- -Dtargetsh="${EPREFIX}"/bin/sh \
- -Uusenm \
- "${myconf[@]}" \
- "${EXTRA_ECONF[@]}"
-
- if tc-is-cross-compiler; then
- ./configure \
- --target="${CHOST}" \
- --build="${CBUILD}" \
- -Dinstallprefix='' \
- -Dinstallusrbinperl='undef' \
- -Dusevendorprefix='define' \
- "${myconf[@]}" \
- || die "Unable to configure"
- else
- sh Configure \
- -des \
- -Dinstallprefix="${EPREFIX}"'/usr' \
- -Dinstallusrbinperl='n' \
- "${myconf[@]}" \
- || die "Unable to configure"
- fi
-}
-
-src_test() {
- export NO_GENTOO_NETWORK_TESTS=1;
- export GENTOO_ASSUME_SANDBOXED="${GENTOO_ASSUME_SANDBOXED:-1}"
- export GENTOO_NO_PORTING_TESTS="${GENTOO_NO_PORTING_TESTS:-1}"
- if [[ ${EUID} == 0 ]] ; then
- ewarn "Test fails with a sandbox error (#328793) if run as root. Skipping tests..."
- return 0
- fi
- use elibc_uclibc && export MAKEOPTS+=" -j1"
- TEST_JOBS="$(makeopts_jobs)" make test_harness || die "test failed"
-}
-
-src_install() {
- local i
- local coredir="${ARCH_LIB}/CORE"
-
- emake DESTDIR="${D}" install
-
- rm -f "${ED}/usr/bin/perl${MY_PV}"
- ln -s perl "${ED}"/usr/bin/perl${MY_PV} || die
-
- if ! tc-is-static-only ; then
- dolib.so "${ED}"${coredir}/${LIBPERL}
- rm -f "${ED}"${coredir}/${LIBPERL}
- ln -sf ${LIBPERL} "${ED}"/usr/$(get_libdir)/libperl$(get_libname ${SHORT_PV}) || die
- ln -sf ${LIBPERL} "${ED}"/usr/$(get_libdir)/libperl$(get_libname) || die
-
- ln -sf ../../../../${LIBPERL} "${ED}"${coredir}/${LIBPERL} || die
- ln -sf ../../../../${LIBPERL} "${ED}"${coredir}/libperl$(get_libname ${SHORT_PV}) || die
- ln -sf ../../../../${LIBPERL} "${ED}"${coredir}/libperl$(get_libname) || die
- fi
-
- rm -rf "${ED}"/usr/share/man/man3 || die "Unable to remove module man pages"
-
- # This removes ${D} from Config.pm
- for i in $(find "${D}" -iname "Config.pm" ) ; do
- einfo "Removing ${D} from ${i}..."
- sed -i -e "s:${D}::" "${i}" || die "Sed failed"
- done
-
- dodoc Changes* README AUTHORS
-
- if use doc ; then
- # HTML Documentation
- # We expect errors, warnings, and such with the following.
-
- dodir /usr/share/doc/${PF}/html
- LD_LIBRARY_PATH=. ./perl installhtml \
- --podroot='.' \
- --podpath='lib:ext:pod:vms' \
- --recurse \
- --htmldir="${ED}/usr/share/doc/${PF}/html"
- fi
-
- [[ -d ${ED}/usr/local ]] && rm -r "${ED}"/usr/local
-
- dual_scripts
-}
-
-pkg_preinst() {
- check_rebuild
-}
-
-pkg_postinst() {
- dual_scripts
-
- if [[ "${ROOT}" = "/" ]] ; then
- local INC DIR file
- INC=$(perl -e 'for $line (@INC) { next if $line eq "."; next if $line =~ m/'${SHORT_PV}'|etc|local|perl$/; print "$line\n" }')
- einfo "Removing old .ph files"
- for DIR in ${INC} ; do
- if [[ -d "${DIR}" ]] ; then
- for file in $(find "${DIR}" -name "*.ph" -type f ) ; do
- rm -f "${file}"
- einfo "<< ${file}"
- done
- fi
- done
- # Silently remove the now empty dirs
- for DIR in ${INC} ; do
- if [[ -d "${DIR}" ]] ; then
- find "${DIR}" -depth -type d -print0 | xargs -0 -r rmdir &> /dev/null
- fi
- done
-
- fi
-}
-
-pkg_postrm() {
- dual_scripts
-}
diff --git a/dev-lang/perl/perl-5.32.0-r1.ebuild b/dev-lang/perl/perl-5.38.2-r2.ebuild
index 96cc75c62b77..29d9fb34d478 100644
--- a/dev-lang/perl/perl-5.32.0-r1.ebuild
+++ b/dev-lang/perl/perl-5.38.2-r2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -6,26 +6,24 @@ EAPI=7
inherit alternatives flag-o-matic toolchain-funcs multilib multiprocessing
PATCH_VER=1
-CROSS_VER=1.3.4
-PATCH_BASE="perl-5.32.0-patches-${PATCH_VER}"
-PATCH_DEV=kentnl
+CROSS_VER=1.5.2
+PATCH_BASE="perl-5.38.0-patches-${PATCH_VER}"
+PATCH_DEV=dilfridge
-DIST_AUTHOR=XSAWYERX
+DIST_AUTHOR=PEVANS
# Greatest first, don't include yourself
# Devel point-releases are not ABI-intercompatible, but stable point releases are
-# BIN_OLDVERSEN is contains only C-ABI-intercompatible versions
+# BIN_OLDVERSEN contains only C-ABI-intercompatible versions
PERL_BIN_OLDVERSEN=""
-# Yes we can.
-PERL_SINGLE_SLOT=y
-
if [[ "${PV##*.}" == "9999" ]]; then
DIST_VERSION=5.30.0
else
DIST_VERSION="${PV/_rc/-RC}"
fi
SHORT_PV="${DIST_VERSION%.*}"
+
# Even numbered major versions are ABI intercompatible
# Odd numbered major versions are not
if [[ $(( ${SHORT_PV#*.} % 2 )) == 1 ]]; then
@@ -33,6 +31,7 @@ if [[ $(( ${SHORT_PV#*.} % 2 )) == 1 ]]; then
else
SUBSLOT="${DIST_VERSION%.*}"
fi
+
# Used only in tar paths
MY_P="perl-${DIST_VERSION}"
# Used in library paths
@@ -43,38 +42,40 @@ DESCRIPTION="Larry Wall's Practical Extraction and Report Language"
SRC_URI="
mirror://cpan/src/5.0/${MY_P}.tar.xz
mirror://cpan/authors/id/${DIST_AUTHOR:0:1}/${DIST_AUTHOR:0:2}/${DIST_AUTHOR}/${MY_P}.tar.xz
- https://github.com/gentoo-perl/perl-patchset/releases/download/${PATCH_BASE}/${PATCH_BASE}.tar.xz
- https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${PATCH_BASE}.tar.xz
+ https://github.com/gentoo-perl/perl-patchset/archive/refs/tags/${PATCH_BASE}.tar.gz
+ https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${PATCH_BASE}.tar.gz
https://github.com/arsv/perl-cross/releases/download/${CROSS_VER}/perl-cross-${CROSS_VER}.tar.gz
"
+
HOMEPAGE="https://www.perl.org/"
LICENSE="|| ( Artistic GPL-1+ )"
SLOT="0/${SUBSLOT}"
if [[ "${PV##*.}" != "9999" ]] && [[ "${PV/rc//}" == "${PV}" ]] ; then
-# SOMEWHAT EXPERIMENTAL CODE, DO NOT USE WITHOUT AN ADULT PRESENT, CHECK CHANGELOG
-# FOR DETAILS
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+ KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
fi
-IUSE="berkdb debug doc gdbm ithreads minimal"
+IUSE="berkdb debug doc gdbm ithreads minimal quadmath"
RDEPEND="
berkdb? ( sys-libs/db:= )
gdbm? ( >=sys-libs/gdbm-1.8.3:= )
app-arch/bzip2
- sys-libs/zlib
+ >=sys-libs/zlib-1.2.12
virtual/libcrypt:=
"
DEPEND="${RDEPEND}"
BDEPEND="${RDEPEND}"
PDEPEND="
+ >=app-admin/perl-cleaner-2.30
!minimal? (
- >=app-admin/perl-cleaner-2.5
+ >=virtual/perl-CPAN-2.290.0
+ >=virtual/perl-Encode-3.120.0
>=virtual/perl-File-Temp-0.230.400-r2
>=virtual/perl-Data-Dumper-2.154.0
+ >=virtual/perl-Math-BigInt-1.999.842
virtual/perl-Test-Harness
)
"
@@ -84,21 +85,21 @@ PDEPEND="
S="${WORKDIR}/${MY_P}"
dual_scripts() {
- src_remove_dual perl-core/Archive-Tar 2.360.0 ptar ptardiff ptargrep
- src_remove_dual perl-core/CPAN 2.270.0 cpan
- src_remove_dual perl-core/Digest-SHA 6.20.0 shasum
- src_remove_dual perl-core/Encode 3.60.0 enc2xs piconv
- src_remove_dual perl-core/ExtUtils-MakeMaker 7.440.0 instmodsh
- src_remove_dual perl-core/ExtUtils-ParseXS 3.400.0 xsubpp
- src_remove_dual perl-core/IO-Compress 2.93.0 zipdetails
- src_remove_dual perl-core/JSON-PP 4.40.0 json_pp
- src_remove_dual perl-core/Module-CoreList 5.202.6.20 corelist
- src_remove_dual perl-core/Pod-Checker 1.730.0 podchecker
+ src_remove_dual perl-core/Archive-Tar 2.400.0 ptar ptardiff ptargrep
+ src_remove_dual perl-core/CPAN 2.360.0 cpan
+ src_remove_dual perl-core/Digest-SHA 6.40.0 shasum
+ src_remove_dual perl-core/Encode 3.190.0 enc2xs piconv
+ src_remove_dual perl-core/ExtUtils-MakeMaker 7.700.0 instmodsh
+ src_remove_dual perl-core/ExtUtils-ParseXS 3.510.0 xsubpp
+ src_remove_dual perl-core/IO-Compress 2.204.0 zipdetails
+ src_remove_dual perl-core/JSON-PP 4.160.0 json_pp
+ src_remove_dual perl-core/Module-CoreList 5.202.311.290 corelist
+ src_remove_dual perl-core/Pod-Checker 1.750.0 podchecker
src_remove_dual perl-core/Pod-Perldoc 3.280.100 perldoc
- src_remove_dual perl-core/Pod-Usage 1.690.0 pod2usage
- src_remove_dual perl-core/Test-Harness 3.420.0 prove
- src_remove_dual perl-core/podlators 4.140.0 pod2man pod2text
- src_remove_dual_man perl-core/podlators 4.140.0 /usr/share/man/man1/perlpodstyle.1
+ src_remove_dual perl-core/Pod-Usage 2.30.0 pod2usage
+ src_remove_dual perl-core/Test-Harness 3.440.0 prove
+ src_remove_dual perl-core/podlators 5.10.0 pod2man pod2text
+ src_remove_dual_man perl-core/podlators 5.10.0 /usr/share/man/man1/perlpodstyle.1
}
check_rebuild() {
@@ -127,13 +128,16 @@ check_rebuild() {
return 0;
# Reinstall w/ USE Change
- elif ( use ithreads && ! has_version dev-lang/perl[ithreads] ) || \
+ elif
+ ( use ithreads && ! has_version dev-lang/perl[ithreads] ) || \
( ! use ithreads && has_version dev-lang/perl[ithreads] ) || \
+ ( use quadmath && ! has_version dev-lang/perl[quadmath] ) || \
+ ( ! use quadmath && has_version dev-lang/perl[quadmath] ) || \
( use debug && ! has_version dev-lang/perl[debug] ) || \
( ! use debug && has_version dev-lang/perl[debug] ) ; then
echo ""
ewarn "TOGGLED USE-FLAGS WARNING:"
- ewarn "You changed one of the use-flags ithreads or debug."
+ ewarn "You changed one of the use-flags ithreads, quadmath, or debug."
ewarn "You must rebuild all perl-modules installed."
ewarn "Use: perl-cleaner --modules ; perl-cleaner --force --libperl"
fi
@@ -141,13 +145,8 @@ check_rebuild() {
pkg_setup() {
case ${CHOST} in
- *-freebsd*) osname="freebsd" ;;
- *-dragonfly*) osname="dragonfly" ;;
- *-netbsd*) osname="netbsd" ;;
- *-openbsd*) osname="openbsd" ;;
*-darwin*) osname="darwin" ;;
*-solaris*) osname="solaris" ;;
- *-cygwin*) osname="cygwin" ;;
*) osname="linux" ;;
esac
@@ -155,6 +154,9 @@ pkg_setup() {
if use debug ; then
myarch+="-debug"
fi
+ if use quadmath ; then
+ myarch+="-quadmath"
+ fi
if use ithreads ; then
mythreading="-multi"
myarch+="-thread"
@@ -166,24 +168,12 @@ pkg_setup() {
LIBPERL="libperl$(get_libname ${MY_PV} )"
- # This ENV var tells perl to build with a directory like "5.30"
- # regardless of its patch version. This is for experts only
- # at this point.
- if [[ -z "${PERL_SINGLE_SLOT}" ]]; then
- PRIV_LIB="${PRIV_BASE}/${MY_PV}"
- ARCH_LIB="${PRIV_BASE}/${MY_PV}/${myarch}${mythreading}"
- SITE_LIB="${SITE_BASE}/${MY_PV}"
- SITE_ARCH="${SITE_BASE}/${MY_PV}/${myarch}${mythreading}"
- VENDOR_LIB="${VENDOR_BASE}/${MY_PV}"
- VENDOR_ARCH="${VENDOR_BASE}/${MY_PV}/${myarch}${mythreading}"
- else
- PRIV_LIB="${PRIV_BASE}/${SUBSLOT}"
- ARCH_LIB="${PRIV_BASE}/${SUBSLOT}/${myarch}${mythreading}"
- SITE_LIB="${SITE_BASE}/${SUBSLOT}"
- SITE_ARCH="${SITE_BASE}/${SUBSLOT}/${myarch}${mythreading}"
- VENDOR_LIB="${VENDOR_BASE}/${SUBSLOT}"
- VENDOR_ARCH="${VENDOR_BASE}/${SUBSLOT}/${myarch}${mythreading}"
- fi
+ PRIV_LIB="${PRIV_BASE}/${SUBSLOT}"
+ ARCH_LIB="${PRIV_BASE}/${SUBSLOT}/${myarch}${mythreading}"
+ SITE_LIB="${SITE_BASE}/${SUBSLOT}"
+ SITE_ARCH="${SITE_BASE}/${SUBSLOT}/${myarch}${mythreading}"
+ VENDOR_LIB="${VENDOR_BASE}/${SUBSLOT}"
+ VENDOR_ARCH="${VENDOR_BASE}/${SUBSLOT}/${myarch}${mythreading}"
dual_scripts
}
@@ -258,10 +248,14 @@ src_remove_dual() {
src_prepare_perlcross() {
cp -a ../perl-cross-${CROSS_VER}/* . || die
+ # bug 794463, needs further analysis what is exactly wrong here
+ eapply "${FILESDIR}/perl-5.34.0-crossfit.patch"
+
# bug 604072
MAKEOPTS+=" -j1"
export MAKEOPTS
}
+
src_prepare_dynamic() {
ln -s ${LIBPERL} libperl$(get_libname ${SHORT_PV}) || die
ln -s ${LIBPERL} libperl$(get_libname ) || die
@@ -290,9 +284,10 @@ add_patch() {
printf "%s\n" "$@" > "${infodir}/${dest_name}.bugs" || die "Couldn't write ${dest_name}.bugs"
fi
}
+
# Remove a patch using a glob expr
# eg:
-# rm_patch *-darin-Use-CC*
+# rm_patch *-darwin-Use-CC*
#
rm_patch() {
local patchdir="${WORKDIR}/patches"
@@ -305,6 +300,7 @@ rm_patch() {
ewarn "No ${expr} found in ${patchdir} to remove"
fi
}
+
# Yes, this is a reasonable amount of code for something seemingly simple
# but this is far easier to debug when things go wrong, and things went wrong
# multiple times while I was getting the exact number of slashes right, which
@@ -386,17 +382,25 @@ apply_patchdir() {
printf "%s\n" "${patchoutput}" >> "${S}/MANIFEST"
}
+
src_prepare() {
+
local patchdir="${WORKDIR}/patches"
+ mv -v "${WORKDIR}/perl-patchset-${PATCH_BASE}/patches" "${WORKDIR}/patches" || die
+ mv -v "${WORKDIR}/perl-patchset-${PATCH_BASE}/patch-info" "${WORKDIR}/patch-info" || die
+
# Prepare Patch dir with additional patches / remove unwanted patches
# Inject bug/desc entries for perl -V
- if use hppa ; then
- # bug 634162
- add_patch "${FILESDIR}/${PN}-5.26.2-hppa.patch" "100-5.26.2-hppa.patch"\
- "Fix broken miniperl on hppa"\
- "https://bugs.debian.org/869122" "https://bugs.gentoo.org/634162"
- fi
+ # Old example:
+ # add_patch "${FILESDIR}/${PN}-5.26.2-hppa.patch" "100-5.26.2-hppa.patch"\
+ # "Fix broken miniperl on hppa"\
+ # "https://bugs.debian.org/869122" "https://bugs.gentoo.org/634162"
+ add_patch "${FILESDIR}/${PN}-5.36.0-fix-configure-for-clang.patch" \
+ "100-5.36.0-fix-configure-for-clang.patch" \
+ "Fix clang check in configure" \
+ "https://github.com/Perl/perl5/issues/21099"
+
if [[ ${CHOST} == *-solaris* ]] ; then
# do NOT mess with nsl, on Solaris this is always necessary,
# when -lsocket is used e.g. to get h_errno
@@ -428,9 +432,11 @@ src_prepare() {
# fix install_name (soname) not to reference $D
sed -i -e '/install_name `pwd/s/`pwd`/\\$(shrpdir)/' Makefile.SH || die
- # Upstreamed, but not in this version.
- # Need to recognise macOS 11 / 10.16. #757249
- eapply "${FILESDIR}/${PN}-5.30.3-darwin-macos11.patch"
+ # fix environ linkage absence (only a real issue on Darwin9)
+ if [[ ${CHOST##*-darwin} -le 9 ]] ; then
+ sed -i -e '/^PLDLFLAGS =/s/=/= -include crt_externs.h -Denviron="(*_NSGetEnviron())"/' \
+ Makefile.SH || die
+ fi
fi
default
@@ -447,16 +453,10 @@ myconf() {
# /usr/local/lib64/perl5/<NUMBER>
# /usr/lib64/perl5/vendor_perl/<NUMBER>
#
-# All values of NUMBER must be like "5.x.y", unless PERL_SUPPORT_SINGLE_SLOT
-# is enabled, where it will also allow numbers like "5.x"
+# All values of NUMBER must be like "5.x.y" or like "5.x"
#
-# PERL_SUPPORT_SINGLE_SLOT should only be used to transition *away* from PERL_SINGLE_SLOT
-# if you used that.
find_candidate_inc_versions() {
- local regex='.*/5[.][0-9]+[.][0-9]+$';
- if [[ ! -z "${PERL_SUPPORT_SINGLE_SLOT}" || ! -z "${PERL_SINGLE_SLOT}" ]]; then
- regex='.*/5[.][0-9]+\([.][0-9]+\|\)$'
- fi
+ local regex='.*/5[.][0-9]+\([.][0-9]+\|\)$'
local dirs=(
"${EROOT}${PRIV_BASE}"
"${EROOT}${SITE_BASE}"
@@ -480,13 +480,11 @@ find_candidate_inc_versions() {
einfo "Scanning for old @INC dirs matching '$regex' in: ${dirs[*]}"
find "${dirs[@]}" -maxdepth 1 -mindepth 1 -type d -regex "${regex}" -printf "%f " 2>/dev/null
}
+
# Sort versions passed versiony-ly, remove self-version if present
# dedup. Takes each version as an argument
sanitize_inc_versions() {
- local vexclude="${DIST_VERSION%-RC}"
- if [[ ! -z "${PERL_SINGLE_SLOT}" ]]; then
- vexclude="${SUBSLOT}"
- fi
+ local vexclude="${SUBSLOT}"
einfo "Normalizing/Sorting candidate list: $*"
einfo " to remove '${vexclude}'"
# Note, general numeric sort has to be used
@@ -498,22 +496,18 @@ sanitize_inc_versions() {
}
versions_to_inclist() {
- local oldv="${PERL_BIN_OLDVERSEN}"
- if [[ ! -z "${PERL_SINGLE_SLOT}" ]]; then
- oldv="${DIST_VERSION%-RC} ${PERL_BIN_OLDVERSEN}"
- fi
+ local oldv="${DIST_VERSION%-RC} ${PERL_BIN_OLDVERSEN}"
+
for v; do
has "${v}" ${oldv} && echo -n "${v}/${myarch}${mythreading}/ ";
echo -n "${v}/ ";
done
}
+
versions_to_gentoolibdirs() {
- local oldv="${PERL_BIN_OLDVERSEN}"
+ local oldv="${DIST_VERSION%-RC} ${PERL_BIN_OLDVERSEN}"
local root
local v
- if [[ ! -z "${PERL_SINGLE_SLOT}" ]]; then
- oldv="${DIST_VERSION%-RC} ${PERL_BIN_OLDVERSEN}"
- fi
for v; do
for root in "${PRIV_BASE}" "${VENDOR_BASE}" "${SITE_BASE}"; do
local fullpath="${EROOT}${root}/${v}"
@@ -532,7 +526,7 @@ src_configure() {
[[ ${COLUMNS:-1} -ge 1 ]] || unset COLUMNS # bug #394091
# Perl has problems compiling with -Os in your flags with glibc
- use elibc_uclibc || replace-flags "-Os" "-O2"
+ replace-flags "-Os" "-O2"
# xlocale.h is going away in glibc-2.26, so it's counterproductive
# if we use it and include it in CORE/perl.h ... Perl builds just
@@ -544,10 +538,19 @@ src_configure() {
filter-flags "-malign-double"
# Generic LTO broken since 5.28, triggers EUMM failures
- filter-flags "-flto"
+ filter-lto
+
+ # On musl we dont want to use largefile *64 types, since 1) normal
+ # types are 64bit / largefile anyway and 2) the *64 types are going
+ # away in 1.2.4... bug #911233
+ use elibc_musl && myconf -Ud_off64_t
use sparc && myconf -Ud_longdbl
+ # This urgently needs debugging - on m68k, miniperl crashes during
+ # build otherwise..
+ use m68k && append-ldflags -Wl,-z,norelro
+
export BUILD_BZIP2=0
export BZIP2_INCLUDE=${EROOT}/usr/include
export BZIP2_LIB=${EROOT}/usr/$(get_libdir)
@@ -580,6 +583,8 @@ src_configure() {
use ithreads && myconf -Dusethreads
+ use quadmath && myconf -Dusequadmath
+
if use debug ; then
append-cflags "-g"
myconf -DDEBUGGING
@@ -589,6 +594,17 @@ src_configure() {
myconf -DDEBUGGING=none
fi
+ # modifying 'optimize' prevents cross configure script from appending required flags
+ if tc-is-cross-compiler; then
+ append-cflags "-fwrapv"
+
+ # bug #913171
+ export HOSTCFLAGS="${CFLAGS_FOR_BUILD} -D_GNU_SOURCE"
+ fi
+
+ # bug #877659, bug #821577
+ append-cflags -fno-strict-aliasing
+
# Autodiscover all old version directories, some of them will even be newer
# if you downgrade
if [[ -z ${PERL_OLDVERSEN} ]]; then
@@ -622,13 +638,11 @@ src_configure() {
myconf "-Dld=env MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} $(tc-getCC)"
# Older macOS with non-Apple GCC chokes on inline in system headers
- # using c89 mode as injected by cflags.SH
+ # using c89 mode as injected by cflags.SH, in addition, we override
+ # cflags, so we loose PERL_DARWIN which enables compat code that
+ # apparently on more recent macOS releases is no longer necessary
[[ ${CHOST} == *-darwin* && ${CHOST##*darwin} -le 9 ]] && tc-is-gcc && \
- append-cflags -Dinline=__inline__
-
- # flock on 32-bit sparc Solaris is broken, fall back to fcntl
- [[ ${CHOST} == sparc-*-solaris* ]] && \
- myconf -Ud_flock
+ append-cflags -Dinline=__inline__ -DPERL_DARWIN
# Prefix: the host system needs not to follow Gentoo multilib stuff, and in
# Prefix itself we don't do multilib either, so make sure perl can find
@@ -674,6 +688,7 @@ src_configure() {
-Dnm="$(tc-getNM)" \
-Dcpp="$(tc-getCPP)" \
-Dranlib="$(tc-getRANLIB)" \
+ -Accflags="${CFLAGS} -DNO_PERL_RAND_SEED" \
-Doptimize="${CFLAGS}" \
-Dldflags="${LDFLAGS}" \
-Dprefix="${EPREFIX}"'/usr' \
@@ -706,7 +721,6 @@ src_configure() {
-Dsh="${EPREFIX}"/bin/sh \
-Dtargetsh="${EPREFIX}"/bin/sh \
-Uusenm \
- "${myconf[@]}" \
"${EXTRA_ECONF[@]}"
if tc-is-cross-compiler; then
@@ -736,7 +750,6 @@ src_test() {
ewarn "Test fails with a sandbox error (#328793) if run as root. Skipping tests..."
return 0
fi
- use elibc_uclibc && export MAKEOPTS+=" -j1"
TEST_JOBS="$(makeopts_jobs)" make test_harness || die "test failed"
}
@@ -794,7 +807,7 @@ pkg_preinst() {
pkg_postinst() {
dual_scripts
- if [[ "${ROOT}" = "/" ]] ; then
+ if [[ -z "${ROOT}" ]] ; then
local INC DIR file
INC=$(perl -e 'for $line (@INC) { next if $line eq "."; next if $line =~ m/'${SHORT_PV}'|etc|local|perl$/; print "$line\n" }')
einfo "Removing old .ph files"
diff --git a/dev-lang/perl/perl-5.30.3-r2.ebuild b/dev-lang/perl/perl-5.38.2-r3.ebuild
index c8e7c2a615b2..fddc6f527038 100644
--- a/dev-lang/perl/perl-5.30.3-r2.ebuild
+++ b/dev-lang/perl/perl-5.38.2-r3.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -6,16 +6,16 @@ EAPI=7
inherit alternatives flag-o-matic toolchain-funcs multilib multiprocessing
PATCH_VER=1
-CROSS_VER=1.3.4
-PATCH_BASE="perl-5.30.3-patches-${PATCH_VER}"
-PATCH_DEV=kentnl
+CROSS_VER=1.5.2
+PATCH_BASE="perl-5.38.0-patches-${PATCH_VER}"
+PATCH_DEV=dilfridge
-DIST_AUTHOR=XSAWYERX
+DIST_AUTHOR=PEVANS
# Greatest first, don't include yourself
# Devel point-releases are not ABI-intercompatible, but stable point releases are
-# BIN_OLDVERSEN is contains only C-ABI-intercompatible versions
-PERL_BIN_OLDVERSEN="5.30.0 5.30.1 5.30.2"
+# BIN_OLDVERSEN contains only C-ABI-intercompatible versions
+PERL_BIN_OLDVERSEN=""
if [[ "${PV##*.}" == "9999" ]]; then
DIST_VERSION=5.30.0
@@ -23,6 +23,7 @@ else
DIST_VERSION="${PV/_rc/-RC}"
fi
SHORT_PV="${DIST_VERSION%.*}"
+
# Even numbered major versions are ABI intercompatible
# Odd numbered major versions are not
if [[ $(( ${SHORT_PV#*.} % 2 )) == 1 ]]; then
@@ -30,6 +31,7 @@ if [[ $(( ${SHORT_PV#*.} % 2 )) == 1 ]]; then
else
SUBSLOT="${DIST_VERSION%.*}"
fi
+
# Used only in tar paths
MY_P="perl-${DIST_VERSION}"
# Used in library paths
@@ -37,63 +39,68 @@ MY_PV="${DIST_VERSION%-RC*}"
DESCRIPTION="Larry Wall's Practical Extraction and Report Language"
+HOMEPAGE="https://www.perl.org/"
+
SRC_URI="
mirror://cpan/src/5.0/${MY_P}.tar.xz
mirror://cpan/authors/id/${DIST_AUTHOR:0:1}/${DIST_AUTHOR:0:2}/${DIST_AUTHOR}/${MY_P}.tar.xz
- https://github.com/gentoo-perl/perl-patchset/releases/download/${PATCH_BASE}/${PATCH_BASE}.tar.xz
- https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${PATCH_BASE}.tar.xz
+ https://github.com/gentoo-perl/perl-patchset/archive/refs/tags/${PATCH_BASE}.tar.gz
+ https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${PATCH_BASE}.tar.gz
https://github.com/arsv/perl-cross/releases/download/${CROSS_VER}/perl-cross-${CROSS_VER}.tar.gz
"
-HOMEPAGE="https://www.perl.org/"
+
+S="${WORKDIR}/${MY_P}"
LICENSE="|| ( Artistic GPL-1+ )"
+
SLOT="0/${SUBSLOT}"
if [[ "${PV##*.}" != "9999" ]] && [[ "${PV/rc//}" == "${PV}" ]] ; then
-# SOMEWHAT EXPERIMENTAL CODE, DO NOT USE WITHOUT AN ADULT PRESENT, CHECK CHANGELOG
-# FOR DETAILS
-KEYWORDS=""
-# KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+ KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
fi
-IUSE="berkdb debug doc gdbm ithreads"
+IUSE="berkdb perl_features_debug doc gdbm perl_features_ithreads minimal perl_features_quadmath"
RDEPEND="
berkdb? ( sys-libs/db:= )
gdbm? ( >=sys-libs/gdbm-1.8.3:= )
app-arch/bzip2
- sys-libs/zlib
+ >=sys-libs/zlib-1.2.12
virtual/libcrypt:=
"
DEPEND="${RDEPEND}"
BDEPEND="${RDEPEND}"
PDEPEND="
- >=app-admin/perl-cleaner-2.5
- >=virtual/perl-File-Temp-0.230.400-r2
- >=virtual/perl-Data-Dumper-2.154.0
- virtual/perl-Test-Harness
+ >=app-admin/perl-cleaner-2.30
+ !minimal? (
+ >=virtual/perl-CPAN-2.290.0
+ >=virtual/perl-Encode-3.120.0
+ >=virtual/perl-File-Temp-0.230.400-r2
+ >=virtual/perl-Data-Dumper-2.154.0
+ >=virtual/perl-Math-BigInt-1.999.842
+ virtual/perl-Test-Harness
+ )
"
# bug 390719, bug 523624
# virtual/perl-Test-Harness is here for the bundled ExtUtils::MakeMaker
-S="${WORKDIR}/${MY_P}"
-
dual_scripts() {
- src_remove_dual perl-core/Archive-Tar 2.320.0 ptar ptardiff ptargrep
- src_remove_dual perl-core/CPAN 2.220.0 cpan
- src_remove_dual perl-core/Digest-SHA 6.20.0 shasum
- src_remove_dual perl-core/Encode 3.10.0 enc2xs piconv
- src_remove_dual perl-core/ExtUtils-MakeMaker 7.340.0 instmodsh
- src_remove_dual perl-core/ExtUtils-ParseXS 3.400.0 xsubpp
- src_remove_dual perl-core/IO-Compress 2.84.0 zipdetails
- src_remove_dual perl-core/JSON-PP 4.20.0 json_pp
- src_remove_dual perl-core/Module-CoreList 5.202.6.13.0_rc corelist
- src_remove_dual perl-core/Pod-Parser 1.630.0 pod2usage podchecker podselect
+ src_remove_dual perl-core/Archive-Tar 2.400.0 ptar ptardiff ptargrep
+ src_remove_dual perl-core/CPAN 2.360.0 cpan
+ src_remove_dual perl-core/Digest-SHA 6.40.0 shasum
+ src_remove_dual perl-core/Encode 3.190.0 enc2xs piconv
+ src_remove_dual perl-core/ExtUtils-MakeMaker 7.700.0 instmodsh
+ src_remove_dual perl-core/ExtUtils-ParseXS 3.510.0 xsubpp
+ src_remove_dual perl-core/IO-Compress 2.204.0 zipdetails
+ src_remove_dual perl-core/JSON-PP 4.160.0 json_pp
+ src_remove_dual perl-core/Module-CoreList 5.202.311.290 corelist
+ src_remove_dual perl-core/Pod-Checker 1.750.0 podchecker
src_remove_dual perl-core/Pod-Perldoc 3.280.100 perldoc
- src_remove_dual perl-core/Test-Harness 3.420.0 prove
- src_remove_dual perl-core/podlators 4.110.0 pod2man pod2text
- src_remove_dual_man perl-core/podlators 4.110.0 /usr/share/man/man1/perlpodstyle.1
+ src_remove_dual perl-core/Pod-Usage 2.30.0 pod2usage
+ src_remove_dual perl-core/Test-Harness 3.440.0 prove
+ src_remove_dual perl-core/podlators 5.10.0 pod2man pod2text
+ src_remove_dual_man perl-core/podlators 5.10.0 /usr/share/man/man1/perlpodstyle.1
}
check_rebuild() {
@@ -122,35 +129,65 @@ check_rebuild() {
return 0;
# Reinstall w/ USE Change
- elif ( use ithreads && ! has_version dev-lang/perl[ithreads] ) || \
- ( ! use ithreads && has_version dev-lang/perl[ithreads] ) || \
- ( use debug && ! has_version dev-lang/perl[debug] ) || \
- ( ! use debug && has_version dev-lang/perl[debug] ) ; then
+ elif
+ ( use perl_features_ithreads && ( has_version '<dev-lang/perl-5.38.2-r3[-ithreads]' || has_version '>=dev-lang/perl-5.38.2-r3[-perl_features_ithreads]' ) ) || \
+ ( ! use perl_features_ithreads && ( has_version '<dev-lang/perl-5.38.2-r3[ithreads]' || has_version '>=dev-lang/perl-5.38.2-r3[perl_features_ithreads]' ) ) || \
+ ( use perl_features_quadmath && ( has_version '<dev-lang/perl-5.38.2-r3[-quadmath]' || has_version '>=dev-lang/perl-5.38.2-r3[-perl_features_quadmath]' ) ) || \
+ ( ! use perl_features_quadmath && ( has_version '<dev-lang/perl-5.38.2-r3[quadmath]' || has_version '>=dev-lang/perl-5.38.2-r3[perl_features_quadmath]' ) ) || \
+ ( use perl_features_debug && ( has_version '<dev-lang/perl-5.38.2-r3[-debug]' || has_version '>=dev-lang/perl-5.38.2-r3[-perl_features_debug]' ) ) || \
+ ( ! use perl_features_debug && ( has_version '<dev-lang/perl-5.38.2-r3[debug]' || has_version '>=dev-lang/perl-5.38.2-r3[perl_features_debug]' ) ) ; then
echo ""
- ewarn "TOGGLED USE-FLAGS WARNING:"
- ewarn "You changed one of the use-flags ithreads or debug."
- ewarn "You must rebuild all perl-modules installed."
+ ewarn "TOGGLED PERL FEATURES WARNING:"
+ ewarn "You changed one of the PERL_FEATURES flags ithreads, quadmath, or debug."
+ ewarn "You must rebuild all perl-modules installed. Mostly this should be done automatically"
+ ewarn "via the flag changes of the packages. If the rebuild fails, use perl-cleaner."
ewarn "Use: perl-cleaner --modules ; perl-cleaner --force --libperl"
+ ewarn
+ ewarn "NOTE: Previous to perl-5.38.2-r3, these flags were useflags for dev-lang/perl."
+ ewarn "If you just upgraded and do not intend to change anything, carry the same settings over"
+ ewarn "into a global PERL_FEATURES variable set in make.conf. E.g., "
+ ewarn "dev-lang/perl[ithreads,quadmath] becomes PERL_FEATURES=\"ithreads quadmath\""
+ fi
+}
+
+pkg_pretend() {
+ if \
+ ( use perl_features_ithreads && has_version '<dev-lang/perl-5.38.2-r3[-ithreads]' ) || \
+ ( ! use perl_features_ithreads && has_version '<dev-lang/perl-5.38.2-r3[ithreads]' ) || \
+ ( use perl_features_quadmath && has_version '<dev-lang/perl-5.38.2-r3[-quadmath]' ) || \
+ ( ! use perl_features_quadmath && has_version '<dev-lang/perl-5.38.2-r3[quadmath]' ) || \
+ ( use perl_features_debug && has_version '<dev-lang/perl-5.38.2-r3[-debug]' ) || \
+ ( ! use perl_features_debug && has_version '<dev-lang/perl-5.38.2-r3[debug]' ) ; \
+ then
+ echo ""
+ ewarn "As of dev-lang/perl-5.38.2-r3, the useflags debug, ithreads, quadmath move into"
+ ewarn "a use-expand variable PERL_FEATURES, which should be set globally in make.conf."
+ ewarn "It appears that you have not set this variable properly yet."
+ ewarn ""
+ ewarn "Giving you a chance to abort and read the corresponding news item now..."
+ for n in 10 9 8 7 6 5 4 3 2 1 ; do
+ echo -n "${n} "
+ sleep 2
+ done;
+ echo "continuing."
fi
}
pkg_setup() {
case ${CHOST} in
- *-freebsd*) osname="freebsd" ;;
- *-dragonfly*) osname="dragonfly" ;;
- *-netbsd*) osname="netbsd" ;;
- *-openbsd*) osname="openbsd" ;;
*-darwin*) osname="darwin" ;;
*-solaris*) osname="solaris" ;;
- *-cygwin*) osname="cygwin" ;;
*) osname="linux" ;;
esac
myarch="${CHOST%%-*}-${osname}"
- if use debug ; then
+ if use perl_features_debug ; then
myarch+="-debug"
fi
- if use ithreads ; then
+ if use perl_features_quadmath ; then
+ myarch+="-quadmath"
+ fi
+ if use perl_features_ithreads ; then
mythreading="-multi"
myarch+="-thread"
fi
@@ -161,24 +198,12 @@ pkg_setup() {
LIBPERL="libperl$(get_libname ${MY_PV} )"
- # This ENV var tells perl to build with a directory like "5.30"
- # regardless of its patch version. This is for experts only
- # at this point.
- if [[ -z "${PERL_SINGLE_SLOT}" ]]; then
- PRIV_LIB="${PRIV_BASE}/${MY_PV}"
- ARCH_LIB="${PRIV_BASE}/${MY_PV}/${myarch}${mythreading}"
- SITE_LIB="${SITE_BASE}/${MY_PV}"
- SITE_ARCH="${SITE_BASE}/${MY_PV}/${myarch}${mythreading}"
- VENDOR_LIB="${VENDOR_BASE}/${MY_PV}"
- VENDOR_ARCH="${VENDOR_BASE}/${MY_PV}/${myarch}${mythreading}"
- else
- PRIV_LIB="${PRIV_BASE}/${SUBSLOT}"
- ARCH_LIB="${PRIV_BASE}/${SUBSLOT}/${myarch}${mythreading}"
- SITE_LIB="${SITE_BASE}/${SUBSLOT}"
- SITE_ARCH="${SITE_BASE}/${SUBSLOT}/${myarch}${mythreading}"
- VENDOR_LIB="${VENDOR_BASE}/${SUBSLOT}"
- VENDOR_ARCH="${VENDOR_BASE}/${SUBSLOT}/${myarch}${mythreading}"
- fi
+ PRIV_LIB="${PRIV_BASE}/${SUBSLOT}"
+ ARCH_LIB="${PRIV_BASE}/${SUBSLOT}/${myarch}${mythreading}"
+ SITE_LIB="${SITE_BASE}/${SUBSLOT}"
+ SITE_ARCH="${SITE_BASE}/${SUBSLOT}/${myarch}${mythreading}"
+ VENDOR_LIB="${VENDOR_BASE}/${SUBSLOT}"
+ VENDOR_ARCH="${VENDOR_BASE}/${SUBSLOT}/${myarch}${mythreading}"
dual_scripts
}
@@ -253,10 +278,14 @@ src_remove_dual() {
src_prepare_perlcross() {
cp -a ../perl-cross-${CROSS_VER}/* . || die
+ # bug 794463, needs further analysis what is exactly wrong here
+ eapply "${FILESDIR}/perl-5.34.0-crossfit.patch"
+
# bug 604072
MAKEOPTS+=" -j1"
export MAKEOPTS
}
+
src_prepare_dynamic() {
ln -s ${LIBPERL} libperl$(get_libname ${SHORT_PV}) || die
ln -s ${LIBPERL} libperl$(get_libname ) || die
@@ -285,9 +314,10 @@ add_patch() {
printf "%s\n" "$@" > "${infodir}/${dest_name}.bugs" || die "Couldn't write ${dest_name}.bugs"
fi
}
+
# Remove a patch using a glob expr
# eg:
-# rm_patch *-darin-Use-CC*
+# rm_patch *-darwin-Use-CC*
#
rm_patch() {
local patchdir="${WORKDIR}/patches"
@@ -300,6 +330,7 @@ rm_patch() {
ewarn "No ${expr} found in ${patchdir} to remove"
fi
}
+
# Yes, this is a reasonable amount of code for something seemingly simple
# but this is far easier to debug when things go wrong, and things went wrong
# multiple times while I was getting the exact number of slashes right, which
@@ -381,17 +412,25 @@ apply_patchdir() {
printf "%s\n" "${patchoutput}" >> "${S}/MANIFEST"
}
+
src_prepare() {
+
local patchdir="${WORKDIR}/patches"
+ mv -v "${WORKDIR}/perl-patchset-${PATCH_BASE}/patches" "${WORKDIR}/patches" || die
+ mv -v "${WORKDIR}/perl-patchset-${PATCH_BASE}/patch-info" "${WORKDIR}/patch-info" || die
+
# Prepare Patch dir with additional patches / remove unwanted patches
# Inject bug/desc entries for perl -V
- if use hppa ; then
- # bug 634162
- add_patch "${FILESDIR}/${PN}-5.26.2-hppa.patch" "100-5.26.2-hppa.patch"\
- "Fix broken miniperl on hppa"\
- "https://bugs.debian.org/869122" "https://bugs.gentoo.org/634162"
- fi
+ # Old example:
+ # add_patch "${FILESDIR}/${PN}-5.26.2-hppa.patch" "100-5.26.2-hppa.patch"\
+ # "Fix broken miniperl on hppa"\
+ # "https://bugs.debian.org/869122" "https://bugs.gentoo.org/634162"
+ add_patch "${FILESDIR}/${PN}-5.36.0-fix-configure-for-clang.patch" \
+ "100-5.36.0-fix-configure-for-clang.patch" \
+ "Fix clang check in configure" \
+ "https://github.com/Perl/perl5/issues/21099"
+
if [[ ${CHOST} == *-solaris* ]] ; then
# do NOT mess with nsl, on Solaris this is always necessary,
# when -lsocket is used e.g. to get h_errno
@@ -423,9 +462,11 @@ src_prepare() {
# fix install_name (soname) not to reference $D
sed -i -e '/install_name `pwd/s/`pwd`/\\$(shrpdir)/' Makefile.SH || die
- # Upstreamed, but not in this version.
- # Need to recognise macOS 11 / 10.16. #757249
- eapply "${FILESDIR}/${PN}-5.30.3-darwin-macos11.patch"
+ # fix environ linkage absence (only a real issue on Darwin9)
+ if [[ ${CHOST##*-darwin} -le 9 ]] ; then
+ sed -i -e '/^PLDLFLAGS =/s/=/= -include crt_externs.h -Denviron="(*_NSGetEnviron())"/' \
+ Makefile.SH || die
+ fi
fi
default
@@ -442,16 +483,10 @@ myconf() {
# /usr/local/lib64/perl5/<NUMBER>
# /usr/lib64/perl5/vendor_perl/<NUMBER>
#
-# All values of NUMBER must be like "5.x.y", unless PERL_SUPPORT_SINGLE_SLOT
-# is enabled, where it will also allow numbers like "5.x"
+# All values of NUMBER must be like "5.x.y" or like "5.x"
#
-# PERL_SUPPORT_SINGLE_SLOT should only be used to transition *away* from PERL_SINGLE_SLOT
-# if you used that.
find_candidate_inc_versions() {
- local regex='.*/5[.][0-9]+[.][0-9]+$';
- if [[ ! -z "${PERL_SUPPORT_SINGLE_SLOT}" || ! -z "${PERL_SINGLE_SLOT}" ]]; then
- regex='.*/5[.][0-9]+\([.][0-9]+\|\)$'
- fi
+ local regex='.*/5[.][0-9]+\([.][0-9]+\|\)$'
local dirs=(
"${EROOT}${PRIV_BASE}"
"${EROOT}${SITE_BASE}"
@@ -475,13 +510,11 @@ find_candidate_inc_versions() {
einfo "Scanning for old @INC dirs matching '$regex' in: ${dirs[*]}"
find "${dirs[@]}" -maxdepth 1 -mindepth 1 -type d -regex "${regex}" -printf "%f " 2>/dev/null
}
+
# Sort versions passed versiony-ly, remove self-version if present
# dedup. Takes each version as an argument
sanitize_inc_versions() {
- local vexclude="${DIST_VERSION%-RC}"
- if [[ ! -z "${PERL_SINGLE_SLOT}" ]]; then
- vexclude="${SUBSLOT}"
- fi
+ local vexclude="${SUBSLOT}"
einfo "Normalizing/Sorting candidate list: $*"
einfo " to remove '${vexclude}'"
# Note, general numeric sort has to be used
@@ -493,22 +526,18 @@ sanitize_inc_versions() {
}
versions_to_inclist() {
- local oldv="${PERL_BIN_OLDVERSEN}"
- if [[ ! -z "${PERL_SINGLE_SLOT}" ]]; then
- oldv="${DIST_VERSION%-RC} ${PERL_BIN_OLDVERSEN}"
- fi
+ local oldv="${DIST_VERSION%-RC} ${PERL_BIN_OLDVERSEN}"
+
for v; do
has "${v}" ${oldv} && echo -n "${v}/${myarch}${mythreading}/ ";
echo -n "${v}/ ";
done
}
+
versions_to_gentoolibdirs() {
- local oldv="${PERL_BIN_OLDVERSEN}"
+ local oldv="${DIST_VERSION%-RC} ${PERL_BIN_OLDVERSEN}"
local root
local v
- if [[ ! -z "${PERL_SINGLE_SLOT}" ]]; then
- oldv="${DIST_VERSION%-RC} ${PERL_BIN_OLDVERSEN}"
- fi
for v; do
for root in "${PRIV_BASE}" "${VENDOR_BASE}" "${SITE_BASE}"; do
local fullpath="${EROOT}${root}/${v}"
@@ -527,7 +556,7 @@ src_configure() {
[[ ${COLUMNS:-1} -ge 1 ]] || unset COLUMNS # bug #394091
# Perl has problems compiling with -Os in your flags with glibc
- use elibc_uclibc || replace-flags "-Os" "-O2"
+ replace-flags "-Os" "-O2"
# xlocale.h is going away in glibc-2.26, so it's counterproductive
# if we use it and include it in CORE/perl.h ... Perl builds just
@@ -539,10 +568,19 @@ src_configure() {
filter-flags "-malign-double"
# Generic LTO broken since 5.28, triggers EUMM failures
- filter-flags "-flto"
+ filter-lto
+
+ # On musl we dont want to use largefile *64 types, since 1) normal
+ # types are 64bit / largefile anyway and 2) the *64 types are going
+ # away in 1.2.4... bug #911233
+ use elibc_musl && myconf -Ud_off64_t
use sparc && myconf -Ud_longdbl
+ # This urgently needs debugging - on m68k, miniperl crashes during
+ # build otherwise..
+ use m68k && append-ldflags -Wl,-z,norelro
+
export BUILD_BZIP2=0
export BZIP2_INCLUDE=${EROOT}/usr/include
export BZIP2_LIB=${EROOT}/usr/$(get_libdir)
@@ -573,9 +611,11 @@ src_configure() {
myconf -Ui_db -Ui_ndbm
fi
- use ithreads && myconf -Dusethreads
+ use perl_features_ithreads && myconf -Dusethreads
- if use debug ; then
+ use perl_features_quadmath && myconf -Dusequadmath
+
+ if use perl_features_debug ; then
append-cflags "-g"
myconf -DDEBUGGING
elif [[ ${CFLAGS} == *-g* ]] ; then
@@ -584,6 +624,17 @@ src_configure() {
myconf -DDEBUGGING=none
fi
+ # modifying 'optimize' prevents cross configure script from appending required flags
+ if tc-is-cross-compiler; then
+ append-cflags "-fwrapv"
+
+ # bug #913171
+ export HOSTCFLAGS="${CFLAGS_FOR_BUILD} -D_GNU_SOURCE"
+ fi
+
+ # bug #877659, bug #821577
+ append-cflags -fno-strict-aliasing
+
# Autodiscover all old version directories, some of them will even be newer
# if you downgrade
if [[ -z ${PERL_OLDVERSEN} ]]; then
@@ -617,21 +668,11 @@ src_configure() {
myconf "-Dld=env MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} $(tc-getCC)"
# Older macOS with non-Apple GCC chokes on inline in system headers
- # using c89 mode as injected by cflags.SH
+ # using c89 mode as injected by cflags.SH, in addition, we override
+ # cflags, so we loose PERL_DARWIN which enables compat code that
+ # apparently on more recent macOS releases is no longer necessary
[[ ${CHOST} == *-darwin* && ${CHOST##*darwin} -le 9 ]] && tc-is-gcc && \
- append-cflags -Dinline=__inline__
-
- # flock on 32-bit sparc Solaris is broken, fall back to fcntl
- [[ ${CHOST} == sparc-*-solaris* ]] && \
- myconf -Ud_flock
-
- # fix unaligned access misdetection
- # https://rt.perl.org/Public/Bug/Display.html?id=133495
- # https://rt.perl.org/Public/Bug/Display.html?id=133803
- # bug #676062, bug #688432
- use hppa || use sparc || [[ ${CHOST} == sparc*-solaris* ]] || \
- [[ ${CHOST} == armv5tel* ]] \
- && myconf "-Dd_u32align='define'"
+ append-cflags -Dinline=__inline__ -DPERL_DARWIN
# Prefix: the host system needs not to follow Gentoo multilib stuff, and in
# Prefix itself we don't do multilib either, so make sure perl can find
@@ -677,6 +718,7 @@ src_configure() {
-Dnm="$(tc-getNM)" \
-Dcpp="$(tc-getCPP)" \
-Dranlib="$(tc-getRANLIB)" \
+ -Accflags="${CFLAGS} -DNO_PERL_RAND_SEED" \
-Doptimize="${CFLAGS}" \
-Dldflags="${LDFLAGS}" \
-Dprefix="${EPREFIX}"'/usr' \
@@ -709,7 +751,6 @@ src_configure() {
-Dsh="${EPREFIX}"/bin/sh \
-Dtargetsh="${EPREFIX}"/bin/sh \
-Uusenm \
- "${myconf[@]}" \
"${EXTRA_ECONF[@]}"
if tc-is-cross-compiler; then
@@ -739,7 +780,6 @@ src_test() {
ewarn "Test fails with a sandbox error (#328793) if run as root. Skipping tests..."
return 0
fi
- use elibc_uclibc && export MAKEOPTS+=" -j1"
TEST_JOBS="$(makeopts_jobs)" make test_harness || die "test failed"
}
@@ -797,7 +837,7 @@ pkg_preinst() {
pkg_postinst() {
dual_scripts
- if [[ "${ROOT}" = "/" ]] ; then
+ if [[ -z "${ROOT}" ]] ; then
local INC DIR file
INC=$(perl -e 'for $line (@INC) { next if $line eq "."; next if $line =~ m/'${SHORT_PV}'|etc|local|perl$/; print "$line\n" }')
einfo "Removing old .ph files"
diff --git a/dev-lang/php/Manifest b/dev-lang/php/Manifest
index 550cce1d84c1..29a8ddbafa8c 100644
--- a/dev-lang/php/Manifest
+++ b/dev-lang/php/Manifest
@@ -1,7 +1,5 @@
-DIST php-7.2.34.tar.xz 12309432 BLAKE2B 50522786d39296bc7411931c4f357d53c7a25da264192a6a6e7f7594f3dee108e22974e00a4bdc4d3af269ab63d07b28045ff6b4f4f0c79672ed059882647b93 SHA512 7ecc3de3b5db41ec4ff6a5ce6c7e77dc330753c6f3fd87db4d07d6bb763a0b047e83afeef2251b4c6a5d2ff53fd9f3d7e99d091ef2e2c6ab8f18db7447d8a97d
-DIST php-7.3.25.tar.xz 12136668 BLAKE2B b9bfb1de15a3f02bf5d228a2cf9b307c9eeadaea10cac22d40647db0147f4f93b41858ea4affa0701478dd397f0a87cae4e2f29a378f7c6730fdf7da5c48e0e8 SHA512 30b27deab12cf2544671afbbdaefd4bfea308eeed8e9c2150751c5bc9ece18d981bcc020eace35cbdbe88b45cffba8a1fca718fc4e74c3a7903d8b038015d31e
-DIST php-7.3.26.tar.xz 12138088 BLAKE2B eb0090d1edff251341a9d7668a9a6d9ad2f45f7db902e7a51b133d77b0ac155248643ea2bb5fb68b9ba5f363bfdecf1db58dc41b78e5ae24ad66e4443f7c607e SHA512 36494c7907adf75378bcd2c8e5a4761271307d2b507df09c35b8f1114d189320bc7e73f1b05cb171aa93209dc2c3026256f7826e5563f13b99f1b4dbe9741732
-DIST php-7.4.13.tar.xz 10319848 BLAKE2B c1da97eb605f1fc2b36190bfe92feb1fd527f4aaf1483865561a08cf990e70445f5520c8abcea7d9c6482dc47e500507644e0cd2cc756cfa99adfec0359cd795 SHA512 3525f4fd4ea6d97ed75ed8360d2a851e8577c09247ae3c6eb7e7b43265ee418297d91c1022bf5bbb64d1eecdebbbc2e0f6d42b560f584a741b475db2c6897ea7
-DIST php-7.4.14.tar.xz 10326868 BLAKE2B 59099de517b276171539242332c7847b945c97ad73d82ad7555aa6eb37ea2fd923a554c715ddcc730a9b224af7878dfd373bb238a3611ba505eb26213397076d SHA512 5c48874d1e78d83297e98773089993ee3c8a7cdd8a611afc536eed8bc91cc4b2b492e1940923ccb7fe2dd039732082e568191e64923b74d4fc80362fbd06e6b7
-DIST php-8.0.0.tar.xz 10726788 BLAKE2B 16c4aa075ba5dee6d47086323cd152b33dc7b62ac6b3ab6637ec386c1048e256a160d72e72cbc88450af1e84389042ebf2d644d3361c9a34879cc494d5b9b64f SHA512 65630940c95436f3e3ecb71b9f1ca15bb4118267dbda604ed1ee009d528c21a3ec21f48a15e4dd3529fe9cd2b354c211a7b4975b5de43e1f2afa6656cabe1fd0
-DIST php-8.0.1.tar.xz 10642344 BLAKE2B 38e523f316c41de61b39e2f069018fa32cd9886a10ebe74cd772aa6003678821129292b61b6d1c2466ebf8c47b1bb98f0c686aefd3b1abf1aa560fb8ec954080 SHA512 6b21837bde4a4c7a550d49afb3650613a72bdfb1041294fa287936cf4b04027cd05c82fafc6f3978d77452c2539b198fe10c1241446431e7947e98d48d841ded
+DIST php-8.1.26.tar.xz 11809448 BLAKE2B e1d50f1de572580a207586b3c3b57081f7b9f1b680ffe8f9e82c88c9285af117dd7e9e2576fcb13119176cb9cd02b39481b6f40e9a1df81aa90b8c4d3e59e4b1 SHA512 5bc40077e57c0fccdf17810d688baea416f22ac248bb01b73d2e2590fc4cfabc7001c1c3833281a60870c74178f7b06cbc85474eba695aabf969ad0081a98417
+DIST php-8.1.28.tar.xz 11848504 BLAKE2B a5deb596176bcd69c33f239e752ac75e2da1538efe6d2b321802c50ea250214c6d9b59e8a5cb74f97f37c917159ef4fde4ccda4403d6e0a6fe751a19b7687472 SHA512 d56ecac164e00e9514cd3c6c8c453598b323118dc7d7ae7cc14ba0847d50a2e455b2391f52e0d81af325b02d8f73a7d2ed66bf66d068dac4a496d777c83a398f
+DIST php-8.2.15.tar.xz 12075384 BLAKE2B cef15868968538e232093bd66d862a88f0960325f2274eaf53a3d114d01787c58844aa3bce8bc09a723acd95801e1935a60e79fc189317e7f1ba19196dbfcdc4 SHA512 56c94bcafe07cf4bf5eb5fc6c67fcf16654c44a262ffb18188fc3ffac5e9bb11d39093bfb26c26bc8d2dec7e530d1a175180909262c9b5c30130cf5a4a293166
+DIST php-8.2.18.tar.xz 12089400 BLAKE2B 82a4ef0aee7fa66018cb528e6fc2da40f67be2a75449ed85c54881e6725cfa9fe82d6d5655c12d2e92f3fd685479367b7c038df5af0d7a0a122d627c78c50514 SHA512 8bdd6e5aa19dac80745d258a43f7330a3096d47dc66cbef0054b8f9eb9ace5e87d841a4001185a783241a416975753c922425e977f50b2716ce643b6a7bf351f
+DIST php-8.3.6.tar.xz 12468116 BLAKE2B 33d318058123544cbfd95ca65bd75b1eda64757f07af1d0c49eeb98c1ea5f803f1a27f5fe32c983ecdf6f789cef8afc564b384b8537b0a11525cf3ec38373e04 SHA512 fa0b6734e34af90b67bdb991726faa02f7ddd7f31adf73d0b96762452a652690ef5fbae2f6cb941fbd41533b1d6870a78192433e78d5a16a8b5f55b3a5fdf44a
diff --git a/dev-lang/php/files/20php5-envd b/dev-lang/php/files/20php5-envd
index f6033ae517c7..2a7cb1bd34b7 100644
--- a/dev-lang/php/files/20php5-envd
+++ b/dev-lang/php/files/20php5-envd
@@ -1,2 +1,2 @@
MANPATH="/usr/lib/php5/man/"
-CONFIG_PROTECT_MASK="/etc/php/cli-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/apache2-php5/ext-active/"
+CONFIG_PROTECT_MASK="/etc/php/cli-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/apache2-php5/ext-active/ /etc/php/fpm-php5/ext-active/ /etc/php/phpdbg-php5/ext-active/"
diff --git a/dev-lang/php/files/fix-musl-llvm.patch b/dev-lang/php/files/fix-musl-llvm.patch
new file mode 100644
index 000000000000..bf299837829c
--- /dev/null
+++ b/dev-lang/php/files/fix-musl-llvm.patch
@@ -0,0 +1,37 @@
+From 684f0d9e5946e92008404b3d5a131edc4f34f7da Mon Sep 17 00:00:00 2001
+From: Arnaud Le Blanc <arnaud.lb@gmail.com>
+Date: Thu, 4 Apr 2024 16:10:28 +0200
+Subject: [PATCH] Fix stream_cookie_seeker signature under musl
+
+---
+ main/streams/cast.c | 10 +++-------
+ 1 file changed, 3 insertions(+), 7 deletions(-)
+
+diff --git a/main/streams/cast.c b/main/streams/cast.c
+index 3bad65fbac1f5..8d9f4a9d2d54b 100644
+--- a/main/streams/cast.c
++++ b/main/streams/cast.c
+@@ -104,6 +104,9 @@ static ssize_t stream_cookie_writer(void *cookie, const char *buffer, size_t siz
+
+ # ifdef COOKIE_SEEKER_USES_OFF64_T
+ static int stream_cookie_seeker(void *cookie, off64_t *position, int whence)
++# else
++static int stream_cookie_seeker(void *cookie, off_t *position, int whence)
++# endif
+ {
+
+ *position = php_stream_seek((php_stream *)cookie, (zend_off_t)*position, whence);
+@@ -113,13 +116,6 @@ static int stream_cookie_seeker(void *cookie, off64_t *position, int whence)
+ }
+ return 0;
+ }
+-# else
+-static int stream_cookie_seeker(void *cookie, zend_off_t position, int whence)
+-{
+-
+- return php_stream_seek((php_stream *)cookie, position, whence);
+-}
+-# endif
+
+ static int stream_cookie_closer(void *cookie)
+ {
diff --git a/dev-lang/php/files/php-7.2.13-intl-use-icu-namespace.patch b/dev-lang/php/files/php-7.2.13-intl-use-icu-namespace.patch
deleted file mode 100644
index b5d2b473f1aa..000000000000
--- a/dev-lang/php/files/php-7.2.13-intl-use-icu-namespace.patch
+++ /dev/null
@@ -1,379 +0,0 @@
-Based on the following upstream commits:
-
-https://github.com/php/php-src/commit/8d35a423838eb462cd39ee535c5d003073cc5f22
-https://github.com/php/php-src/commit/d8200e48857aeaf09f7127751efc5632ef7660a7
-https://github.com/php/php-src/commit/9a8e7b571896f39f83cb000fdb7c466b6d328d52
-
---- a/ext/intl/breakiterator/breakiterator_class.cpp
-+++ b/ext/intl/breakiterator/breakiterator_class.cpp
-@@ -38,6 +38,7 @@ extern "C" {
- }
-
- using PHP::CodePointBreakIterator;
-+using icu::RuleBasedBreakIterator;
-
- /* {{{ Global variables */
- zend_class_entry *BreakIterator_ce_ptr;
---- a/ext/intl/breakiterator/breakiterator_class.h
-+++ b/ext/intl/breakiterator/breakiterator_class.h
-@@ -26,6 +26,8 @@
-
- #ifndef USE_BREAKITERATOR_POINTER
- typedef void BreakIterator;
-+#else
-+using icu::BreakIterator;
- #endif
-
- typedef struct {
---- a/ext/intl/breakiterator/breakiterator_methods.cpp
-+++ b/ext/intl/breakiterator/breakiterator_methods.cpp
-@@ -32,6 +32,8 @@ extern "C" {
- }
-
- using PHP::CodePointBreakIterator;
-+using icu::BreakIterator;
-+using icu::Locale;
-
- U_CFUNC PHP_METHOD(BreakIterator, __construct)
- {
---- a/ext/intl/breakiterator/codepointiterator_internal.cpp
-+++ b/ext/intl/breakiterator/codepointiterator_internal.cpp
-@@ -33,6 +33,8 @@ typedef union {
-
- using namespace PHP;
-
-+using icu::UCharCharacterIterator;
-+
- UOBJECT_DEFINE_RTTI_IMPLEMENTATION(CodePointBreakIterator);
-
- CodePointBreakIterator::CodePointBreakIterator()
---- a/ext/intl/breakiterator/codepointiterator_internal.h
-+++ b/ext/intl/breakiterator/codepointiterator_internal.h
-@@ -18,8 +18,11 @@
- #define CODEPOINTITERATOR_INTERNAL_H
-
- #include <unicode/brkiter.h>
-+#include <unicode/unistr.h>
-
--using U_ICU_NAMESPACE::BreakIterator;
-+using icu::BreakIterator;
-+using icu::CharacterIterator;
-+using icu::UnicodeString;
-
- namespace PHP {
-
---- a/ext/intl/breakiterator/rulebasedbreakiterator_methods.cpp
-+++ b/ext/intl/breakiterator/rulebasedbreakiterator_methods.cpp
-@@ -26,6 +26,9 @@ extern "C" {
- #include "../intl_convertcpp.h"
- #include "../intl_common.h"
-
-+using icu::RuleBasedBreakIterator;
-+using icu::Locale;
-+
- static inline RuleBasedBreakIterator *fetch_rbbi(BreakIterator_object *bio) {
- return (RuleBasedBreakIterator*)bio->biter;
- }
---- a/ext/intl/calendar/calendar_class.cpp
-+++ b/ext/intl/calendar/calendar_class.cpp
-@@ -34,6 +34,9 @@ extern "C" {
- #include <assert.h>
- }
-
-+using icu::GregorianCalendar;
-+using icu::Locale;
-+
- /* {{{ Global variables */
- zend_class_entry *Calendar_ce_ptr;
- zend_class_entry *GregorianCalendar_ce_ptr;
---- a/ext/intl/calendar/calendar_class.h
-+++ b/ext/intl/calendar/calendar_class.h
-@@ -26,6 +26,8 @@
-
- #ifndef USE_CALENDAR_POINTER
- typedef void Calendar;
-+#else
-+using icu::Calendar;
- #endif
-
- typedef struct {
---- a/ext/intl/calendar/calendar_methods.cpp
-+++ b/ext/intl/calendar/calendar_methods.cpp
-@@ -40,6 +40,8 @@ extern "C" {
- }
- #include "../common/common_enum.h"
-
-+using icu::Locale;
-+
- U_CFUNC PHP_METHOD(IntlCalendar, __construct)
- {
- zend_throw_exception( NULL,
---- a/ext/intl/calendar/gregoriancalendar_methods.cpp
-+++ b/ext/intl/calendar/gregoriancalendar_methods.cpp
-@@ -23,6 +23,8 @@
- #include <unicode/locid.h>
- #include <unicode/calendar.h>
- #include <unicode/gregocal.h>
-+#include <unicode/ustring.h>
-+
- extern "C" {
- #include "../php_intl.h"
- #include "../intl_common.h"
-@@ -34,6 +36,11 @@ extern "C" {
- #include "zend_exceptions.h"
- }
-
-+using icu::GregorianCalendar;
-+using icu::Locale;
-+using icu::UnicodeString;
-+using icu::StringPiece;
-+
- static inline GregorianCalendar *fetch_greg(Calendar_object *co) {
- return (GregorianCalendar*)co->ucal;
- }
---- a/ext/intl/common/common_date.cpp
-+++ b/ext/intl/common/common_date.cpp
-@@ -27,6 +27,9 @@ extern "C" {
-
- #include "zend_portability.h"
-
-+using icu::TimeZone;
-+using icu::UnicodeString;
-+
- /* {{{ timezone_convert_datetimezone
- * The timezone in DateTime and DateTimeZone is not unified. */
- U_CFUNC TimeZone *timezone_convert_datetimezone(int type,
---- a/ext/intl/common/common_date.h
-+++ b/ext/intl/common/common_date.h
-@@ -28,6 +28,8 @@ U_CDECL_END
-
- #include <unicode/timezone.h>
-
-+using icu::TimeZone;
-+
- U_CFUNC TimeZone *timezone_convert_datetimezone(int type, void *object, int is_datetime, intl_error *outside_error, const char *func);
- U_CFUNC int intl_datetime_decompose(zval *z, double *millis, TimeZone **tz,
- intl_error *err, const char *func);
---- a/ext/intl/common/common_enum.h
-+++ b/ext/intl/common/common_enum.h
-@@ -75,6 +75,7 @@ U_CFUNC zval *zoi_with_current_get_current_data(zend_object_iterator *iter);
- U_CFUNC void zoi_with_current_invalidate_current(zend_object_iterator *iter);
-
- #ifdef __cplusplus
-+using icu::StringEnumeration;
- U_CFUNC void IntlIterator_from_StringEnumeration(StringEnumeration *se, zval *object);
- #endif
-
---- a/ext/intl/converter/converter.c
-+++ b/ext/intl/converter/converter.c
-@@ -18,6 +18,8 @@
- #include "zend_exceptions.h"
-
- #include <unicode/utypes.h>
-+#include <unicode/utf8.h>
-+#include <unicode/utf16.h>
- #include <unicode/ucnv.h>
- #include <unicode/ustring.h>
-
---- a/ext/intl/dateformat/dateformat_format_object.cpp
-+++ b/ext/intl/dateformat/dateformat_format_object.cpp
-@@ -33,6 +33,12 @@ extern "C" {
- #include "../common/common_date.h"
- }
-
-+using icu::Locale;
-+using icu::DateFormat;
-+using icu::GregorianCalendar;
-+using icu::StringPiece;
-+using icu::SimpleDateFormat;
-+
- static const DateFormat::EStyle valid_styles[] = {
- DateFormat::kNone,
- DateFormat::kFull,
---- a/ext/intl/dateformat/dateformat_helpers.cpp
-+++ b/ext/intl/dateformat/dateformat_helpers.cpp
-@@ -28,6 +28,8 @@ extern "C" {
- #include "../calendar/calendar_class.h"
- }
-
-+using icu::GregorianCalendar;
-+
- int datefmt_process_calendar_arg(zval* calendar_zv,
- Locale const& locale,
- const char *func_name,
---- a/ext/intl/dateformat/dateformat_helpers.h
-+++ b/ext/intl/dateformat/dateformat_helpers.h
-@@ -22,11 +22,16 @@
- #endif
-
- #include <unicode/calendar.h>
-+#include <unicode/datefmt.h>
-
- extern "C" {
- #include "../php_intl.h"
- }
-
-+using icu::Locale;
-+using icu::Calendar;
-+using icu::DateFormat;
-+
- int datefmt_process_calendar_arg(zval* calendar_zv,
- Locale const& locale,
- const char *func_name,
---- a/ext/intl/grapheme/grapheme_string.c
-+++ b/ext/intl/grapheme/grapheme_string.c
-@@ -24,6 +24,7 @@
- #include "grapheme_util.h"
-
- #include <unicode/utypes.h>
-+#include <unicode/utf8.h>
- #include <unicode/ucol.h>
- #include <unicode/ustring.h>
- #include <unicode/ubrk.h>
-@@ -834,10 +835,10 @@ PHP_FUNCTION(grapheme_extract)
- pstr = str + start;
-
- /* just in case pstr points in the middle of a character, move forward to the start of the next char */
-- if ( !UTF8_IS_SINGLE(*pstr) && !U8_IS_LEAD(*pstr) ) {
-- char *str_end = str + str_len;
-+ if ( !U8_IS_SINGLE(*pstr) && !U8_IS_LEAD(*pstr) ) {
-+ unsigned char *str_end = str + str_len;
-
-- while ( !UTF8_IS_SINGLE(*pstr) && !U8_IS_LEAD(*pstr) ) {
-+ while ( !U8_IS_SINGLE(*pstr) && !U8_IS_LEAD(*pstr) ) {
- pstr++;
- if ( pstr >= str_end ) {
- intl_error_set( NULL, U_ILLEGAL_ARGUMENT_ERROR,
---- a/ext/intl/intl_convertcpp.h
-+++ b/ext/intl/intl_convertcpp.h
-@@ -26,6 +26,8 @@
- #include <unicode/unistr.h>
- #include <zend_types.h>
-
-+using icu::UnicodeString;
-+
- int intl_stringFromChar(UnicodeString &ret, char *str, size_t str_len, UErrorCode *status);
-
- zend_string* intl_charFromString(const UnicodeString &from, UErrorCode *status);
---- a/ext/intl/msgformat/msgformat_helpers.cpp
-+++ b/ext/intl/msgformat/msgformat_helpers.cpp
-@@ -78,6 +78,16 @@ MessageFormatAdapter::getMessagePattern(MessageFormat* m) {
- #endif
- U_NAMESPACE_END
-
-+using icu::Formattable;
-+using icu::Format;
-+using icu::DateFormat;
-+using icu::MessageFormat;
-+#ifdef HAS_MESSAGE_PATTERN
-+using icu::MessagePattern;
-+#endif
-+using icu::MessageFormatAdapter;
-+using icu::FieldPosition;
-+
- U_CFUNC int32_t umsg_format_arg_count(UMessageFormat *fmt)
- {
- int32_t fmt_count = 0;
-@@ -229,15 +239,16 @@ static HashTable *umsg_parse_format(MessageFormatter_object *mfo,
- UnicodeString typeString = mp.getSubstring(type_part);
- /* This is all based on the rules in the docs for MessageFormat
- * @see http://icu-project.org/apiref/icu4c/classMessageFormat.html */
-- if (typeString == "number") {
-+#define ASCII_LITERAL(s) UNICODE_STRING(s, sizeof(s)-1)
-+ if (typeString == ASCII_LITERAL("number")) {
- MessagePattern::Part style_part = mp.getPart(i + 1); /* Not advancing i */
- if (style_part.getType() == UMSGPAT_PART_TYPE_ARG_STYLE) {
- UnicodeString styleString = mp.getSubstring(style_part);
-- if (styleString == "integer") {
-+ if (styleString == ASCII_LITERAL("integer")) {
- type = Formattable::kInt64;
-- } else if (styleString == "currency") {
-+ } else if (styleString == ASCII_LITERAL("currency")) {
- type = Formattable::kDouble;
-- } else if (styleString == "percent") {
-+ } else if (styleString == ASCII_LITERAL("percent")) {
- type = Formattable::kDouble;
- } else { /* some style invalid/unknown to us */
- type = Formattable::kDouble;
-@@ -245,12 +256,13 @@ static HashTable *umsg_parse_format(MessageFormatter_object *mfo,
- } else { // if missing style, part, make it a double
- type = Formattable::kDouble;
- }
-- } else if ((typeString == "date") || (typeString == "time")) {
-+ } else if ((typeString == ASCII_LITERAL("date")) || (typeString == ASCII_LITERAL("time"))) {
- type = Formattable::kDate;
-- } else if ((typeString == "spellout") || (typeString == "ordinal")
-- || (typeString == "duration")) {
-+ } else if ((typeString == ASCII_LITERAL("spellout")) || (typeString == ASCII_LITERAL("ordinal"))
-+ || (typeString == ASCII_LITERAL("duration"))) {
- type = Formattable::kDouble;
- }
-+#undef ASCII_LITERAL
- } else {
- /* If there's no UMSGPAT_PART_TYPE_ARG_TYPE right after a
- * UMSGPAT_ARG_TYPE_SIMPLE argument, then the pattern
---- a/ext/intl/normalizer/normalizer_normalize.c
-+++ b/ext/intl/normalizer/normalizer_normalize.c
-@@ -24,6 +24,7 @@
- #include "normalizer_class.h"
- #include "normalizer_normalize.h"
- #include "intl_convert.h"
-+#include <unicode/utf8.h>
-
- /* {{{ proto string Normalizer::normalize( string $input [, string $form = FORM_C] )
- * Normalize a string. }}} */
---- a/ext/intl/timezone/timezone_class.cpp
-+++ b/ext/intl/timezone/timezone_class.cpp
-@@ -37,6 +37,8 @@ extern "C" {
- #include <ext/date/php_date.h>
- }
-
-+using icu::Calendar;
-+
- /* {{{ Global variables */
- U_CDECL_BEGIN
- zend_class_entry *TimeZone_ce_ptr = NULL;
---- a/ext/intl/timezone/timezone_class.h
-+++ b/ext/intl/timezone/timezone_class.h
-@@ -29,6 +29,8 @@
-
- #ifndef USE_TIMEZONE_POINTER
- typedef void TimeZone;
-+#else
-+using icu::TimeZone;
- #endif
-
- typedef struct {
---- a/ext/intl/timezone/timezone_methods.cpp
-+++ b/ext/intl/timezone/timezone_methods.cpp
-@@ -23,6 +23,7 @@
- #include <unicode/locid.h>
- #include <unicode/timezone.h>
- #include <unicode/ustring.h>
-+#include <unicode/calendar.h>
- #include "intl_convertcpp.h"
-
- #include "../common/common_date.h"
-@@ -37,6 +38,9 @@ extern "C" {
- }
- #include "common/common_enum.h"
-
-+using icu::Locale;
-+using icu::Calendar;
-+
- U_CFUNC PHP_METHOD(IntlTimeZone, __construct)
- {
- zend_throw_exception( NULL,
---- a/ext/intl/uchar/uchar.c
-+++ b/ext/intl/uchar/uchar.c
-@@ -3,6 +3,7 @@
- #include "intl_convert.h"
-
- #include <unicode/uchar.h>
-+#include <unicode/utf8.h>
-
- #define IC_METHOD(mname) PHP_METHOD(IntlChar, mname)
-
---
-2.19.2
-
diff --git a/dev-lang/php/files/php-7.2.34-use-after-free-bug76047.patch b/dev-lang/php/files/php-7.2.34-use-after-free-bug76047.patch
deleted file mode 100644
index b3a864ee82a8..000000000000
--- a/dev-lang/php/files/php-7.2.34-use-after-free-bug76047.patch
+++ /dev/null
@@ -1,174 +0,0 @@
-Backport of https://git.php.net/?p=php-src.git;a=commit;h=ef1e4891b47949c8dc0f9482eef9454a0ecdfa1d
-
---- a/Zend/tests/bug52361.phpt
-+++ b/Zend/tests/bug52361.phpt
-@@ -25,9 +25,8 @@ try {
- --EXPECTF--
- 1. Exception: aaa in %sbug52361.php:5
- Stack trace:
--#0 %sbug52361.php(13): aaa->__destruct()
--#1 %sbug52361.php(16): bbb()
--#2 {main}
-+#0 %sbug52361.php(16): aaa->__destruct()
-+#1 {main}
- 2. Exception: bbb in %sbug52361.php:13
- Stack trace:
- #0 %sbug52361.php(16): bbb()
---- /dev/null
-+++ b/Zend/tests/bug76047.phpt
-@@ -0,0 +1,68 @@
-+--TEST--
-+Bug #76047: Use-after-free when accessing already destructed backtrace arguments
-+--FILE--
-+<?php
-+
-+class Vuln {
-+ public $a;
-+ public function __destruct() {
-+ unset($this->a);
-+ $backtrace = (new Exception)->getTrace();
-+ var_dump($backtrace);
-+ }
-+}
-+
-+function test($arg) {
-+ $arg = str_shuffle(str_repeat('A', 79));
-+ $vuln = new Vuln();
-+ $vuln->a = $arg;
-+}
-+
-+function test2($arg) {
-+ $$arg = 1; // Trigger symbol table
-+ $arg = str_shuffle(str_repeat('A', 79));
-+ $vuln = new Vuln();
-+ $vuln->a = $arg;
-+}
-+
-+test('x');
-+test2('x');
-+
-+?>
-+--EXPECTF--
-+array(1) {
-+ [0]=>
-+ array(6) {
-+ ["file"]=>
-+ string(%d) "%s"
-+ ["line"]=>
-+ int(%d)
-+ ["function"]=>
-+ string(10) "__destruct"
-+ ["class"]=>
-+ string(4) "Vuln"
-+ ["type"]=>
-+ string(2) "->"
-+ ["args"]=>
-+ array(0) {
-+ }
-+ }
-+}
-+array(1) {
-+ [0]=>
-+ array(6) {
-+ ["file"]=>
-+ string(%d) "%s"
-+ ["line"]=>
-+ int(%d)
-+ ["function"]=>
-+ string(10) "__destruct"
-+ ["class"]=>
-+ string(4) "Vuln"
-+ ["type"]=>
-+ string(2) "->"
-+ ["args"]=>
-+ array(0) {
-+ }
-+ }
-+}
---- a/Zend/zend_vm_def.h
-+++ b/Zend/zend_vm_def.h
-@@ -2366,9 +2366,9 @@ ZEND_VM_HELPER(zend_leave_helper, ANY, ANY)
- uint32_t call_info = EX_CALL_INFO();
-
- if (EXPECTED((call_info & (ZEND_CALL_CODE|ZEND_CALL_TOP|ZEND_CALL_HAS_SYMBOL_TABLE|ZEND_CALL_FREE_EXTRA_ARGS|ZEND_CALL_ALLOCATED)) == 0)) {
-+ EG(current_execute_data) = EX(prev_execute_data);
- i_free_compiled_variables(execute_data);
-
-- EG(current_execute_data) = EX(prev_execute_data);
- if (UNEXPECTED(call_info & ZEND_CALL_RELEASE_THIS)) {
- zend_object *object = Z_OBJ(execute_data->This);
- #if 0
-@@ -2394,12 +2394,12 @@ ZEND_VM_HELPER(zend_leave_helper, ANY, ANY)
- LOAD_NEXT_OPLINE();
- ZEND_VM_LEAVE();
- } else if (EXPECTED((call_info & (ZEND_CALL_CODE|ZEND_CALL_TOP)) == 0)) {
-+ EG(current_execute_data) = EX(prev_execute_data);
- i_free_compiled_variables(execute_data);
-
- if (UNEXPECTED(call_info & ZEND_CALL_HAS_SYMBOL_TABLE)) {
- zend_clean_and_cache_symbol_table(EX(symbol_table));
- }
-- EG(current_execute_data) = EX(prev_execute_data);
-
- /* Free extra args before releasing the closure,
- * as that may free the op_array. */
-@@ -2449,6 +2449,7 @@ ZEND_VM_HELPER(zend_leave_helper, ANY, ANY)
- ZEND_VM_LEAVE();
- } else {
- if (EXPECTED((call_info & ZEND_CALL_CODE) == 0)) {
-+ EG(current_execute_data) = EX(prev_execute_data);
- i_free_compiled_variables(execute_data);
- if (UNEXPECTED(call_info & (ZEND_CALL_HAS_SYMBOL_TABLE|ZEND_CALL_FREE_EXTRA_ARGS))) {
- if (UNEXPECTED(call_info & ZEND_CALL_HAS_SYMBOL_TABLE)) {
-@@ -2456,7 +2457,6 @@ ZEND_VM_HELPER(zend_leave_helper, ANY, ANY)
- }
- zend_vm_stack_free_extra_args_ex(call_info, execute_data);
- }
-- EG(current_execute_data) = EX(prev_execute_data);
- if (UNEXPECTED(call_info & ZEND_CALL_CLOSURE)) {
- OBJ_RELEASE((zend_object*)EX(func)->op_array.prototype);
- }
---- a/Zend/zend_vm_execute.h
-+++ b/Zend/zend_vm_execute.h
-@@ -434,9 +434,9 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_leave_helper_SPEC(ZEND_OPCODE_
- uint32_t call_info = EX_CALL_INFO();
-
- if (EXPECTED((call_info & (ZEND_CALL_CODE|ZEND_CALL_TOP|ZEND_CALL_HAS_SYMBOL_TABLE|ZEND_CALL_FREE_EXTRA_ARGS|ZEND_CALL_ALLOCATED)) == 0)) {
-+ EG(current_execute_data) = EX(prev_execute_data);
- i_free_compiled_variables(execute_data);
-
-- EG(current_execute_data) = EX(prev_execute_data);
- if (UNEXPECTED(call_info & ZEND_CALL_RELEASE_THIS)) {
- zend_object *object = Z_OBJ(execute_data->This);
- #if 0
-@@ -462,12 +462,12 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_leave_helper_SPEC(ZEND_OPCODE_
- LOAD_NEXT_OPLINE();
- ZEND_VM_LEAVE();
- } else if (EXPECTED((call_info & (ZEND_CALL_CODE|ZEND_CALL_TOP)) == 0)) {
-+ EG(current_execute_data) = EX(prev_execute_data);
- i_free_compiled_variables(execute_data);
-
- if (UNEXPECTED(call_info & ZEND_CALL_HAS_SYMBOL_TABLE)) {
- zend_clean_and_cache_symbol_table(EX(symbol_table));
- }
-- EG(current_execute_data) = EX(prev_execute_data);
-
- /* Free extra args before releasing the closure,
- * as that may free the op_array. */
-@@ -517,6 +517,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_leave_helper_SPEC(ZEND_OPCODE_
- ZEND_VM_LEAVE();
- } else {
- if (EXPECTED((call_info & ZEND_CALL_CODE) == 0)) {
-+ EG(current_execute_data) = EX(prev_execute_data);
- i_free_compiled_variables(execute_data);
- if (UNEXPECTED(call_info & (ZEND_CALL_HAS_SYMBOL_TABLE|ZEND_CALL_FREE_EXTRA_ARGS))) {
- if (UNEXPECTED(call_info & ZEND_CALL_HAS_SYMBOL_TABLE)) {
-@@ -524,7 +525,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_leave_helper_SPEC(ZEND_OPCODE_
- }
- zend_vm_stack_free_extra_args_ex(call_info, execute_data);
- }
-- EG(current_execute_data) = EX(prev_execute_data);
- if (UNEXPECTED(call_info & ZEND_CALL_CLOSURE)) {
- OBJ_RELEASE((zend_object*)EX(func)->op_array.prototype);
- }
-
diff --git a/dev-lang/php/files/php-7.4.13-issue80368.patch b/dev-lang/php/files/php-7.4.13-issue80368.patch
deleted file mode 100644
index adad8f864ec1..000000000000
--- a/dev-lang/php/files/php-7.4.13-issue80368.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-https://github.com/php/php-src/commit/0f579fd7c8171cb0f7ecc8db912933df450f3861
-https://github.com/php/php-src/commit/ecee3f1209a7c0ac9f99c7f640b2f5df56656e58
-
---- a/ext/openssl/openssl.c
-+++ b/ext/openssl/openssl.c
-@@ -6496,7 +6496,9 @@ static void php_openssl_load_cipher_mode(struct php_openssl_cipher_mode *mode, c
- int cipher_mode = EVP_CIPHER_mode(cipher_type);
- memset(mode, 0, sizeof(struct php_openssl_cipher_mode));
- switch (cipher_mode) {
--#if PHP_OPENSSL_API_VERSION >= 0x10100
-+#ifdef EVP_CIPH_OCB_MODE
-+ /* Since OpenSSL 1.1, all AEAD ciphers use a common framework. We check for
-+ * EVP_CIPH_OCB_MODE, because LibreSSL does not support it. */
- case EVP_CIPH_GCM_MODE:
- case EVP_CIPH_OCB_MODE:
- case EVP_CIPH_CCM_MODE:
-
diff --git a/dev-lang/php/files/php-8.1.27-gcc14-libxml.patch b/dev-lang/php/files/php-8.1.27-gcc14-libxml.patch
new file mode 100644
index 000000000000..f477ba541bfa
--- /dev/null
+++ b/dev-lang/php/files/php-8.1.27-gcc14-libxml.patch
@@ -0,0 +1,57 @@
+https://github.com/php/php-src/commit/0a39890c967aa57225bb6bdf4821aff7a3a3c082.patch
+From: Niels Dossche <7771979+nielsdos@users.noreply.github.com>
+Date: Fri, 1 Dec 2023 18:03:35 +0100
+Subject: [PATCH] Fix libxml2 2.12 build due to API breaks
+
+See https://github.com/php/php-src/actions/runs/7062192818/job/19225478601
+--- a/ext/libxml/libxml.c
++++ b/ext/libxml/libxml.c
+@@ -472,7 +472,11 @@ static void _php_libxml_free_error(void *ptr)
+ xmlResetError((xmlErrorPtr) ptr);
+ }
+
+-static void _php_list_set_error_structure(xmlErrorPtr error, const char *msg)
++#if LIBXML_VERSION >= 21200
++static void _php_list_set_error_structure(const xmlError *error, const char *msg)
++#else
++static void _php_list_set_error_structure(xmlError *error, const char *msg)
++#endif
+ {
+ xmlError error_copy;
+ int ret;
+@@ -725,7 +729,11 @@ PHP_LIBXML_API void php_libxml_ctx_warning(void *ctx, const char *msg, ...)
+ va_end(args);
+ }
+
++#if LIBXML_VERSION >= 21200
++PHP_LIBXML_API void php_libxml_structured_error_handler(void *userData, const xmlError *error)
++#else
+ PHP_LIBXML_API void php_libxml_structured_error_handler(void *userData, xmlErrorPtr error)
++#endif
+ {
+ _php_list_set_error_structure(error, NULL);
+
+@@ -957,11 +965,9 @@ PHP_FUNCTION(libxml_use_internal_errors)
+ /* {{{ Retrieve last error from libxml */
+ PHP_FUNCTION(libxml_get_last_error)
+ {
+- xmlErrorPtr error;
+-
+ ZEND_PARSE_PARAMETERS_NONE();
+
+- error = xmlGetLastError();
++ const xmlError *error = xmlGetLastError();
+
+ if (error) {
+ object_init_ex(return_value, libxmlerror_class_entry);
+--- a/ext/soap/php_sdl.c
++++ b/ext/soap/php_sdl.c
+@@ -332,7 +332,7 @@ static void load_wsdl_ex(zval *this_ptr, char *struri, sdlCtx *ctx, int include)
+ sdl_restore_uri_credentials(ctx);
+
+ if (!wsdl) {
+- xmlErrorPtr xmlErrorPtr = xmlGetLastError();
++ const xmlError *xmlErrorPtr = xmlGetLastError();
+
+ if (xmlErrorPtr) {
+ soap_error2(E_ERROR, "Parsing WSDL: Couldn't load from '%s' : %s", struri, xmlErrorPtr->message);
diff --git a/dev-lang/php/files/php-8.1.27-implicit-decls.patch b/dev-lang/php/files/php-8.1.27-implicit-decls.patch
new file mode 100644
index 000000000000..443b02ba17c2
--- /dev/null
+++ b/dev-lang/php/files/php-8.1.27-implicit-decls.patch
@@ -0,0 +1,72 @@
+From 79df2b9dcbe0388667c832b2c702ca3158330ed7 Mon Sep 17 00:00:00 2001
+From: Michael Orlitzky <michael@orlitzky.com>
+Date: Mon, 4 Mar 2024 11:48:01 -0500
+Subject: [PATCH] ext/iconv/config.m4: add missing stdio.h include.
+
+The next generation of C compilers is going to enforce the C standard
+more strictly:
+
+ https://wiki.gentoo.org/wiki/Modern_C_porting
+
+One warning that will eventually become an error is
+-Wimplicit-function-declaration. This is relatively easy to catch in
+most code (it will fail to compile), but inside of autoconf tests it
+can go unnoticed because many feature-test compilations fail by
+design. For example,
+
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <iconv.h>]],
+ [[iconv_ccs_init(NULL, NULL);]])]...
+
+is designed to fail if iconv_ccs_init() is not in iconv.h. On the
+other hand,
+
+ AC_RUN_IFELSE([AC_LANG_SOURCE([[
+ #include <iconv.h>
+ int main() {
+ printf("%d", _libiconv_version);
+ return 0;
+ }
+
+should pass if _libiconv_version is defined. If the user has
+-Werror=implicit-function-declaration in his CFLAGS, however,
+it will not:
+
+ $ export CFLAGS="$CFLAGS -Werror=implicit-function-declaration"
+ $ ./configure
+ ...
+ checking if using GNU libiconv... no
+
+This is because the stdio.h header that defines printf() is missing:
+
+ conftest.c:240:3: error: implicit declaration of function 'printf'
+ [-Werror=implicit-function-declaration]
+ 240 | printf("%d", _libiconv_version);
+ | ^~~~~~
+ conftest.c:239:1: note: include '<stdio.h>' or provide a declaration
+ of 'printf'
+
+This commit adds the include, correcting the test with any compiler
+that balks at implicit function definitions.
+
+(Backport to php-8.1.27)
+
+Closes GH-10751
+---
+ ext/iconv/config.m4 | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/ext/iconv/config.m4 b/ext/iconv/config.m4
+index ac57c81e..b8044bf2 100644
+--- a/ext/iconv/config.m4
++++ b/ext/iconv/config.m4
+@@ -30,6 +30,7 @@ if test "$PHP_ICONV" != "no"; then
+ AC_MSG_CHECKING([if using GNU libiconv])
+ AC_RUN_IFELSE([AC_LANG_SOURCE([[
+ #include <iconv.h>
++#include <stdio.h>
+ int main() {
+ printf("%d", _libiconv_version);
+ return 0;
+--
+2.43.0
+
diff --git a/dev-lang/php/files/php-8.2.8-openssl-tests.patch b/dev-lang/php/files/php-8.2.8-openssl-tests.patch
new file mode 100644
index 000000000000..ebade4c0cd45
--- /dev/null
+++ b/dev-lang/php/files/php-8.2.8-openssl-tests.patch
@@ -0,0 +1,21 @@
+commit 5a4083181b970411d6f3b1c1e3bdd199d5cd1a5e
+Author: Jakub Holubansky <jakub.holubansky@team.bumble.com>
+Date: Fri Mar 31 17:20:35 2023 +0200
+
+ ext/openssl: pass ini options to extra processes in tests
+
+diff --git a/ext/openssl/tests/ServerClientTestCase.inc b/ext/openssl/tests/ServerClientTestCase.inc
+index 753366df6f..1b140b63f6 100644
+--- a/ext/openssl/tests/ServerClientTestCase.inc
++++ b/ext/openssl/tests/ServerClientTestCase.inc
+@@ -72,8 +72,9 @@ class ServerClientTestCase
+ );
+ } else {
+ $cmd = sprintf(
+- '%s "%s" %s %s',
++ '%s %s "%s" %s %s',
+ PHP_BINARY,
++ getenv('TEST_PHP_EXTRA_ARGS'),
+ __FILE__,
+ WORKER_ARGV_VALUE,
+ $worker
diff --git a/dev-lang/php/files/php-capstone-optional.patch b/dev-lang/php/files/php-capstone-optional.patch
new file mode 100644
index 000000000000..a4719bbb6857
--- /dev/null
+++ b/dev-lang/php/files/php-capstone-optional.patch
@@ -0,0 +1,78 @@
+diff --git a/ext/opcache/config.m4 b/ext/opcache/config.m4
+index 444ded9976ac..fb3324cf82a3 100644
+--- a/ext/opcache/config.m4
++++ b/ext/opcache/config.m4
+@@ -18,6 +18,12 @@ PHP_ARG_ENABLE([opcache-jit],
+ [yes],
+ [no])
+
++PHP_ARG_WITH([opcache-capstone],,
++ [AS_HELP_STRING([--with-opcache-capstone],
++ [support opcache JIT disassembly through capstone])],
++ [no],
++ [no])
++
+ if test "$PHP_OPCACHE" != "no"; then
+
+ dnl Always build as shared extension
+@@ -68,41 +74,18 @@ if test "$PHP_OPCACHE" != "no"; then
+ DASM_FLAGS="$DASM_FLAGS -D ZTS=1"
+ fi
+
+- PKG_CHECK_MODULES([CAPSTONE], [capstone >= 3.0.0],
+- [have_capstone="yes"], [have_capstone="no"])
+- if test "$have_capstone" = "yes"; then
+- AC_DEFINE(HAVE_CAPSTONE, 1, [ ])
++ AS_IF([test x"$with_opcache_capstone" = "xyes"],[
++ PKG_CHECK_MODULES([CAPSTONE],[capstone >= 3.0.0],[
++ AC_DEFINE([HAVE_CAPSTONE], [1], [Capstone is available])
+ PHP_EVAL_LIBLINE($CAPSTONE_LIBS, OPCACHE_SHARED_LIBADD)
+ PHP_EVAL_INCLINE($CAPSTONE_CFLAGS)
+- fi
+-
+- PHP_SUBST(DASM_FLAGS)
+- PHP_SUBST(DASM_ARCH)
+-
+- AC_MSG_CHECKING(for opagent in default path)
+- for i in /usr/local /usr; do
+- if test -r $i/include/opagent.h; then
+- OPAGENT_DIR=$i
+- AC_MSG_RESULT(found in $i)
+- break
+- fi
+- done
+- if test -z "$OPAGENT_DIR"; then
+- AC_MSG_RESULT(not found)
+- else
+- PHP_CHECK_LIBRARY(opagent, op_write_native_code,
+- [
+- AC_DEFINE(HAVE_OPROFILE,1,[ ])
+- PHP_ADD_INCLUDE($OPAGENT_DIR/include)
+- PHP_ADD_LIBRARY_WITH_PATH(opagent, $OPAGENT_DIR/$PHP_LIBDIR/oprofile, OPCACHE_SHARED_LIBADD)
+- PHP_SUBST(OPCACHE_SHARED_LIBADD)
+- ],[
+- AC_MSG_RESULT(not found)
+ ],[
+- -L$OPAGENT_DIR/$PHP_LIBDIR/oprofile
++ AC_MSG_ERROR([capstone >= 3.0 required but not found])
+ ])
+- fi
++ ])
+
++ PHP_SUBST(DASM_FLAGS)
++ PHP_SUBST(DASM_ARCH)
+ fi
+
+ AC_CHECK_FUNCS([mprotect memfd_create])
+diff --git a/ext/opcache/jit/Makefile.frag b/ext/opcache/jit/Makefile.frag
+index 98c5cdaea249..f9ae2e0cf4b9 100644
+--- a/ext/opcache/jit/Makefile.frag
++++ b/ext/opcache/jit/Makefile.frag
+@@ -11,7 +11,6 @@ $(builddir)/jit/zend_jit.lo: \
+ $(srcdir)/jit/zend_jit_disasm.c \
+ $(srcdir)/jit/zend_jit_gdb.c \
+ $(srcdir)/jit/zend_jit_perf_dump.c \
+- $(srcdir)/jit/zend_jit_oprofile.c \
+ $(srcdir)/jit/zend_jit_vtune.c \
+ $(srcdir)/jit/zend_jit_trace.c \
+ $(srcdir)/jit/zend_elf.c
diff --git a/dev-lang/php/files/php-freetype-2.9.1.patch b/dev-lang/php/files/php-freetype-2.9.1.patch
deleted file mode 100644
index 02dfd9ce3cd4..000000000000
--- a/dev-lang/php/files/php-freetype-2.9.1.patch
+++ /dev/null
@@ -1,233 +0,0 @@
---- a/ext/gd/config.m4 2018-04-24 11:09:54.000000000 -0400
-+++ b/ext/gd/config.m4 2018-05-04 15:18:49.867283889 -0400
-@@ -186,21 +186,36 @@
- AC_DEFUN([PHP_GD_FREETYPE2],[
- if test "$PHP_FREETYPE_DIR" != "no"; then
-
-- for i in $PHP_FREETYPE_DIR /usr/local /usr; do
-- if test -f "$i/bin/freetype-config"; then
-- FREETYPE2_DIR=$i
-- FREETYPE2_CONFIG="$i/bin/freetype-config"
-- break
-+ AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
-+ AC_MSG_CHECKING(for freetype2)
-+
-+ if test -x "$PKG_CONFIG" && $PKG_CONFIG --exists freetype2 ; then
-+
-+ FREETYPE2_CFLAGS=`$PKG_CONFIG --cflags freetype2`
-+ FREETYPE2_LIBS=`$PKG_CONFIG --libs freetype2`
-+ FREETYPE2_VERSION=`$PKG_CONFIG --modversion freetype2`
-+ FREETYPE2_DIR="found"
-+
-+ AC_MSG_RESULT(from pkgconfig: version $FREETYPE2_VERSION found)
-+ else
-+
-+ for i in $PHP_FREETYPE_DIR /usr/local /usr; do
-+ if test -f "$i/bin/freetype-config"; then
-+ FREETYPE2_DIR=$i
-+ FREETYPE2_CONFIG="$i/bin/freetype-config"
-+ break
-+ fi
-+ done
-+
-+ if test -z "$FREETYPE2_DIR"; then
-+ AC_MSG_ERROR([freetype-config not found.])
- fi
-- done
-
-- if test -z "$FREETYPE2_DIR"; then
-- AC_MSG_ERROR([freetype-config not found.])
-+ FREETYPE2_CFLAGS=`$FREETYPE2_CONFIG --cflags`
-+ FREETYPE2_LIBS=`$FREETYPE2_CONFIG --libs`
-+ AC_MSG_RESULT(found via freetype-config)
- fi
-
-- FREETYPE2_CFLAGS=`$FREETYPE2_CONFIG --cflags`
-- FREETYPE2_LIBS=`$FREETYPE2_CONFIG --libs`
--
- PHP_EVAL_INCLINE($FREETYPE2_CFLAGS)
- PHP_EVAL_LIBLINE($FREETYPE2_LIBS, GD_SHARED_LIBADD)
- AC_DEFINE(HAVE_LIBFREETYPE,1,[ ])
---- a/configure 2018-04-24 11:10:05.000000000 -0400
-+++ b/configure 2018-05-04 15:18:45.626367913 -0400
-@@ -34348,21 +34348,79 @@
-
- if test "$PHP_FREETYPE_DIR" != "no"; then
-
-- for i in $PHP_FREETYPE_DIR /usr/local /usr; do
-- if test -f "$i/bin/freetype-config"; then
-- FREETYPE2_DIR=$i
-- FREETYPE2_CONFIG="$i/bin/freetype-config"
-- break
-+ # Extract the first word of "pkg-config", so it can be a program name with args.
-+set dummy pkg-config; ac_word=$2
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-+$as_echo_n "checking for $ac_word... " >&6; }
-+if ${ac_cv_path_PKG_CONFIG+:} false; then :
-+ $as_echo_n "(cached) " >&6
-+else
-+ case $PKG_CONFIG in
-+ [\\/]* | ?:[\\/]*)
-+ ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
-+ ;;
-+ *)
-+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+ IFS=$as_save_IFS
-+ test -z "$as_dir" && as_dir=.
-+ for ac_exec_ext in '' $ac_executable_extensions; do
-+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-+ ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
-+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-+ break 2
-+ fi
-+done
-+ done
-+IFS=$as_save_IFS
-+
-+ test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
-+ ;;
-+esac
-+fi
-+PKG_CONFIG=$ac_cv_path_PKG_CONFIG
-+if test -n "$PKG_CONFIG"; then
-+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
-+$as_echo "$PKG_CONFIG" >&6; }
-+else
-+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-+$as_echo "no" >&6; }
-+fi
-+
-+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for freetype2" >&5
-+$as_echo_n "checking for freetype2... " >&6; }
-+
-+
-+ if test -x "$PKG_CONFIG" && $PKG_CONFIG --exists freetype2 ; then
-+
-+ FREETYPE2_CFLAGS=`$PKG_CONFIG --cflags freetype2`
-+ FREETYPE2_LIBS=`$PKG_CONFIG --libs freetype2`
-+ FREETYPE2_VERSION=`$PKG_CONFIG --modversion freetype2`
-+ FREETYPE2_DIR="found"
-+
-+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: from pkgconfig: version $FREETYPE2_VERSION found" >&5
-+$as_echo "from pkgconfig: version $FREETYPE2_VERSION found" >&6; }
-+ else
-+
-+ for i in $PHP_FREETYPE_DIR /usr/local /usr; do
-+ if test -f "$i/bin/freetype-config"; then
-+ FREETYPE2_DIR=$i
-+ FREETYPE2_CONFIG="$i/bin/freetype-config"
-+ break
-+ fi
-+ done
-+
-+ if test -z "$FREETYPE2_DIR"; then
-+ as_fn_error $? "freetype-config not found." "$LINENO" 5
- fi
-- done
-
-- if test -z "$FREETYPE2_DIR"; then
-- as_fn_error $? "freetype-config not found." "$LINENO" 5
-+ FREETYPE2_CFLAGS=`$FREETYPE2_CONFIG --cflags`
-+ FREETYPE2_LIBS=`$FREETYPE2_CONFIG --libs`
-+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: found via freetype-config" >&5
-+$as_echo "found via freetype-config" >&6; }
- fi
-
-- FREETYPE2_CFLAGS=`$FREETYPE2_CONFIG --cflags`
-- FREETYPE2_LIBS=`$FREETYPE2_CONFIG --libs`
--
-
- for ac_i in $FREETYPE2_CFLAGS; do
- case $ac_i in
-@@ -36019,21 +36076,78 @@
-
- if test "$PHP_FREETYPE_DIR" != "no"; then
-
-- for i in $PHP_FREETYPE_DIR /usr/local /usr; do
-- if test -f "$i/bin/freetype-config"; then
-- FREETYPE2_DIR=$i
-- FREETYPE2_CONFIG="$i/bin/freetype-config"
-- break
-+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for freetype2" >&5
-+$as_echo_n "checking for freetype2... " >&6; }
-+ # Extract the first word of "pkg-config", so it can be a program name with args.
-+set dummy pkg-config; ac_word=$2
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-+$as_echo_n "checking for $ac_word... " >&6; }
-+if ${ac_cv_path_PKG_CONFIG+:} false; then :
-+ $as_echo_n "(cached) " >&6
-+else
-+ case $PKG_CONFIG in
-+ [\\/]* | ?:[\\/]*)
-+ ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
-+ ;;
-+ *)
-+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+ IFS=$as_save_IFS
-+ test -z "$as_dir" && as_dir=.
-+ for ac_exec_ext in '' $ac_executable_extensions; do
-+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-+ ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
-+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-+ break 2
-+ fi
-+done
-+ done
-+IFS=$as_save_IFS
-+
-+ test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
-+ ;;
-+esac
-+fi
-+PKG_CONFIG=$ac_cv_path_PKG_CONFIG
-+if test -n "$PKG_CONFIG"; then
-+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
-+$as_echo "$PKG_CONFIG" >&6; }
-+else
-+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-+$as_echo "no" >&6; }
-+fi
-+
-+
-+
-+ if test -x "$PKG_CONFIG" && $PKG_CONFIG --exists freetype2 ; then
-+
-+ FREETYPE2_CFLAGS=`$PKG_CONFIG --cflags freetype2`
-+ FREETYPE2_LIBS=`$PKG_CONFIG --libs freetype2`
-+ FREETYPE2_VERSION=`$PKG_CONFIG --modversion freetype2`
-+
-+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: from pkgconfig: version $FREETYPE_VERSON found" >&5
-+$as_echo "from pkgconfig: version $FREETYPE_VERSON found" >&6; }
-+ else
-+
-+ for i in $PHP_FREETYPE_DIR /usr/local /usr; do
-+ if test -f "$i/bin/freetype-config"; then
-+ FREETYPE2_DIR=$i
-+ FREETYPE2_CONFIG="$i/bin/freetype-config"
-+ break
-+ fi
-+ done
-+
-+ if test -z "$FREETYPE2_DIR"; then
-+ as_fn_error $? "freetype-config not found." "$LINENO" 5
- fi
-- done
-
-- if test -z "$FREETYPE2_DIR"; then
-- as_fn_error $? "freetype-config not found." "$LINENO" 5
-+ FREETYPE2_CFLAGS=`$FREETYPE2_CONFIG --cflags`
-+ FREETYPE2_LIBS=`$FREETYPE2_CONFIG --libs`
-+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: found via freetype-config" >&5
-+$as_echo "found via freetype-config" >&6; }
- fi
-
-- FREETYPE2_CFLAGS=`$FREETYPE2_CONFIG --cflags`
-- FREETYPE2_LIBS=`$FREETYPE2_CONFIG --libs`
--
-
- for ac_i in $FREETYPE2_CFLAGS; do
- case $ac_i in
diff --git a/dev-lang/php/metadata.xml b/dev-lang/php/metadata.xml
index d7afaed7acd0..b903ac6d3745 100644
--- a/dev-lang/php/metadata.xml
+++ b/dev-lang/php/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>php-bugs@gentoo.org</email>
@@ -10,35 +10,88 @@
<name>Michael Orlitzky</name>
</maintainer>
<use>
- <flag name="argon2">Enable password hashing algorithm from <pkg>app-crypt/argon2</pkg></flag>
- <flag name="bcmath">Add support for libbcmath</flag>
- <flag name="cli">Enable CLI SAPI</flag>
+ <flag name="apparmor">
+ Support FPM application confinement through
+ <pkg>sys-libs/libapparmor</pkg>
+ </flag>
+ <flag name="argon2">
+ Enable password hashing algorithm from <pkg>app-crypt/argon2</pkg>
+ </flag>
+ <flag name="bcmath">
+ Enable the BCMath Arbitrary Precision Mathematics extension
+ </flag>
+ <flag name="capstone">
+ Support opcache JIT disassembly through
+ <pkg>dev-libs/capstone</pkg>
+ </flag>
+ <flag name="cli">
+ Enable the Command-Line Interface (CLI) SAPI
+ </flag>
<flag name="coverage">
Include gcov symbols for test coverage and lcov reports. Only
useful for extension developers, and requires GCC.
</flag>
- <flag name="ctype">Enable ctype functions</flag>
- <flag name="embed">Enable embed SAPI </flag>
- <flag name="enchant">Add supports Enchant spelling library. </flag>
- <flag name="ffi"> Add foreign function interface (ffi extension) support</flag>
- <flag name="fileinfo"> Add fileinfo extension support</flag>
- <flag name="filter">Add filter extension support</flag>
- <flag name="flatfile">Add dbm support for flat files</flag>
- <flag name="fpm">Enable the FastCGI Process Manager SAPI</flag>
- <flag name="gd">Adds support for gd (bundled with PHP)</flag>
- <flag name="hash">Enable the hash extension</flag>
- <flag name="inifile">Add dbm support for .ini files</flag>
- <flag name="json">Enable JSON support</flag>
- <flag name="ldap-sasl">Add SASL support for the PHP LDAP extension</flag>
- <flag name="lmdb">Enable support for <pkg>dev-db/lmdb</pkg> db backend</flag>
+ <flag name="ctype">
+ Enable the Character type checking (ctype) extension
+ </flag>
+ <flag name="embed">
+ Enable embed SAPI
+ </flag>
+ <flag name="enchant">
+ Enable the Enchant spelling library extension using
+ <pkg>app-text/enchant</pkg>
+ </flag>
+ <flag name="ffi">
+ Enable the Foreign Function Interface (FFI) extension using
+ <pkg>dev-libs/libffi</pkg>
+ </flag>
+ <flag name="fileinfo">
+ Enable the File Information extension
+ </flag>
+ <flag name="filter">
+ Enable the Data Filtering extension
+ </flag>
+ <flag name="flatfile">
+ Add dbm support for flat files
+ </flag>
+ <flag name="fpm">
+ Enable the FastCGI Process Manager SAPI
+ </flag>
+ <flag name="gd">
+ Enable the Image Processing and GD extension (requires
+ <pkg>media-libs/libjpeg-turbo</pkg> and
+ <pkg>media-libs/libpng</pkg>)
+ </flag>
+ <!-- leave this global flag defined here to avoid a pkgcheck warning -->
+ <flag name="ipv6">
+ Support IPv6 connectivity in fopen and friends, and v6 address
+ conversions in functions like inet_pton and inet_ntop.
+ </flag>
+ <flag name="inifile">
+ Add dbm support for .ini files
+ </flag>
+ <flag name="jit">
+ Enable PCRE JIT support
+ </flag>
+ <flag name="ldap-sasl">
+ Add SASL support for the PHP LDAP extension using
+ <pkg>dev-libs/cyrus-sasl</pkg>
+ </flag>
+ <flag name="lmdb">
+ Enable support for <pkg>dev-db/lmdb</pkg> db backend
+ </flag>
<flag name="intl">
Enables the intl extension for extended internalization support
</flag>
<flag name="opcache">
Enables built-in opcode cache, replacing pecl-apc et al.
</flag>
- <flag name="pcntl">Add support for process creation functions</flag>
- <flag name="pdo">Enable the bundled PDO extensions</flag>
+ <flag name="pcntl">
+ Enable the Process Control extension
+ </flag>
+ <flag name="pdo">
+ Enable the PHP Data Objects extension
+ </flag>
<flag name="phar">
Enables the phar extension to provide phar archive support
</flag>
@@ -48,22 +101,35 @@
<flag name="session-mm">
Include <pkg>dev-libs/mm</pkg> support for session storage
</flag>
- <flag name="sharedmem">Add support for shared memory use</flag>
- <flag name="simplexml">Support for SimpleXML</flag>
+ <flag name="sharedmem">
+ Enable the shmop extension
+ </flag>
+ <flag name="simplexml">
+ Enable the SimpleXML extension
+ </flag>
<flag name="sodium">
Enable support for crypto through <pkg>dev-libs/libsodium</pkg>
</flag>
<flag name="sysvipc">
- Support for System V-compatible inter-process communication
+ Enable the PHP System-V semaphore, shared memory and IPC extension
+ </flag>
+ <flag name="tokenizer">
+ Add support for the PHP file parser
</flag>
- <flag name="tokenizer">Add support for the PHP file parser</flag>
<flag name="tokyocabinet">
- Enable support for <pkg>dev-db/tokyocabinet</pkg> db backend</flag>
- <flag name="xmlreader">Enable XMLReader support</flag>
- <flag name="xmlwriter">Enable XMLWriter support</flag>
- <flag name="xslt">Enable the XSL extension</flag>
- <flag name="wddx">Add support for Web Distributed Data eXchange</flag>
- <flag name="webp">Enable webp support for GD in php-7.x</flag>
- <flag name="zip-encryption">Enable ZIP file encryption from <pkg>dev-libs/libzip</pkg></flag>
+ Enable support for <pkg>dev-db/tokyocabinet</pkg> db backend
+ </flag>
+ <flag name="xmlreader">
+ Enable the XMLReader extension
+ </flag>
+ <flag name="xmlwriter">
+ Enable the XMLWriter extension
+ </flag>
+ <flag name="xslt">
+ Build the XSL extension
+ </flag>
</use>
+ <upstream>
+ <remote-id type="github">php/php-src</remote-id>
+ </upstream>
</pkgmetadata>
diff --git a/dev-lang/php/php-7.2.34-r1.ebuild b/dev-lang/php/php-7.2.34-r1.ebuild
deleted file mode 100644
index 331c786bb1a2..000000000000
--- a/dev-lang/php/php-7.2.34-r1.ebuild
+++ /dev/null
@@ -1,764 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="7"
-
-inherit flag-o-matic systemd autotools toolchain-funcs
-
-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 ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
-
-# 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 argon2 bcmath berkdb bzip2 calendar cdb cjk
- coverage +ctype curl debug
- enchant exif +fileinfo +filter firebird
- +flatfile ftp gd gdbm gmp +hash +iconv imap inifile
- intl iodbc ipv6 +json kerberos ldap ldap-sasl libedit libressl lmdb
- mhash mssql mysql mysqli nls
- oci8-instant-client odbc +opcache pcntl pdo +phar +posix postgres qdbm
- readline recode selinux +session session-mm sharedmem
- +simplexml snmp soap sockets sodium spell sqlite ssl
- sysvipc systemd test tidy +tokenizer tokyocabinet truetype unicode wddx webp
- +xml xmlreader xmlwriter xmlrpc xpm xslt zip zip-encryption zlib"
-
-# 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.1[apache2?,fpm?]
- >=dev-libs/libpcre-8.32[unicode]
- fpm? ( acl? ( sys-apps/acl ) )
- apache2? ( www-servers/apache[apache2_modules_unixd(+),threads=] )
- argon2? ( app-crypt/argon2:= )
- berkdb? ( || ( sys-libs/db:5.3
- sys-libs/db:5.1
- sys-libs/db:4.8
- sys-libs/db:4.7
- sys-libs/db:4.6
- sys-libs/db:4.5 ) )
- bzip2? ( app-arch/bzip2:0= )
- cdb? ( || ( dev-db/cdb dev-db/tinycdb ) )
- coverage? ( dev-util/lcov )
- curl? ( >=net-misc/curl-7.10.5 )
- enchant? ( <app-text/enchant-2.0:0 )
- firebird? ( dev-db/firebird )
- gd? ( >=virtual/jpeg-0-r3:0 media-libs/libpng:0= sys-libs/zlib )
- 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:= )
- iodbc? ( dev-db/libiodbc )
- kerberos? ( virtual/krb5 )
- ldap? ( >=net-nds/openldap-1.2.11 )
- ldap-sasl? ( dev-libs/cyrus-sasl >=net-nds/openldap-1.2.11 )
- libedit? ( dev-libs/libedit )
- lmdb? ( dev-db/lmdb:= )
- mssql? ( dev-db/freetds[mssql] )
- nls? ( sys-devel/gettext )
- oci8-instant-client? ( dev-db/oracle-instantclient-basic )
- odbc? ( >=dev-db/unixODBC-1.8.13 )
- postgres? ( dev-db/postgresql:* )
- qdbm? ( dev-db/qdbm )
- readline? ( sys-libs/readline:0= )
- recode? ( app-text/recode )
- session-mm? ( dev-libs/mm )
- simplexml? ( >=dev-libs/libxml2-2.6.8 )
- snmp? ( >=net-analyzer/net-snmp-5.2 )
- soap? ( >=dev-libs/libxml2-2.6.8 )
- sodium? ( dev-libs/libsodium:= )
- spell? ( >=app-text/aspell-0.50 )
- sqlite? ( >=dev-db/sqlite-3.7.6.3 )
- ssl? (
- !libressl? ( dev-libs/openssl:0= )
- libressl? ( dev-libs/libressl:0= )
- )
- tidy? ( || ( app-text/tidy-html5 app-text/htmltidy ) )
- tokyocabinet? ( dev-db/tokyocabinet )
- truetype? ( =media-libs/freetype-2* )
- unicode? ( dev-libs/oniguruma:= )
- wddx? ( >=dev-libs/libxml2-2.6.8 )
- webp? ( media-libs/libwebp:0= )
- xml? ( >=dev-libs/libxml2-2.6.8 )
- xmlrpc? ( >=dev-libs/libxml2-2.6.8 virtual/libiconv )
- xmlreader? ( >=dev-libs/libxml2-2.6.8 )
- xmlwriter? ( >=dev-libs/libxml2-2.6.8 )
- xpm? ( x11-libs/libXpm )
- xslt? ( dev-libs/libxslt >=dev-libs/libxml2-2.6.8 )
- zip? ( sys-libs/zlib:0= )
- zip-encryption? ( >=dev-libs/libzip-1.2.0:= )
- zlib? ( sys-libs/zlib: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"
-
-# Without USE=readline or libedit, the interactive "php -a" CLI will hang.
-REQUIRED_USE="
- || ( cli cgi fpm apache2 embed phpdbg )
- cli? ( ^^ ( readline libedit ) )
- truetype? ( gd zlib )
- webp? ( gd zlib )
- cjk? ( gd zlib )
- exif? ( gd zlib )
- xpm? ( gd zlib )
- gd? ( zlib )
- simplexml? ( xml )
- soap? ( xml )
- wddx? ( xml )
- xmlrpc? ( || ( xml iconv ) )
- xmlreader? ( xml )
- xslt? ( xml )
- ldap-sasl? ( ldap )
- mhash? ( hash )
- phar? ( hash )
- qdbm? ( !gdbm )
- readline? ( !libedit )
- recode? ( !imap !mysqli !mysql )
- session-mm? ( session !threads )
- mysql? ( hash || ( mysqli pdo ) )
- mysqli? ( hash )
- zip-encryption? ( zip )
-"
-
-RESTRICT="!test? ( test )"
-
-PATCHES=(
- "${FILESDIR}/php-freetype-2.9.1.patch"
- "${FILESDIR}/php-7.2.13-intl-use-icu-namespace.patch"
- "${FILESDIR}/php-7.2.34-use-after-free-bug76047.patch"
-)
-
-PHP_MV="$(ver_cut 1)"
-
-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'
-
- # Bug 669566 - necessary so that build tools are updated for commands like pecl
- # Force rebuilding aclocal.m4
- rm -f aclocal.m4 || die "failed to remove aclocal.m4 in src_prepare"
- eautoreconf
-}
-
-src_configure() {
- addpredict /usr/share/snmp/mibs/.index #nowarn
- addpredict /var/lib/net-snmp/mib_indexes #nowarn
-
- # Fix building against >=ICU-68, https://bugs.php.net/80310
- append-cflags -DU_DEFINE_FALSE_AND_TRUE=1
- append-cxxflags -DU_DEFINE_FALSE_AND_TRUE=1
-
- 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 maintainer-zts)
- )
-
- our_conf+=(
- $(use_with argon2 password-argon2 "${EPREFIX}/usr")
- $(use_enable bcmath bcmath)
- $(use_with bzip2 bz2 "${EPREFIX}/usr")
- $(use_enable calendar calendar)
- $(use_enable coverage gcov)
- $(use_enable ctype ctype)
- $(use_with curl curl "${EPREFIX}/usr")
- $(use_enable xml dom)
- $(use_with enchant enchant "${EPREFIX}/usr")
- $(use_enable exif exif)
- $(use_enable fileinfo fileinfo)
- $(use_enable filter filter)
- $(use_enable ftp ftp)
- $(use_with nls gettext "${EPREFIX}/usr")
- $(use_with gmp gmp "${EPREFIX}/usr")
- $(use_enable hash hash)
- $(use_with mhash mhash "${EPREFIX}/usr")
- $(use_with iconv iconv \
- $(use elibc_glibc || use elibc_musl || use elibc_FreeBSD || echo "${EPREFIX}/usr"))
- $(use_enable intl intl)
- $(use_enable ipv6 ipv6)
- $(use_enable json json)
- $(use_with kerberos kerberos "${EPREFIX}/usr")
- $(use_enable xml libxml)
- $(use_with xml libxml-dir "${EPREFIX}/usr")
- $(use_enable unicode mbstring)
- $(use_with unicode onig "${EPREFIX}/usr")
- $(use_with ssl openssl "${EPREFIX}/usr")
- $(use_with ssl openssl-dir "${EPREFIX}/usr")
- $(use_enable pcntl pcntl)
- $(use_enable phar phar)
- $(use_enable pdo pdo)
- $(use_enable opcache opcache)
- $(use_with postgres pgsql "${EPREFIX}/usr")
- $(use_enable posix posix)
- $(use_with spell pspell "${EPREFIX}/usr")
- $(use_with recode recode "${EPREFIX}/usr")
- $(use_enable simplexml simplexml)
- $(use_enable sharedmem shmop)
- $(use_with snmp snmp "${EPREFIX}/usr")
- $(use_enable soap soap)
- $(use_enable sockets sockets)
- $(use_with sodium sodium "${EPREFIX}/usr")
- $(use_with sqlite sqlite3 "${EPREFIX}/usr")
- $(use_enable sysvipc sysvmsg)
- $(use_enable sysvipc sysvsem)
- $(use_enable sysvipc sysvshm)
- $(use_with tidy tidy "${EPREFIX}/usr")
- $(use_enable tokenizer tokenizer)
- $(use_enable wddx wddx)
- $(use_enable xml xml)
- $(use_enable xmlreader xmlreader)
- $(use_enable xmlwriter xmlwriter)
- $(use_with xmlrpc xmlrpc)
- $(use_with xslt xsl "${EPREFIX}/usr")
- $(use_enable zip zip)
- $(use_with zip-encryption libzip "${EPREFIX}/usr")
- $(use_with zlib zlib "${EPREFIX}/usr")
- $(use_enable debug 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${shared}" )
- fi
-
- # DBA drivers support
- our_conf+=(
- $(use_with cdb cdb)
- $(use_with berkdb db4 "${EPREFIX}/usr")
- $(use_enable flatfile flatfile)
- $(use_with gdbm gdbm "${EPREFIX}/usr")
- $(use_enable inifile inifile)
- $(use_with qdbm qdbm "${EPREFIX}/usr")
- $(use_with lmdb lmdb "${EPREFIX}/usr")
- )
-
- # Support for the GD graphics library
- our_conf+=(
- $(use_with truetype freetype-dir "${EPREFIX}/usr")
- $(use_enable cjk gd-jis-conv)
- $(use_with gd jpeg-dir "${EPREFIX}/usr")
- $(use_with gd png-dir "${EPREFIX}/usr")
- $(use_with xpm xpm-dir "${EPREFIX}/usr")
- )
- if use webp; then
- our_conf+=( --with-webp-dir="${EPREFIX}/usr" )
- fi
- # enable gd last, so configure can pick up the previous settings
- our_conf+=( $(use_with gd gd) )
-
- # IMAP support
- if use imap ; then
- our_conf+=(
- $(use_with imap imap "${EPREFIX}/usr")
- $(use_with ssl imap-ssl "${EPREFIX}/usr")
- )
- fi
-
- # Interbase/firebird support
- our_conf+=( $(use_with firebird interbase "${EPREFIX}/usr") )
-
- # LDAP support
- if use ldap ; then
- our_conf+=(
- $(use_with ldap ldap "${EPREFIX}/usr")
- $(use_with ldap-sasl ldap-sasl "${EPREFIX}/usr")
- )
- 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
- our_conf+=(
- $(use_with odbc unixODBC "${EPREFIX}/usr")
- $(use_with iodbc iodbc "${EPREFIX}/usr")
- )
-
- # 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 "${EPREFIX}/usr")
- $(use_with firebird pdo-firebird "${EPREFIX}/usr")
- $(use_with odbc pdo-odbc "unixODBC,${EPREFIX}/usr")
- $(use_with oci8-instant-client pdo-oci)
- )
- fi
-
- # readline/libedit support
- our_conf+=(
- $(use_with readline readline "${EPREFIX}/usr")
- $(use_with libedit libedit "${EPREFIX}/usr")
- )
-
- # Session support
- if use session ; then
- our_conf+=( $(use_with session-mm mm "${EPREFIX}/usr") )
- else
- our_conf+=( $(use_enable session 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-pcre-regex affects ext/pcre
- # --with-pcre-dir affects ext/filter and ext/zip
- # --with-pcre-valgrind cannot be enabled with system pcre
- # Many arches don't support pcre-jit
- our_conf+=(
- --with-pcre-regex="${EPREFIX}/usr"
- --with-pcre-dir="${EPREFIX}/usr"
- --without-pcre-valgrind
- --without-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${PHP_MV}$(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${PHP_MV}$(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
-
- 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-7.2.34-r2.ebuild b/dev-lang/php/php-7.2.34-r2.ebuild
deleted file mode 100644
index 643a7372408c..000000000000
--- a/dev-lang/php/php-7.2.34-r2.ebuild
+++ /dev/null
@@ -1,764 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="7"
-
-inherit flag-o-matic systemd autotools toolchain-funcs
-
-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 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
-
-# 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 argon2 bcmath berkdb bzip2 calendar cdb cjk
- coverage +ctype curl debug
- enchant exif +fileinfo +filter firebird
- +flatfile ftp gd gdbm gmp +hash +iconv imap inifile
- intl iodbc ipv6 +json kerberos ldap ldap-sasl libedit libressl lmdb
- mhash mssql mysql mysqli nls
- oci8-instant-client odbc +opcache pcntl pdo +phar +posix postgres qdbm
- readline recode selinux +session session-mm sharedmem
- +simplexml snmp soap sockets sodium spell sqlite ssl
- sysvipc systemd test tidy +tokenizer tokyocabinet truetype unicode wddx webp
- +xml xmlreader xmlwriter xmlrpc xpm xslt zip zip-encryption zlib"
-
-# 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.1[apache2?,fpm?]
- >=dev-libs/libpcre-8.32[unicode]
- fpm? ( acl? ( sys-apps/acl ) )
- apache2? ( www-servers/apache[apache2_modules_unixd(+),threads=] )
- argon2? ( app-crypt/argon2:= )
- berkdb? ( || ( sys-libs/db:5.3
- sys-libs/db:5.1
- sys-libs/db:4.8
- sys-libs/db:4.7
- sys-libs/db:4.6
- sys-libs/db:4.5 ) )
- bzip2? ( app-arch/bzip2:0= )
- cdb? ( || ( dev-db/cdb dev-db/tinycdb ) )
- coverage? ( dev-util/lcov )
- curl? ( >=net-misc/curl-7.10.5 )
- enchant? ( <app-text/enchant-2.0:0 )
- firebird? ( dev-db/firebird )
- gd? ( >=virtual/jpeg-0-r3:0 media-libs/libpng:0= sys-libs/zlib )
- 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:= )
- iodbc? ( dev-db/libiodbc )
- kerberos? ( virtual/krb5 )
- ldap? ( >=net-nds/openldap-1.2.11 )
- ldap-sasl? ( dev-libs/cyrus-sasl >=net-nds/openldap-1.2.11 )
- libedit? ( dev-libs/libedit )
- lmdb? ( dev-db/lmdb:= )
- mssql? ( dev-db/freetds[mssql] )
- nls? ( sys-devel/gettext )
- oci8-instant-client? ( dev-db/oracle-instantclient-basic )
- odbc? ( >=dev-db/unixODBC-1.8.13 )
- postgres? ( dev-db/postgresql:* )
- qdbm? ( dev-db/qdbm )
- readline? ( sys-libs/readline:0= )
- recode? ( app-text/recode:0= )
- session-mm? ( dev-libs/mm )
- simplexml? ( >=dev-libs/libxml2-2.6.8 )
- snmp? ( >=net-analyzer/net-snmp-5.2 )
- soap? ( >=dev-libs/libxml2-2.6.8 )
- sodium? ( dev-libs/libsodium:= )
- spell? ( >=app-text/aspell-0.50 )
- sqlite? ( >=dev-db/sqlite-3.7.6.3 )
- ssl? (
- !libressl? ( dev-libs/openssl:0= )
- libressl? ( dev-libs/libressl:0= )
- )
- tidy? ( || ( app-text/tidy-html5 app-text/htmltidy ) )
- tokyocabinet? ( dev-db/tokyocabinet )
- truetype? ( =media-libs/freetype-2* )
- unicode? ( dev-libs/oniguruma:= )
- wddx? ( >=dev-libs/libxml2-2.6.8 )
- webp? ( media-libs/libwebp:0= )
- xml? ( >=dev-libs/libxml2-2.6.8 )
- xmlrpc? ( >=dev-libs/libxml2-2.6.8 virtual/libiconv )
- xmlreader? ( >=dev-libs/libxml2-2.6.8 )
- xmlwriter? ( >=dev-libs/libxml2-2.6.8 )
- xpm? ( x11-libs/libXpm )
- xslt? ( dev-libs/libxslt >=dev-libs/libxml2-2.6.8 )
- zip? ( sys-libs/zlib:0= )
- zip-encryption? ( >=dev-libs/libzip-1.2.0:= )
- zlib? ( sys-libs/zlib: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"
-
-# Without USE=readline or libedit, the interactive "php -a" CLI will hang.
-REQUIRED_USE="
- || ( cli cgi fpm apache2 embed phpdbg )
- cli? ( ^^ ( readline libedit ) )
- truetype? ( gd zlib )
- webp? ( gd zlib )
- cjk? ( gd zlib )
- exif? ( gd zlib )
- xpm? ( gd zlib )
- gd? ( zlib )
- simplexml? ( xml )
- soap? ( xml )
- wddx? ( xml )
- xmlrpc? ( || ( xml iconv ) )
- xmlreader? ( xml )
- xslt? ( xml )
- ldap-sasl? ( ldap )
- mhash? ( hash )
- phar? ( hash )
- qdbm? ( !gdbm )
- readline? ( !libedit )
- recode? ( !imap !mysqli !mysql )
- session-mm? ( session !threads )
- mysql? ( hash || ( mysqli pdo ) )
- mysqli? ( hash )
- zip-encryption? ( zip )
-"
-
-RESTRICT="!test? ( test )"
-
-PATCHES=(
- "${FILESDIR}/php-freetype-2.9.1.patch"
- "${FILESDIR}/php-7.2.13-intl-use-icu-namespace.patch"
- "${FILESDIR}/php-7.2.34-use-after-free-bug76047.patch"
-)
-
-PHP_MV="$(ver_cut 1)"
-
-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'
-
- # Bug 669566 - necessary so that build tools are updated for commands like pecl
- # Force rebuilding aclocal.m4
- rm -f aclocal.m4 || die "failed to remove aclocal.m4 in src_prepare"
- eautoreconf
-}
-
-src_configure() {
- addpredict /usr/share/snmp/mibs/.index #nowarn
- addpredict /var/lib/net-snmp/mib_indexes #nowarn
-
- # Fix building against >=ICU-68, https://bugs.php.net/80310
- append-cflags -DU_DEFINE_FALSE_AND_TRUE=1
- append-cxxflags -DU_DEFINE_FALSE_AND_TRUE=1
-
- 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 maintainer-zts)
- )
-
- our_conf+=(
- $(use_with argon2 password-argon2 "${EPREFIX}/usr")
- $(use_enable bcmath bcmath)
- $(use_with bzip2 bz2 "${EPREFIX}/usr")
- $(use_enable calendar calendar)
- $(use_enable coverage gcov)
- $(use_enable ctype ctype)
- $(use_with curl curl "${EPREFIX}/usr")
- $(use_enable xml dom)
- $(use_with enchant enchant "${EPREFIX}/usr")
- $(use_enable exif exif)
- $(use_enable fileinfo fileinfo)
- $(use_enable filter filter)
- $(use_enable ftp ftp)
- $(use_with nls gettext "${EPREFIX}/usr")
- $(use_with gmp gmp "${EPREFIX}/usr")
- $(use_enable hash hash)
- $(use_with mhash mhash "${EPREFIX}/usr")
- $(use_with iconv iconv \
- $(use elibc_glibc || use elibc_musl || use elibc_FreeBSD || echo "${EPREFIX}/usr"))
- $(use_enable intl intl)
- $(use_enable ipv6 ipv6)
- $(use_enable json json)
- $(use_with kerberos kerberos "${EPREFIX}/usr")
- $(use_enable xml libxml)
- $(use_with xml libxml-dir "${EPREFIX}/usr")
- $(use_enable unicode mbstring)
- $(use_with unicode onig "${EPREFIX}/usr")
- $(use_with ssl openssl "${EPREFIX}/usr")
- $(use_with ssl openssl-dir "${EPREFIX}/usr")
- $(use_enable pcntl pcntl)
- $(use_enable phar phar)
- $(use_enable pdo pdo)
- $(use_enable opcache opcache)
- $(use_with postgres pgsql "${EPREFIX}/usr")
- $(use_enable posix posix)
- $(use_with spell pspell "${EPREFIX}/usr")
- $(use_with recode recode "${EPREFIX}/usr")
- $(use_enable simplexml simplexml)
- $(use_enable sharedmem shmop)
- $(use_with snmp snmp "${EPREFIX}/usr")
- $(use_enable soap soap)
- $(use_enable sockets sockets)
- $(use_with sodium sodium "${EPREFIX}/usr")
- $(use_with sqlite sqlite3 "${EPREFIX}/usr")
- $(use_enable sysvipc sysvmsg)
- $(use_enable sysvipc sysvsem)
- $(use_enable sysvipc sysvshm)
- $(use_with tidy tidy "${EPREFIX}/usr")
- $(use_enable tokenizer tokenizer)
- $(use_enable wddx wddx)
- $(use_enable xml xml)
- $(use_enable xmlreader xmlreader)
- $(use_enable xmlwriter xmlwriter)
- $(use_with xmlrpc xmlrpc)
- $(use_with xslt xsl "${EPREFIX}/usr")
- $(use_enable zip zip)
- $(use_with zip-encryption libzip "${EPREFIX}/usr")
- $(use_with zlib zlib "${EPREFIX}/usr")
- $(use_enable debug 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${shared}" )
- fi
-
- # DBA drivers support
- our_conf+=(
- $(use_with cdb cdb)
- $(use_with berkdb db4 "${EPREFIX}/usr")
- $(use_enable flatfile flatfile)
- $(use_with gdbm gdbm "${EPREFIX}/usr")
- $(use_enable inifile inifile)
- $(use_with qdbm qdbm "${EPREFIX}/usr")
- $(use_with lmdb lmdb "${EPREFIX}/usr")
- )
-
- # Support for the GD graphics library
- our_conf+=(
- $(use_with truetype freetype-dir "${EPREFIX}/usr")
- $(use_enable cjk gd-jis-conv)
- $(use_with gd jpeg-dir "${EPREFIX}/usr")
- $(use_with gd png-dir "${EPREFIX}/usr")
- $(use_with xpm xpm-dir "${EPREFIX}/usr")
- )
- if use webp; then
- our_conf+=( --with-webp-dir="${EPREFIX}/usr" )
- fi
- # enable gd last, so configure can pick up the previous settings
- our_conf+=( $(use_with gd gd) )
-
- # IMAP support
- if use imap ; then
- our_conf+=(
- $(use_with imap imap "${EPREFIX}/usr")
- $(use_with ssl imap-ssl "${EPREFIX}/usr")
- )
- fi
-
- # Interbase/firebird support
- our_conf+=( $(use_with firebird interbase "${EPREFIX}/usr") )
-
- # LDAP support
- if use ldap ; then
- our_conf+=(
- $(use_with ldap ldap "${EPREFIX}/usr")
- $(use_with ldap-sasl ldap-sasl "${EPREFIX}/usr")
- )
- 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
- our_conf+=(
- $(use_with odbc unixODBC "${EPREFIX}/usr")
- $(use_with iodbc iodbc "${EPREFIX}/usr")
- )
-
- # 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 "${EPREFIX}/usr")
- $(use_with firebird pdo-firebird "${EPREFIX}/usr")
- $(use_with odbc pdo-odbc "unixODBC,${EPREFIX}/usr")
- $(use_with oci8-instant-client pdo-oci)
- )
- fi
-
- # readline/libedit support
- our_conf+=(
- $(use_with readline readline "${EPREFIX}/usr")
- $(use_with libedit libedit "${EPREFIX}/usr")
- )
-
- # Session support
- if use session ; then
- our_conf+=( $(use_with session-mm mm "${EPREFIX}/usr") )
- else
- our_conf+=( $(use_enable session 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-pcre-regex affects ext/pcre
- # --with-pcre-dir affects ext/filter and ext/zip
- # --with-pcre-valgrind cannot be enabled with system pcre
- # Many arches don't support pcre-jit
- our_conf+=(
- --with-pcre-regex="${EPREFIX}/usr"
- --with-pcre-dir="${EPREFIX}/usr"
- --without-pcre-valgrind
- --without-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${PHP_MV}$(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${PHP_MV}$(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
-
- 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-7.3.25.ebuild b/dev-lang/php/php-7.3.25.ebuild
deleted file mode 100644
index f1d01ba617fc..000000000000
--- a/dev-lang/php/php-7.3.25.ebuild
+++ /dev/null
@@ -1,760 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="7"
-
-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 ~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 argon2 bcmath berkdb bzip2 calendar cdb cjk
- coverage +ctype curl debug
- enchant exif +fileinfo +filter firebird
- +flatfile ftp gd gdbm gmp +hash +iconv imap inifile
- intl iodbc ipv6 +json kerberos ldap ldap-sasl libedit libressl lmdb
- mhash mssql mysql mysqli nls
- oci8-instant-client odbc +opcache pcntl pdo +phar +posix postgres qdbm
- readline recode selinux +session session-mm sharedmem
- +simplexml snmp soap sockets sodium spell sqlite ssl
- sysvipc systemd test tidy +tokenizer tokyocabinet truetype unicode wddx webp
- +xml xmlreader xmlwriter xmlrpc xpm xslt zip zip-encryption zlib"
-
-# 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.1[apache2?,fpm?]
- >=dev-libs/libpcre2-10.30[unicode]
- fpm? ( acl? ( sys-apps/acl ) )
- apache2? ( www-servers/apache[apache2_modules_unixd(+),threads=] )
- argon2? ( app-crypt/argon2:= )
- berkdb? ( || ( sys-libs/db:5.3
- sys-libs/db:5.1
- sys-libs/db:4.8
- sys-libs/db:4.7
- sys-libs/db:4.6
- sys-libs/db:4.5 ) )
- bzip2? ( app-arch/bzip2:0= )
- cdb? ( || ( dev-db/cdb dev-db/tinycdb ) )
- coverage? ( dev-util/lcov )
- curl? ( >=net-misc/curl-7.10.5 )
- enchant? ( <app-text/enchant-2.0:0 )
- firebird? ( dev-db/firebird )
- gd? ( >=virtual/jpeg-0-r3:0 media-libs/libpng:0= >=sys-libs/zlib-1.2.0.4 )
- 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:= )
- iodbc? ( dev-db/libiodbc )
- kerberos? ( virtual/krb5 )
- ldap? ( >=net-nds/openldap-1.2.11 )
- ldap-sasl? ( dev-libs/cyrus-sasl >=net-nds/openldap-1.2.11 )
- libedit? ( dev-libs/libedit )
- lmdb? ( dev-db/lmdb:= )
- mssql? ( dev-db/freetds[mssql] )
- nls? ( sys-devel/gettext )
- oci8-instant-client? ( dev-db/oracle-instantclient-basic )
- odbc? ( >=dev-db/unixODBC-1.8.13 )
- postgres? ( dev-db/postgresql:* )
- qdbm? ( dev-db/qdbm )
- readline? ( sys-libs/readline:0= )
- recode? ( app-text/recode )
- session-mm? ( dev-libs/mm )
- simplexml? ( >=dev-libs/libxml2-2.6.8 )
- snmp? ( >=net-analyzer/net-snmp-5.2 )
- soap? ( >=dev-libs/libxml2-2.6.8 )
- sodium? ( dev-libs/libsodium:= )
- spell? ( >=app-text/aspell-0.50 )
- sqlite? ( >=dev-db/sqlite-3.7.6.3 )
- ssl? (
- !libressl? ( >=dev-libs/openssl-1.0.1:0= )
- libressl? ( dev-libs/libressl:0= )
- )
- tidy? ( || ( app-text/tidy-html5 app-text/htmltidy ) )
- tokyocabinet? ( dev-db/tokyocabinet )
- truetype? ( =media-libs/freetype-2* )
- unicode? ( dev-libs/oniguruma:= )
- wddx? ( >=dev-libs/libxml2-2.6.8 )
- webp? ( media-libs/libwebp:0= )
- xml? ( >=dev-libs/libxml2-2.6.8 )
- xmlrpc? ( >=dev-libs/libxml2-2.6.8 virtual/libiconv )
- xmlreader? ( >=dev-libs/libxml2-2.6.8 )
- xmlwriter? ( >=dev-libs/libxml2-2.6.8 )
- xpm? ( x11-libs/libXpm )
- xslt? ( dev-libs/libxslt >=dev-libs/libxml2-2.6.8 )
- zip? ( >=sys-libs/zlib-1.2.0.4:0= )
- zip-encryption? ( >=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"
-
-# Without USE=readline or libedit, the interactive "php -a" CLI will hang.
-REQUIRED_USE="
- || ( cli cgi fpm apache2 embed phpdbg )
- cli? ( ^^ ( readline libedit ) )
- truetype? ( gd zlib )
- webp? ( gd zlib )
- cjk? ( gd zlib )
- exif? ( gd zlib )
- xpm? ( gd zlib )
- gd? ( zlib )
- simplexml? ( xml )
- soap? ( xml )
- wddx? ( xml )
- xmlrpc? ( || ( xml iconv ) )
- xmlreader? ( xml )
- xslt? ( xml )
- ldap-sasl? ( ldap )
- mhash? ( hash )
- phar? ( hash )
- qdbm? ( !gdbm )
- readline? ( !libedit )
- recode? ( !imap !mysqli !mysql )
- session-mm? ( session !threads )
- mysql? ( || ( mysqli pdo ) )
- zip-encryption? ( zip )
-"
-
-RESTRICT="!test? ( test )"
-
-PATCHES=(
- "${FILESDIR}/php-freetype-2.9.1.patch"
-)
-
-PHP_MV="$(ver_cut 1)"
-
-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'
-
- # Bug 669566 - necessary so that build tools are updated for commands like pecl
- # Force rebuilding aclocal.m4
- rm -f aclocal.m4 || die "failed to remove aclocal.m4 in src_prepare"
- eautoreconf
-}
-
-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 maintainer-zts)
- )
-
- our_conf+=(
- $(use_with argon2 password-argon2 "${EPREFIX}/usr")
- $(use_enable bcmath bcmath)
- $(use_with bzip2 bz2 "${EPREFIX}/usr")
- $(use_enable calendar calendar)
- $(use_enable coverage gcov)
- $(use_enable ctype ctype)
- $(use_with curl curl "${EPREFIX}/usr")
- $(use_enable xml dom)
- $(use_with enchant enchant "${EPREFIX}/usr")
- $(use_enable exif exif)
- $(use_enable fileinfo fileinfo)
- $(use_enable filter filter)
- $(use_enable ftp ftp)
- $(use_with nls gettext "${EPREFIX}/usr")
- $(use_with gmp gmp "${EPREFIX}/usr")
- $(use_enable hash hash)
- $(use_with mhash mhash "${EPREFIX}/usr")
- $(use_with iconv iconv \
- $(use elibc_glibc || use elibc_musl || use elibc_FreeBSD || echo "${EPREFIX}/usr"))
- $(use_enable intl intl)
- $(use_enable ipv6 ipv6)
- $(use_enable json json)
- $(use_with kerberos kerberos "${EPREFIX}/usr")
- $(use_enable xml libxml)
- $(use_with xml libxml-dir "${EPREFIX}/usr")
- $(use_enable unicode mbstring)
- $(use_with unicode onig "${EPREFIX}/usr")
- $(use_with ssl openssl "${EPREFIX}/usr")
- $(use_with ssl openssl-dir "${EPREFIX}/usr")
- $(use_enable pcntl pcntl)
- $(use_enable phar phar)
- $(use_enable pdo pdo)
- $(use_enable opcache opcache)
- $(use_with postgres pgsql "${EPREFIX}/usr")
- $(use_enable posix posix)
- $(use_with spell pspell "${EPREFIX}/usr")
- $(use_with recode recode "${EPREFIX}/usr")
- $(use_enable simplexml simplexml)
- $(use_enable sharedmem shmop)
- $(use_with snmp snmp "${EPREFIX}/usr")
- $(use_enable soap soap)
- $(use_enable sockets sockets)
- $(use_with sodium sodium "${EPREFIX}/usr")
- $(use_with sqlite sqlite3 "${EPREFIX}/usr")
- $(use_enable sysvipc sysvmsg)
- $(use_enable sysvipc sysvsem)
- $(use_enable sysvipc sysvshm)
- $(use_with tidy tidy "${EPREFIX}/usr")
- $(use_enable tokenizer tokenizer)
- $(use_enable wddx wddx)
- $(use_enable xml xml)
- $(use_enable xmlreader xmlreader)
- $(use_enable xmlwriter xmlwriter)
- $(use_with xmlrpc xmlrpc)
- $(use_with xslt xsl "${EPREFIX}/usr")
- $(use_enable zip zip)
- $(use_with zip-encryption libzip "${EPREFIX}/usr")
- $(use_with zlib zlib "${EPREFIX}/usr")
- $(use_enable debug 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${shared}" )
- fi
-
- # DBA drivers support
- our_conf+=(
- $(use_with cdb cdb)
- $(use_with berkdb db4 "${EPREFIX}/usr")
- $(use_enable flatfile flatfile)
- $(use_with gdbm gdbm "${EPREFIX}/usr")
- $(use_enable inifile inifile)
- $(use_with qdbm qdbm "${EPREFIX}/usr")
- $(use_with lmdb lmdb "${EPREFIX}/usr")
- )
-
- # Support for the GD graphics library
- our_conf+=(
- $(use_with truetype freetype-dir "${EPREFIX}/usr")
- $(use_enable cjk gd-jis-conv)
- $(use_with gd jpeg-dir "${EPREFIX}/usr")
- $(use_with gd png-dir "${EPREFIX}/usr")
- $(use_with xpm xpm-dir "${EPREFIX}/usr")
- )
- if use webp; then
- our_conf+=( --with-webp-dir="${EPREFIX}/usr" )
- fi
- # enable gd last, so configure can pick up the previous settings
- our_conf+=( $(use_with gd gd) )
-
- # IMAP support
- if use imap ; then
- our_conf+=(
- $(use_with imap imap "${EPREFIX}/usr")
- $(use_with ssl imap-ssl "${EPREFIX}/usr")
- )
- fi
-
- # Interbase/firebird support
- our_conf+=( $(use_with firebird interbase "${EPREFIX}/usr") )
-
- # LDAP support
- if use ldap ; then
- our_conf+=(
- $(use_with ldap ldap "${EPREFIX}/usr")
- $(use_with ldap-sasl ldap-sasl "${EPREFIX}/usr")
- )
- 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
- our_conf+=(
- $(use_with odbc unixODBC "${EPREFIX}/usr")
- $(use_with iodbc iodbc "${EPREFIX}/usr")
- )
-
- # 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 "${EPREFIX}/usr")
- $(use_with firebird pdo-firebird "${EPREFIX}/usr")
- $(use_with odbc pdo-odbc "unixODBC,${EPREFIX}/usr")
- $(use_with oci8-instant-client pdo-oci)
- )
- fi
-
- # readline/libedit support
- our_conf+=(
- $(use_with readline readline "${EPREFIX}/usr")
- $(use_with libedit libedit "${EPREFIX}/usr")
- )
-
- # Session support
- if use session ; then
- our_conf+=( $(use_with session-mm mm "${EPREFIX}/usr") )
- else
- our_conf+=( $(use_enable session 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-pcre-regex affects ext/pcre
- # --with-pcre-dir affects ext/filter and ext/zip
- # --with-pcre-valgrind cannot be enabled with system pcre
- # Many arches don't support pcre-jit
- our_conf+=(
- --with-pcre-regex="${EPREFIX}/usr"
- --with-pcre-dir="${EPREFIX}/usr"
- --without-pcre-valgrind
- --without-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${PHP_MV}$(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${PHP_MV}$(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
-
- 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-7.3.26.ebuild b/dev-lang/php/php-7.3.26.ebuild
deleted file mode 100644
index 96b985300a50..000000000000
--- a/dev-lang/php/php-7.3.26.ebuild
+++ /dev/null
@@ -1,760 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="7"
-
-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 ~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 argon2 bcmath berkdb bzip2 calendar cdb cjk
- coverage +ctype curl debug
- enchant exif +fileinfo +filter firebird
- +flatfile ftp gd gdbm gmp +hash +iconv imap inifile
- intl iodbc ipv6 +json kerberos ldap ldap-sasl libedit libressl lmdb
- mhash mssql mysql mysqli nls
- oci8-instant-client odbc +opcache pcntl pdo +phar +posix postgres qdbm
- readline recode selinux +session session-mm sharedmem
- +simplexml snmp soap sockets sodium spell sqlite ssl
- sysvipc systemd test tidy +tokenizer tokyocabinet truetype unicode wddx webp
- +xml xmlreader xmlwriter xmlrpc xpm xslt zip zip-encryption zlib"
-
-# 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.1[apache2?,fpm?]
- >=dev-libs/libpcre2-10.30[unicode]
- fpm? ( acl? ( sys-apps/acl ) )
- apache2? ( www-servers/apache[apache2_modules_unixd(+),threads=] )
- argon2? ( app-crypt/argon2:= )
- berkdb? ( || ( sys-libs/db:5.3
- sys-libs/db:5.1
- sys-libs/db:4.8
- sys-libs/db:4.7
- sys-libs/db:4.6
- sys-libs/db:4.5 ) )
- bzip2? ( app-arch/bzip2:0= )
- cdb? ( || ( dev-db/cdb dev-db/tinycdb ) )
- coverage? ( dev-util/lcov )
- curl? ( >=net-misc/curl-7.10.5 )
- enchant? ( <app-text/enchant-2.0:0 )
- firebird? ( dev-db/firebird )
- gd? ( >=virtual/jpeg-0-r3:0 media-libs/libpng:0= >=sys-libs/zlib-1.2.0.4 )
- 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:= )
- iodbc? ( dev-db/libiodbc )
- kerberos? ( virtual/krb5 )
- ldap? ( >=net-nds/openldap-1.2.11 )
- ldap-sasl? ( dev-libs/cyrus-sasl >=net-nds/openldap-1.2.11 )
- libedit? ( dev-libs/libedit )
- lmdb? ( dev-db/lmdb:= )
- mssql? ( dev-db/freetds[mssql] )
- nls? ( sys-devel/gettext )
- oci8-instant-client? ( dev-db/oracle-instantclient-basic )
- odbc? ( >=dev-db/unixODBC-1.8.13 )
- postgres? ( dev-db/postgresql:* )
- qdbm? ( dev-db/qdbm )
- readline? ( sys-libs/readline:0= )
- recode? ( app-text/recode:0= )
- session-mm? ( dev-libs/mm )
- simplexml? ( >=dev-libs/libxml2-2.6.8 )
- snmp? ( >=net-analyzer/net-snmp-5.2 )
- soap? ( >=dev-libs/libxml2-2.6.8 )
- sodium? ( dev-libs/libsodium:= )
- spell? ( >=app-text/aspell-0.50 )
- sqlite? ( >=dev-db/sqlite-3.7.6.3 )
- ssl? (
- !libressl? ( >=dev-libs/openssl-1.0.1:0= )
- libressl? ( dev-libs/libressl:0= )
- )
- tidy? ( || ( app-text/tidy-html5 app-text/htmltidy ) )
- tokyocabinet? ( dev-db/tokyocabinet )
- truetype? ( =media-libs/freetype-2* )
- unicode? ( dev-libs/oniguruma:= )
- wddx? ( >=dev-libs/libxml2-2.6.8 )
- webp? ( media-libs/libwebp:0= )
- xml? ( >=dev-libs/libxml2-2.6.8 )
- xmlrpc? ( >=dev-libs/libxml2-2.6.8 virtual/libiconv )
- xmlreader? ( >=dev-libs/libxml2-2.6.8 )
- xmlwriter? ( >=dev-libs/libxml2-2.6.8 )
- xpm? ( x11-libs/libXpm )
- xslt? ( dev-libs/libxslt >=dev-libs/libxml2-2.6.8 )
- zip? ( >=sys-libs/zlib-1.2.0.4:0= )
- zip-encryption? ( >=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"
-
-# Without USE=readline or libedit, the interactive "php -a" CLI will hang.
-REQUIRED_USE="
- || ( cli cgi fpm apache2 embed phpdbg )
- cli? ( ^^ ( readline libedit ) )
- truetype? ( gd zlib )
- webp? ( gd zlib )
- cjk? ( gd zlib )
- exif? ( gd zlib )
- xpm? ( gd zlib )
- gd? ( zlib )
- simplexml? ( xml )
- soap? ( xml )
- wddx? ( xml )
- xmlrpc? ( || ( xml iconv ) )
- xmlreader? ( xml )
- xslt? ( xml )
- ldap-sasl? ( ldap )
- mhash? ( hash )
- phar? ( hash )
- qdbm? ( !gdbm )
- readline? ( !libedit )
- recode? ( !imap !mysqli !mysql )
- session-mm? ( session !threads )
- mysql? ( || ( mysqli pdo ) )
- zip-encryption? ( zip )
-"
-
-RESTRICT="!test? ( test )"
-
-PATCHES=(
- "${FILESDIR}/php-freetype-2.9.1.patch"
-)
-
-PHP_MV="$(ver_cut 1)"
-
-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'
-
- # Bug 669566 - necessary so that build tools are updated for commands like pecl
- # Force rebuilding aclocal.m4
- rm -f aclocal.m4 || die "failed to remove aclocal.m4 in src_prepare"
- eautoreconf
-}
-
-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 maintainer-zts)
- )
-
- our_conf+=(
- $(use_with argon2 password-argon2 "${EPREFIX}/usr")
- $(use_enable bcmath bcmath)
- $(use_with bzip2 bz2 "${EPREFIX}/usr")
- $(use_enable calendar calendar)
- $(use_enable coverage gcov)
- $(use_enable ctype ctype)
- $(use_with curl curl "${EPREFIX}/usr")
- $(use_enable xml dom)
- $(use_with enchant enchant "${EPREFIX}/usr")
- $(use_enable exif exif)
- $(use_enable fileinfo fileinfo)
- $(use_enable filter filter)
- $(use_enable ftp ftp)
- $(use_with nls gettext "${EPREFIX}/usr")
- $(use_with gmp gmp "${EPREFIX}/usr")
- $(use_enable hash hash)
- $(use_with mhash mhash "${EPREFIX}/usr")
- $(use_with iconv iconv \
- $(use elibc_glibc || use elibc_musl || use elibc_FreeBSD || echo "${EPREFIX}/usr"))
- $(use_enable intl intl)
- $(use_enable ipv6 ipv6)
- $(use_enable json json)
- $(use_with kerberos kerberos "${EPREFIX}/usr")
- $(use_enable xml libxml)
- $(use_with xml libxml-dir "${EPREFIX}/usr")
- $(use_enable unicode mbstring)
- $(use_with unicode onig "${EPREFIX}/usr")
- $(use_with ssl openssl "${EPREFIX}/usr")
- $(use_with ssl openssl-dir "${EPREFIX}/usr")
- $(use_enable pcntl pcntl)
- $(use_enable phar phar)
- $(use_enable pdo pdo)
- $(use_enable opcache opcache)
- $(use_with postgres pgsql "${EPREFIX}/usr")
- $(use_enable posix posix)
- $(use_with spell pspell "${EPREFIX}/usr")
- $(use_with recode recode "${EPREFIX}/usr")
- $(use_enable simplexml simplexml)
- $(use_enable sharedmem shmop)
- $(use_with snmp snmp "${EPREFIX}/usr")
- $(use_enable soap soap)
- $(use_enable sockets sockets)
- $(use_with sodium sodium "${EPREFIX}/usr")
- $(use_with sqlite sqlite3 "${EPREFIX}/usr")
- $(use_enable sysvipc sysvmsg)
- $(use_enable sysvipc sysvsem)
- $(use_enable sysvipc sysvshm)
- $(use_with tidy tidy "${EPREFIX}/usr")
- $(use_enable tokenizer tokenizer)
- $(use_enable wddx wddx)
- $(use_enable xml xml)
- $(use_enable xmlreader xmlreader)
- $(use_enable xmlwriter xmlwriter)
- $(use_with xmlrpc xmlrpc)
- $(use_with xslt xsl "${EPREFIX}/usr")
- $(use_enable zip zip)
- $(use_with zip-encryption libzip "${EPREFIX}/usr")
- $(use_with zlib zlib "${EPREFIX}/usr")
- $(use_enable debug 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${shared}" )
- fi
-
- # DBA drivers support
- our_conf+=(
- $(use_with cdb cdb)
- $(use_with berkdb db4 "${EPREFIX}/usr")
- $(use_enable flatfile flatfile)
- $(use_with gdbm gdbm "${EPREFIX}/usr")
- $(use_enable inifile inifile)
- $(use_with qdbm qdbm "${EPREFIX}/usr")
- $(use_with lmdb lmdb "${EPREFIX}/usr")
- )
-
- # Support for the GD graphics library
- our_conf+=(
- $(use_with truetype freetype-dir "${EPREFIX}/usr")
- $(use_enable cjk gd-jis-conv)
- $(use_with gd jpeg-dir "${EPREFIX}/usr")
- $(use_with gd png-dir "${EPREFIX}/usr")
- $(use_with xpm xpm-dir "${EPREFIX}/usr")
- )
- if use webp; then
- our_conf+=( --with-webp-dir="${EPREFIX}/usr" )
- fi
- # enable gd last, so configure can pick up the previous settings
- our_conf+=( $(use_with gd gd) )
-
- # IMAP support
- if use imap ; then
- our_conf+=(
- $(use_with imap imap "${EPREFIX}/usr")
- $(use_with ssl imap-ssl "${EPREFIX}/usr")
- )
- fi
-
- # Interbase/firebird support
- our_conf+=( $(use_with firebird interbase "${EPREFIX}/usr") )
-
- # LDAP support
- if use ldap ; then
- our_conf+=(
- $(use_with ldap ldap "${EPREFIX}/usr")
- $(use_with ldap-sasl ldap-sasl "${EPREFIX}/usr")
- )
- 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
- our_conf+=(
- $(use_with odbc unixODBC "${EPREFIX}/usr")
- $(use_with iodbc iodbc "${EPREFIX}/usr")
- )
-
- # 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 "${EPREFIX}/usr")
- $(use_with firebird pdo-firebird "${EPREFIX}/usr")
- $(use_with odbc pdo-odbc "unixODBC,${EPREFIX}/usr")
- $(use_with oci8-instant-client pdo-oci)
- )
- fi
-
- # readline/libedit support
- our_conf+=(
- $(use_with readline readline "${EPREFIX}/usr")
- $(use_with libedit libedit "${EPREFIX}/usr")
- )
-
- # Session support
- if use session ; then
- our_conf+=( $(use_with session-mm mm "${EPREFIX}/usr") )
- else
- our_conf+=( $(use_enable session 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-pcre-regex affects ext/pcre
- # --with-pcre-dir affects ext/filter and ext/zip
- # --with-pcre-valgrind cannot be enabled with system pcre
- # Many arches don't support pcre-jit
- our_conf+=(
- --with-pcre-regex="${EPREFIX}/usr"
- --with-pcre-dir="${EPREFIX}/usr"
- --without-pcre-valgrind
- --without-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${PHP_MV}$(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${PHP_MV}$(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
-
- 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.0.1.ebuild b/dev-lang/php/php-8.1.26-r1.ebuild
index bda8c364a3e5..4b24fb08bbe5 100644
--- a/dev-lang/php/php-8.0.1.ebuild
+++ b/dev-lang/php/php-8.1.26-r1.ebuild
@@ -1,13 +1,12 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI="7"
+EAPI=8
WANT_AUTOMAKE="none"
-inherit flag-o-matic systemd autotools
+inherit flag-o-matic multilib 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"
@@ -21,9 +20,7 @@ LICENSE="PHP-3.01
unicode? ( BSD-2 LGPL-2.1 )"
SLOT="$(ver_cut 1-2)"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
-
-S="${WORKDIR}/${PN}-${MY_PV}"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
# We can build the following SAPIs in the given order
SAPIS="embed cli cgi fpm apache2 phpdbg"
@@ -33,11 +30,11 @@ IUSE="${IUSE}
${SAPIS/cli/+cli}
threads"
-IUSE="${IUSE} acl argon2 bcmath berkdb bzip2 calendar cdb cjk
- coverage +ctype curl debug
+IUSE="${IUSE} acl apparmor argon2 avif 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 kerberos ldap ldap-sasl libedit libressl lmdb
+ 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
@@ -46,8 +43,10 @@ IUSE="${IUSE} acl argon2 bcmath berkdb bzip2 calendar cdb cjk
+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 )
+ avif? ( gd zlib )
cli? ( ^^ ( readline libedit ) )
!cli? ( ?? ( readline libedit ) )
truetype? ( gd zlib )
@@ -62,6 +61,7 @@ REQUIRED_USE="
xmlwriter? ( xml )
xslt? ( xml )
ldap-sasl? ( ldap )
+ oci8-instant-client? ( !ldap )
qdbm? ( !gdbm )
session-mm? ( session !threads )
mysql? ( || ( mysqli pdo ) )
@@ -76,51 +76,45 @@ RESTRICT="!test? ( test )"
# 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[unicode]
- fpm? ( acl? ( sys-apps/acl ) )
+ >=dev-libs/libpcre2-10.30[jit?,unicode]
+ virtual/libcrypt:=
+ 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:5.1
- sys-libs/db:4.8
- sys-libs/db:4.7
- sys-libs/db:4.6
- sys-libs/db:4.5 ) )
+ avif? ( media-libs/libavif:= )
+ 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 )
+ ffi? ( >=dev-libs/libffi-3.0.11:= )
firebird? ( dev-db/firebird )
- gd? ( >=virtual/jpeg-0-r3:0 media-libs/libpng:0= )
+ 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=] )
+ imap? ( net-libs/c-client[kerberos=,ssl=] )
intl? ( dev-libs/icu:= )
kerberos? ( virtual/krb5 )
- ldap? ( >=net-nds/openldap-1.2.11 )
+ 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-basic )
+ 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:= )
+ sodium? ( dev-libs/libsodium:=[-minimal(-)] )
spell? ( >=app-text/aspell-0.50 )
sqlite? ( >=dev-db/sqlite-3.7.6.3 )
- ssl? (
- !libressl? ( >=dev-libs/openssl-1.0.1:0= )
- libressl? ( dev-libs/libressl:0= )
- )
- tidy? ( || ( app-text/tidy-html5 app-text/htmltidy ) )
+ 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:= )
@@ -132,6 +126,8 @@ COMMON_DEPEND="
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? (
@@ -149,7 +145,10 @@ BDEPEND="virtual/pkgconfig"
PHP_MV="$(ver_cut 1)"
-PATCHES=( "${FILESDIR}/php-iodbc-header-location.patch" )
+PATCHES=(
+ "${FILESDIR}/php-iodbc-header-location.patch"
+ "${FILESDIR}/php-capstone-optional.patch"
+)
php_install_ini() {
local phpsapi="${1}"
@@ -224,6 +223,20 @@ src_prepare() {
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() {
@@ -232,6 +245,9 @@ src_configure() {
PHP_DESTDIR="${EPREFIX}/usr/$(get_libdir)/php${SLOT}"
+ # https://bugs.gentoo.org/866683, https://bugs.gentoo.org/913527
+ filter-lto
+
# 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=(
@@ -242,11 +258,14 @@ src_configure() {
--with-libdir="$(get_libdir)"
--localstatedir="${EPREFIX}/var"
--without-pear
+ --without-valgrind
$(use_enable threads zts)
)
our_conf+=(
+ $(use_with apparmor fpm-apparmor)
$(use_with argon2 password-argon2 "${EPREFIX}/usr")
+ $(use_with avif)
$(use_enable bcmath)
$(use_with bzip2 bz2 "${EPREFIX}/usr")
$(use_enable calendar)
@@ -264,7 +283,7 @@ src_configure() {
$(use_with gmp gmp "${EPREFIX}/usr")
$(use_with mhash mhash "${EPREFIX}/usr")
$(use_with iconv iconv \
- $(use elibc_glibc || use elibc_musl || use elibc_FreeBSD || echo "${EPREFIX}/usr"))
+ $(use elibc_glibc || use elibc_musl || echo "${EPREFIX}/usr"))
$(use_enable intl)
$(use_enable ipv6)
$(use_with kerberos)
@@ -345,10 +364,7 @@ src_configure() {
fi
# MySQL support
- local mysqllib="mysqlnd"
- local mysqlilib="mysqlnd"
-
- our_conf+=( $(use_with mysqli mysqli "${mysqlilib}") )
+ our_conf+=( $(use_with mysqli mysqli "mysqlnd") )
local mysqlsock="${EPREFIX}/var/run/mysqld/mysqld.sock"
if use mysql || use mysqli ; then
@@ -383,7 +399,7 @@ src_configure() {
if use pdo ; then
our_conf+=(
$(use_with mssql pdo-dblib "${EPREFIX}/usr")
- $(use_with mysql pdo-mysql "${mysqllib}")
+ $(use_with mysql pdo-mysql "mysqlnd")
$(use_with postgres pdo-pgsql)
$(use_with sqlite pdo-sqlite)
$(use_with firebird pdo-firebird "${EPREFIX}/usr")
@@ -409,10 +425,9 @@ src_configure() {
# we use the system copy of pcre
# --with-external-pcre affects ext/pcre
- # Many arches don't support pcre-jit
our_conf+=(
--with-external-pcre
- --without-pcre-jit
+ $(use_with jit pcre-jit)
)
# Catch CFLAGS problems
@@ -636,7 +651,7 @@ src_test() {
export TEST_PHPDBG_EXECUTABLE="${WORKDIR}/sapis-build/phpdbg/sapi/phpdbg/phpdbg"
fi
- REPORT_EXIT_STATUS=1 "${TEST_PHP_EXECUTABLE}" -n -d \
+ 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}"
diff --git a/dev-lang/php/php-8.0.0.ebuild b/dev-lang/php/php-8.1.28.ebuild
index bda8c364a3e5..406551a46114 100644
--- a/dev-lang/php/php-8.0.0.ebuild
+++ b/dev-lang/php/php-8.1.28.ebuild
@@ -1,13 +1,12 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI="7"
+EAPI=8
WANT_AUTOMAKE="none"
-inherit flag-o-matic systemd autotools
+inherit flag-o-matic multilib 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"
@@ -21,9 +20,7 @@ LICENSE="PHP-3.01
unicode? ( BSD-2 LGPL-2.1 )"
SLOT="$(ver_cut 1-2)"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
-
-S="${WORKDIR}/${PN}-${MY_PV}"
+KEYWORDS="~alpha ~amd64 arm arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
# We can build the following SAPIs in the given order
SAPIS="embed cli cgi fpm apache2 phpdbg"
@@ -33,11 +30,11 @@ IUSE="${IUSE}
${SAPIS/cli/+cli}
threads"
-IUSE="${IUSE} acl argon2 bcmath berkdb bzip2 calendar cdb cjk
- coverage +ctype curl debug
+IUSE="${IUSE} acl apparmor argon2 avif 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 kerberos ldap ldap-sasl libedit libressl lmdb
+ 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
@@ -46,8 +43,10 @@ IUSE="${IUSE} acl argon2 bcmath berkdb bzip2 calendar cdb cjk
+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 )
+ avif? ( gd zlib )
cli? ( ^^ ( readline libedit ) )
!cli? ( ?? ( readline libedit ) )
truetype? ( gd zlib )
@@ -62,6 +61,7 @@ REQUIRED_USE="
xmlwriter? ( xml )
xslt? ( xml )
ldap-sasl? ( ldap )
+ oci8-instant-client? ( !ldap )
qdbm? ( !gdbm )
session-mm? ( session !threads )
mysql? ( || ( mysqli pdo ) )
@@ -76,51 +76,45 @@ RESTRICT="!test? ( test )"
# 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[unicode]
- fpm? ( acl? ( sys-apps/acl ) )
+ >=dev-libs/libpcre2-10.30[jit?,unicode]
+ virtual/libcrypt:=
+ 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:5.1
- sys-libs/db:4.8
- sys-libs/db:4.7
- sys-libs/db:4.6
- sys-libs/db:4.5 ) )
+ avif? ( media-libs/libavif:= )
+ 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 )
+ ffi? ( >=dev-libs/libffi-3.0.11:= )
firebird? ( dev-db/firebird )
- gd? ( >=virtual/jpeg-0-r3:0 media-libs/libpng:0= )
+ 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=] )
+ imap? ( net-libs/c-client[kerberos=,ssl=] )
intl? ( dev-libs/icu:= )
kerberos? ( virtual/krb5 )
- ldap? ( >=net-nds/openldap-1.2.11 )
+ 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-basic )
+ 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:= )
+ sodium? ( dev-libs/libsodium:=[-minimal(-)] )
spell? ( >=app-text/aspell-0.50 )
sqlite? ( >=dev-db/sqlite-3.7.6.3 )
- ssl? (
- !libressl? ( >=dev-libs/openssl-1.0.1:0= )
- libressl? ( dev-libs/libressl:0= )
- )
- tidy? ( || ( app-text/tidy-html5 app-text/htmltidy ) )
+ 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:= )
@@ -132,6 +126,8 @@ COMMON_DEPEND="
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? (
@@ -149,7 +145,26 @@ BDEPEND="virtual/pkgconfig"
PHP_MV="$(ver_cut 1)"
-PATCHES=( "${FILESDIR}/php-iodbc-header-location.patch" )
+PATCHES=(
+ "${FILESDIR}/php-iodbc-header-location.patch"
+ "${FILESDIR}/php-capstone-optional.patch"
+ "${FILESDIR}/php-8.1.27-gcc14-libxml.patch"
+ "${FILESDIR}/php-8.1.27-implicit-decls.patch"
+ "${FILESDIR}/fix-musl-llvm.patch"
+)
+
+# ARM/Windows functions that are expected to be undefined.
+QA_CONFIG_IMPL_DECL_SKIP=(
+ __crc32d
+ _controlfp
+ _controlfp_s
+)
+
+# Functions from alternate iconv implementations (bug 925268)
+QA_CONFIG_IMPL_DECL_SKIP+=(
+ iconv_ccs_init
+ cstoccsid
+)
php_install_ini() {
local phpsapi="${1}"
@@ -224,6 +239,20 @@ src_prepare() {
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 \
+ ext/fileinfo/tests/bug78987.phpt || die
}
src_configure() {
@@ -232,6 +261,9 @@ src_configure() {
PHP_DESTDIR="${EPREFIX}/usr/$(get_libdir)/php${SLOT}"
+ # https://bugs.gentoo.org/866683, https://bugs.gentoo.org/913527
+ filter-lto
+
# 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=(
@@ -242,11 +274,18 @@ src_configure() {
--with-libdir="$(get_libdir)"
--localstatedir="${EPREFIX}/var"
--without-pear
+ --without-valgrind
$(use_enable threads zts)
)
+ # The slotted man/info pages will be missed by the default list of
+ # docompress paths.
+ docompress "${PHP_DESTDIR}/man" "${PHP_DESTDIR}/info"
+
our_conf+=(
+ $(use_with apparmor fpm-apparmor)
$(use_with argon2 password-argon2 "${EPREFIX}/usr")
+ $(use_with avif)
$(use_enable bcmath)
$(use_with bzip2 bz2 "${EPREFIX}/usr")
$(use_enable calendar)
@@ -264,7 +303,7 @@ src_configure() {
$(use_with gmp gmp "${EPREFIX}/usr")
$(use_with mhash mhash "${EPREFIX}/usr")
$(use_with iconv iconv \
- $(use elibc_glibc || use elibc_musl || use elibc_FreeBSD || echo "${EPREFIX}/usr"))
+ $(use elibc_glibc || use elibc_musl || echo "${EPREFIX}/usr"))
$(use_enable intl)
$(use_enable ipv6)
$(use_with kerberos)
@@ -345,10 +384,7 @@ src_configure() {
fi
# MySQL support
- local mysqllib="mysqlnd"
- local mysqlilib="mysqlnd"
-
- our_conf+=( $(use_with mysqli mysqli "${mysqlilib}") )
+ our_conf+=( $(use_with mysqli mysqli "mysqlnd") )
local mysqlsock="${EPREFIX}/var/run/mysqld/mysqld.sock"
if use mysql || use mysqli ; then
@@ -383,7 +419,7 @@ src_configure() {
if use pdo ; then
our_conf+=(
$(use_with mssql pdo-dblib "${EPREFIX}/usr")
- $(use_with mysql pdo-mysql "${mysqllib}")
+ $(use_with mysql pdo-mysql "mysqlnd")
$(use_with postgres pdo-pgsql)
$(use_with sqlite pdo-sqlite)
$(use_with firebird pdo-firebird "${EPREFIX}/usr")
@@ -409,10 +445,9 @@ src_configure() {
# we use the system copy of pcre
# --with-external-pcre affects ext/pcre
- # Many arches don't support pcre-jit
our_conf+=(
--with-external-pcre
- --without-pcre-jit
+ $(use_with jit pcre-jit)
)
# Catch CFLAGS problems
@@ -636,7 +671,7 @@ src_test() {
export TEST_PHPDBG_EXECUTABLE="${WORKDIR}/sapis-build/phpdbg/sapi/phpdbg/phpdbg"
fi
- REPORT_EXIT_STATUS=1 "${TEST_PHP_EXECUTABLE}" -n -d \
+ 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}"
diff --git a/dev-lang/php/php-7.4.13.ebuild b/dev-lang/php/php-8.2.15.ebuild
index 611b04a1f2cd..32739c75690e 100644
--- a/dev-lang/php/php-7.4.13.ebuild
+++ b/dev-lang/php/php-8.2.15.ebuild
@@ -1,13 +1,12 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI="7"
+EAPI=8
WANT_AUTOMAKE="none"
-inherit flag-o-matic systemd autotools
+inherit flag-o-matic multilib 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"
@@ -21,9 +20,7 @@ LICENSE="PHP-3.01
unicode? ( BSD-2 LGPL-2.1 )"
SLOT="$(ver_cut 1-2)"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
-
-S="${WORKDIR}/${PN}-${MY_PV}"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~mips ~ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
# We can build the following SAPIs in the given order
SAPIS="embed cli cgi fpm apache2 phpdbg"
@@ -33,21 +30,23 @@ IUSE="${IUSE}
${SAPIS/cli/+cli}
threads"
-IUSE="${IUSE} acl argon2 bcmath berkdb bzip2 calendar cdb cjk
- coverage +ctype curl debug
+IUSE="${IUSE} acl apparmor argon2 avif bcmath berkdb bzip2 calendar
+ cdb cjk +ctype curl debug
enchant exif ffi +fileinfo +filter firebird
+flatfile ftp gd gdbm gmp +iconv imap inifile
- intl iodbc ipv6 +json kerberos ldap ldap-sasl libedit libressl lmdb
+ 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 xmlrpc xpm xslt zip zlib"
+ sysvipc systemd test tidy +tokenizer tokyocabinet truetype unicode
+ valgrind 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 )
+ avif? ( gd zlib )
cli? ( ^^ ( readline libedit ) )
!cli? ( ?? ( readline libedit ) )
truetype? ( gd zlib )
@@ -58,16 +57,17 @@ REQUIRED_USE="
gd? ( zlib )
simplexml? ( xml )
soap? ( xml )
- xmlrpc? ( xml iconv )
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 )
+ test? ( cli )
"
RESTRICT="!test? ( test )"
@@ -76,63 +76,59 @@ RESTRICT="!test? ( test )"
# 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.1[apache2?,fpm?]
- >=dev-libs/libpcre2-10.30[unicode]
- fpm? ( acl? ( sys-apps/acl ) )
+ >=app-eselect/eselect-php-0.9.7[apache2?,fpm?]
+ >=dev-libs/libpcre2-10.30[jit?,unicode]
+ virtual/libcrypt:=
+ fpm? ( acl? ( sys-apps/acl ) apparmor? ( sys-libs/libapparmor ) selinux? ( sys-libs/libselinux ) )
apache2? ( www-servers/apache[apache2_modules_unixd(+),threads=] )
argon2? ( app-crypt/argon2:= )
- berkdb? ( || ( sys-libs/db:5.3
- sys-libs/db:5.1
- sys-libs/db:4.8
- sys-libs/db:4.7
- sys-libs/db:4.6
- sys-libs/db:4.5 ) )
+ avif? ( media-libs/libavif:= )
+ 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.10.5 )
- enchant? ( <app-text/enchant-2.0:0 )
- ffi? ( >=dev-libs/libffi-3.0.11 )
+ curl? ( >=net-misc/curl-7.29.0 )
+ enchant? ( app-text/enchant:2 )
+ ffi? ( >=dev-libs/libffi-3.0.11:= )
firebird? ( dev-db/firebird )
- gd? ( >=virtual/jpeg-0-r3:0 media-libs/libpng:0= )
+ 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=] )
+ imap? ( net-libs/c-client[kerberos=,ssl=] )
intl? ( dev-libs/icu:= )
kerberos? ( virtual/krb5 )
- ldap? ( >=net-nds/openldap-1.2.11 )
+ 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-basic )
+ oci8-instant-client? ( dev-db/oracle-instantclient[sdk] )
odbc? ( iodbc? ( dev-db/libiodbc ) !iodbc? ( >=dev-db/unixODBC-1.8.13 ) )
- postgres? ( dev-db/postgresql:* )
+ 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:= )
+ sodium? ( dev-libs/libsodium:=[-minimal(-)] )
spell? ( >=app-text/aspell-0.50 )
sqlite? ( >=dev-db/sqlite-3.7.6.3 )
- ssl? (
- !libressl? ( >=dev-libs/openssl-1.0.1:0= )
- libressl? ( dev-libs/libressl:0= )
- )
- tidy? ( || ( app-text/tidy-html5 app-text/htmltidy ) )
+ 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:= )
+ valgrind? ( dev-debug/valgrind )
webp? ( media-libs/libwebp:0= )
- xml? ( >=dev-libs/libxml2-2.7.6 )
+ 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? (
@@ -151,8 +147,9 @@ BDEPEND="virtual/pkgconfig"
PHP_MV="$(ver_cut 1)"
PATCHES=(
- "${FILESDIR}"/php-iodbc-header-location.patch
- "${FILESDIR}"/${P}-issue80368.patch
+ "${FILESDIR}/php-iodbc-header-location.patch"
+ "${FILESDIR}/php-capstone-optional.patch"
+ "${FILESDIR}/php-8.2.8-openssl-tests.patch"
)
php_install_ini() {
@@ -228,14 +225,111 @@ src_prepare() {
configure main/php_config.h.in || die
eautoconf --force
eautoheader
+
+ # missing skipif; fixed upstream already
+ rm sapi/cgi/tests/005.phpt || die
+
+ # These three get BORKED on no-ipv6 systems,
+ #
+ # https://github.com/php/php-src/pull/11651
+ #
+ rm ext/sockets/tests/mcast_ipv6_recv.phpt \
+ ext/sockets/tests/mcast_ipv6_recv_limited.phpt \
+ ext/sockets/tests/mcast_ipv6_send.phpt \
+ || die
+
+ # fails in a network sandbox,
+ #
+ # https://github.com/php/php-src/issues/11662
+ #
+ rm ext/sockets/tests/bug63000.phpt || die
+
+ # expected output needs to be updated,
+ #
+ # https://github.com/php/php-src/pull/11648
+ #
+ rm ext/dba/tests/dba_tcadb.phpt || die
+
+ # Two IMAP tests missing SKIPIFs,
+ #
+ # https://github.com/php/php-src/pull/11654
+ #
+ rm ext/imap/tests/imap_mutf7_to_utf8.phpt \
+ ext/imap/tests/imap_utf8_to_mutf7_basic.phpt \
+ || die
+
+ # broken upstream with icu-73.x,
+ #
+ # https://github.com/php/php-src/issues/11128
+ #
+ rm ext/intl/tests/calendar_clear_variation1.phpt || die
+
+ # overly sensitive to INI values; fixes sent upstream:
+ #
+ # https://github.com/php/php-src/pull/11631
+ #
+ rm ext/session/tests/{bug74514,bug74936,gh7787}.phpt || die
+
+ # This is sensitive to the current "nice" level:
+ #
+ # https://github.com/php/php-src/issues/11630
+ #
+ rm ext/standard/tests/general_functions/proc_nice_basic.phpt || die
+
+ # Tests ignoring the "-n" flag we pass to run-tests.php,
+ #
+ # https://github.com/php/php-src/pull/11669
+ #
+ rm ext/standard/tests/file/bug60120.phpt \
+ ext/standard/tests/general_functions/proc_open_null.phpt \
+ ext/standard/tests/general_functions/proc_open_redirect.phpt \
+ ext/standard/tests/general_functions/proc_open_sockets1.phpt \
+ ext/standard/tests/general_functions/proc_open_sockets2.phpt \
+ ext/standard/tests/general_functions/proc_open_sockets3.phpt \
+ ext/standard/tests/ini_info/php_ini_loaded_file.phpt \
+ sapi/cli/tests/016.phpt \
+ sapi/cli/tests/023.phpt \
+ sapi/cli/tests/bug65275.phpt \
+ sapi/cli/tests/bug74600.phpt \
+ sapi/cli/tests/bug78323.phpt \
+ || die
+
+ # Same TEST_PHP_EXTRA_ARGS (-n) issue with this one, but it's
+ # already been fixed upstream.
+ rm sapi/cli/tests/017.phpt || die
+
+ # Most Oracle tests are borked,
+ #
+ # * https://github.com/php/php-src/issues/11804
+ # * https://github.com/php/php-src/pull/11820
+ # * https://github.com/php/php-src/issues/11819
+ #
+ rm ext/oci8/tests/*.phpt || die
+
+ # https://github.com/php/php-src/issues/12801
+ rm ext/pcre/tests/gh11374.phpt || die
+
+ # This is a memory usage test with hard-coded limits. Whenever the
+ # limits are surpassed... they get increased... but in the meantime,
+ # the tests fail. This is not really a test that end users should
+ # be running pre-install, in my opinion. Bug 927461.
+ rm ext/fileinfo/tests/bug78987.phpt || die
}
src_configure() {
addpredict /usr/share/snmp/mibs/.index #nowarn
addpredict /var/lib/net-snmp/mib_indexes #nowarn
+ # https://bugs.gentoo.org/866683, https://bugs.gentoo.org/913527
+ filter-lto
+
PHP_DESTDIR="${EPREFIX}/usr/$(get_libdir)/php${SLOT}"
+ # Don't allow ./configure to detect and use an existing version
+ # of PHP; this can lead to all sorts of weird unpredictability
+ # as in bug 900210.
+ export ac_cv_prog_PHP=""
+
# 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=(
@@ -246,15 +340,22 @@ src_configure() {
--with-libdir="$(get_libdir)"
--localstatedir="${EPREFIX}/var"
--without-pear
- $(use_enable threads maintainer-zts)
+ --without-valgrind
+ --with-external-libcrypt
+ $(use_enable threads zts)
)
+ # The slotted man/info pages will be missed by the default list of
+ # docompress paths.
+ docompress "${PHP_DESTDIR}/man" "${PHP_DESTDIR}/info"
+
our_conf+=(
+ $(use_with apparmor fpm-apparmor)
$(use_with argon2 password-argon2 "${EPREFIX}/usr")
+ $(use_with avif)
$(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)
@@ -268,10 +369,9 @@ src_configure() {
$(use_with gmp gmp "${EPREFIX}/usr")
$(use_with mhash mhash "${EPREFIX}/usr")
$(use_with iconv iconv \
- $(use elibc_glibc || use elibc_musl || use elibc_FreeBSD || echo "${EPREFIX}/usr"))
+ $(use elibc_glibc || use elibc_musl || echo "${EPREFIX}/usr"))
$(use_enable intl)
$(use_enable ipv6)
- $(use_enable json)
$(use_with kerberos)
$(use_with xml libxml)
$(use_enable unicode mbstring)
@@ -282,6 +382,7 @@ src_configure() {
$(use_enable opcache)
$(use_with postgres pgsql "${EPREFIX}/usr")
$(use_enable posix)
+ $(use_with selinux fpm-selinux)
$(use_with spell pspell "${EPREFIX}/usr")
$(use_enable simplexml)
$(use_enable sharedmem shmop)
@@ -298,11 +399,11 @@ src_configure() {
$(use_enable xml)
$(use_enable xmlreader)
$(use_enable xmlwriter)
- $(use_with xmlrpc)
$(use_with xslt xsl)
$(use_with zip)
$(use_with zlib zlib "${EPREFIX}/usr")
$(use_enable debug)
+ $(use_with valgrind)
)
# DBA support
@@ -351,10 +452,7 @@ src_configure() {
fi
# MySQL support
- local mysqllib="mysqlnd"
- local mysqlilib="mysqlnd"
-
- our_conf+=( $(use_with mysqli mysqli "${mysqlilib}") )
+ our_conf+=( $(use_with mysqli) )
local mysqlsock="${EPREFIX}/var/run/mysqld/mysqld.sock"
if use mysql || use mysqli ; then
@@ -389,7 +487,7 @@ src_configure() {
if use pdo ; then
our_conf+=(
$(use_with mssql pdo-dblib "${EPREFIX}/usr")
- $(use_with mysql pdo-mysql "${mysqllib}")
+ $(use_with mysql pdo-mysql "mysqlnd")
$(use_with postgres pdo-pgsql)
$(use_with sqlite pdo-sqlite)
$(use_with firebird pdo-firebird "${EPREFIX}/usr")
@@ -415,10 +513,9 @@ src_configure() {
# we use the system copy of pcre
# --with-external-pcre affects ext/pcre
- # Many arches don't support pcre-jit
our_conf+=(
--with-external-pcre
- --without-pcre-jit
+ $(use_with jit pcre-jit)
)
# Catch CFLAGS problems
@@ -435,9 +532,16 @@ src_configure() {
# Support the Apache2 extras, they must be set globally for all
# SAPIs to work correctly, especially for external PHP extensions
+ # Create separate build trees for each enabled SAPI. The upstream
+ # build system doesn't do this, but we have to do it to use a
+ # different php.ini for each SAPI (see --with-config-file-path and
+ # --with-config-file-scan-dir below). The path winds up define'd
+ # in main/build-defs.h which is included in main/php.h which is
+ # included by basically everything; so, avoiding a rebuild after
+ # changing it is not an easy job.
local one_sapi
local sapi
- mkdir -p "${WORKDIR}/sapis-build" || die
+ mkdir "${WORKDIR}/sapis-build" || die
for one_sapi in $SAPIS ; do
use "${one_sapi}" || continue
php_set_ini_dir "${one_sapi}"
@@ -447,7 +551,6 @@ src_configure() {
# 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}"
@@ -486,6 +589,7 @@ src_configure() {
myeconfargs+=( "${sapi_conf[@]}" )
pushd "${BUILD_DIR}" > /dev/null || die
+ einfo "Running econf in ${BUILD_DIR}"
econf "${myeconfargs[@]}"
popd > /dev/null || die
done
@@ -496,13 +600,20 @@ src_compile() {
addpredict /usr/share/snmp/mibs/.index #nowarn
addpredict /var/lib/net-snmp/mib_indexes #nowarn
+ if use oci8-instant-client && use kerberos && use imap && use phar; then
+ # A conspiracy takes place when the first three of these flags
+ # are set together, causing the newly-built "php" to open
+ # /dev/urandom with mode rw when it starts. That's not actually
+ # a problem... unless you also have USE=phar, which runs that
+ # "php" to build some phar thingy in src_compile(). Later in
+ # src_test(), portage (at least) sets "addpredict /" so the
+ # problem does not repeat.
+ addpredict /dev/urandom #nowarn
+ fi
+
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
+ use "${sapi}" && emake -C "${WORKDIR}/sapis-build/${sapi}"
done
}
@@ -544,7 +655,7 @@ src_install() {
# 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${PHP_MV}$(get_libname)" \
+ newins ".libs/libphp$(get_libname)" \
"libphp${PHP_MV}$(get_libname)"
keepdir "/usr/$(get_libdir)/apache2/modules"
else
@@ -567,7 +678,7 @@ src_install() {
source="sapi/fpm/php-fpm"
;;
embed)
- source="libs/libphp${PHP_MV}$(get_libname)"
+ source="libs/libphp$(get_libname)"
;;
phpdbg)
source="sapi/phpdbg/phpdbg"
@@ -625,14 +736,13 @@ src_install() {
}
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
+ export TEST_PHP_EXECUTABLE="${WORKDIR}/sapis-build/cli/sapi/cli/php"
+
+ # Sometimes when the sub-php launches a sub-sub-php, it uses these.
+ # Without an "-n" in all instances, the *live* php.ini can be loaded,
+ # pulling in *live* zend extensions. And those can be incompatible
+ # with the thing we just built.
+ export TEST_PHP_EXTRA_ARGS="-n"
if [[ -x "${WORKDIR}/sapis-build/cgi/sapi/cgi/php-cgi" ]] ; then
export TEST_PHP_CGI_EXECUTABLE="${WORKDIR}/sapis-build/cgi/sapi/cgi/php-cgi"
@@ -642,40 +752,22 @@ src_test() {
export TEST_PHPDBG_EXECUTABLE="${WORKDIR}/sapis-build/phpdbg/sapi/phpdbg/phpdbg"
fi
- 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
+ # The sendmail override prevents ext/imap/tests/bug77020.phpt from
+ # actually trying to send mail, and will be fixed upstream soon:
+ #
+ # https://github.com/php/php-src/issues/11629
+ #
+ # The IO capture tests need to be disabled because they fail when
+ # std{in,out,err} are redirected (as they are within portage).
+ #
+ # One -n applies to the top-level "php", while the other applies
+ # to any sub-php that get invoked by the test runner.
+ SKIP_IO_CAPTURE_TESTS=1 SKIP_PERF_SENSITIVE=1 REPORT_EXIT_STATUS=1 \
+ "${TEST_PHP_EXECUTABLE}" -n \
+ "${WORKDIR}/sapis-build/cli/run-tests.php" --offline -n -q \
+ -d "session.save_path=${T}" \
+ -d "sendmail_path=echo >/dev/null" \
+ || die "tests failed"
}
pkg_postinst() {
diff --git a/dev-lang/php/php-8.2.18.ebuild b/dev-lang/php/php-8.2.18.ebuild
new file mode 100644
index 000000000000..5b90e1767bb8
--- /dev/null
+++ b/dev-lang/php/php-8.2.18.ebuild
@@ -0,0 +1,859 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+WANT_AUTOMAKE="none"
+
+inherit flag-o-matic multilib systemd autotools
+
+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 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
+
+# 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 avif bcmath berkdb bzip2 calendar
+ cdb cjk +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
+ valgrind 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 )
+ avif? ( gd zlib )
+ 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 )
+ test? ( cli )
+"
+
+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]
+ virtual/libcrypt:=
+ fpm? ( acl? ( sys-apps/acl ) apparmor? ( sys-libs/libapparmor ) selinux? ( sys-libs/libselinux ) )
+ apache2? ( www-servers/apache[apache2_modules_unixd(+),threads=] )
+ argon2? ( app-crypt/argon2:= )
+ avif? ( media-libs/libavif:= )
+ berkdb? ( || ( sys-libs/db:5.3 sys-libs/db:4.8 ) )
+ bzip2? ( app-arch/bzip2:0= )
+ cdb? ( || ( dev-db/cdb dev-db/tinycdb ) )
+ 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? ( net-libs/c-client[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:= )
+ valgrind? ( dev-debug/valgrind )
+ 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"
+ "${FILESDIR}/php-capstone-optional.patch"
+ "${FILESDIR}/php-8.2.8-openssl-tests.patch"
+ "${FILESDIR}/fix-musl-llvm.patch"
+)
+
+# ARM/Windows functions (bug 923335)
+QA_CONFIG_IMPL_DECL_SKIP=(
+ __crc32d
+ _controlfp
+ _controlfp_s
+)
+
+# Functions from alternate iconv implementations (bug 925268)
+QA_CONFIG_IMPL_DECL_SKIP+=(
+ iconv_ccs_init
+ cstoccsid
+)
+
+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
+
+ # missing skipif; fixed upstream already
+ rm sapi/cgi/tests/005.phpt || die
+
+ # These three get BORKED on no-ipv6 systems,
+ #
+ # https://github.com/php/php-src/pull/11651
+ #
+ rm ext/sockets/tests/mcast_ipv6_recv.phpt \
+ ext/sockets/tests/mcast_ipv6_recv_limited.phpt \
+ ext/sockets/tests/mcast_ipv6_send.phpt \
+ || die
+
+ # fails in a network sandbox,
+ #
+ # https://github.com/php/php-src/issues/11662
+ #
+ rm ext/sockets/tests/bug63000.phpt || die
+
+ # expected output needs to be updated,
+ #
+ # https://github.com/php/php-src/pull/11648
+ #
+ rm ext/dba/tests/dba_tcadb.phpt || die
+
+ # Two IMAP tests missing SKIPIFs,
+ #
+ # https://github.com/php/php-src/pull/11654
+ #
+ rm ext/imap/tests/imap_mutf7_to_utf8.phpt \
+ ext/imap/tests/imap_utf8_to_mutf7_basic.phpt \
+ || die
+
+ # broken upstream with icu-73.x,
+ #
+ # https://github.com/php/php-src/issues/11128
+ #
+ rm ext/intl/tests/calendar_clear_variation1.phpt || die
+
+ # overly sensitive to INI values; fixes sent upstream:
+ #
+ # https://github.com/php/php-src/pull/11631
+ #
+ rm ext/session/tests/{bug74514,bug74936,gh7787}.phpt || die
+
+ # This is sensitive to the current "nice" level:
+ #
+ # https://github.com/php/php-src/issues/11630
+ #
+ rm ext/standard/tests/general_functions/proc_nice_basic.phpt || die
+
+ # Tests ignoring the "-n" flag we pass to run-tests.php,
+ #
+ # https://github.com/php/php-src/pull/11669
+ #
+ rm ext/standard/tests/file/bug60120.phpt \
+ ext/standard/tests/general_functions/proc_open_null.phpt \
+ ext/standard/tests/general_functions/proc_open_redirect.phpt \
+ ext/standard/tests/general_functions/proc_open_sockets1.phpt \
+ ext/standard/tests/general_functions/proc_open_sockets2.phpt \
+ ext/standard/tests/general_functions/proc_open_sockets3.phpt \
+ ext/standard/tests/ini_info/php_ini_loaded_file.phpt \
+ sapi/cli/tests/016.phpt \
+ sapi/cli/tests/023.phpt \
+ sapi/cli/tests/bug65275.phpt \
+ sapi/cli/tests/bug74600.phpt \
+ sapi/cli/tests/bug78323.phpt \
+ || die
+
+ # Same TEST_PHP_EXTRA_ARGS (-n) issue with this one, but it's
+ # already been fixed upstream.
+ rm sapi/cli/tests/017.phpt || die
+
+ # Most Oracle tests are borked,
+ #
+ # * https://github.com/php/php-src/issues/11804
+ # * https://github.com/php/php-src/pull/11820
+ # * https://github.com/php/php-src/issues/11819
+ #
+ rm ext/oci8/tests/*.phpt || die
+
+ # https://github.com/php/php-src/issues/12801
+ rm ext/pcre/tests/gh11374.phpt || die
+
+ # This is a memory usage test with hard-coded limits. Whenever the
+ # limits are surpassed... they get increased... but in the meantime,
+ # the tests fail. This is not really a test that end users should
+ # be running pre-install, in my opinion. Bug 927461.
+ rm ext/fileinfo/tests/bug78987.phpt || die
+}
+
+src_configure() {
+ addpredict /usr/share/snmp/mibs/.index #nowarn
+ addpredict /var/lib/net-snmp/mib_indexes #nowarn
+
+ # https://bugs.gentoo.org/866683, https://bugs.gentoo.org/913527
+ filter-lto
+
+ PHP_DESTDIR="${EPREFIX}/usr/$(get_libdir)/php${SLOT}"
+
+ # Don't allow ./configure to detect and use an existing version
+ # of PHP; this can lead to all sorts of weird unpredictability
+ # as in bug 900210.
+ export ac_cv_prog_PHP=""
+
+ # 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
+ --without-valgrind
+ --with-external-libcrypt
+ $(use_enable threads zts)
+ )
+
+ # The slotted man/info pages will be missed by the default list of
+ # docompress paths.
+ docompress "${PHP_DESTDIR}/man" "${PHP_DESTDIR}/info"
+
+ our_conf+=(
+ $(use_with apparmor fpm-apparmor)
+ $(use_with argon2 password-argon2 "${EPREFIX}/usr")
+ $(use_with avif)
+ $(use_enable bcmath)
+ $(use_with bzip2 bz2 "${EPREFIX}/usr")
+ $(use_enable calendar)
+ $(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 selinux fpm-selinux)
+ $(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)
+ $(use_with valgrind)
+ )
+
+ # 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) )
+
+ 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
+
+ # Create separate build trees for each enabled SAPI. The upstream
+ # build system doesn't do this, but we have to do it to use a
+ # different php.ini for each SAPI (see --with-config-file-path and
+ # --with-config-file-scan-dir below). The path winds up define'd
+ # in main/build-defs.h which is included in main/php.h which is
+ # included by basically everything; so, avoiding a rebuild after
+ # changing it is not an easy job.
+ local one_sapi
+ local sapi
+ mkdir "${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
+
+ 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
+ einfo "Running econf in ${BUILD_DIR}"
+ 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
+
+ if use oci8-instant-client && use kerberos && use imap && use phar; then
+ # A conspiracy takes place when the first three of these flags
+ # are set together, causing the newly-built "php" to open
+ # /dev/urandom with mode rw when it starts. That's not actually
+ # a problem... unless you also have USE=phar, which runs that
+ # "php" to build some phar thingy in src_compile(). Later in
+ # src_test(), portage (at least) sets "addpredict /" so the
+ # problem does not repeat.
+ addpredict /dev/urandom #nowarn
+ fi
+
+ local sapi
+ for sapi in ${SAPIS} ; do
+ use "${sapi}" && emake -C "${WORKDIR}/sapis-build/${sapi}"
+ 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() {
+ export TEST_PHP_EXECUTABLE="${WORKDIR}/sapis-build/cli/sapi/cli/php"
+
+ # Sometimes when the sub-php launches a sub-sub-php, it uses these.
+ # Without an "-n" in all instances, the *live* php.ini can be loaded,
+ # pulling in *live* zend extensions. And those can be incompatible
+ # with the thing we just built.
+ export TEST_PHP_EXTRA_ARGS="-n"
+
+ 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
+
+ # The sendmail override prevents ext/imap/tests/bug77020.phpt from
+ # actually trying to send mail, and will be fixed upstream soon:
+ #
+ # https://github.com/php/php-src/issues/11629
+ #
+ # The IO capture tests need to be disabled because they fail when
+ # std{in,out,err} are redirected (as they are within portage).
+ #
+ # One -n applies to the top-level "php", while the other applies
+ # to any sub-php that get invoked by the test runner.
+ SKIP_IO_CAPTURE_TESTS=1 SKIP_PERF_SENSITIVE=1 REPORT_EXIT_STATUS=1 \
+ "${TEST_PHP_EXECUTABLE}" -n \
+ "${WORKDIR}/sapis-build/cli/run-tests.php" --offline -n -q \
+ -d "session.save_path=${T}" \
+ -d "sendmail_path=echo >/dev/null" \
+ || die "tests failed"
+}
+
+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-7.4.14.ebuild b/dev-lang/php/php-8.3.6.ebuild
index 81b7710205f7..7242d6432c71 100644
--- a/dev-lang/php/php-7.4.14.ebuild
+++ b/dev-lang/php/php-8.3.6.ebuild
@@ -1,13 +1,12 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI="7"
+EAPI=8
WANT_AUTOMAKE="none"
-inherit flag-o-matic systemd autotools
+inherit flag-o-matic multilib 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"
@@ -21,9 +20,7 @@ LICENSE="PHP-3.01
unicode? ( BSD-2 LGPL-2.1 )"
SLOT="$(ver_cut 1-2)"
-KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
-
-S="${WORKDIR}/${PN}-${MY_PV}"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
# We can build the following SAPIs in the given order
SAPIS="embed cli cgi fpm apache2 phpdbg"
@@ -33,21 +30,22 @@ IUSE="${IUSE}
${SAPIS/cli/+cli}
threads"
-IUSE="${IUSE} acl argon2 bcmath berkdb bzip2 calendar cdb cjk
- coverage +ctype curl debug
+IUSE="${IUSE} acl apparmor argon2 avif bcmath berkdb bzip2 calendar
+ capstone cdb cjk +ctype curl debug
enchant exif ffi +fileinfo +filter firebird
+flatfile ftp gd gdbm gmp +iconv imap inifile
- intl iodbc ipv6 +json kerberos ldap ldap-sasl libedit libressl lmdb
+ 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
+ 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 xmlrpc xpm xslt zip zlib"
+ sysvipc systemd test tidy +tokenizer tokyocabinet truetype unicode
+ valgrind webp +xml xmlreader xmlwriter xpm xslt zip zlib"
# Without USE=readline or libedit, the interactive "php -a" CLI will hang.
REQUIRED_USE="
|| ( cli cgi fpm apache2 embed phpdbg )
+ avif? ( gd zlib )
cli? ( ^^ ( readline libedit ) )
!cli? ( ?? ( readline libedit ) )
truetype? ( gd zlib )
@@ -58,7 +56,6 @@ REQUIRED_USE="
gd? ( zlib )
simplexml? ( xml )
soap? ( xml )
- xmlrpc? ( xml iconv )
xmlreader? ( xml )
xmlwriter? ( xml )
xslt? ( xml )
@@ -68,6 +65,7 @@ REQUIRED_USE="
mysql? ( || ( mysqli pdo ) )
firebird? ( pdo )
mssql? ( pdo )
+ test? ( cli )
"
RESTRICT="!test? ( test )"
@@ -76,63 +74,59 @@ RESTRICT="!test? ( test )"
# 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.1[apache2?,fpm?]
- >=dev-libs/libpcre2-10.30[unicode]
- fpm? ( acl? ( sys-apps/acl ) )
+ app-eselect/eselect-php[apache2?,fpm?]
+ dev-libs/libpcre2[jit?,unicode]
+ virtual/libcrypt:=
+ fpm? ( acl? ( sys-apps/acl ) apparmor? ( sys-libs/libapparmor ) selinux? ( sys-libs/libselinux ) )
apache2? ( www-servers/apache[apache2_modules_unixd(+),threads=] )
argon2? ( app-crypt/argon2:= )
- berkdb? ( || ( sys-libs/db:5.3
- sys-libs/db:5.1
- sys-libs/db:4.8
- sys-libs/db:4.7
- sys-libs/db:4.6
- sys-libs/db:4.5 ) )
+ avif? ( media-libs/libavif:= )
+ berkdb? ( || ( sys-libs/db:5.3 sys-libs/db:4.8 ) )
bzip2? ( app-arch/bzip2:0= )
+ capstone? ( dev-libs/capstone )
cdb? ( || ( dev-db/cdb dev-db/tinycdb ) )
- coverage? ( dev-util/lcov )
- curl? ( >=net-misc/curl-7.10.5 )
- enchant? ( <app-text/enchant-2.0:0 )
- ffi? ( >=dev-libs/libffi-3.0.11 )
+ curl? ( net-misc/curl )
+ enchant? ( app-text/enchant:2 )
+ ffi? ( dev-libs/libffi:= )
firebird? ( dev-db/firebird )
- gd? ( >=virtual/jpeg-0-r3:0 media-libs/libpng:0= )
- gdbm? ( >=sys-libs/gdbm-1.8.0:0= )
+ gd? ( media-libs/libjpeg-turbo:0= media-libs/libpng:0= )
+ gdbm? ( sys-libs/gdbm:0= )
gmp? ( dev-libs/gmp:0= )
iconv? ( virtual/libiconv )
- imap? ( >=virtual/imap-c-client-2[kerberos=,ssl=] )
+ imap? ( net-libs/c-client[kerberos=,ssl=] )
intl? ( dev-libs/icu:= )
kerberos? ( virtual/krb5 )
- ldap? ( >=net-nds/openldap-1.2.11 )
+ ldap? ( net-nds/openldap:= )
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-basic )
- odbc? ( iodbc? ( dev-db/libiodbc ) !iodbc? ( >=dev-db/unixODBC-1.8.13 ) )
+ odbc? ( iodbc? ( dev-db/libiodbc ) !iodbc? ( dev-db/unixODBC ) )
postgres? ( dev-db/postgresql:* )
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:= )
- spell? ( >=app-text/aspell-0.50 )
- sqlite? ( >=dev-db/sqlite-3.7.6.3 )
- ssl? (
- !libressl? ( >=dev-libs/openssl-1.0.1:0= )
- libressl? ( dev-libs/libressl:0= )
- )
- tidy? ( || ( app-text/tidy-html5 app-text/htmltidy ) )
+ snmp? ( net-analyzer/net-snmp )
+ sodium? ( dev-libs/libsodium:=[-minimal(-)] )
+ spell? ( app-text/aspell )
+ sqlite? ( dev-db/sqlite )
+ ssl? ( dev-libs/openssl:0= )
+ tidy? ( app-text/htmltidy )
tokyocabinet? ( dev-db/tokyocabinet )
- truetype? ( =media-libs/freetype-2* )
+ truetype? ( media-libs/freetype )
unicode? ( dev-libs/oniguruma:= )
+ valgrind? ( dev-debug/valgrind )
webp? ( media-libs/libwebp:0= )
- xml? ( >=dev-libs/libxml2-2.7.6 )
+ xml? ( dev-libs/libxml2 )
xpm? ( x11-libs/libXpm )
xslt? ( dev-libs/libxslt )
- zip? ( >=dev-libs/libzip-1.2.0:= )
- zlib? ( >=sys-libs/zlib-1.2.0.4:0= )
+ zip? ( dev-libs/libzip:= )
+ zlib? ( sys-libs/zlib:0= )
"
+IDEPEND="app-eselect/eselect-php[apache2?,fpm?]"
+
RDEPEND="${COMMON_DEPEND}
virtual/mta
fpm? (
@@ -144,14 +138,28 @@ RDEPEND="${COMMON_DEPEND}
# have an incompatible version installed. See bug 593278.
DEPEND="${COMMON_DEPEND}
app-arch/xz-utils
- >=sys-devel/bison-3.0.1"
+ sys-devel/bison"
BDEPEND="virtual/pkgconfig"
PHP_MV="$(ver_cut 1)"
PATCHES=(
- "${FILESDIR}"/php-iodbc-header-location.patch
+ "${FILESDIR}/php-iodbc-header-location.patch"
+ "${FILESDIR}/fix-musl-llvm.patch"
+)
+
+# ARM/Windows functions (bug 923335)
+QA_CONFIG_IMPL_DECL_SKIP=(
+ __crc32d
+ _controlfp
+ _controlfp_s
+)
+
+# Functions from alternate iconv implementations (bug 925268)
+QA_CONFIG_IMPL_DECL_SKIP+=(
+ iconv_ccs_init
+ cstoccsid
)
php_install_ini() {
@@ -164,15 +172,14 @@ php_install_ini() {
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
+ # Set the include path to point to where we want to find PEAR
+ # packages
+ local sed_src='^;include_path = ".:/php.*'
+ local include_path="."
+ include_path+=":${EPREFIX}/usr/share/php${PHP_MV}"
+ include_path+=":${EPREFIX}/usr/share/php"
+ local sed_dst="include_path = \"${include_path}\""
+ sed -e "s|${sed_src}|${sed_dst}|" -i "${phpinisrc}" || die
insinto "${PHP_INI_DIR#${EPREFIX}}"
newins "${phpinisrc}" php.ini
@@ -185,7 +192,7 @@ php_install_ini() {
if use opcache; then
elog "Adding opcache to $PHP_EXT_INI_DIR"
- echo "zend_extension=${PHP_DESTDIR}/$(get_libdir)/opcache.so" >> \
+ echo "zend_extension = opcache.so" >> \
"${D}/${PHP_EXT_INI_DIR}"/opcache.ini
dosym "../ext/opcache.ini" \
"${PHP_EXT_INI_DIR_ACTIVE#${EPREFIX}}/opcache.ini"
@@ -227,14 +234,62 @@ src_prepare() {
configure main/php_config.h.in || die
eautoconf --force
eautoheader
+
+ # fails in a network sandbox,
+ #
+ # https://github.com/php/php-src/issues/11662
+ #
+ rm ext/sockets/tests/bug63000.phpt || die
+
+ # Tests ignoring the "-n" flag we pass to run-tests.php,
+ #
+ # https://github.com/php/php-src/pull/11669
+ #
+ rm ext/standard/tests/file/bug60120.phpt \
+ ext/standard/tests/general_functions/proc_open_null.phpt \
+ ext/standard/tests/general_functions/proc_open_redirect.phpt \
+ ext/standard/tests/general_functions/proc_open_sockets1.phpt \
+ ext/standard/tests/general_functions/proc_open_sockets2.phpt \
+ ext/standard/tests/general_functions/proc_open_sockets3.phpt \
+ ext/standard/tests/ini_info/php_ini_loaded_file.phpt \
+ sapi/cli/tests/016.phpt \
+ sapi/cli/tests/023.phpt \
+ sapi/cli/tests/bug65275.phpt \
+ sapi/cli/tests/bug74600.phpt \
+ sapi/cli/tests/bug78323.phpt \
+ || die
+
+ # https://github.com/php/php-src/issues/12801
+ rm ext/pcre/tests/gh11374.phpt || die
+
+ # A new test failure appearing in 8.3.2, mentioned on the PR
+ # where it was likely introduced:
+ #
+ # https://github.com/php/php-src/pull/13017
+ #
+ rm ext/dom/tests/DOMNode_isEqualNode.phpt || die
+
+ # This is a memory usage test with hard-coded limits. Whenever the
+ # limits are surpassed... they get increased... but in the meantime,
+ # the tests fail. This is not really a test that end users should
+ # be running pre-install, in my opinion. Bug 927461.
+ rm ext/fileinfo/tests/bug78987.phpt || die
}
src_configure() {
addpredict /usr/share/snmp/mibs/.index #nowarn
addpredict /var/lib/net-snmp/mib_indexes #nowarn
+ # https://bugs.gentoo.org/866683, https://bugs.gentoo.org/913527
+ filter-lto
+
PHP_DESTDIR="${EPREFIX}/usr/$(get_libdir)/php${SLOT}"
+ # Don't allow ./configure to detect and use an existing version
+ # of PHP; this can lead to all sorts of weird unpredictability
+ # as in bug 900210.
+ export ac_cv_prog_PHP=""
+
# 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=(
@@ -245,15 +300,23 @@ src_configure() {
--with-libdir="$(get_libdir)"
--localstatedir="${EPREFIX}/var"
--without-pear
- $(use_enable threads maintainer-zts)
+ --without-valgrind
+ --with-external-libcrypt
+ $(use_enable threads zts)
)
+ # The slotted man/info pages will be missed by the default list of
+ # docompress paths.
+ docompress "${PHP_DESTDIR}/man" "${PHP_DESTDIR}/info"
+
our_conf+=(
+ $(use_with apparmor fpm-apparmor)
$(use_with argon2 password-argon2 "${EPREFIX}/usr")
+ $(use_with avif)
$(use_enable bcmath)
$(use_with bzip2 bz2 "${EPREFIX}/usr")
$(use_enable calendar)
- $(use_enable coverage gcov)
+ $(use_with capstone)
$(use_enable ctype)
$(use_with curl)
$(use_enable xml dom)
@@ -267,10 +330,9 @@ src_configure() {
$(use_with gmp gmp "${EPREFIX}/usr")
$(use_with mhash mhash "${EPREFIX}/usr")
$(use_with iconv iconv \
- $(use elibc_glibc || use elibc_musl || use elibc_FreeBSD || echo "${EPREFIX}/usr"))
+ $(use elibc_glibc || use elibc_musl || echo "${EPREFIX}/usr"))
$(use_enable intl)
$(use_enable ipv6)
- $(use_enable json)
$(use_with kerberos)
$(use_with xml libxml)
$(use_enable unicode mbstring)
@@ -281,6 +343,7 @@ src_configure() {
$(use_enable opcache)
$(use_with postgres pgsql "${EPREFIX}/usr")
$(use_enable posix)
+ $(use_with selinux fpm-selinux)
$(use_with spell pspell "${EPREFIX}/usr")
$(use_enable simplexml)
$(use_enable sharedmem shmop)
@@ -297,11 +360,11 @@ src_configure() {
$(use_enable xml)
$(use_enable xmlreader)
$(use_enable xmlwriter)
- $(use_with xmlrpc)
$(use_with xslt xsl)
$(use_with zip)
$(use_with zlib zlib "${EPREFIX}/usr")
$(use_enable debug)
+ $(use_with valgrind)
)
# DBA support
@@ -350,10 +413,7 @@ src_configure() {
fi
# MySQL support
- local mysqllib="mysqlnd"
- local mysqlilib="mysqlnd"
-
- our_conf+=( $(use_with mysqli mysqli "${mysqlilib}") )
+ our_conf+=( $(use_with mysqli) )
local mysqlsock="${EPREFIX}/var/run/mysqld/mysqld.sock"
if use mysql || use mysqli ; then
@@ -381,18 +441,14 @@ src_configure() {
)
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 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
@@ -414,10 +470,9 @@ src_configure() {
# we use the system copy of pcre
# --with-external-pcre affects ext/pcre
- # Many arches don't support pcre-jit
our_conf+=(
--with-external-pcre
- --without-pcre-jit
+ $(use_with jit pcre-jit)
)
# Catch CFLAGS problems
@@ -434,9 +489,20 @@ src_configure() {
# Support the Apache2 extras, they must be set globally for all
# SAPIs to work correctly, especially for external PHP extensions
+ # Create separate build trees for each enabled SAPI. The upstream
+ # build system doesn't do this, but we have to do it to use a
+ # different php.ini for each SAPI (see --with-config-file-path and
+ # --with-config-file-scan-dir below). The path winds up define'd
+ # in main/build-defs.h which is included in main/php.h which is
+ # included by basically everything; so, avoiding a rebuild after
+ # changing it is not an easy job.
+ #
+ # The upstream build system also does not support building the
+ # apache2 and embed SAPIs at the same time, presumably because they
+ # both produce a libphp.so.
local one_sapi
local sapi
- mkdir -p "${WORKDIR}/sapis-build" || die
+ mkdir "${WORKDIR}/sapis-build" || die
for one_sapi in $SAPIS ; do
use "${one_sapi}" || continue
php_set_ini_dir "${one_sapi}"
@@ -446,7 +512,6 @@ src_configure() {
# 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}"
@@ -485,6 +550,7 @@ src_configure() {
myeconfargs+=( "${sapi_conf[@]}" )
pushd "${BUILD_DIR}" > /dev/null || die
+ einfo "Running econf in ${BUILD_DIR}"
econf "${myeconfargs[@]}"
popd > /dev/null || die
done
@@ -497,11 +563,7 @@ src_compile() {
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
+ use "${sapi}" && emake -C "${WORKDIR}/sapis-build/${sapi}"
done
}
@@ -518,20 +580,15 @@ src_install() {
fi
done
- # Makefile forgets to create this before trying to write to it...
- dodir "${PHP_DESTDIR#${EPREFIX}}/bin"
-
- # Install php environment (without any sapis)
+ # Install SAPI-independent targets
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)"
+ use opcache && emake INSTALL_ROOT="${D}" install-modules
# 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
@@ -543,7 +600,7 @@ src_install() {
# 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${PHP_MV}$(get_libname)" \
+ newins ".libs/libphp$(get_libname)" \
"libphp${PHP_MV}$(get_libname)"
keepdir "/usr/$(get_libdir)/apache2/modules"
else
@@ -566,7 +623,7 @@ src_install() {
source="sapi/fpm/php-fpm"
;;
embed)
- source="libs/libphp${PHP_MV}$(get_libname)"
+ source="libs/libphp$(get_libname)"
;;
phpdbg)
source="sapi/phpdbg/phpdbg"
@@ -597,12 +654,6 @@ src_install() {
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
@@ -624,14 +675,13 @@ src_install() {
}
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
+ export TEST_PHP_EXECUTABLE="${WORKDIR}/sapis-build/cli/sapi/cli/php"
+
+ # Sometimes when the sub-php launches a sub-sub-php, it uses these.
+ # Without an "-n" in all instances, the *live* php.ini can be loaded,
+ # pulling in *live* zend extensions. And those can be incompatible
+ # with the thing we just built.
+ export TEST_PHP_EXTRA_ARGS="-n"
if [[ -x "${WORKDIR}/sapis-build/cgi/sapi/cgi/php-cgi" ]] ; then
export TEST_PHP_CGI_EXECUTABLE="${WORKDIR}/sapis-build/cgi/sapi/cgi/php-cgi"
@@ -641,40 +691,22 @@ src_test() {
export TEST_PHPDBG_EXECUTABLE="${WORKDIR}/sapis-build/phpdbg/sapi/phpdbg/phpdbg"
fi
- 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
+ # The sendmail override prevents ext/imap/tests/bug77020.phpt from
+ # actually trying to send mail, and will be fixed upstream soon:
+ #
+ # https://github.com/php/php-src/issues/11629
+ #
+ # The IO capture tests need to be disabled because they fail when
+ # std{in,out,err} are redirected (as they are within portage).
+ #
+ # One -n applies to the top-level "php", while the other applies
+ # to any sub-php that get invoked by the test runner.
+ SKIP_IO_CAPTURE_TESTS=1 SKIP_PERF_SENSITIVE=1 REPORT_EXIT_STATUS=1 \
+ "${TEST_PHP_EXECUTABLE}" -n \
+ "${WORKDIR}/sapis-build/cli/run-tests.php" --offline -n -q \
+ -d "session.save_path=${T}" \
+ -d "sendmail_path=echo >/dev/null" \
+ || die "tests failed"
}
pkg_postinst() {
diff --git a/dev-lang/pico8/Manifest b/dev-lang/pico8/Manifest
new file mode 100644
index 000000000000..398f9ce3260e
--- /dev/null
+++ b/dev-lang/pico8/Manifest
@@ -0,0 +1,3 @@
+DIST pico-8_0.2.5g_amd64.zip 10812535 BLAKE2B 51d4c8d57db31d12aa767b59901d8058e20302f4082022ae9beab559b4ae83cc241a7785facacfe5f7798198905bedd3fc1d5db5fd2bf00f9991dcef34910ea6 SHA512 e8c1ce4a7840f417a064473a77b2b55ba100a9ae232e8c1af0c4d57687d4d55e209ed5a5c75a5853825cfbe6fb138f2d0f99a3025b0ff6f2f8789dc705aa3f11
+DIST pico-8_0.2.5g_i386.zip 10120868 BLAKE2B 0dd33df665128e0221d6d0200da37e77cfebb20d4af869c2dcbeec0cbb126936d7792821c1f131722ee3b63049764eaec9fc5c230042e0a4aa52ff7515da655a SHA512 1f1aeb1c1f8d0d33ef9e9fc0f9afdf1e3993a877b07178d3260f4608641cfceb601819f31b95cde1b8fcb7d441eb5126bed1e3bcdb8f368b6bcfe5963a089511
+DIST pico-8_0.2.5g_raspi.zip 14411901 BLAKE2B 3a35e40b05fe3d8fc678a3fc97a68db6e315d23475e66f25e1e357abb3fb5411a99db85d3ee0ab6d0385b992555570492a42383aefbe48c57523ca58ee144f91 SHA512 a1bc47618394767e14110a47dfd1346a0437917638d3edb8c17656d7cc49b886cc22c39cc48b5e642a7aad3665d30b1e1307f489d1b5552a178e5207a5616d04
diff --git a/dev-lang/pico8/metadata.xml b/dev-lang/pico8/metadata.xml
new file mode 100644
index 000000000000..c2eb12510aed
--- /dev/null
+++ b/dev-lang/pico8/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>chewi@gentoo.org</email>
+ <name>James Le Cuirot</name>
+ </maintainer>
+ <longdescription>
+ PICO-8 is a fantasy console for making, sharing and playing tiny games
+ and other computer programs. When you turn it on, the machine greets you
+ with a shell for typing in Lua programs and provides simple built-in
+ tools for creating sprites, maps and sound.
+
+ The harsh limitations of PICO-8 are carefully chosen to be fun to work
+ with, encourage small but expressive designs and hopefully to give
+ PICO-8 cartridges their own particular look and feel.
+ </longdescription>
+</pkgmetadata>
diff --git a/dev-lang/pico8/pico8-0.2.5g.ebuild b/dev-lang/pico8/pico8-0.2.5g.ebuild
new file mode 100644
index 000000000000..844d0a20198d
--- /dev/null
+++ b/dev-lang/pico8/pico8-0.2.5g.ebuild
@@ -0,0 +1,57 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit desktop xdg
+
+MY_PN="pico-8"
+DESCRIPTION="Fantasy console for making and playing tiny games and other computer programs"
+HOMEPAGE="https://www.lexaloffle.com/pico-8.php"
+SRC_URI="
+ amd64? ( ${MY_PN}_${PV}_amd64.zip )
+ arm? ( ${MY_PN}_${PV}_raspi.zip )
+ arm64? ( ${MY_PN}_${PV}_raspi.zip )
+ x86? ( ${MY_PN}_${PV}_i386.zip )
+"
+LICENSE="PICO-8 MIT BSD-2"
+SLOT="0"
+KEYWORDS="-* ~amd64 ~arm ~arm64 ~x86"
+RESTRICT="bindist fetch"
+
+RDEPEND="
+ media-libs/libsdl2[haptic,joystick,sound,video]
+ net-misc/wget
+"
+
+BDEPEND="app-arch/unzip"
+
+S="${WORKDIR}/${MY_PN}"
+
+DIR="/opt/${PN}"
+QA_PREBUILT="${DIR}/${PN}"
+
+pkg_nofetch() {
+ einfo "Please buy and download ${A} from one of:"
+ einfo " ${HOMEPAGE}"
+ einfo " https://lexaloffle.itch.io/${MY_PN}"
+ einfo "and move it to your distfiles directory."
+}
+
+src_install() {
+ exeinto "${DIR}"
+ insinto "${DIR}"
+
+ case ${ARCH} in
+ amd64|arm) newexe ${PN}_dyn ${PN} ;;
+ arm64) newexe ${PN}_64 ${PN} ;;
+ x86) newexe ${PN}_32bit_dyn ${PN} ;;
+ esac
+
+ doins ${PN}.dat
+ dodoc ${MY_PN}_manual.txt
+
+ dosym ../..${DIR}/${PN} /usr/bin/${PN}
+ doicon -s 128 lexaloffle-${PN}.png
+ make_desktop_entry ${PN} ${MY_PN^^} lexaloffle-${PN}
+}
diff --git a/dev-lang/polyml/Manifest b/dev-lang/polyml/Manifest
index 58d163f18bef..be19627eb840 100644
--- a/dev-lang/polyml/Manifest
+++ b/dev-lang/polyml/Manifest
@@ -1,2 +1,2 @@
-DIST polyml-5.6.tar.gz 6066166 BLAKE2B dc7e35ad1f51f270f9043736bca8b3d8a96e208dfa2833a2de3c06c969e8bb9d5e92c3ab025e4e55539188a9d6d5000b7befdd3cfc17aa3b0e54315778ab71b0 SHA512 cd4f25c225831dec512f7136dfda4ba31abd6939d9e8e0cacdb6d48212488b56ba5969c76e76fcbfcfa83d015a67d9cf62457286086f3c2b3f7914a7939d7b59
-DIST polyml-5.8.tar.gz 9817105 BLAKE2B 93992c8baa78017bfda6c2151d1f48805829b77c0b7ed9bec87c951fc4a4236459ed59aab1eca88ed4a1d7aa10eb9734f93324583e012b18bb7d8cce84b5a35b SHA512 50baed79b50b14bd87acc637de93fd6d0f05e61fe0f03682a12a1d2c5f382313488d48f84b49ad915b01acc5a3a5769fb05fcaa7b24499c56402ddd3ba393930
+DIST polyml-5.9.1.tar.gz 3887664 BLAKE2B ae10fc9c4097879fe05ab931c541cdab8a61755210e2f6b084e31a08490a762234ea32d18d9d60e3ec52407861106b1b85d0ca8a92d2bc3e97b1d14fbd57bf8e SHA512 e471abef01b7f2bfac6d847904c0fcef6ae5a1356b1246a2e8982d24fd590b49feb03752642efe09d34344b4faf89bc3edd4418e9993e72ea22e5482e6d37271
+DIST polyml-5.9.tar.gz 3764115 BLAKE2B ae0ca0dcac2c1b5b54e4e4c4c7362a9ba99846ff7a1358a2332a8b887eb9c21e83851c9ecde44df3bebeef5cdfe3d4b73c09776a08cfc2db6ec70024ffedc50d SHA512 e996cbe820216e854a50ba214f2a2a0291ee3279eb35be4126b6558bc1582732a236156fb8d0f548b31fca4a496db62ece83d902b6f5e72de64507fdef602e45
diff --git a/dev-lang/polyml/files/polyml-5.6-configure.patch b/dev-lang/polyml/files/polyml-5.6-configure.patch
deleted file mode 100644
index ba3b6bbbd5ac..000000000000
--- a/dev-lang/polyml/files/polyml-5.6-configure.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/configure.ac 2019-04-05 10:27:19.026197625 +0200
-+++ b/configure.ac 2019-04-05 10:28:10.187291374 +0200
-@@ -133,7 +133,7 @@
- # Solaris needs -lsocket, -lnsl and -lrt
- AC_SEARCH_LIBS([gethostbyname], [nsl])
- AC_SEARCH_LIBS([getsockopt], [socket])
--AC_SEARCH_LIBS([sem_wait], [rt])
-+AC_SEARCH_LIBS([sem_wait], [rt] [pthread])
-
- # Check for X and Motif headers and libraries
- AC_PATH_X
diff --git a/dev-lang/polyml/files/polyml-5.6-ffi3.patch b/dev-lang/polyml/files/polyml-5.6-ffi3.patch
deleted file mode 100644
index bf15871d2742..000000000000
--- a/dev-lang/polyml/files/polyml-5.6-ffi3.patch
+++ /dev/null
@@ -1,18 +0,0 @@
---- a/libpolyml/polyffi.cpp 2019-04-05 23:10:23.509729312 +0200
-+++ b/libpolyml/polyffi.cpp 2019-04-05 23:10:38.895485058 +0200
-@@ -89,7 +89,6 @@
- // Unfortunately the ABI entries are enums rather than #defines so we
- // can't test individual entries.
- #ifdef X86_WIN32
-- {"sysv", FFI_SYSV},
- {"stdcall", FFI_STDCALL},
- {"thiscall", FFI_THISCALL},
- {"fastcall", FFI_FASTCALL},
-@@ -97,7 +96,6 @@
- #elif defined(X86_WIN64)
- {"win64", FFI_WIN64},
- #elif defined(X86_ANY)
-- {"sysv", FFI_SYSV},
- {"unix64", FFI_UNIX64},
- #endif
- { "default", FFI_DEFAULT_ABI}
diff --git a/dev-lang/polyml/files/polyml-5.8.2-configure.patch b/dev-lang/polyml/files/polyml-5.8.2-configure.patch
new file mode 100644
index 000000000000..5fd1c30dac75
--- /dev/null
+++ b/dev-lang/polyml/files/polyml-5.8.2-configure.patch
@@ -0,0 +1,12 @@
+diff -ruN polyml-5.8.2.orig/configure.ac polyml-5.8.2/configure.ac
+--- polyml-5.8.2.orig/configure.ac 2021-05-02 13:53:42.000000000 +0200
++++ polyml-5.8.2/configure.ac 2021-09-10 19:29:27.370699622 +0200
+@@ -198,7 +198,7 @@
+ # Solaris needs -lsocket, -lnsl and -lrt
+ AC_SEARCH_LIBS([gethostbyname], [nsl])
+ AC_SEARCH_LIBS([getsockopt], [socket])
+- AC_SEARCH_LIBS([sem_wait], [rt])
++ AC_SEARCH_LIBS([sem_wait], [rt] [pthread])
+
+ # Check for X and Motif headers and libraries
+ AC_PATH_X
diff --git a/dev-lang/polyml/files/polyml-5.9-c++11.patch b/dev-lang/polyml/files/polyml-5.9-c++11.patch
new file mode 100644
index 000000000000..4f750fe5a0fb
--- /dev/null
+++ b/dev-lang/polyml/files/polyml-5.9-c++11.patch
@@ -0,0 +1,11 @@
+--- a/libpolyml/xwindows.cpp 2023-01-22 10:40:35.855024465 +0100
++++ b/libpolyml/xwindows.cpp 2023-01-22 10:41:00.798613288 +0100
+@@ -7274,7 +7274,7 @@
+ : printf("Old Display <%p>",P.AsAddress()));
+ return;
+
+- default: printf("Pointer "ZERO_X"%p",P.AsAddress());
++ default: printf("Pointer %p",P.AsAddress());
+ return;
+ }
+ }
diff --git a/dev-lang/polyml/metadata.xml b/dev-lang/polyml/metadata.xml
index d54adc1d520f..4c5a0d1df6a4 100644
--- a/dev-lang/polyml/metadata.xml
+++ b/dev-lang/polyml/metadata.xml
@@ -1,11 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <!-- maintainer-needed -->
+ <maintainer type="project">
+ <email>ml@gentoo.org</email>
+ <name>ML</name>
+ </maintainer>
<use>
<flag name="portable">Build the portable interpreter version of Poly/ML instead of native</flag>
</use>
<upstream>
+ <remote-id type="github">polyml/polyml</remote-id>
<remote-id type="sourceforge">polyml</remote-id>
</upstream>
</pkgmetadata>
diff --git a/dev-lang/polyml/polyml-5.6.ebuild b/dev-lang/polyml/polyml-5.6.ebuild
deleted file mode 100644
index 8d2700996b92..000000000000
--- a/dev-lang/polyml/polyml-5.6.ebuild
+++ /dev/null
@@ -1,59 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="6"
-
-inherit autotools pax-utils
-
-DESCRIPTION="Poly/ML is a full implementation of Standard ML"
-HOMEPAGE="https://www.polyml.org"
-SRC_URI="https://codeload.github.com/polyml/polyml/tar.gz/v${PV} -> ${P}.tar.gz"
-
-LICENSE="LGPL-2.1"
-SLOT="0/${PV}"
-KEYWORDS="~amd64 ~x86"
-IUSE="X elibc_glibc +gmp portable test +threads"
-RESTRICT="!test? ( test )"
-
-RDEPEND="X? ( x11-libs/motif:0 )
- gmp? ( >=dev-libs/gmp-5 )
- elibc_glibc? ( threads? ( >=sys-libs/glibc-2.13 ) )
- dev-libs/libffi:="
-DEPEND="${RDEPEND}"
-
-PATCHES=(
- "${FILESDIR}"/${P}-configure.patch
- "${FILESDIR}"/${P}-ffi3.patch
-)
-
-src_prepare() {
- default
- eautoreconf
-}
-
-src_configure() {
- econf \
- --enable-shared \
- --disable-static \
- --with-system-libffi \
- --with-pic=pic-only \
- $(use_with X x) \
- $(use_with gmp) \
- $(use_with portable) \
- $(use_with threads)
-}
-
-src_compile() {
- # Bug 453146 - dev-lang/polyml-5.5.0: fails to build (pax kernel?)
- pushd libpolyml || die "Could not cd to libpolyml"
- emake
- popd
- emake polyimport
- pax-mark m "${S}/.libs/polyimport"
- emake
- pax-mark m "${S}/.libs/poly"
-}
-
-src_test() {
- emake tests
-}
diff --git a/dev-lang/polyml/polyml-5.8.ebuild b/dev-lang/polyml/polyml-5.8.ebuild
deleted file mode 100644
index 266856a8de2e..000000000000
--- a/dev-lang/polyml/polyml-5.8.ebuild
+++ /dev/null
@@ -1,59 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="6"
-
-inherit autotools pax-utils
-
-DESCRIPTION="Poly/ML is a full implementation of Standard ML"
-HOMEPAGE="https://www.polyml.org"
-SRC_URI="https://codeload.github.com/polyml/polyml/tar.gz/v${PV} -> ${P}.tar.gz"
-
-LICENSE="LGPL-2.1"
-SLOT="0/${PV}"
-KEYWORDS="~amd64 ~x86"
-IUSE="X elibc_glibc +gmp portable test +threads"
-RESTRICT="!test? ( test )"
-
-RDEPEND="X? ( x11-libs/motif:0 )
- gmp? ( >=dev-libs/gmp-5 )
- elibc_glibc? ( threads? ( >=sys-libs/glibc-2.13 ) )
- dev-libs/libffi:="
-DEPEND="${RDEPEND}"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-5.6-configure.patch
- "${FILESDIR}"/${PN}-5.6-ffi3.patch
-)
-
-src_prepare() {
- default
- eautoreconf
-}
-
-src_configure() {
- econf \
- --enable-shared \
- --disable-static \
- --with-system-libffi \
- --with-pic=pic-only \
- $(use_with X x) \
- $(use_with gmp) \
- $(use_with portable) \
- $(use_with threads)
-}
-
-src_compile() {
- # Bug 453146 - dev-lang/polyml-5.5.0: fails to build (pax kernel?)
- pushd libpolyml || die "Could not cd to libpolyml"
- emake
- popd
- emake polyimport
- pax-mark m "${S}/.libs/polyimport"
- emake
- pax-mark m "${S}/.libs/poly"
-}
-
-src_test() {
- emake tests
-}
diff --git a/dev-lang/polyml/polyml-5.9-r2.ebuild b/dev-lang/polyml/polyml-5.9-r2.ebuild
new file mode 100644
index 000000000000..2c5e1ec69299
--- /dev/null
+++ b/dev-lang/polyml/polyml-5.9-r2.ebuild
@@ -0,0 +1,59 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+DESCRIPTION="Poly/ML is a full implementation of Standard ML"
+HOMEPAGE="https://www.polyml.org"
+SRC_URI="https://github.com/polyml/polyml/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0/${PV}"
+KEYWORDS="~amd64 ~x86"
+IUSE="X +gmp portable"
+
+RDEPEND="
+ dev-libs/libffi:=
+ X? ( x11-libs/motif:0 )
+ gmp? ( >=dev-libs/gmp-5:= )
+"
+DEPEND="${RDEPEND}"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-5.8.2-configure.patch
+ "${FILESDIR}"/${P}-c++11.patch
+)
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+src_configure() {
+ local myconf=(
+ --enable-shared
+ --with-pic=pic-only
+ $(use_enable !portable native-codegeneration)
+ $(use_with X x)
+ $(use_with gmp)
+ )
+ econf "${myconf[@]}"
+}
+
+src_test() {
+ emake tests
+}
+
+src_install() {
+ default
+
+ if [[ -f "${ED}"/usr/$(get_libdir)/libpolymain.la ]] ; then
+ rm "${ED}"/usr/$(get_libdir)/libpolymain.la || die
+ fi
+
+ if [[ -f "${ED}"/usr/$(get_libdir)/libpolyml.la ]] ; then
+ rm "${ED}"/usr/$(get_libdir)/libpolyml.la || die
+ fi
+}
diff --git a/dev-lang/polyml/polyml-5.9.1.ebuild b/dev-lang/polyml/polyml-5.9.1.ebuild
new file mode 100644
index 000000000000..2c8ed0b90e8a
--- /dev/null
+++ b/dev-lang/polyml/polyml-5.9.1.ebuild
@@ -0,0 +1,69 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+DESCRIPTION="Poly/ML is a full implementation of Standard ML"
+HOMEPAGE="https://www.polyml.org/
+ https://github.com/polyml/polyml/"
+
+if [[ "${PV}" == *9999* ]] ; then
+ inherit git-r3
+
+ EGIT_REPO_URI="https://github.com/${PN}/${PN}.git"
+else
+ SRC_URI="https://github.com/${PN}/${PN}/archive/v${PV}.tar.gz
+ -> ${P}.tar.gz"
+
+ KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="LGPL-2.1"
+SLOT="0/${PV}"
+IUSE="X +gmp portable"
+
+RDEPEND="
+ dev-libs/libffi:=
+ X? ( x11-libs/motif:0 )
+ gmp? ( >=dev-libs/gmp-5:= )
+"
+DEPEND="${RDEPEND}"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-5.8.2-configure.patch
+ "${FILESDIR}"/${PN}-5.9-c++11.patch
+)
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+src_configure() {
+ local myconf=(
+ --enable-shared
+ --with-pic=pic-only
+ $(use_enable !portable native-codegeneration)
+ $(use_with X x)
+ $(use_with gmp)
+ )
+ econf "${myconf[@]}"
+}
+
+src_test() {
+ emake tests
+}
+
+src_install() {
+ default
+
+ if [[ -f "${ED}"/usr/$(get_libdir)/libpolymain.la ]] ; then
+ rm "${ED}"/usr/$(get_libdir)/libpolymain.la || die
+ fi
+
+ if [[ -f "${ED}"/usr/$(get_libdir)/libpolyml.la ]] ; then
+ rm "${ED}"/usr/$(get_libdir)/libpolyml.la || die
+ fi
+}
diff --git a/dev-lang/python-exec-conf/metadata.xml b/dev-lang/python-exec-conf/metadata.xml
index aa2793060bf8..03a31e467193 100644
--- a/dev-lang/python-exec-conf/metadata.xml
+++ b/dev-lang/python-exec-conf/metadata.xml
@@ -1,8 +1,11 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>python@gentoo.org</email>
<name>Python</name>
</maintainer>
+ <upstream>
+ <remote-id type="github">projg2/python-exec</remote-id>
+ </upstream>
</pkgmetadata>
diff --git a/dev-lang/python-exec-conf/python-exec-conf-2.4.6.ebuild b/dev-lang/python-exec-conf/python-exec-conf-2.4.6.ebuild
index db918e82c65e..c0d8f90fe664 100644
--- a/dev-lang/python-exec-conf/python-exec-conf-2.4.6.ebuild
+++ b/dev-lang/python-exec-conf/python-exec-conf-2.4.6.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -13,7 +13,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="BSD-2"
SLOT="2"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
# Internal Python project hack. Do not copy it. Ever.
IUSE="${_PYTHON_ALL_IMPLS[@]/#/python_targets_}"
diff --git a/dev-lang/python-exec/Manifest b/dev-lang/python-exec/Manifest
index 706afff2be92..a0da4c5e163e 100644
--- a/dev-lang/python-exec/Manifest
+++ b/dev-lang/python-exec/Manifest
@@ -1 +1 @@
-DIST python-exec-2.4.6.tar.bz2 87634 BLAKE2B 7b6de8ad0e0603fafd3284e6e3c5247ad83f145ab4db6728914318ae8e6f5aaa3c0247f4e01238fca11519ef72fb1b11436aea7e2b8c988b8717b3f6a2a43c37 SHA512 e05eaf01b83de196a10933636ab6b1a5489a421592df49b8b58eabd0e732de970f902744cd3a06b5ab530a6d69fe6dfa8f270fbb09b9fe3df4ae04d516828050
+DIST python-exec-2.4.10.tar.bz2 84412 BLAKE2B 1fe79e0d31a48954959a5556f96c3868fcf762ebc473d17f03e78a95cca83ab40b4933b7e42bc5751b0546e6229f9fdde9171c3fcbdd184f993536f944870491 SHA512 8c7d3c6b1fa362c8c97ec74ee01b5a195dc409d883408033e9709773b6059deb5291f6e63df6d9a4e42a0951aad4a1d513d4baa00ad9ff3dce3e1d2d38b694e1
diff --git a/dev-lang/python-exec/metadata.xml b/dev-lang/python-exec/metadata.xml
index cef85cf6ce7d..c942a12a85fc 100644
--- a/dev-lang/python-exec/metadata.xml
+++ b/dev-lang/python-exec/metadata.xml
@@ -1,5 +1,5 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>python@gentoo.org</email>
@@ -10,8 +10,8 @@
<email>mgorny@gentoo.org</email>
<name>Michał Górny</name>
</maintainer>
- <bugs-to>https://github.com/mgorny/python-exec/issues/</bugs-to>
- <remote-id type="github">mgorny/python-exec</remote-id>
+ <bugs-to>https://github.com/projg2/python-exec/issues/</bugs-to>
+ <remote-id type="github">projg2/python-exec</remote-id>
</upstream>
<use>
<flag name="native-symlinks">
diff --git a/dev-lang/python-exec/python-exec-2.4.6-r4.ebuild b/dev-lang/python-exec/python-exec-2.4.10.ebuild
index 414d52b94501..85085af14303 100644
--- a/dev-lang/python-exec/python-exec-2.4.6-r4.ebuild
+++ b/dev-lang/python-exec/python-exec-2.4.10.ebuild
@@ -1,23 +1,40 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-inherit python-utils-r1
+PYTHON_COMPAT=( python3_{10..12} pypy3 )
+
+inherit python-any-r1
DESCRIPTION="Python script wrapper"
-HOMEPAGE="https://github.com/mgorny/python-exec/"
-SRC_URI="https://github.com/mgorny/python-exec/releases/download/v${PV}/${P}.tar.bz2"
+HOMEPAGE="https://github.com/projg2/python-exec/"
+SRC_URI="https://github.com/projg2/python-exec/releases/download/v${PV}/${P}.tar.bz2"
LICENSE="BSD-2"
SLOT="2"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
# Internal Python project hack. Do not copy it. Ever.
-IUSE="${_PYTHON_ALL_IMPLS[@]/#/python_targets_} +native-symlinks"
+IUSE="${_PYTHON_ALL_IMPLS[@]/#/python_targets_} +native-symlinks test"
+RESTRICT="!test? ( test )"
RDEPEND="
dev-lang/python-exec-conf
- !<=dev-lang/python-2.7.18-r3:2.7"
+ !<=dev-lang/python-2.7.18-r3:2.7
+"
+BDEPEND="
+ test? (
+ $(python_gen_any_dep 'dev-python/pytest[${PYTHON_USEDEP}]')
+ )
+"
+
+python_check_deps() {
+ python_has_version -b "dev-python/pytest[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+ use test && python-any-r1_pkg_setup
+}
src_configure() {
local pyimpls=() i EPYTHON
@@ -36,6 +53,11 @@ src_configure() {
econf "${myconf[@]}"
}
+src_test() {
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ default
+}
+
src_install() {
default
diff --git a/dev-lang/python-exec/python-exec-2.4.6-r2.ebuild b/dev-lang/python-exec/python-exec-2.4.6-r2.ebuild
deleted file mode 100644
index 14bfdf3a2bc2..000000000000
--- a/dev-lang/python-exec/python-exec-2.4.6-r2.ebuild
+++ /dev/null
@@ -1,126 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit python-utils-r1
-
-DESCRIPTION="Python script wrapper"
-HOMEPAGE="https://github.com/mgorny/python-exec/"
-SRC_URI="https://github.com/mgorny/python-exec/releases/download/v${PV}/${P}.tar.bz2"
-
-LICENSE="BSD-2"
-SLOT="2"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-# Internal Python project hack. Do not copy it. Ever.
-IUSE="${_PYTHON_ALL_IMPLS[@]/#/python_targets_}"
-
-RDEPEND="!<=dev-lang/python-2.7.18-r3:2.7"
-
-src_configure() {
- local pyimpls=() i EPYTHON
- for i in "${_PYTHON_ALL_IMPLS[@]}"; do
- if use "python_targets_${i}"; then
- _python_export "${i}" EPYTHON
- pyimpls+=( "${EPYTHON}" )
- fi
- done
-
- local myconf=(
- --with-fallback-path="${EPREFIX}/usr/local/sbin:${EPREFIX}/usr/local/bin:${EPREFIX}/usr/sbin:${EPREFIX}/usr/bin:${EPREFIX}/sbin:${EPREFIX}/bin"
- --with-python-impls="${pyimpls[*]}"
- )
-
- econf "${myconf[@]}"
-}
-
-src_install() {
- default
-
- # Prepare and own the template
- insinto /etc/python-exec
- newins - python-exec.conf \
- < <(sed -n -e '/^#/p' config/python-exec.conf.example)
-
- local programs=( python python3 )
- local scripts=( python-config python3-config 2to3 idle pydoc pyvenv )
-
- local f
- for f in "${programs[@]}"; do
- # symlink the C wrapper for python to avoid shebang recursion
- # bug #568974
- dosym python-exec2c /usr/bin/"${f}"
- done
- for f in "${scripts[@]}"; do
- # those are python scripts (except for new python-configs)
- # so symlink them via the python wrapper
- dosym ../lib/python-exec/python-exec2 /usr/bin/"${f}"
- done
-}
-
-pkg_preinst() {
- if [[ -e ${EROOT}/etc/python-exec/python-exec.conf ]]; then
- # preserve current configuration
- cp "${EROOT}"/etc/python-exec/python-exec.conf \
- "${ED}"/etc/python-exec/python-exec.conf || die
- else
- # preserve previous Python version preference
- local py old_pythons=()
- local config_base=${EROOT}/etc/env.d/python
-
- # start with the 'global' preference (2 vs 3)
- if [[ -f ${config_base}/config ]]; then
- old_pythons+=( "$(<${config_base}/config)" )
- fi
-
- # then try specific py3 selection
- for py in 3; do
- local target=
-
- if [[ -f ${config_base}/python${py} ]]; then
- # try the newer config files
- target=$(<${config_base}/python${py})
- elif [[ -L ${EROOT}/usr/bin/python${py} ]]; then
- # check the older symlink format
- target=$(readlink "${EROOT}/usr/bin/python${py}")
-
- # check if it's actually old eselect symlink
- [[ ${target} == python?.? ]] || target=
- fi
-
- # add the extra target if found and != global
- if [[ ${target} && ${old_pythons[0]} != ${target} ]]; then
- old_pythons+=( "${target}" )
- fi
- done
-
- if [[ ${old_pythons[@]} ]]; then
- elog "You seem to have just upgraded into the new version of python-exec"
- elog "that uses python-exec.conf for configuration. The ebuild has attempted"
- elog "to convert your previous configuration to the new format, resulting"
- elog "in the following preferences (most preferred version first):"
- elog
- for py in "${old_pythons[@]}"; do
- elog " ${py}"
- done
- elog
- elog "Those interpreters will be preferred when running Python scripts or"
- elog "calling wrapped Python executables (python, python2, pydoc...)."
- elog "If none of the preferred interpreters are supported, python-exec will"
- elog "fall back to the newest supported Python version."
- elog
- elog "Please note that due to the ambiguous character of the old settings,"
- elog "you may want to modify the preference list yourself. In order to do so,"
- elog "open the following file in your favorite editor:"
- elog
- elog " ${EROOT}/etc/python-exec/python-exec.conf"
- elog
- elog "For more information on the new configuration format, please read"
- elog "the comment on top of the installed configuration file."
-
- local IFS=$'\n'
- echo "${old_pythons[*]}" \
- >> "${ED}"/etc/python-exec/python-exec.conf || die
- fi
- fi
-}
diff --git a/dev-lang/python-exec/python-exec-2.4.6-r3.ebuild b/dev-lang/python-exec/python-exec-2.4.6-r3.ebuild
deleted file mode 100644
index 0ba2c499b941..000000000000
--- a/dev-lang/python-exec/python-exec-2.4.6-r3.ebuild
+++ /dev/null
@@ -1,128 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit python-utils-r1
-
-DESCRIPTION="Python script wrapper"
-HOMEPAGE="https://github.com/mgorny/python-exec/"
-SRC_URI="https://github.com/mgorny/python-exec/releases/download/v${PV}/${P}.tar.bz2"
-
-LICENSE="BSD-2"
-SLOT="2"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-# Internal Python project hack. Do not copy it. Ever.
-IUSE="${_PYTHON_ALL_IMPLS[@]/#/python_targets_} +native-symlinks"
-
-RDEPEND="!<=dev-lang/python-2.7.18-r3:2.7"
-
-src_configure() {
- local pyimpls=() i EPYTHON
- for i in "${_PYTHON_ALL_IMPLS[@]}"; do
- if use "python_targets_${i}"; then
- _python_export "${i}" EPYTHON
- pyimpls+=( "${EPYTHON}" )
- fi
- done
-
- local myconf=(
- --with-fallback-path="${EPREFIX}/usr/local/sbin:${EPREFIX}/usr/local/bin:${EPREFIX}/usr/sbin:${EPREFIX}/usr/bin:${EPREFIX}/sbin:${EPREFIX}/bin"
- --with-python-impls="${pyimpls[*]}"
- )
-
- econf "${myconf[@]}"
-}
-
-src_install() {
- default
-
- # Prepare and own the template
- insinto /etc/python-exec
- newins - python-exec.conf \
- < <(sed -n -e '/^#/p' config/python-exec.conf.example)
-
- if use native-symlinks; then
- local programs=( python python3 )
- local scripts=( python-config python3-config 2to3 idle pydoc pyvenv )
-
- local f
- for f in "${programs[@]}"; do
- # symlink the C wrapper for python to avoid shebang recursion
- # bug #568974
- dosym python-exec2c /usr/bin/"${f}"
- done
- for f in "${scripts[@]}"; do
- # those are python scripts (except for new python-configs)
- # so symlink them via the python wrapper
- dosym ../lib/python-exec/python-exec2 /usr/bin/"${f}"
- done
- fi
-}
-
-pkg_preinst() {
- if [[ -e ${EROOT}/etc/python-exec/python-exec.conf ]]; then
- # preserve current configuration
- cp "${EROOT}"/etc/python-exec/python-exec.conf \
- "${ED}"/etc/python-exec/python-exec.conf || die
- else
- # preserve previous Python version preference
- local py old_pythons=()
- local config_base=${EROOT}/etc/env.d/python
-
- # start with the 'global' preference (2 vs 3)
- if [[ -f ${config_base}/config ]]; then
- old_pythons+=( "$(<${config_base}/config)" )
- fi
-
- # then try specific py3 selection
- for py in 3; do
- local target=
-
- if [[ -f ${config_base}/python${py} ]]; then
- # try the newer config files
- target=$(<${config_base}/python${py})
- elif [[ -L ${EROOT}/usr/bin/python${py} ]]; then
- # check the older symlink format
- target=$(readlink "${EROOT}/usr/bin/python${py}")
-
- # check if it's actually old eselect symlink
- [[ ${target} == python?.? ]] || target=
- fi
-
- # add the extra target if found and != global
- if [[ ${target} && ${old_pythons[0]} != ${target} ]]; then
- old_pythons+=( "${target}" )
- fi
- done
-
- if [[ ${old_pythons[@]} ]]; then
- elog "You seem to have just upgraded into the new version of python-exec"
- elog "that uses python-exec.conf for configuration. The ebuild has attempted"
- elog "to convert your previous configuration to the new format, resulting"
- elog "in the following preferences (most preferred version first):"
- elog
- for py in "${old_pythons[@]}"; do
- elog " ${py}"
- done
- elog
- elog "Those interpreters will be preferred when running Python scripts or"
- elog "calling wrapped Python executables (python, python2, pydoc...)."
- elog "If none of the preferred interpreters are supported, python-exec will"
- elog "fall back to the newest supported Python version."
- elog
- elog "Please note that due to the ambiguous character of the old settings,"
- elog "you may want to modify the preference list yourself. In order to do so,"
- elog "open the following file in your favorite editor:"
- elog
- elog " ${EROOT}/etc/python-exec/python-exec.conf"
- elog
- elog "For more information on the new configuration format, please read"
- elog "the comment on top of the installed configuration file."
-
- local IFS=$'\n'
- echo "${old_pythons[*]}" \
- >> "${ED}"/etc/python-exec/python-exec.conf || die
- fi
- fi
-}
diff --git a/dev-lang/python/Manifest b/dev-lang/python/Manifest
index d580e5cb5ec3..1c16998ded53 100644
--- a/dev-lang/python/Manifest
+++ b/dev-lang/python/Manifest
@@ -1,26 +1,21 @@
DIST Python-2.7.18.tar.xz 12854736 BLAKE2B 060a621c91dd8e3d321aec99d44c17aa67381998256a1a002d316b38288349884d5960de35c49352d03129ed0bae599e641ec2225898158ebce50a7a2fd74d2c SHA512 a7bb62b51f48ff0b6df0b18f5b0312a523e3110f49c3237936bfe56ed0e26838c0274ff5401bda6fc21bf24337477ccac49e8026c5d651e4b4cafb5eb5086f6c
DIST Python-2.7.18.tar.xz.asc 833 BLAKE2B 1d98770e46171971fb99994508d238c01d2755281d2f94353314014d9e83e0ec5f0b3e3950ea1fdf5fce9ba6b8f55312355845c2a3fc4291c27ee56fe6215448 SHA512 c2a5f5a52f47dec52460ad3275758d4e5de6e7075c3def4353c988d74d563a39b42cae2d5eb24e2a23a6247cef69100f91620b11a49c2359fbf99b203c9cbda8
-DIST Python-3.10.0a3.tar.xz 18676916 BLAKE2B 86c8e3cd5d9658a2b1027558eda42294807173cac39010737dba6a0bf75a3a7211297cb79061085ab0cea52eaaba521140ff67c3b6edeebd677429191f4435b5 SHA512 a361c04081e9bd7e740c3311d92ec1428f12c589613ab39ed2bb1ac5aa20e4d8bc6d6e76eefc20edd459ecf8be1720f3985126be38407fcfb41f5a6efcea3998
-DIST Python-3.10.0a4.tar.xz 18706760 BLAKE2B a1237b73f0890c3da042eff7b110bd8da5b58ecd8cd53e673d3f91555c602b6b5f2b771023749d01cf3adff45935a7e3fda78af55cf7e7279a451ac5f2902b68 SHA512 2bf756e581315a7f242683931bffb275edcd5d864b8242e3de42ccf07cca27208f0468ba1663ff12263c128060bab400ba2ed707e0c3bcc422a619adc3171c34
-DIST Python-3.10.0a4.tar.xz.asc 833 BLAKE2B 7cbfa39f918b9bb8dcdd46f2d5a4e6e7a24060bc39e8b81dfdea3fa2c305295da3bf09bd98b36a39cf8ec7619943fb0ca66f80d704bf3618b981cc22afdbd2d5 SHA512 6b94e27982e8344f0bd343bb0e04041a82608eff537105815a90a54f48cc6fa4804af10403e9729ada469c876352693144e3922de8fb2e48dc78151fa6520973
-DIST Python-3.6.12.tar.xz 17202980 BLAKE2B c8d22e4d57bcaffe77cd902cda3a473e73adf2b74ab104c23b4d846f19632a24cc0c478af84079b16d784bd1c0956824c06c1f6134fd24f54e58aaab0fe96bb6 SHA512 1462801f3f6626a853097d34ccdca9838c4c5bd81ecc3abc751003f5f2f8d36eecdaa4130ef4218de351c5586093c11669639a34492668fbc5a2a4a241f4a070
-DIST Python-3.6.12.tar.xz.asc 833 BLAKE2B a5eb9f907732bb5afd8f56115ab830ed6b6f4545e4063cfe316fb7aa1ba8694fcb8c936919b4045d9f5923446f8ea20978ead059078ed50ad48a82a3bb5ae941 SHA512 91d9ce0c471359f6aa3d5d5dcad7316ec6ed173f895a51e72b1853dc422fda57a00411c88fdc40a8e21888d964136b0b032e15b215c3b6c62ffc82bddc580860
-DIST Python-3.7.9.tar.xz 17389636 BLAKE2B 484833aa2aa4e29051a02969294f72099ff6f1a47d944b1a0dd15f8e6c22a0406d551bcbcd1048cf89defedaccf060733211e34b38e31fd8391dd823eaa35bc0 SHA512 e4217b25529b5336e43b63d17f3758a8177a58184564cf02bd92a312f58dba9e096485c9e3cb3544f966e847ea15b3ab30ed065d28a6ca52a6d7e0faddf7d9f9
-DIST Python-3.7.9.tar.xz.asc 833 BLAKE2B a95546b90ff87c13492d7f6e0d8e6d263557ffb55f72de212ec21ef5fb6b3c838e0a13c5696d577d1d7c46d0386698e8860d9819e6510e85aa88709011fe1e72 SHA512 922da6056029416e1dceefb83723911d5e2cc972d88c0bf1a08c35c8fe11279eb350c44834d2cc5ba94beb9b7655ecae28d8f5b6e3479eea7fcd09f67ec1e1c0
-DIST Python-3.8.6.tar.xz 18233864 BLAKE2B c8a8ef6055e344dda30eb808804cfa62016b4f840257cffd5a495e5932f5696e50579d49b8181a487c9cd4a89bdb95656e80981039783a21d20f7980aa2c9883 SHA512 22faec84f6e172e1ac7c6bd6fd37e9b6ae4afc91cf5136aa8cac8ebbed8d18793f9196e8749b8ccc43447cb6c41cb450f65ea72dd363c06dfaeb14e0455f5560
-DIST Python-3.8.7.tar.xz 18261096 BLAKE2B 6ac20efef41e828cb796aabcb7808400d494b9b48759950c8c15ee90762394f6763163d8e37ab407c1c79ebb9cda09189eaa969a75f96c86a96ccee962443924 SHA512 6a27d8eab3076930df46b0cf127f9b664f8d4147349b2b98132f464deb7f69d87e0167e8ee8e6c64249125ad73760d965ecbc81c252b63a1e7aac95594c62b74
-DIST Python-3.8.7.tar.xz.asc 833 BLAKE2B a629251732d1ea6054564b6b1a9a2b3b716e20c8fad1b6b69a9c64aff7fe7fca7dc6cdeef52d9889873f1e349c1cb1c4fba4483d8ded6ab2cdd279ea4abaeb70 SHA512 ddbad087a1d116e743e11f50d29ee0563241e4397312fa76691bad30ef62908d281ba77b89dbd8f348faa50f1c953399d79ad6c2ab77828e690f3a5a3b708bc8
-DIST Python-3.9.0.tar.xz 18866140 BLAKE2B 8e12b64e187a65461473ac3b281dc489f0abac586e0755f6dbeceb236b34bdc008085eeac9ee1a19d76f5ec6a2fbda623985454c9d0164c4888a97b8cd940034 SHA512 b141039c9701a8cb0d15cd11a279153077524af4d0599e7d2c7279d4c18d05fda06b33ef82342d875de996c7117b7dc6eb154dc3669d38a1efa99801aeec6c5e
-DIST Python-3.9.1.tar.xz 18897104 BLAKE2B bcbce176510e8e7c6ba6070588bedc52121c21c5271f59b3d629dfb542c51ee62622b2ca53a6e2041f1a51b2d089368cc4de9bb749e8ebad9a2c4eb4de83538e SHA512 b90029d6825751685983e9dcf0e0ec9e46f18e6c7d37b0dd7a245a94316f8c0090308ad7c2b2b49ed2514b0b909177231dd5bcad03031bf4624e37136fcf8019
-DIST Python-3.9.1.tar.xz.asc 833 BLAKE2B dc445ed9797668c5f0777259ea83330815ee516dafc752e6a0d903bae5355e76360afa5ed318ce09bbbcfb4df6269b06b6fb6b7d9c074678b612bb1ea9e3148a SHA512 400259f499820e0499290402f095ee5454168907f539de705cad4f0e5586b1c67a0ac45b89bf099701be55146a5eed73dbc9e2cb15562fef34da2813ac82f342
-DIST python-gentoo-patches-2.7.18-r4.tar.xz 21352 BLAKE2B d322f5afd63813d7c9280c75f942bde75ee19793e121d0406c4f229ead53324bf3996342eed9a6c1aa474894afe7f2dd70aec38aee8042993a5274abc288fd31 SHA512 1cb0be8e79d0c6c55fcbe3f3dabf8b760aea0e60d888ea39d3e69de03b55738c50b2cca06586c1cd2896956f5764eefd6d3f9fbf2de0d0ddfd8aab86837976b6
-DIST python-gentoo-patches-2.7.18-r6.tar.xz 22740 BLAKE2B 1727fcab273dfe5e5739c7ce1cd7fb3c6bd13c2bda25a2e4e0609a2e727a69318a46b7c2173ea7746f8a124e778b276408adc9968ed2025b8643e660bb3d3ea3 SHA512 975fe72c5b2f4577563e8e972c70b7eec7203790a500e6f051fab1f66c71e5ae46fcb3c571a9e6346bf3a0d1dd48594a61bf2751007e4f5e3d19f8db6146c99d
-DIST python-gentoo-patches-3.10.0a3-r1.tar.xz 10068 BLAKE2B 8b305a31cf0aab4da9e27e671b4fd48be6224ff8508ed1831ad4149761bb263cd9a694e90d52335390643a537dee2d6cab4e086bd521c99217e81845b4f9bcf1 SHA512 69c52c61dd2f1ca097fafe13c27cd1979280675bef6af8e8e300f3791d7eb50368311e3d055075f4bca01ce02d9e97a94fcd2662c78f14cfb6a37d77c39a158f
-DIST python-gentoo-patches-3.6.12-r1.tar.xz 16540 BLAKE2B 8204b6f25e1f7c6fef024933d54bfa6085158ac624a6e5a8d51576da2047b6db791be5d071c483fdec5c033b8fa8ee3d4e176a3e442defa556b34a304de3b7f3 SHA512 ad74c73b4f963427e66ac6187e1569dbfbbe3c916c24971a1eba4ad7e2f94e39c970f80e197c0498820451f036b12f3076b46cfd73bb5d6d56183ac05453d9ad
-DIST python-gentoo-patches-3.6.12-r2.tar.xz 17988 BLAKE2B c252bce5ac49b9af11174d3c974d95c24ec280230cede75a7650cb914f8acb3d41b8d575e469fe7f274c6d3bc238847b82e815bf1444c5afd7292e00248e3365 SHA512 50813fbd810c8b865c0f0f8d56780af7a9e094336ba486ddd94ba8fb0a83b5373f41274bbb10c3d732449ee5b2076b7430404c02bfac10fb9b27f92de79c25e2
-DIST python-gentoo-patches-3.7.9-r1.tar.xz 15664 BLAKE2B 271b95a52f4ba83c1aee6f68385462c9af8f2ab575267ac068a793e99f7c9739eb4b98dfa7e9280510a709557d418db04f26b5b31bbfe95dfdc13c1773510d2d SHA512 38df628de2f2835f975f6f06395d32cd63051af87b9bf8b06eef2f987bde26a883923bcab333568c122554b900bb17995a8c7290b6a58f942bd942dcbc70d030
-DIST python-gentoo-patches-3.7.9-r2.tar.xz 17068 BLAKE2B 2cb838e6ab2f76b5d08df42a1187f3cdeaf3e26d845307ddb6f492eb46cfb14da26f7ceaca7ca09a5304ba717006d182cb632a0927029419064673e58a06d232 SHA512 fd9bdc0ed989ff9ca5f343d2fd04a9e7f4c078e434b03288b19797dab71006d89d601cf91d651a1dbb8cc6c66e829c977cec98e971b30c5f5cc29a751dc34d50
-DIST python-gentoo-patches-3.8.6-r1.tar.xz 15880 BLAKE2B 9a08cd23af56bcc2ed0dffe4850698be6e0bcf7c44d3eafeb250e328a93833dc3e9ce084f1be89450d1e123cd72d81c6271edfe34046d1bab3d7c10a98d0d9c5 SHA512 83474915cab0928d1d2f4229832bef7c093b2943770fa900a7445bfaa633544f50791aa8b4bc4191662af56feef166814d98eb6fad2c0a0eb9db1f8f4806e689
-DIST python-gentoo-patches-3.8.7-r1.tar.xz 12572 BLAKE2B 7658ae56993674a7f57cb2b6d9f23e9d01fa75f00edcc67dc3474bba0361373555c44d47c155cf9ffcbd8551ff2ae56bc22a25bef1bf6b3efed7314b2824d777 SHA512 76d0e4d18fbeedc28430a3dd1656cfafdfefdae28978baddd3e0102d0fce83be173b58da74203fc6a90cf50c63fa612f0b78e65bc59a41dce4739eead398d352
-DIST python-gentoo-patches-3.9.0-r1.tar.xz 13728 BLAKE2B 50e85194c6bafefb8a0ddc4c9dea39227fc2c170db37ab44fa1e068340fa2fc5a59489f50431f0792024df551fc54a20de594579b57717c89fa134b3f000bb6d SHA512 a38c2800e3a0740af79f75f4120c925c7a891aa1f14a71ab56ad97fbabca3573c571140da3f34050bd9f97bd854a704453a910fa6883162196e6d1335a965b61
-DIST python-gentoo-patches-3.9.1-r1.tar.xz 10464 BLAKE2B d69ce207020b7a34eb45c149ce88001167704763fbc373a8d5aff48a1d6337774dfb6c75d477442516b8dceb87b116e6d8cf3231334ced9b03aa970aa0d2e8e1 SHA512 72b1e37b1ceac9a0e95aa63a7dd404c69f60ae7a8aac472b8c17100c873a4d28d3291231643862c9d1cfaf990040f8e780590274314047adee199c159d745369
+DIST Python-3.10.14.tar.xz 19600188 BLAKE2B a9e65fff590d56848f55f2d93d8a1c631bb8135617112997fbaea9fc45db1d5e2ce39f00cb29c9428542e523fdf48064bdb9aea144acb7aa7cfe71990b8e949e SHA512 adee638aeca898743da4b8245c0fa1e9b94b516f22e716e60c99038f0bb3dcbf726317aa86656404be1719b5a7c58eb09533720ebc0badbb04bd9a534dd48fef
+DIST Python-3.10.14.tar.xz.asc 833 BLAKE2B a8ff46628d72540d0cbfbca91742e0901d7679229d873c3c92fd06d3b45a057daa5b70eb5f026db89d498cb84c10b8c477e79b012582c9fa2bf9d514637c2de7 SHA512 821046b8eb559c3ef800f26739c995e7a71469a1e765ee7d516690236e16d2637ada7b2f9535b8c0dceaacf243e7b059f6f106b4a25faae365aa2099d1ff538c
+DIST Python-3.11.9.tar.xz 20175816 BLAKE2B 4e7cd2c42ee39b5ef9624ebd1798320957e948cb4f23f17fd1530814c60126dbf988846928d4d7d4b9d2174029ab8d4dbaf19e6203da237da4c3212ddebd5803 SHA512 2b0a1d936b4ef8376f9655797aece8ffdff75031ad7bfa840f330cac2aed189aecc80c163edc12ea772851d7a011f3fc1960470a73d9d4290cf3ab8ad6ed7e6a
+DIST Python-3.11.9.tar.xz.asc 833 BLAKE2B fa29f632bae0bee7db946038ee3529bc3bfbe1b2e755b21394f67a3c80911ce8079aaab43a16d88e614a8bfc01fb5105ce3f61c59a5ca44470b0f59787c707b3 SHA512 b18b50e7168b2ca5376a1fa75e50e8baae2026d4f11d4cf613d758f3f17df4610fe4653fb2ac0c5c4ec0f6e630dc6490ad1ff32a2fd0ebd60f9f3bd136207ffc
+DIST Python-3.12.3.tar.xz 20625068 BLAKE2B fc4f57ae50183db4c8cb37d94c37a7e58da5d031e03866841a678b986f01bbb8afdefb38124ba82b0a4988445b647214be43338dea13b0f063d3c2bf81c48c0b SHA512 4a2213b108e7f1f1525baa8348e68b2a2336d925e60d0a59f0225fc470768a2c8031edafc0b8243f94dbae18afda335ee5adf2785328c2218fd64cbb439f13a4
+DIST Python-3.12.3.tar.xz.asc 963 BLAKE2B f9668dde210793f8da0e0bb026b8ec3e0b4bc3abc58e72732f8faf356b19ca88a59b9d89b4b10f77b3602d9a967f0f2f44a0f091d698bc28ba9bad8049e5e006 SHA512 c291ec5b5e4f8deba867cc517624dd9a174745f04061ef737e58f3d52b9b30318264aec350e339fe88ccb493809ca1a90a378e86d86b8ec4a4f578b1a5843624
+DIST Python-3.13.0a6.tar.xz 20890000 BLAKE2B 3a08003be366d78c8e3f7d45440bb23a6c9fb1228a31212b1585d1ab1129a6e252e852f8bd300c13d45ccaa0988f6f5de2a067b4a0c9583be10da4c20ceffa74 SHA512 6e999c718cdfede4abc52297aae7160a2864424e8f49a47321fa822d40c331a3d061a0982e355351a0c4bea40e9b1ec3832d76a7f4b6b3986b62fca2757f0ca1
+DIST Python-3.13.0a6.tar.xz.asc 963 BLAKE2B 8f221fbba5f92a0468d2c28418b4d02037a59d4177e3e96f339a67376d0335df9ca23294e63d5ef4ef926bf7deafb2f8a458e740281429b0a648bd087b4e99a4 SHA512 1ec2abe8198a5fbd98490274bed7e84b48fcfc6ff25fcb474455d9f33b62673cfb7cf4939b304684aed005975d166143cb644b9a3e484d25de3dacb869de0131
+DIST Python-3.8.19.tar.xz 18975156 BLAKE2B 57b241aeb8f99a8c30590dcb9402abbcf573f00d06e807846bc9135c0a8a4af896c4d772d34abc3c292339953f4974a203bff61a78641d91b1826770226cd7e9 SHA512 1d2a57fa15ccdaec8cdca508ba2ffb01e1ae053a3446ac709bc334480f8e913070899f01ed680cce6dc7ddfddcb27ef402fe206562249fa4c4e87be21ece0625
+DIST Python-3.8.19.tar.xz.asc 833 BLAKE2B a11705011e9ea2bd6cbabc2b4c896ba94675341188eb483b881c2cb25c932e9ff25f9f589f930605b0442ff93a1f54532608b111c8ace715a406ce10809af671 SHA512 efdaae5462badcf4b98625ce8ab0e34756acea9539416e6ec428725b04539f8c38c1978de346510d669e93bbeef3ae20b1534e4c6582f89c7dc56a04c7cae140
+DIST Python-3.9.19.tar.xz 19682840 BLAKE2B a12256663f0ff3b799c2193c5877aa89a434340dfa01e655f790abea70af0709b54577e1c2590add241308a8581fd6f45a22aed450bd5db2bf9fa35c4a9d619b SHA512 5577830c734e63a70bbc62cd33d263b9aa87c4381b49cb694c3559067c4c682a55506b65ec5514a8e0a5abf6294dc728e909385d449ae1c388e62f83cea9bb89
+DIST Python-3.9.19.tar.xz.asc 833 BLAKE2B b48b58b8ccf4d6ba8d0d7120f04bebf59f843ffecf5fde4c3989fd9c26e3d3d1ccf4e5688f7024ae94775c8731e9ffa56799fca8596289edf93e4aac5480aaad SHA512 f7f4946243dfc56de2c84f50276b088d347f17054f50e3331d1e312e2a8e2c6ed1b4b4a807202b51137fd2af3fc9218cafa42ed348a954ace896d9a432e2defd
+DIST python-gentoo-patches-2.7.18_p16.tar.xz 35448 BLAKE2B 0139c0944f62f9cdd236f6a8557e0ed19704c7d72869af1cb7d8bd3e646a746cd4a0201e1b44232a5e78ef49f254db20b0d0271bf744fbfd4fe0f1e99b8f3e6c SHA512 810be590d0e06fab4b2165e6852ca49662f09dcd7e20b47a29f613ad7653252c8dfac3f0eb228d77c8a914efa7c08788b2fbd552a4b47504f5fd0ec17450c48f
+DIST python-gentoo-patches-3.10.14_p1.tar.xz 15836 BLAKE2B a850e4ad4f025fa9d38ccba937f1b3ee8443ed186c22ede58b4c7324a8541cf724590686671a9aa9194662303ce75bc80aac8ee6f9da34b793876817b6f593ff SHA512 5d969f5e5126ee675a062924a5f403de142fc5bfe4a931fd3576bcc6298a855419d305d4b1ffedacb429783a05324b36eef4c45c861c47bada0bdd840de2bca3
+DIST python-gentoo-patches-3.11.9.tar.xz 8456 BLAKE2B 4e62837f17c1d056460df417b056a79ad78dbcdd3454761c7cda68ffe6faf8f4d4f04d5539e0ba94332fe19a751f7d5ff2c35ff969a6aa09a2c72d2ce5efbff1 SHA512 a288aa8d1d15e906e0f1762602a2122f9dc91bbd6b72123ac5d00ce55b3af324a4e8280b600fc0fb630e489e57ee1547d7595a4ede7a70e4b26d6686a8414997
+DIST python-gentoo-patches-3.12.3.tar.xz 6028 BLAKE2B 7953a48a1d95a6a33bd88060fbcac463a5469371aa0c882c3945f1fea64a63c4d45fca8451f51f4eaeea00a04267ad2e54e4cc720c95e8bb5a3477e00263b80a SHA512 4779bab2b24e59e4a77987ce3e9611d99e87c9c4d016309758c26a65fe2e11ef04d48d5af628c02b1552dc1f31b768f87448f8e19e716b4fe372941e6dacac3f
+DIST python-gentoo-patches-3.13.0a6.tar.xz 5240 BLAKE2B 827a365f60a1acfcbb5ddd568e4938cbd7f98678a12c756774b4307141834d90b890006e68965369663af1c6d594cf44466b9624f5ce3741ade28d80f3289437 SHA512 e45e0aaab022d2cc633576990a6232235067d89fc1270004caf18da898b98767ba7fa811bc8beb3cd8f0f842125cbd3cc3382e3aee13f15b8971d818f4813a30
+DIST python-gentoo-patches-3.8.19_p1.tar.xz 35008 BLAKE2B 8771e3a2329577659a4ff64987f2500b7dc4f07f78677b823c8f11e7a9e7fc0369cc127e6ad1f1000986937b7811467bd22ba02129a754246658f99b7219a4a7 SHA512 470c125e8df23c1db358c2f7bbf5ac3b28e76fb843364f7fd5aa2fd399ac9b01a2ddfc2c1765f91236c71712941d19f273fb21f960239f79a0263b5b47081d46
+DIST python-gentoo-patches-3.9.19_p2.tar.xz 27684 BLAKE2B a69f00548c153da7b13dfeccb332d3d67ecf649fb5ae054590492f3e2fc2c84b78ebaf90bcf9738157c9022778e5bf2a6b4fb6a99e996dcb63859dcf6f84af23 SHA512 552a5f2d89307d4193d76df5a2cf1deb4bd5c8ad9ec81e6768987f1649f6571a318e68b92d8f8ecdba12bfe9c5f1a427a4cc577e6aaebf7748027cc50e412804
diff --git a/dev-lang/python/metadata.xml b/dev-lang/python/metadata.xml
index 98fa548446f3..22ce986e0676 100644
--- a/dev-lang/python/metadata.xml
+++ b/dev-lang/python/metadata.xml
@@ -1,14 +1,43 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
-<maintainer type="project">
- <email>python@gentoo.org</email>
- <name>Python</name>
-</maintainer>
-<use>
- <flag name="bluetooth">Build Bluetooth protocol support in socket module</flag>
- <flag name="threads">Enable threading support. (DON'T DISABLE THIS UNLESS YOU KNOW WHAT YOU'RE DOING)</flag>
- <flag name="wide-unicode">Enable wide Unicode implementation which uses 4-byte Unicode characters. Switching of this USE flag changes ABI of Python and requires reinstallation of many Python modules. (DON'T DISABLE THIS UNLESS YOU KNOW WHAT YOU'RE DOING)</flag>
- <flag name="wininst">Install Windows executables required to create an executable installer for MS Windows.</flag>
-</use>
+ <maintainer type="project">
+ <email>python@gentoo.org</email>
+ <name>Python</name>
+ </maintainer>
+ <use>
+ <flag name="bluetooth">
+ Build Bluetooth protocol support in socket module
+ </flag>
+ <flag name="ensurepip">
+ Install the ensurepip module that uses bundled wheels
+ to bootstrap pip and setuptools (if disabled, it will
+ be only possible to use venv `--without-pip`)
+ </flag>
+ <flag name="jit">
+ Enable experimental Just-In-Time compilation support.
+ </flag>
+ <flag name="libedit">
+ Link readline extension against <pkg>dev-libs/libedit</pkg>
+ instead of <pkg>sys-libs/readline</pkg>
+ </flag>
+ <flag name="pgo">
+ Optimize the build using Profile Guided Optimization (PGO)
+ by running Python's test suite and collecting statistics
+ based on its performance. This will take longer to build.
+ </flag>
+ <flag name="valgrind">
+ Disable pymalloc when running under
+ <pkg>dev-debug/valgrind</pkg> is detected (may incur minor
+ performance penalty even when valgrind is not used)
+ </flag>
+ <flag name="wininst">
+ Install Windows executables required to create an executable
+ installer for MS Windows
+ </flag>
+ </use>
+ <upstream>
+ <remote-id type="cpe">cpe:/a:python:python</remote-id>
+ <remote-id type="github">python/cpython</remote-id>
+ </upstream>
</pkgmetadata>
diff --git a/dev-lang/python/python-2.7.18-r5.ebuild b/dev-lang/python/python-2.7.18-r5.ebuild
deleted file mode 100644
index 6f8f0be89ada..000000000000
--- a/dev-lang/python/python-2.7.18-r5.ebuild
+++ /dev/null
@@ -1,348 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="7"
-WANT_LIBTOOL="none"
-
-inherit autotools flag-o-matic pax-utils python-utils-r1 toolchain-funcs
-
-MY_P="Python-${PV}"
-PYVER=$(ver_cut 1-2)
-PATCHSET="python-gentoo-patches-2.7.18-r4"
-
-DESCRIPTION="An interpreted, interactive, object-oriented programming language"
-HOMEPAGE="https://www.python.org/"
-SRC_URI="https://www.python.org/ftp/python/${PV}/${MY_P}.tar.xz
- https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz"
-S="${WORKDIR}/${MY_P}"
-
-LICENSE="PSF-2"
-SLOT="${PYVER}"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 s390 sparc x86"
-IUSE="-berkdb bluetooth build elibc_uclibc examples gdbm hardened ipv6 libressl +ncurses +readline sqlite +ssl +threads tk +wide-unicode wininst +xml"
-
-# 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:=
- dev-libs/libffi:=
- >=sys-libs/zlib-1.1.3:=
- virtual/libcrypt:=
- virtual/libintl
- berkdb? ( || (
- sys-libs/db:5.3
- sys-libs/db:5.1
- sys-libs/db:4.8
- sys-libs/db:4.7
- sys-libs/db:4.6
- sys-libs/db:4.5
- sys-libs/db:4.4
- sys-libs/db:4.3
- sys-libs/db:4.2
- ) )
- gdbm? ( sys-libs/gdbm:=[berkdb] )
- ncurses? ( >=sys-libs/ncurses-5.2:= )
- readline? ( >=sys-libs/readline-4.1:= )
- sqlite? ( >=dev-db/sqlite-3.3.8:3= )
- ssl? (
- !libressl? ( dev-libs/openssl:= )
- libressl? ( dev-libs/libressl:= )
- )
- tk? (
- >=dev-lang/tcl-8.0:=
- >=dev-lang/tk-8.0:=
- dev-tcltk/blt:=
- dev-tcltk/tix
- )
- xml? ( >=dev-libs/expat-2.1:= )"
-# bluetooth requires headers from bluez
-DEPEND="${RDEPEND}
- bluetooth? ( net-wireless/bluez )
- virtual/pkgconfig
- !sys-devel/gcc[libffi(-)]"
-PDEPEND="app-eselect/eselect-python"
-RDEPEND+="
- !build? ( app-misc/mime-types )
- !<=dev-lang/python-exec-2.4.6-r1"
-
-pkg_setup() {
- if use berkdb; then
- ewarn "'bsddb' module is out-of-date and no longer maintained inside"
- ewarn "dev-lang/python. 'bsddb' and 'dbhash' modules have been additionally"
- ewarn "removed in Python 3. A maintained alternative of 'bsddb3' module"
- ewarn "is provided by dev-python/bsddb3."
- else
- if has_version "=${CATEGORY}/${PN}-${PV%%.*}*[berkdb]"; then
- ewarn "You are migrating from =${CATEGORY}/${PN}-${PV%%.*}*[berkdb]"
- ewarn "to =${CATEGORY}/${PN}-${PV%%.*}*[-berkdb]."
- ewarn "You might need to migrate your databases."
- fi
- fi
-}
-
-src_prepare() {
- # Ensure that internal copies of expat, libffi and zlib are not used.
- rm -fr Modules/expat || die
- rm -fr Modules/_ctypes/libffi* || die
- rm -fr Modules/zlib || die
-
- local PATCHES=(
- "${WORKDIR}/${PATCHSET}"
- )
-
- default
-
- sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" \
- Lib/distutils/command/install.py \
- Lib/distutils/sysconfig.py \
- Lib/site.py \
- Lib/sysconfig.py \
- Lib/test/test_site.py \
- Makefile.pre.in \
- Modules/Setup.dist \
- Modules/getpath.c \
- setup.py || die "sed failed to replace @@GENTOO_LIBDIR@@"
-
- eautoreconf
-}
-
-src_configure() {
- # dbm module can be linked against berkdb or gdbm.
- # Defaults to gdbm when both are enabled, #204343.
- local disable
- use berkdb || use gdbm || disable+=" dbm"
- use berkdb || disable+=" _bsddb"
- # disable automagic bluetooth headers detection
- use bluetooth || export ac_cv_header_bluetooth_bluetooth_h=no
- use gdbm || disable+=" gdbm"
- use ncurses || disable+=" _curses _curses_panel"
- use readline || disable+=" readline"
- use sqlite || disable+=" _sqlite3"
- use ssl || export PYTHON_DISABLE_SSL="1"
- use tk || disable+=" _tkinter"
- use xml || disable+=" _elementtree pyexpat" # _elementtree uses pyexpat.
- export PYTHON_DISABLE_MODULES="${disable}"
-
- if ! use xml; then
- ewarn "You have configured Python without XML support."
- ewarn "This is NOT a recommended configuration as you"
- ewarn "may face problems parsing any XML documents."
- fi
-
- if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then
- einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}"
- fi
-
- if [[ "$(gcc-major-version)" -ge 4 ]]; then
- append-flags -fwrapv
- fi
-
- filter-flags -malign-double
-
- # https://bugs.gentoo.org/show_bug.cgi?id=50309
- if is-flagq -O3; then
- is-flagq -fstack-protector-all && replace-flags -O3 -O2
- use hardened && replace-flags -O3 -O2
- fi
-
- if tc-is-cross-compiler; then
- # Force some tests that try to poke fs paths.
- export ac_cv_file__dev_ptc=no
- export ac_cv_file__dev_ptmx=yes
- fi
-
- # Export CXX so it ends up in /usr/lib/python2.X/config/Makefile.
- tc-export CXX
- # The configure script fails to use pkg-config correctly.
- # http://bugs.python.org/issue15506
- export ac_cv_path_PKG_CONFIG=$(tc-getPKG_CONFIG)
-
- # Set LDFLAGS so we link modules with -lpython2.7 correctly.
- # Needed on FreeBSD unless Python 2.7 is already installed.
- # Please query BSD team before removing this!
- append-ldflags "-L."
-
- local dbmliborder
- if use gdbm; then
- dbmliborder+="${dbmliborder:+:}gdbm"
- fi
- if use berkdb; then
- dbmliborder+="${dbmliborder:+:}bdb"
- fi
-
- local myeconfargs=(
- # The check is broken on clang, and gives false positive:
- # https://bugs.gentoo.org/596798
- # (upstream dropped this flag in 3.2a4 anyway)
- ac_cv_opt_olimit_ok=no
- # 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
-
- --with-fpectl
- --enable-shared
- $(use_enable ipv6)
- $(use_with threads)
- $(use wide-unicode && echo "--enable-unicode=ucs4" || echo "--enable-unicode=ucs2")
- --infodir='${prefix}/share/info'
- --mandir='${prefix}/share/man'
- --with-computed-gotos
- --with-dbmliborder="${dbmliborder}"
- --with-libc=
- --enable-loadable-sqlite-extensions
- --with-system-expat
- --with-system-ffi
- --without-ensurepip
- )
-
- OPT="" econf "${myeconfargs[@]}"
-
- if use threads && 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
-}
-
-src_compile() {
- # Ensure sed works as expected
- # https://bugs.gentoo.org/594768
- local -x LC_ALL=C
-
- # Avoid invoking pgen for cross-compiles.
- touch Include/graminit.h Python/graminit.c
-
- emake
-
- # 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
-
- # Skip failing tests.
- local skipped_tests="distutils gdb"
-
- for test in ${skipped_tests}; do
- mv "${S}"/Lib/test/test_${test}.py "${T}"
- done
-
- # bug 660358
- local -x COLUMNS=80
-
- # Daylight saving time problem
- # https://bugs.python.org/issue22067
- # https://bugs.gentoo.org/610628
- local -x TZ=UTC
-
- # Rerun failed tests in verbose mode (regrtest -w).
- emake test EXTRATESTOPTS="-w" < /dev/tty
- local result="$?"
-
- for test in ${skipped_tests}; do
- mv "${T}/test_${test}.py" "${S}"/Lib/test
- done
-
- elog "The following tests have been skipped:"
- for test in ${skipped_tests}; do
- elog "test_${test}.py"
- done
-
- elog "If you would like to run them, you may:"
- elog "cd '${EPREFIX}/usr/$(get_libdir)/python${PYVER}/test'"
- elog "and run the tests separately."
-
- if [[ ${result} -ne 0 ]]; then
- die "emake test failed"
- fi
-}
-
-src_install() {
- local libdir=${ED}/usr/$(get_libdir)/python${PYVER}
-
- emake DESTDIR="${D}" altinstall
-
- sed -e "s/\(LDFLAGS=\).*/\1/" -i "${libdir}/config/Makefile" || die
-
- # Fix collisions between different slots of Python.
- mv "${ED}/usr/bin/2to3" "${ED}/usr/bin/2to3-${PYVER}" || die
- mv "${ED}/usr/bin/pydoc" "${ED}/usr/bin/pydoc${PYVER}" || die
- mv "${ED}/usr/bin/idle" "${ED}/usr/bin/idle${PYVER}" || die
- rm "${ED}/usr/bin/smtpd.py" || die
-
- use berkdb || rm -r "${libdir}/"{bsddb,dbhash.py*,test/test_bsddb*} || die
- use sqlite || rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die
- use tk || rm -r "${ED}/usr/bin/idle${PYVER}" "${libdir}/"{idlelib,lib-tk} || die
- use elibc_uclibc && rm -fr "${libdir}/"{bsddb/test,test}
-
- use threads || rm -r "${libdir}/multiprocessing" || die
- use wininst || rm "${libdir}/distutils/command/"wininst-*.exe || die
-
- dodoc Misc/{ACKS,HISTORY,NEWS}
-
- if use examples; then
- docinto examples
- 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 "${S}"/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"
-
- local -x EPYTHON=python${PYVER}
- # if not using a cross-compiler, use the fresh binary
- if ! tc-is-cross-compiler; then
- local -x PYTHON=./python
- local -x LD_LIBRARY_PATH=${LD_LIBRARY_PATH+${LD_LIBRARY_PATH}:}${PWD}
- else
- local -x PYTHON=${EPREFIX}/usr/bin/${EPYTHON}
- fi
-
- echo "EPYTHON='${EPYTHON}'" > epython.py || die
- python_domodule epython.py
-
- # python-exec wrapping support
- local scriptdir=${D}$(python_get_scriptdir)
- mkdir -p "${scriptdir}" || die
- # python
- ln -s "../../../bin/python${PYVER}" \
- "${scriptdir}/python" || die
- # python-config
- ln -s "../../../bin/python${PYVER}-config" \
- "${scriptdir}/python-config" || die
- # 2to3, pydoc, pyvenv
- 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
-
- # python2* is no longer wrapped, so just symlink it
- local pymajor=${PYVER%.*}
- dosym "python${PYVER}" "/usr/bin/python${pymajor}"
- dosym "python${PYVER}-config" "/usr/bin/python${pymajor}-config"
-}
diff --git a/dev-lang/python/python-2.7.18-r6.ebuild b/dev-lang/python/python-2.7.18_p16-r2.ebuild
index 1abbf5e7a6e9..468b16a72d08 100644
--- a/dev-lang/python/python-2.7.18-r6.ebuild
+++ b/dev-lang/python/python-2.7.18_p16-r2.ebuild
@@ -1,92 +1,94 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="7"
WANT_LIBTOOL="none"
-inherit autotools flag-o-matic pax-utils \
- python-utils-r1 toolchain-funcs verify-sig
+inherit autotools flag-o-matic pax-utils toolchain-funcs verify-sig
-MY_P="Python-${PV}"
+MY_P="Python-${PV%_p*}"
PYVER=$(ver_cut 1-2)
-PATCHSET="python-gentoo-patches-2.7.18-r6"
+PATCHSET="python-gentoo-patches-${PV}"
DESCRIPTION="An interpreted, interactive, object-oriented programming language"
-HOMEPAGE="https://www.python.org/"
-SRC_URI="https://www.python.org/ftp/python/${PV}/${MY_P}.tar.xz
+HOMEPAGE="
+ https://www.python.org/
+ https://github.com/python/cpython/
+ https://gitweb.gentoo.org/fork/cpython.git/
+"
+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 ~m68k ~mips ~ppc ~ppc64 ~s390 sparc ~x86"
-IUSE="-berkdb bluetooth build elibc_uclibc examples gdbm hardened ipv6 libressl +ncurses +readline sqlite +ssl +threads tk +wide-unicode wininst +xml"
+KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86"
+IUSE="
+ berkdb bluetooth build examples gdbm +ncurses +readline
+ +sqlite +ssl tk valgrind wininst +xml
+"
+RESTRICT="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:=
+RDEPEND="
+ app-arch/bzip2:=
dev-libs/libffi:=
>=sys-libs/zlib-1.1.3:=
virtual/libcrypt:=
virtual/libintl
berkdb? ( || (
sys-libs/db:5.3
- sys-libs/db:5.1
sys-libs/db:4.8
- sys-libs/db:4.7
- sys-libs/db:4.6
- sys-libs/db:4.5
- sys-libs/db:4.4
- sys-libs/db:4.3
- sys-libs/db:4.2
) )
gdbm? ( sys-libs/gdbm:=[berkdb] )
ncurses? ( >=sys-libs/ncurses-5.2:= )
readline? ( >=sys-libs/readline-4.1:= )
sqlite? ( >=dev-db/sqlite-3.3.8:3= )
- ssl? (
- !libressl? ( dev-libs/openssl:= )
- libressl? ( dev-libs/libressl:= )
- )
+ ssl? ( dev-libs/openssl:= )
tk? (
>=dev-lang/tcl-8.0:=
>=dev-lang/tk-8.0:=
dev-tcltk/blt:=
dev-tcltk/tix
)
- xml? ( >=dev-libs/expat-2.1:= )"
+ xml? ( >=dev-libs/expat-2.1:= )
+"
# bluetooth requires headers from bluez
-DEPEND="${RDEPEND}
- bluetooth? ( net-wireless/bluez )"
+DEPEND="
+ ${RDEPEND}
+ bluetooth? ( net-wireless/bluez )
+ valgrind? ( dev-debug/valgrind )
+"
BDEPEND="
+ app-alternatives/awk
virtual/pkgconfig
- verify-sig? ( app-crypt/openpgp-keys-python )
- !sys-devel/gcc[libffi(-)]"
-PDEPEND="app-eselect/eselect-python"
+ verify-sig? ( sec-keys/openpgp-keys-python )
+"
RDEPEND+="
!build? ( app-misc/mime-types )
- !<=dev-lang/python-exec-2.4.6-r1"
+"
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc
+QA_PKGCONFIG_VERSION=${PYVER}
+# false positives -- functions specific to *BSD
+QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags )
+
pkg_setup() {
if use berkdb; then
ewarn "'bsddb' module is out-of-date and no longer maintained inside"
ewarn "dev-lang/python. 'bsddb' and 'dbhash' modules have been additionally"
ewarn "removed in Python 3. A maintained alternative of 'bsddb3' module"
ewarn "is provided by dev-python/bsddb3."
- else
- if has_version "=${CATEGORY}/${PN}-${PV%%.*}*[berkdb]"; then
- ewarn "You are migrating from =${CATEGORY}/${PN}-${PV%%.*}*[berkdb]"
- ewarn "to =${CATEGORY}/${PN}-${PV%%.*}*[-berkdb]."
- ewarn "You might need to migrate your databases."
- fi
fi
}
@@ -99,9 +101,9 @@ src_unpack() {
src_prepare() {
# Ensure that internal copies of expat, libffi and zlib are not used.
- rm -fr Modules/expat || die
- rm -fr Modules/_ctypes/libffi* || die
- rm -fr Modules/zlib || die
+ rm -r Modules/expat || die
+ rm -r Modules/_ctypes/libffi* || die
+ rm -r Modules/zlib || die
local PATCHES=(
"${WORKDIR}/${PATCHSET}"
@@ -120,6 +122,10 @@ src_prepare() {
Modules/getpath.c \
setup.py || die "sed failed to replace @@GENTOO_LIBDIR@@"
+ if ! use wininst; then
+ rm Lib/distutils/command/wininst*.exe || die
+ fi
+
eautoreconf
}
@@ -150,18 +156,10 @@ src_configure() {
einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}"
fi
- if [[ "$(gcc-major-version)" -ge 4 ]]; then
- append-flags -fwrapv
- fi
+ append-flags -fwrapv
filter-flags -malign-double
- # https://bugs.gentoo.org/show_bug.cgi?id=50309
- if is-flagq -O3; then
- is-flagq -fstack-protector-all && replace-flags -O3 -O2
- use hardened && replace-flags -O3 -O2
- fi
-
if tc-is-cross-compiler; then
# Force some tests that try to poke fs paths.
export ac_cv_file__dev_ptc=no
@@ -174,12 +172,7 @@ src_configure() {
# http://bugs.python.org/issue15506
export ac_cv_path_PKG_CONFIG=$(tc-getPKG_CONFIG)
- # Set LDFLAGS so we link modules with -lpython2.7 correctly.
- # Needed on FreeBSD unless Python 2.7 is already installed.
- # Please query BSD team before removing this!
- append-ldflags "-L."
-
- local dbmliborder
+ local dbmliborder=
if use gdbm; then
dbmliborder+="${dbmliborder:+:}gdbm"
fi
@@ -196,30 +189,40 @@ src_configure() {
# Python on glibc upgrade, remove it proactively to give
# a chance for users rebuilding python before glibc
ac_cv_header_stropts_h=no
+ # Test program has missing includes. This doesn't change
+ # the result but it's cleaner to force it.
+ ac_cv_broken_poll=no
--with-fpectl
--enable-shared
- $(use_enable ipv6)
- $(use_with threads)
- $(use wide-unicode && echo "--enable-unicode=ucs4" || echo "--enable-unicode=ucs2")
+ --enable-ipv6
+ --with-threads
+ --enable-unicode=ucs4
--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
- --without-ensurepip
+
+ $(use_with valgrind)
)
- OPT="" econf "${myeconfargs[@]}"
+ # disable implicit optimization/debugging flags
+ local -x OPT=
+ econf "${myeconfargs[@]}"
- if use threads && grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then
+ 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
+
+ # install epython.py as part of stdlib
+ echo "EPYTHON='python${PYVER}'" > Lib/epython.py || die
}
src_compile() {
@@ -228,12 +231,12 @@ src_compile() {
local -x LC_ALL=C
# Avoid invoking pgen for cross-compiles.
- touch Include/graminit.h Python/graminit.c
+ touch Include/graminit.h Python/graminit.c || die
emake
# Work around bug 329499. See also bug 413751 and 457194.
- if has_version dev-libs/libffi[pax_kernel]; then
+ if has_version dev-libs/libffi[pax-kernel]; then
pax-mark E python
else
pax-mark m python
@@ -248,10 +251,10 @@ src_test() {
fi
# Skip failing tests.
- local skipped_tests="distutils gdb"
+ local skipped_tests=( distutils gdb )
- for test in ${skipped_tests}; do
- mv "${S}"/Lib/test/test_${test}.py "${T}"
+ for test in "${skipped_tests[@]}"; do
+ mv Lib/test/test_${test}.py "${T}"/ || die
done
# bug 660358
@@ -263,25 +266,11 @@ src_test() {
local -x TZ=UTC
# Rerun failed tests in verbose mode (regrtest -w).
- emake test EXTRATESTOPTS="-w" < /dev/tty
- local result="$?"
+ emake -Onone test EXTRATESTOPTS="-w" < /dev/tty
- for test in ${skipped_tests}; do
- mv "${T}/test_${test}.py" "${S}"/Lib/test
+ for test in "${skipped_tests[@]}"; do
+ mv "${T}/test_${test}.py" Lib/test/ || die
done
-
- elog "The following tests have been skipped:"
- for test in ${skipped_tests}; do
- elog "test_${test}.py"
- done
-
- elog "If you would like to run them, you may:"
- elog "cd '${EPREFIX}/usr/$(get_libdir)/python${PYVER}/test'"
- elog "and run the tests separately."
-
- if [[ ${result} -ne 0 ]]; then
- die "emake test failed"
- fi
}
src_install() {
@@ -291,19 +280,25 @@ src_install() {
sed -e "s/\(LDFLAGS=\).*/\1/" -i "${libdir}/config/Makefile" || die
+ # Remove static library
+ rm "${ED}"/usr/$(get_libdir)/libpython*.a || die
+
# Fix collisions between different slots of Python.
mv "${ED}/usr/bin/2to3" "${ED}/usr/bin/2to3-${PYVER}" || die
mv "${ED}/usr/bin/pydoc" "${ED}/usr/bin/pydoc${PYVER}" || die
mv "${ED}/usr/bin/idle" "${ED}/usr/bin/idle${PYVER}" || die
rm "${ED}/usr/bin/smtpd.py" || die
- use berkdb || rm -r "${libdir}/"{bsddb,dbhash.py*,test/test_bsddb*} || die
- use sqlite || rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die
- use tk || rm -r "${ED}/usr/bin/idle${PYVER}" "${libdir}/"{idlelib,lib-tk} || die
- use elibc_uclibc && rm -fr "${libdir}/"{bsddb/test,test}
-
- use threads || rm -r "${libdir}/multiprocessing" || die
- use wininst || rm "${libdir}/distutils/command/"wininst-*.exe || die
+ if ! use berkdb; then
+ rm -r "${libdir}/"{bsddb,dbhash.py*,test/test_bsddb*} || die
+ fi
+ if ! use sqlite; then
+ rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die
+ fi
+ if ! use tk; then
+ rm -r "${ED}/usr/bin/idle${PYVER}" || die
+ rm -r "${libdir}/"{idlelib,lib-tk} || die
+ fi
dodoc Misc/{ACKS,HISTORY,NEWS}
@@ -311,10 +306,6 @@ src_install() {
docinto examples
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 "${S}"/Tools/gdb/libpython.py "${libname}"-gdb.py
newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER}
newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER}
@@ -324,38 +315,6 @@ src_install() {
-i "${ED}/etc/conf.d/pydoc-${PYVER}" \
"${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed"
- local -x EPYTHON=python${PYVER}
- # if not using a cross-compiler, use the fresh binary
- if ! tc-is-cross-compiler; then
- local -x PYTHON=./python
- local -x LD_LIBRARY_PATH=${LD_LIBRARY_PATH+${LD_LIBRARY_PATH}:}${PWD}
- else
- local -x PYTHON=${EPREFIX}/usr/bin/${EPYTHON}
- fi
-
- echo "EPYTHON='${EPYTHON}'" > epython.py || die
- python_domodule epython.py
-
- # python-exec wrapping support
- local scriptdir=${D}$(python_get_scriptdir)
- mkdir -p "${scriptdir}" || die
- # python
- ln -s "../../../bin/python${PYVER}" \
- "${scriptdir}/python" || die
- # python-config
- ln -s "../../../bin/python${PYVER}-config" \
- "${scriptdir}/python-config" || die
- # 2to3, pydoc, pyvenv
- 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
-
# python2* is no longer wrapped, so just symlink it
local pymajor=${PYVER%.*}
dosym "python${PYVER}" "/usr/bin/python${pymajor}"
diff --git a/dev-lang/python/python-3.10.0_alpha3-r1.ebuild b/dev-lang/python/python-3.10.0_alpha3-r1.ebuild
deleted file mode 100644
index 00989b1d53fd..000000000000
--- a/dev-lang/python/python-3.10.0_alpha3-r1.ebuild
+++ /dev/null
@@ -1,334 +0,0 @@
-# Copyright 1999-2021 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 \
- python-utils-r1 toolchain-funcs
-
-MY_P="Python-${PV/_alpha/a}"
-PYVER=$(ver_cut 1-2)
-PATCHSET="python-gentoo-patches-3.10.0a3-r1"
-
-DESCRIPTION="An interpreted, interactive, object-oriented programming language"
-HOMEPAGE="https://www.python.org/"
-SRC_URI="https://www.python.org/ftp/python/${PV%_*}/${MY_P}.tar.xz
- https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz"
-S="${WORKDIR}/${MY_P}"
-
-LICENSE="PSF-2"
-SLOT="${PYVER}"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
-IUSE="bluetooth build examples gdbm hardened ipv6 libressl +ncurses +readline sqlite +ssl test tk wininst +xml"
-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:=
- dev-libs/libffi:=
- sys-apps/util-linux:=
- >=sys-libs/zlib-1.1.3:=
- virtual/libcrypt:=
- virtual/libintl
- gdbm? ( sys-libs/gdbm:=[berkdb] )
- ncurses? ( >=sys-libs/ncurses-5.2:= )
- readline? ( >=sys-libs/readline-4.1:= )
- sqlite? ( >=dev-db/sqlite-3.3.8:3= )
- ssl? (
- !libressl? ( dev-libs/openssl:= )
- libressl? ( dev-libs/libressl:= )
- )
- tk? (
- >=dev-lang/tcl-8.0:=
- >=dev-lang/tk-8.0:=
- dev-tcltk/blt:=
- dev-tcltk/tix
- )
- xml? ( >=dev-libs/expat-2.1:= )"
-# 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/pkgconfig
- !sys-devel/gcc[libffi(-)]"
-PDEPEND="app-eselect/eselect-python"
-RDEPEND+=" !build? ( app-misc/mime-types )"
-
-# large file tests involve a 2.5G file being copied (duplicated)
-CHECKREQS_DISK_BUILD=5500M
-
-pkg_pretend() {
- use test && check-reqs_pkg_pretend
-}
-
-pkg_setup() {
- use test && check-reqs_pkg_setup
-}
-
-src_prepare() {
- # Ensure that internal copies of expat, libffi and zlib are not used.
- rm -fr Modules/expat || die
- rm -fr Modules/_ctypes/libffi* || die
- rm -fr Modules/zlib || die
-
- local PATCHES=(
- "${WORKDIR}/${PATCHSET}"
- )
-
- default
-
- sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" \
- setup.py || die "sed failed to replace @@GENTOO_LIBDIR@@"
-
- # force correct number of jobs
- # https://bugs.gentoo.org/737660
- local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")
- 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
- use bluetooth || export ac_cv_header_bluetooth_bluetooth_h=no
- use gdbm || disable+=" gdbm"
- use ncurses || disable+=" _curses _curses_panel"
- use readline || disable+=" readline"
- use sqlite || disable+=" _sqlite3"
- use ssl || export PYTHON_DISABLE_SSL="1"
- use tk || disable+=" _tkinter"
- use xml || disable+=" _elementtree pyexpat" # _elementtree uses pyexpat.
- export PYTHON_DISABLE_MODULES="${disable}"
-
- if ! use xml; then
- ewarn "You have configured Python without XML support."
- ewarn "This is NOT a recommended configuration as you"
- ewarn "may face problems parsing any XML documents."
- fi
-
- if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then
- einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}"
- fi
-
- if [[ "$(gcc-major-version)" -ge 4 ]]; then
- append-flags -fwrapv
- fi
-
- filter-flags -malign-double
-
- # https://bugs.gentoo.org/show_bug.cgi?id=50309
- if is-flagq -O3; then
- is-flagq -fstack-protector-all && replace-flags -O3 -O2
- use hardened && replace-flags -O3 -O2
- fi
-
- # 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.
- tc-export CXX
-
- # Set LDFLAGS so we link modules with -lpython3.2 correctly.
- # Needed on FreeBSD unless Python 3.2 is already installed.
- # Please query BSD team before removing this!
- append-ldflags "-L."
-
- # Fix implicit declarations on cross and prefix builds. Bug #674070.
- use ncurses && append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw
-
- local dbmliborder
- if use gdbm; then
- dbmliborder+="${dbmliborder:+:}gdbm"
- 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
- $(use_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
- )
-
- OPT="" econf "${myeconfargs[@]}"
-}
-
-src_compile() {
- # Ensure sed works as expected
- # https://bugs.gentoo.org/594768
- local -x LC_ALL=C
-
- emake CPPFLAGS= CFLAGS= LDFLAGS=
-
- # 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
-
- # Skip failing tests.
- local skipped_tests="gdb"
-
- for test in ${skipped_tests}; do
- mv "${S}"/Lib/test/test_${test}.py "${T}"
- done
-
- # bug 660358
- local -x COLUMNS=80
- local -x PYTHONDONTWRITEBYTECODE=
-
- local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")
-
- emake test EXTRATESTOPTS="-u-network -j${jobs}" \
- CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty
- local result=$?
-
- for test in ${skipped_tests}; do
- mv "${T}/test_${test}.py" "${S}"/Lib/test
- done
-
- elog "The following tests have been skipped:"
- for test in ${skipped_tests}; do
- elog "test_${test}.py"
- done
-
- elog "If you would like to run them, you may:"
- elog "cd '${EPREFIX}/usr/lib/python${PYVER}/test'"
- elog "and run the tests separately."
-
- if [[ ${result} -ne 0 ]]; then
- die "emake test failed"
- fi
-}
-
-src_install() {
- local libdir=${ED}/usr/lib/python${PYVER}
-
- emake DESTDIR="${D}" altinstall
-
- # Remove static library
- rm "${ED}"/usr/$(get_libdir)/libpython*.a || die
-
- sed \
- -e "s/\(CONFIGURE_LDFLAGS=\).*/\1/" \
- -e "s/\(PY_LDFLAGS=\).*/\1/" \
- -i "${libdir}/config-${PYVER}"*/Makefile || die "sed failed"
-
- # 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
-
- use sqlite || rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die
- use tk || rm -r "${ED}/usr/bin/idle${PYVER}" "${libdir}/"{idlelib,tkinter,test/test_tk*} || die
-
- 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 "${S}"/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"
-
- local -x EPYTHON=python${PYVER}
- # if not using a cross-compiler, use the fresh binary
- if ! tc-is-cross-compiler; then
- local -x PYTHON=./python
- local -x LD_LIBRARY_PATH=${LD_LIBRARY_PATH+${LD_LIBRARY_PATH}:}${PWD}
- else
- local -x PYTHON=${EPREFIX}/usr/bin/${EPYTHON}
- fi
-
- echo "EPYTHON='${EPYTHON}'" > epython.py || die
- python_domodule epython.py
-
- # python-exec wrapping support
- local pymajor=${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
-}
diff --git a/dev-lang/python/python-3.10.0_alpha4.ebuild b/dev-lang/python/python-3.10.0_alpha4.ebuild
deleted file mode 100644
index a07c3376effd..000000000000
--- a/dev-lang/python/python-3.10.0_alpha4.ebuild
+++ /dev/null
@@ -1,347 +0,0 @@
-# Copyright 1999-2021 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 \
- python-utils-r1 toolchain-funcs verify-sig
-
-MY_P="Python-${PV/_alpha/a}"
-PYVER=$(ver_cut 1-2)
-PATCHSET="python-gentoo-patches-3.10.0a3-r1"
-
-DESCRIPTION="An interpreted, interactive, object-oriented programming language"
-HOMEPAGE="https://www.python.org/"
-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 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
-IUSE="bluetooth build examples gdbm hardened ipv6 libressl +ncurses +readline sqlite +ssl test tk wininst +xml"
-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:=
- dev-libs/libffi:=
- sys-apps/util-linux:=
- >=sys-libs/zlib-1.1.3:=
- virtual/libcrypt:=
- virtual/libintl
- gdbm? ( sys-libs/gdbm:=[berkdb] )
- ncurses? ( >=sys-libs/ncurses-5.2:= )
- readline? ( >=sys-libs/readline-4.1:= )
- sqlite? ( >=dev-db/sqlite-3.3.8:3= )
- ssl? (
- !libressl? ( dev-libs/openssl:= )
- libressl? ( dev-libs/libressl:= )
- )
- tk? (
- >=dev-lang/tcl-8.0:=
- >=dev-lang/tk-8.0:=
- dev-tcltk/blt:=
- dev-tcltk/tix
- )
- xml? ( >=dev-libs/expat-2.1:= )"
-# 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/pkgconfig
- verify-sig? ( app-crypt/openpgp-keys-python )
- !sys-devel/gcc[libffi(-)]"
-PDEPEND="app-eselect/eselect-python"
-RDEPEND+=" !build? ( app-misc/mime-types )"
-
-VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc
-
-# large file tests involve a 2.5G file being copied (duplicated)
-CHECKREQS_DISK_BUILD=5500M
-
-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, libffi and zlib are not used.
- rm -fr Modules/expat || die
- rm -fr Modules/_ctypes/libffi* || die
- rm -fr Modules/zlib || die
-
- local PATCHES=(
- "${WORKDIR}/${PATCHSET}"
- )
-
- default
-
- sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" \
- setup.py || die "sed failed to replace @@GENTOO_LIBDIR@@"
-
- # force correct number of jobs
- # https://bugs.gentoo.org/737660
- local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")
- 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
- use bluetooth || export ac_cv_header_bluetooth_bluetooth_h=no
- use gdbm || disable+=" gdbm"
- use ncurses || disable+=" _curses _curses_panel"
- use readline || disable+=" readline"
- use sqlite || disable+=" _sqlite3"
- use ssl || export PYTHON_DISABLE_SSL="1"
- use tk || disable+=" _tkinter"
- use xml || disable+=" _elementtree pyexpat" # _elementtree uses pyexpat.
- export PYTHON_DISABLE_MODULES="${disable}"
-
- if ! use xml; then
- ewarn "You have configured Python without XML support."
- ewarn "This is NOT a recommended configuration as you"
- ewarn "may face problems parsing any XML documents."
- fi
-
- if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then
- einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}"
- fi
-
- if [[ "$(gcc-major-version)" -ge 4 ]]; then
- append-flags -fwrapv
- fi
-
- filter-flags -malign-double
-
- # https://bugs.gentoo.org/show_bug.cgi?id=50309
- if is-flagq -O3; then
- is-flagq -fstack-protector-all && replace-flags -O3 -O2
- use hardened && replace-flags -O3 -O2
- fi
-
- # 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.
- tc-export CXX
-
- # Set LDFLAGS so we link modules with -lpython3.2 correctly.
- # Needed on FreeBSD unless Python 3.2 is already installed.
- # Please query BSD team before removing this!
- append-ldflags "-L."
-
- # Fix implicit declarations on cross and prefix builds. Bug #674070.
- use ncurses && append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw
-
- local dbmliborder
- if use gdbm; then
- dbmliborder+="${dbmliborder:+:}gdbm"
- 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
- $(use_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
- )
-
- OPT="" econf "${myeconfargs[@]}"
-}
-
-src_compile() {
- # Ensure sed works as expected
- # https://bugs.gentoo.org/594768
- local -x LC_ALL=C
-
- emake CPPFLAGS= CFLAGS= LDFLAGS=
-
- # 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
-
- # Skip failing tests.
- local skipped_tests="gdb"
-
- for test in ${skipped_tests}; do
- mv "${S}"/Lib/test/test_${test}.py "${T}"
- done
-
- # bug 660358
- local -x COLUMNS=80
- local -x PYTHONDONTWRITEBYTECODE=
-
- local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")
-
- emake test EXTRATESTOPTS="-u-network -j${jobs}" \
- CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty
- local result=$?
-
- for test in ${skipped_tests}; do
- mv "${T}/test_${test}.py" "${S}"/Lib/test
- done
-
- elog "The following tests have been skipped:"
- for test in ${skipped_tests}; do
- elog "test_${test}.py"
- done
-
- elog "If you would like to run them, you may:"
- elog "cd '${EPREFIX}/usr/lib/python${PYVER}/test'"
- elog "and run the tests separately."
-
- if [[ ${result} -ne 0 ]]; then
- die "emake test failed"
- fi
-}
-
-src_install() {
- local libdir=${ED}/usr/lib/python${PYVER}
-
- emake DESTDIR="${D}" altinstall
-
- # Remove static library
- rm "${ED}"/usr/$(get_libdir)/libpython*.a || die
-
- sed \
- -e "s/\(CONFIGURE_LDFLAGS=\).*/\1/" \
- -e "s/\(PY_LDFLAGS=\).*/\1/" \
- -i "${libdir}/config-${PYVER}"*/Makefile || die "sed failed"
-
- # 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
-
- use sqlite || rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die
- use tk || rm -r "${ED}/usr/bin/idle${PYVER}" "${libdir}/"{idlelib,tkinter,test/test_tk*} || die
-
- 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 "${S}"/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"
-
- local -x EPYTHON=python${PYVER}
- # if not using a cross-compiler, use the fresh binary
- if ! tc-is-cross-compiler; then
- local -x PYTHON=./python
- local -x LD_LIBRARY_PATH=${LD_LIBRARY_PATH+${LD_LIBRARY_PATH}:}${PWD}
- else
- local -x PYTHON=${EPREFIX}/usr/bin/${EPYTHON}
- fi
-
- echo "EPYTHON='${EPYTHON}'" > epython.py || die
- python_domodule epython.py
-
- # python-exec wrapping support
- local pymajor=${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
-}
diff --git a/dev-lang/python/python-3.10.14_p1.ebuild b/dev-lang/python/python-3.10.14_p1.ebuild
new file mode 100644
index 000000000000..c3099177affd
--- /dev/null
+++ b/dev-lang/python/python-3.10.14_p1.ebuild
@@ -0,0 +1,508 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="8"
+WANT_LIBTOOL="none"
+
+inherit autotools check-reqs flag-o-matic multiprocessing pax-utils
+inherit prefix 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 debug +ensurepip examples gdbm libedit
+ +ncurses pgo +readline +sqlite +ssl test tk valgrind
+"
+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:=
+ >=dev-libs/expat-2.1:=
+ dev-libs/libffi:=
+ dev-python/gentoo-common
+ >=sys-libs/zlib-1.1.3:=
+ virtual/libcrypt:=
+ virtual/libintl
+ ensurepip? ( dev-python/ensurepip-wheels )
+ gdbm? ( sys-libs/gdbm:=[berkdb] )
+ kernel_linux? ( sys-apps/util-linux:= )
+ 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
+ )
+"
+# bluetooth requires headers from bluez
+DEPEND="
+ ${RDEPEND}
+ bluetooth? ( net-wireless/bluez )
+ valgrind? ( dev-debug/valgrind )
+ test? ( app-arch/xz-utils )
+"
+# autoconf-archive needed to eautoreconf
+BDEPEND="
+ dev-build/autoconf-archive
+ app-alternatives/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=/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}
+# false positives -- functions specific to *BSD
+QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags )
+
+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
+}
+
+build_cbuild_python() {
+ # Hack to workaround get_libdir not being able to handle CBUILD, bug #794181
+ local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi)
+
+ # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
+ # propagated to sysconfig for built extensions
+ #
+ # -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway)
+ local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto"
+ local -x LDFLAGS_NODIST=${BUILD_LDFLAGS}
+ local -x CFLAGS= LDFLAGS=
+ local -x BUILD_CFLAGS="${CFLAGS_NODIST}"
+ local -x BUILD_LDFLAGS=${LDFLAGS_NODIST}
+
+ # We need to build our own Python on CBUILD first, and feed it in.
+ # bug #847910 and bug #864911.
+ local myeconfargs_cbuild=(
+ "${myeconfargs[@]}"
+
+ --prefix="${BROOT}"/usr
+ --libdir="${cbuild_libdir:2}"
+
+ # Avoid needing to load the right libpython.so.
+ --disable-shared
+
+ # As minimal as possible for the mini CBUILD Python
+ # we build just for cross.
+ --without-lto
+ --disable-optimizations
+ )
+
+ mkdir "${WORKDIR}"/${P}-${CBUILD} || die
+ pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die
+ # We disable _ctypes and _crypt for CBUILD because Python's setup.py can't handle locating
+ # libdir correctly for cross.
+ PYTHON_DISABLE_MODULES+=" _ctypes _crypt" \
+ ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}"
+
+ # Avoid as many dependencies as possible for the cross build.
+ cat >> Makefile <<-EOF || die
+ MODULE_NIS=disabled
+ MODULE__DBM=disabled
+ MODULE__GDBM=disabled
+ MODULE__DBM=disabled
+ MODULE__SQLITE3=disabled
+ MODULE__HASHLIB=disabled
+ MODULE__SSL=disabled
+ MODULE__CURSES=disabled
+ MODULE__CURSES_PANEL=disabled
+ MODULE_READLINE=disabled
+ MODULE__TKINTER=disabled
+ MODULE_PYEXPAT=disabled
+ MODULE_ZLIB=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 Python it was pointed to
+ # immediately.
+ PYTHON_DISABLE_MODULES+=" _ctypes _crypt" emake
+ popd &> /dev/null || die
+}
+
+src_configure() {
+ # disable automagic bluetooth headers detection
+ if ! use bluetooth; then
+ local -x ac_cv_header_bluetooth_bluetooth_h=no
+ fi
+ local disable
+ use gdbm || disable+=" gdbm"
+ use ncurses || disable+=" _curses _curses_panel"
+ use readline || disable+=" readline"
+ use sqlite || disable+=" _sqlite3"
+ use ssl || export PYTHON_DISABLE_SSL="1"
+ use tk || disable+=" _tkinter"
+ export PYTHON_DISABLE_MODULES="${disable}"
+
+ if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then
+ einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}"
+ fi
+
+ append-flags -fwrapv
+ filter-flags -malign-double
+
+ # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile.
+ # PKG_CONFIG needed for cross.
+ tc-export CXX PKG_CONFIG
+
+ 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
+ -u-network
+
+ # We use a timeout because of how often we've had hang issues
+ # here. It also matches the default upstream PROFILE_TASK.
+ --timeout 1200
+
+ -x test_gdb
+ -x test_dtrace
+
+ # 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_concurrent_futures
+ -x test_httpservers
+ -x test_logging
+ -x test_multiprocessing_fork
+ -x test_socket
+ -x test_xmlrpc
+
+ # Hangs (actually runs indefinitely executing itself w/ many cpython builds)
+ # bug #900429
+ -x test_tools
+ )
+
+ 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
+ --without-lto
+ --with-system-expat
+ --with-system-ffi
+ --with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip
+
+ $(use_with debug assertions)
+ $(use_enable pgo optimizations)
+ $(use_with readline readline "$(usex libedit editline readline)")
+ $(use_with valgrind)
+ )
+
+ # disable implicit optimization/debugging flags
+ local -x OPT=
+
+ # https://bugs.gentoo.org/700012
+ if tc-is-lto; then
+ append-cflags $(test-flags-CC -ffat-lto-objects)
+ myeconfargs+=(
+ --with-lto
+ )
+ fi
+
+ if tc-is-cross-compiler ; then
+ build_cbuild_python
+ # Point the imminent CHOST build to the Python we just
+ # built for CBUILD.
+ export PATH="${WORKDIR}/${P}-${CBUILD}:${PATH}"
+ fi
+
+ # 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=
+
+ # Fix implicit declarations on cross and prefix builds. Bug #674070.
+ if use ncurses; then
+ append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw
+ fi
+
+ hprefixify setup.py
+ 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
+
+ # 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
+
+ # 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/python${PYVER}/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
+
+ local test_opts=(
+ -u-network
+ -j "$(makeopts_jobs)"
+
+ # fails
+ -x test_concurrent_futures
+ -x test_gdb
+ )
+
+ if use sparc ; then
+ # bug #788022
+ test_opts+=(
+ -x test_multiprocessing_fork
+ -x test_multiprocessing_forkserver
+ )
+ fi
+
+ # workaround docutils breaking tests
+ cat > Lib/docutils.py <<-EOF || die
+ raise ImportError("Thou shalt not import!")
+ EOF
+
+ # bug 660358
+ local -x COLUMNS=80
+ local -x PYTHONDONTWRITEBYTECODE=
+ # workaround https://bugs.gentoo.org/775416
+ addwrite "/usr/lib/python${PYVER}/site-packages"
+
+ nonfatal emake -Onone test EXTRATESTOPTS="${test_opts[*]}" \
+ CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty
+ local ret=${?}
+
+ rm Lib/docutils.py || die
+
+ [[ ${ret} -eq 0 ]] || die "emake test failed"
+}
+
+src_install() {
+ local libdir=${ED}/usr/lib/python${PYVER}
+
+ emake 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,test/test_sqlite*} || die
+ fi
+ if ! use tk; then
+ rm -r "${ED}/usr/bin/idle${PYVER}" || die
+ rm -r "${libdir}/"{idlelib,tkinter,test/test_tk*} || die
+ fi
+
+ ln -s ../python/EXTERNALLY-MANAGED "${libdir}/EXTERNALLY-MANAGED" || die
+
+ 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
+}
diff --git a/dev-lang/python/python-3.11.9.ebuild b/dev-lang/python/python-3.11.9.ebuild
new file mode 100644
index 000000000000..0b7d97cc23bc
--- /dev/null
+++ b/dev-lang/python/python-3.11.9.ebuild
@@ -0,0 +1,539 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="8"
+WANT_LIBTOOL="none"
+
+inherit autotools check-reqs flag-o-matic multiprocessing pax-utils
+inherit prefix 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 debug +ensurepip examples gdbm libedit
+ +ncurses pgo +readline +sqlite +ssl test tk valgrind
+"
+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:=
+ dev-python/gentoo-common
+ >=sys-libs/zlib-1.1.3:=
+ virtual/libcrypt:=
+ virtual/libintl
+ ensurepip? ( dev-python/ensurepip-wheels )
+ gdbm? ( sys-libs/gdbm:=[berkdb] )
+ kernel_linux? ( sys-apps/util-linux:= )
+ 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
+ )
+"
+# bluetooth requires headers from bluez
+DEPEND="
+ ${RDEPEND}
+ bluetooth? ( net-wireless/bluez )
+ test? ( app-arch/xz-utils )
+ valgrind? ( dev-debug/valgrind )
+"
+# autoconf-archive needed to eautoreconf
+BDEPEND="
+ dev-build/autoconf-archive
+ app-alternatives/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=/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}
+# false positives -- functions specific to *BSD
+QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags )
+
+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
+}
+
+build_cbuild_python() {
+ # Hack to workaround get_libdir not being able to handle CBUILD, bug #794181
+ local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi)
+
+ # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
+ # propagated to sysconfig for built extensions
+ #
+ # -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway)
+ local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto"
+ local -x LDFLAGS_NODIST=${BUILD_LDFLAGS}
+ local -x CFLAGS= LDFLAGS=
+ local -x BUILD_CFLAGS="${CFLAGS_NODIST}"
+ local -x BUILD_LDFLAGS=${LDFLAGS_NODIST}
+
+ # We need to build our own Python on CBUILD first, and feed it in.
+ # bug #847910
+ local myeconfargs_cbuild=(
+ "${myeconfargs[@]}"
+
+ --prefix="${BROOT}"/usr
+ --libdir="${cbuild_libdir:2}"
+
+ # Avoid needing to load the right libpython.so.
+ --disable-shared
+
+ # 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
+ )
+
+ mkdir "${WORKDIR}"/${P}-${CBUILD} || die
+ pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die
+ # We disable _ctypes and _crypt for CBUILD because Python's setup.py can't handle locating
+ # libdir correctly for cross.
+ PYTHON_DISABLE_MODULES+=" _ctypes _crypt" \
+ 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.
+ PYTHON_DISABLE_MODULES+=" _ctypes _crypt" emake
+ popd &> /dev/null || die
+}
+
+src_configure() {
+ # 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
+
+ # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile.
+ # PKG_CONFIG needed for cross.
+ tc-export CXX PKG_CONFIG
+
+ 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
+ -u-network
+
+ # We use a timeout because of how often we've had hang issues
+ # here. It also matches the default upstream PROFILE_TASK.
+ --timeout 1200
+
+ -x test_gdb
+ -x test_dtrace
+
+ # 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_concurrent_futures
+ -x test_httpservers
+ -x test_logging
+ -x test_multiprocessing_fork
+ -x test_socket
+ -x test_xmlrpc
+
+ # Hangs (actually runs indefinitely executing itself w/ many cpython builds)
+ # bug #900429
+ -x test_tools
+ )
+
+ 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
+ --without-lto
+ --with-system-expat
+ --with-system-ffi
+ --with-platlibdir=lib
+ --with-pkg-config=yes
+ --with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip
+
+ $(use_with debug assertions)
+ $(use_enable pgo optimizations)
+ $(use_with readline readline "$(usex libedit editline readline)")
+ $(use_with valgrind)
+ )
+
+ # disable implicit optimization/debugging flags
+ local -x OPT=
+
+ # https://bugs.gentoo.org/700012
+ if tc-is-lto; then
+ append-cflags $(test-flags-CC -ffat-lto-objects)
+ myeconfargs+=(
+ --with-lto
+ )
+ fi
+
+ if tc-is-cross-compiler ; then
+ build_cbuild_python
+ myeconfargs+=(
+ # Point the imminent CHOST build to the Python we just
+ # built for CBUILD.
+ --with-build-python="${WORKDIR}"/${P}-${CBUILD}/python
+ )
+ fi
+
+ # 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=
+
+ # Fix implicit declarations on cross and prefix builds. Bug #674070.
+ if use ncurses; then
+ append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw
+ fi
+
+ hprefixify setup.py
+ 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/python${PYVER}/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_concurrent_futures
+ -x test_gdb
+ )
+
+ if use sparc ; then
+ # bug #788022
+ test_opts+=(
+ -x test_multiprocessing_fork
+ -x test_multiprocessing_forkserver
+ )
+ fi
+
+ # workaround docutils breaking tests
+ cat > Lib/docutils.py <<-EOF || die
+ raise ImportError("Thou shalt not import!")
+ EOF
+
+ # bug 660358
+ local -x COLUMNS=80
+ local -x PYTHONDONTWRITEBYTECODE=
+ # workaround https://bugs.gentoo.org/775416
+ addwrite "/usr/lib/python${PYVER}/site-packages"
+
+ nonfatal emake -Onone test EXTRATESTOPTS="${test_opts[*]}" \
+ CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty
+ local ret=${?}
+
+ rm Lib/docutils.py || die
+
+ [[ ${ret} -eq 0 ]] || 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
+
+ ln -s ../python/EXTERNALLY-MANAGED "${libdir}/EXTERNALLY-MANAGED" || die
+
+ 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.12.3.ebuild b/dev-lang/python/python-3.12.3.ebuild
new file mode 100644
index 000000000000..7e8fb832f57c
--- /dev/null
+++ b/dev-lang/python/python-3.12.3.ebuild
@@ -0,0 +1,537 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="8"
+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 debug +ensurepip examples gdbm libedit
+ +ncurses pgo +readline +sqlite +ssl test tk valgrind
+"
+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:=
+ dev-python/gentoo-common
+ >=sys-libs/zlib-1.1.3:=
+ virtual/libcrypt:=
+ virtual/libintl
+ ensurepip? ( dev-python/ensurepip-pip )
+ gdbm? ( sys-libs/gdbm:=[berkdb] )
+ kernel_linux? ( sys-apps/util-linux:= )
+ 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
+ )
+"
+# bluetooth requires headers from bluez
+DEPEND="
+ ${RDEPEND}
+ bluetooth? ( net-wireless/bluez )
+ test? (
+ app-arch/xz-utils
+ dev-python/ensurepip-pip
+ dev-python/ensurepip-setuptools
+ dev-python/ensurepip-wheel
+ )
+ valgrind? ( dev-debug/valgrind )
+"
+# autoconf-archive needed to eautoreconf
+BDEPEND="
+ dev-build/autoconf-archive
+ app-alternatives/awk
+ virtual/pkgconfig
+ verify-sig? ( >=sec-keys/openpgp-keys-python-20221025 )
+"
+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=/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}
+# false positives -- functions specific to *BSD
+QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags )
+
+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.
+ # TODO: Makefile has annoying deps on expat headers
+ #rm -r Modules/expat || die
+
+ local PATCHES=(
+ "${WORKDIR}/${PATCHSET}"
+ )
+
+ default
+
+ # force the correct number of jobs
+ # https://bugs.gentoo.org/737660
+ sed -i -e "s:-j0:-j$(makeopts_jobs):" Makefile.pre.in || die
+
+ eautoreconf
+}
+
+build_cbuild_python() {
+ # Hack to workaround get_libdir not being able to handle CBUILD, bug #794181
+ local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi)
+
+ # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
+ # propagated to sysconfig for built extensions
+ #
+ # -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway)
+ local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto"
+ local -x LDFLAGS_NODIST=${BUILD_LDFLAGS}
+ local -x CFLAGS= LDFLAGS=
+ local -x BUILD_CFLAGS="${CFLAGS_NODIST}"
+ local -x BUILD_LDFLAGS=${LDFLAGS_NODIST}
+
+ # We need to build our own Python on CBUILD first, and feed it in.
+ # bug #847910
+ local myeconfargs_cbuild=(
+ "${myeconfargs[@]}"
+
+ --prefix="${BROOT}"/usr
+ --libdir="${cbuild_libdir:2}"
+
+ # Avoid needing to load the right libpython.so.
+ --disable-shared
+
+ # 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
+ )
+
+ mkdir "${WORKDIR}"/${P}-${CBUILD} || die
+ pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die
+
+ # Avoid as many dependencies as possible for the cross build.
+ mkdir Modules || die
+ cat > Modules/Setup.local <<-EOF || die
+ *disabled*
+ nis
+ _dbm _gdbm
+ _sqlite3
+ _hashlib _ssl
+ _curses _curses_panel
+ readline
+ _tkinter
+ pyexpat
+ zlib
+ # We disabled these for CBUILD because Python's setup.py can't handle locating
+ # libdir correctly for cross. This should be rechecked for the pure Makefile approach,
+ # and uncommented if needed.
+ #_ctypes _crypt
+ EOF
+
+ ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}"
+
+ # 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
+}
+
+src_configure() {
+ # 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
+
+ # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile.
+ # PKG_CONFIG needed for cross.
+ tc-export CXX PKG_CONFIG
+
+ 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
+ -u-network
+
+ # We use a timeout because of how often we've had hang issues
+ # here. It also matches the default upstream PROFILE_TASK.
+ --timeout 1200
+
+ -x test_gdb
+ -x test_dtrace
+
+ # 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_concurrent_futures
+ -x test_httpservers
+ -x test_logging
+ -x test_multiprocessing_fork
+ -x test_socket
+ -x test_xmlrpc
+
+ # Hangs (actually runs indefinitely executing itself w/ many cpython builds)
+ # bug #900429
+ -x test_tools
+ )
+
+ 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
+ --without-lto
+ --with-system-expat
+ --with-platlibdir=lib
+ --with-pkg-config=yes
+ --with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip
+
+ $(use_with debug assertions)
+ $(use_enable pgo optimizations)
+ $(use_with readline readline "$(usex libedit editline readline)")
+ $(use_with valgrind)
+ )
+
+ # https://bugs.gentoo.org/700012
+ if tc-is-lto; then
+ append-cflags $(test-flags-CC -ffat-lto-objects)
+ myeconfargs+=(
+ --with-lto
+ )
+ fi
+
+ # Force-disable modules we don't want built.
+ # See Modules/Setup for docs on how this works. Setup.local contains our local deviations.
+ cat > Modules/Setup.local <<-EOF || die
+ *disabled*
+ nis
+ $(usev !gdbm '_gdbm _dbm')
+ $(usev !sqlite '_sqlite3')
+ $(usev !ssl '_hashlib _ssl')
+ $(usev !ncurses '_curses _curses_panel')
+ $(usev !readline 'readline')
+ $(usev !tk '_tkinter')
+ EOF
+
+ # disable implicit optimization/debugging flags
+ local -x OPT=
+
+ if tc-is-cross-compiler ; then
+ build_cbuild_python
+ myeconfargs+=(
+ # Point the imminent CHOST build to the Python we just
+ # built for CBUILD.
+ --with-build-python="${WORKDIR}"/${P}-${CBUILD}/python
+ )
+ fi
+
+ # 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=
+
+ # Fix implicit declarations on cross and prefix builds. Bug #674070.
+ if use ncurses; then
+ append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw
+ 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
+
+ # 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
+ 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/python${PYVER}/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_concurrent_futures
+ -x test_gdb
+ )
+
+ if use sparc ; then
+ # bug #788022
+ test_opts+=(
+ -x test_multiprocessing_fork
+ -x test_multiprocessing_forkserver
+ )
+ fi
+
+ # workaround docutils breaking tests
+ cat > Lib/docutils.py <<-EOF || die
+ raise ImportError("Thou shalt not import!")
+ EOF
+
+ # bug 660358
+ local -x COLUMNS=80
+ local -x PYTHONDONTWRITEBYTECODE=
+ # workaround https://bugs.gentoo.org/775416
+ addwrite "/usr/lib/python${PYVER}/site-packages"
+
+ nonfatal emake -Onone test EXTRATESTOPTS="${test_opts[*]}" \
+ CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty
+ local ret=${?}
+
+ rm Lib/docutils.py || die
+
+ [[ ${ret} -eq 0 ]] || die "emake test failed"
+}
+
+src_install() {
+ local libdir=${ED}/usr/lib/python${PYVER}
+
+ # the Makefile rules are broken
+ # https://github.com/python/cpython/issues/100221
+ mkdir -p "${libdir}"/lib-dynload || die
+
+ # -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
+
+ ln -s ../python/EXTERNALLY-MANAGED "${libdir}/EXTERNALLY-MANAGED" || die
+
+ 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.13.0_alpha6.ebuild b/dev-lang/python/python-3.13.0_alpha6.ebuild
new file mode 100644
index 000000000000..ffa0f839d606
--- /dev/null
+++ b/dev-lang/python/python-3.13.0_alpha6.ebuild
@@ -0,0 +1,550 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="8"
+
+LLVM_COMPAT=( 16 )
+LLVM_OPTIONAL=1
+WANT_LIBTOOL="none"
+
+inherit autotools check-reqs flag-o-matic llvm-r1 multiprocessing
+inherit pax-utils python-utils-r1 toolchain-funcs verify-sig
+
+MY_PV=${PV/_alpha/a}
+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}"
+IUSE="
+ bluetooth build debug +ensurepip examples gdbm jit libedit
+ +ncurses pgo +readline +sqlite +ssl test tk valgrind
+"
+REQUIRED_USE="jit? ( ${LLVM_REQUIRED_USE} )"
+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:=
+ dev-python/gentoo-common
+ >=sys-libs/zlib-1.1.3:=
+ virtual/libcrypt:=
+ virtual/libintl
+ ensurepip? ( dev-python/ensurepip-pip )
+ gdbm? ( sys-libs/gdbm:=[berkdb] )
+ kernel_linux? ( sys-apps/util-linux:= )
+ 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
+ )
+"
+# bluetooth requires headers from bluez
+DEPEND="
+ ${RDEPEND}
+ bluetooth? ( net-wireless/bluez )
+ test? (
+ app-arch/xz-utils
+ dev-python/ensurepip-pip
+ dev-python/ensurepip-setuptools
+ dev-python/ensurepip-wheel
+ )
+ valgrind? ( dev-debug/valgrind )
+"
+# autoconf-archive needed to eautoreconf
+BDEPEND="
+ dev-build/autoconf-archive
+ app-alternatives/awk
+ virtual/pkgconfig
+ jit? (
+ $(llvm_gen_dep '
+ sys-devel/clang:${LLVM_SLOT}
+ sys-devel/llvm:${LLVM_SLOT}
+ ')
+ )
+ verify-sig? ( >=sec-keys/openpgp-keys-python-20221025 )
+"
+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=/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}
+# false positives -- functions specific to *BSD
+QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags )
+
+pkg_pretend() {
+ use test && check-reqs_pkg_pretend
+}
+
+pkg_setup() {
+ use jit && llvm-r1_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.
+ # TODO: Makefile has annoying deps on expat headers
+ #rm -r Modules/expat || die
+
+ local PATCHES=(
+ "${WORKDIR}/${PATCHSET}"
+ )
+
+ default
+
+ # force the correct number of jobs
+ # https://bugs.gentoo.org/737660
+ sed -i -e "s:-j0:-j$(makeopts_jobs):" Makefile.pre.in || die
+
+ eautoreconf
+}
+
+build_cbuild_python() {
+ # Hack to workaround get_libdir not being able to handle CBUILD, bug #794181
+ local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi)
+
+ # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
+ # propagated to sysconfig for built extensions
+ #
+ # -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway)
+ local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto"
+ local -x LDFLAGS_NODIST=${BUILD_LDFLAGS}
+ local -x CFLAGS= LDFLAGS=
+ local -x BUILD_CFLAGS="${CFLAGS_NODIST}"
+ local -x BUILD_LDFLAGS=${LDFLAGS_NODIST}
+
+ # We need to build our own Python on CBUILD first, and feed it in.
+ # bug #847910
+ local myeconfargs_cbuild=(
+ "${myeconfargs[@]}"
+
+ --prefix="${BROOT}"/usr
+ --libdir="${cbuild_libdir:2}"
+
+ # Avoid needing to load the right libpython.so.
+ --disable-shared
+
+ # 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
+ )
+
+ mkdir "${WORKDIR}"/${P}-${CBUILD} || die
+ pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die
+
+ # Avoid as many dependencies as possible for the cross build.
+ mkdir Modules || die
+ cat > Modules/Setup.local <<-EOF || die
+ *disabled*
+ nis
+ _dbm _gdbm
+ _sqlite3
+ _hashlib _ssl
+ _curses _curses_panel
+ readline
+ _tkinter
+ pyexpat
+ zlib
+ # We disabled these for CBUILD because Python's setup.py can't handle locating
+ # libdir correctly for cross. This should be rechecked for the pure Makefile approach,
+ # and uncommented if needed.
+ #_ctypes _crypt
+ EOF
+
+ ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}"
+
+ # 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
+}
+
+src_configure() {
+ # 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
+
+ # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile.
+ # PKG_CONFIG needed for cross.
+ tc-export CXX PKG_CONFIG
+
+ 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
+ -u-network
+
+ # We use a timeout because of how often we've had hang issues
+ # here. It also matches the default upstream PROFILE_TASK.
+ --timeout 1200
+
+ -x test_gdb
+ -x test_dtrace
+
+ # 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_concurrent_futures
+ -x test_httpservers
+ -x test_logging
+ -x test_multiprocessing_fork
+ -x test_socket
+ -x test_xmlrpc
+
+ # Hangs (actually runs indefinitely executing itself w/ many cpython builds)
+ # bug #900429
+ -x test_tools
+
+ # Fails in profiling run, passes in src_test().
+ -x test_capi
+ )
+
+ 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
+ --without-lto
+ --with-system-expat
+ --with-platlibdir=lib
+ --with-pkg-config=yes
+ --with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip
+
+ $(use_with debug assertions)
+ $(use_enable jit experimental-jit)
+ $(use_enable pgo optimizations)
+ $(use_with readline readline "$(usex libedit editline readline)")
+ $(use_with valgrind)
+ )
+
+ # https://bugs.gentoo.org/700012
+ if tc-is-lto; then
+ append-cflags $(test-flags-CC -ffat-lto-objects)
+ myeconfargs+=(
+ --with-lto
+ )
+ fi
+
+ # Force-disable modules we don't want built.
+ # See Modules/Setup for docs on how this works. Setup.local contains our local deviations.
+ cat > Modules/Setup.local <<-EOF || die
+ *disabled*
+ nis
+ $(usev !gdbm '_gdbm _dbm')
+ $(usev !sqlite '_sqlite3')
+ $(usev !ssl '_hashlib _ssl')
+ $(usev !ncurses '_curses _curses_panel')
+ $(usev !readline 'readline')
+ $(usev !tk '_tkinter')
+ EOF
+
+ # disable implicit optimization/debugging flags
+ local -x OPT=
+
+ if tc-is-cross-compiler ; then
+ build_cbuild_python
+ myeconfargs+=(
+ # Point the imminent CHOST build to the Python we just
+ # built for CBUILD.
+ --with-build-python="${WORKDIR}"/${P}-${CBUILD}/python
+ )
+ fi
+
+ # 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=
+
+ # Fix implicit declarations on cross and prefix builds. Bug #674070.
+ if use ncurses; then
+ append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw
+ 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
+
+ # 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
+ 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=
+
+ addwrite "/usr/lib/python${PYVER}/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_concurrent_futures
+ -x test_gdb
+ )
+
+ if use sparc ; then
+ # bug #788022
+ test_opts+=(
+ -x test_multiprocessing_fork
+ -x test_multiprocessing_forkserver
+ )
+ fi
+
+ # workaround docutils breaking tests
+ cat > Lib/docutils.py <<-EOF || die
+ raise ImportError("Thou shalt not import!")
+ EOF
+
+ # bug 660358
+ local -x COLUMNS=80
+ local -x PYTHONDONTWRITEBYTECODE=
+ # workaround https://bugs.gentoo.org/775416
+ addwrite "/usr/lib/python${PYVER}/site-packages"
+
+ nonfatal emake -Onone test EXTRATESTOPTS="${test_opts[*]}" \
+ CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty
+ local ret=${?}
+
+ rm Lib/docutils.py || die
+
+ [[ ${ret} -eq 0 ]] || die "emake test failed"
+}
+
+src_install() {
+ local libdir=${ED}/usr/lib/python${PYVER}
+
+ # the Makefile rules are broken
+ # https://github.com/python/cpython/issues/100221
+ mkdir -p "${libdir}"/lib-dynload || die
+
+ # -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
+
+ ln -s ../python/EXTERNALLY-MANAGED "${libdir}/EXTERNALLY-MANAGED" || die
+
+ 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
+ # pydoc
+ 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.6.12-r1.ebuild b/dev-lang/python/python-3.6.12-r1.ebuild
deleted file mode 100644
index d810a677d0fd..000000000000
--- a/dev-lang/python/python-3.6.12-r1.ebuild
+++ /dev/null
@@ -1,332 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="7"
-WANT_LIBTOOL="none"
-
-inherit autotools flag-o-matic multiprocessing pax-utils \
- python-utils-r1 toolchain-funcs
-
-MY_P="Python-${PV}"
-PYVER=$(ver_cut 1-2)
-PATCHSET="python-gentoo-patches-${PV}-r1"
-
-DESCRIPTION="An interpreted, interactive, object-oriented programming language"
-HOMEPAGE="https://www.python.org/"
-SRC_URI="https://www.python.org/ftp/python/${PV}/${MY_P}.tar.xz
- https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz"
-S="${WORKDIR}/${MY_P}"
-
-LICENSE="PSF-2"
-SLOT="${PYVER}/${PYVER}m"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 s390 sparc x86"
-IUSE="bluetooth build examples gdbm hardened ipv6 libressl +ncurses +readline sqlite +ssl test +threads tk wininst +xml"
-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:=
- dev-libs/libffi:=
- >=sys-libs/zlib-1.1.3:=
- virtual/libcrypt:=
- virtual/libintl
- gdbm? ( sys-libs/gdbm:=[berkdb] )
- ncurses? ( >=sys-libs/ncurses-5.2:= )
- readline? ( >=sys-libs/readline-4.1:= )
- sqlite? ( >=dev-db/sqlite-3.3.8:3= )
- ssl? (
- !libressl? ( dev-libs/openssl:= )
- libressl? ( dev-libs/libressl:= )
- )
- tk? (
- >=dev-lang/tcl-8.0:=
- >=dev-lang/tk-8.0:=
- dev-tcltk/blt:=
- dev-tcltk/tix
- )
- xml? ( >=dev-libs/expat-2.1:= )"
-# bluetooth requires headers from bluez
-DEPEND="${RDEPEND}
- bluetooth? ( net-wireless/bluez )
- test? ( app-arch/xz-utils[extra-filters(+)] )
- virtual/pkgconfig
- !sys-devel/gcc[libffi(-)]"
-PDEPEND="app-eselect/eselect-python"
-RDEPEND+=" !build? ( app-misc/mime-types )"
-
-src_prepare() {
- # Ensure that internal copies of expat, libffi and zlib are not used.
- rm -fr Modules/expat || die
- rm -fr Modules/_ctypes/libffi* || die
- rm -fr Modules/zlib || die
-
- local PATCHES=(
- "${WORKDIR}/${PATCHSET}"
- )
-
- default
-
- sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" \
- Lib/distutils/command/install.py \
- Lib/distutils/sysconfig.py \
- Lib/site.py \
- Lib/sysconfig.py \
- Lib/test/test_site.py \
- Makefile.pre.in \
- Modules/Setup.dist \
- Modules/getpath.c \
- configure.ac \
- setup.py || die "sed failed to replace @@GENTOO_LIBDIR@@"
-
- # force correct number of jobs
- # https://bugs.gentoo.org/737660
- local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")
- sed -i -e "/self\.parallel/s:True:${jobs}:" setup.py || die
-
- eautoreconf
-}
-
-src_configure() {
- local disable
- # disable automagic bluetooth headers detection
- use bluetooth || export ac_cv_header_bluetooth_bluetooth_h=no
- use gdbm || disable+=" gdbm"
- use ncurses || disable+=" _curses _curses_panel"
- use readline || disable+=" readline"
- use sqlite || disable+=" _sqlite3"
- use ssl || export PYTHON_DISABLE_SSL="1"
- use tk || disable+=" _tkinter"
- use xml || disable+=" _elementtree pyexpat" # _elementtree uses pyexpat.
- export PYTHON_DISABLE_MODULES="${disable}"
-
- if ! use xml; then
- ewarn "You have configured Python without XML support."
- ewarn "This is NOT a recommended configuration as you"
- ewarn "may face problems parsing any XML documents."
- fi
-
- if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then
- einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}"
- fi
-
- if [[ "$(gcc-major-version)" -ge 4 ]]; then
- append-flags -fwrapv
- fi
-
- filter-flags -malign-double
-
- # https://bugs.gentoo.org/show_bug.cgi?id=50309
- if is-flagq -O3; then
- is-flagq -fstack-protector-all && replace-flags -O3 -O2
- use hardened && replace-flags -O3 -O2
- fi
-
- # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile.
- tc-export CXX
-
- # Set LDFLAGS so we link modules with -lpython3.2 correctly.
- # Needed on FreeBSD unless Python 3.2 is already installed.
- # Please query BSD team before removing this!
- append-ldflags "-L."
-
- local dbmliborder
- if use gdbm; then
- dbmliborder+="${dbmliborder:+:}gdbm"
- 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
-
- --with-fpectl
- --enable-shared
- $(use_enable ipv6)
- $(use_with threads)
- --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
- )
-
- OPT="" econf "${myeconfargs[@]}"
-
- if use threads && 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
-}
-
-src_compile() {
- # Ensure sed works as expected
- # https://bugs.gentoo.org/594768
- local -x LC_ALL=C
-
- emake CPPFLAGS= CFLAGS= LDFLAGS=
-
- # 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
-
- # Skip failing tests.
- local skipped_tests="gdb faulthandler"
-
- for test in ${skipped_tests}; do
- mv "${S}"/Lib/test/test_${test}.py "${T}"
- done
-
- # bug 660358
- local -x COLUMNS=80
- local -x PYTHONDONTWRITEBYTECODE=
-
- local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")
-
- emake test EXTRATESTOPTS="-u-network -j${jobs}" \
- CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty
- local result=$?
-
- for test in ${skipped_tests}; do
- mv "${T}/test_${test}.py" "${S}"/Lib/test
- done
-
- elog "The following tests have been skipped:"
- for test in ${skipped_tests}; do
- elog "test_${test}.py"
- done
-
- elog "If you would like to run them, you may:"
- elog "cd '${EPREFIX}/usr/$(get_libdir)/python${PYVER}/test'"
- elog "and run the tests separately."
-
- if [[ ${result} -ne 0 ]]; then
- die "emake test failed"
- fi
-}
-
-src_install() {
- local libdir=${ED}/usr/$(get_libdir)/python${PYVER}
-
- emake DESTDIR="${D}" altinstall
-
- # Remove static library
- rm "${ED}"/usr/$(get_libdir)/libpython*.a || die
-
- sed \
- -e "s/\(CONFIGURE_LDFLAGS=\).*/\1/" \
- -e "s/\(PY_LDFLAGS=\).*/\1/" \
- -i "${libdir}/config-${PYVER}"*/Makefile || die "sed failed"
-
- # 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
-
- use sqlite || rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die
- use tk || rm -r "${ED}/usr/bin/idle${PYVER}" "${libdir}/"{idlelib,tkinter,test/test_tk*} || die
-
- use threads || rm -r "${libdir}/multiprocessing" || die
- use wininst || rm "${libdir}/distutils/command/"wininst-*.exe || die
-
- 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 "${S}"/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"
-
- local -x EPYTHON=python${PYVER}
- # if not using a cross-compiler, use the fresh binary
- if ! tc-is-cross-compiler; then
- local -x PYTHON=./python
- local -x LD_LIBRARY_PATH=${LD_LIBRARY_PATH+${LD_LIBRARY_PATH}:}${PWD}
- else
- local -x PYTHON=${EPREFIX}/usr/bin/${EPYTHON}
- fi
-
- echo "EPYTHON='${EPYTHON}'" > epython.py || die
- python_domodule epython.py
-
- # python-exec wrapping support
- local pymajor=${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, pyvenv
- ln -s "../../../bin/2to3-${PYVER}" \
- "${scriptdir}/2to3" || die
- ln -s "../../../bin/pydoc${PYVER}" \
- "${scriptdir}/pydoc" || die
- ln -s "../../../bin/pyvenv-${PYVER}" \
- "${scriptdir}/pyvenv" || die
- # idle
- if use tk; then
- ln -s "../../../bin/idle${PYVER}" \
- "${scriptdir}/idle" || die
- fi
-}
diff --git a/dev-lang/python/python-3.6.12-r2.ebuild b/dev-lang/python/python-3.6.12-r2.ebuild
deleted file mode 100644
index d1ed379be3f1..000000000000
--- a/dev-lang/python/python-3.6.12-r2.ebuild
+++ /dev/null
@@ -1,346 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="7"
-WANT_LIBTOOL="none"
-
-inherit autotools flag-o-matic multiprocessing pax-utils \
- python-utils-r1 toolchain-funcs verify-sig
-
-MY_P="Python-${PV}"
-PYVER=$(ver_cut 1-2)
-PATCHSET="python-gentoo-patches-${PV}-r2"
-
-DESCRIPTION="An interpreted, interactive, object-oriented programming language"
-HOMEPAGE="https://www.python.org/"
-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}/${PYVER}m"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 sparc ~x86"
-IUSE="bluetooth build examples gdbm hardened ipv6 libressl +ncurses +readline sqlite +ssl test +threads tk wininst +xml"
-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:=
- dev-libs/libffi:=
- >=sys-libs/zlib-1.1.3:=
- virtual/libcrypt:=
- virtual/libintl
- gdbm? ( sys-libs/gdbm:=[berkdb] )
- ncurses? ( >=sys-libs/ncurses-5.2:= )
- readline? ( >=sys-libs/readline-4.1:= )
- sqlite? ( >=dev-db/sqlite-3.3.8:3= )
- ssl? (
- !libressl? ( dev-libs/openssl:= )
- libressl? ( dev-libs/libressl:= )
- )
- tk? (
- >=dev-lang/tcl-8.0:=
- >=dev-lang/tk-8.0:=
- dev-tcltk/blt:=
- dev-tcltk/tix
- )
- xml? ( >=dev-libs/expat-2.1:= )"
-# bluetooth requires headers from bluez
-DEPEND="${RDEPEND}
- bluetooth? ( net-wireless/bluez )
- test? ( app-arch/xz-utils[extra-filters(+)] )"
-BDEPEND="
- virtual/pkgconfig
- verify-sig? ( app-crypt/openpgp-keys-python )
- !sys-devel/gcc[libffi(-)]"
-PDEPEND="app-eselect/eselect-python"
-RDEPEND+=" !build? ( app-misc/mime-types )"
-
-VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc
-
-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, libffi and zlib are not used.
- rm -fr Modules/expat || die
- rm -fr Modules/_ctypes/libffi* || die
- rm -fr Modules/zlib || die
-
- local PATCHES=(
- "${WORKDIR}/${PATCHSET}"
- )
-
- default
-
- sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" \
- Lib/distutils/command/install.py \
- Lib/distutils/sysconfig.py \
- Lib/site.py \
- Lib/sysconfig.py \
- Lib/test/test_site.py \
- Makefile.pre.in \
- Modules/Setup.dist \
- Modules/getpath.c \
- configure.ac \
- setup.py || die "sed failed to replace @@GENTOO_LIBDIR@@"
-
- # force correct number of jobs
- # https://bugs.gentoo.org/737660
- local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")
- sed -i -e "/self\.parallel/s:True:${jobs}:" setup.py || die
-
- eautoreconf
-}
-
-src_configure() {
- local disable
- # disable automagic bluetooth headers detection
- use bluetooth || export ac_cv_header_bluetooth_bluetooth_h=no
- use gdbm || disable+=" gdbm"
- use ncurses || disable+=" _curses _curses_panel"
- use readline || disable+=" readline"
- use sqlite || disable+=" _sqlite3"
- use ssl || export PYTHON_DISABLE_SSL="1"
- use tk || disable+=" _tkinter"
- use xml || disable+=" _elementtree pyexpat" # _elementtree uses pyexpat.
- export PYTHON_DISABLE_MODULES="${disable}"
-
- if ! use xml; then
- ewarn "You have configured Python without XML support."
- ewarn "This is NOT a recommended configuration as you"
- ewarn "may face problems parsing any XML documents."
- fi
-
- if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then
- einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}"
- fi
-
- if [[ "$(gcc-major-version)" -ge 4 ]]; then
- append-flags -fwrapv
- fi
-
- filter-flags -malign-double
-
- # https://bugs.gentoo.org/show_bug.cgi?id=50309
- if is-flagq -O3; then
- is-flagq -fstack-protector-all && replace-flags -O3 -O2
- use hardened && replace-flags -O3 -O2
- fi
-
- # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile.
- tc-export CXX
-
- # Set LDFLAGS so we link modules with -lpython3.2 correctly.
- # Needed on FreeBSD unless Python 3.2 is already installed.
- # Please query BSD team before removing this!
- append-ldflags "-L."
-
- local dbmliborder
- if use gdbm; then
- dbmliborder+="${dbmliborder:+:}gdbm"
- 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
-
- --with-fpectl
- --enable-shared
- $(use_enable ipv6)
- $(use_with threads)
- --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
- )
-
- OPT="" econf "${myeconfargs[@]}"
-
- if use threads && 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
-}
-
-src_compile() {
- # Ensure sed works as expected
- # https://bugs.gentoo.org/594768
- local -x LC_ALL=C
-
- emake CPPFLAGS= CFLAGS= LDFLAGS=
-
- # 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
-
- # Skip failing tests.
- local skipped_tests="gdb faulthandler"
-
- for test in ${skipped_tests}; do
- mv "${S}"/Lib/test/test_${test}.py "${T}"
- done
-
- # bug 660358
- local -x COLUMNS=80
- local -x PYTHONDONTWRITEBYTECODE=
-
- local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")
-
- emake test EXTRATESTOPTS="-u-network -j${jobs}" \
- CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty
- local result=$?
-
- for test in ${skipped_tests}; do
- mv "${T}/test_${test}.py" "${S}"/Lib/test
- done
-
- elog "The following tests have been skipped:"
- for test in ${skipped_tests}; do
- elog "test_${test}.py"
- done
-
- elog "If you would like to run them, you may:"
- elog "cd '${EPREFIX}/usr/$(get_libdir)/python${PYVER}/test'"
- elog "and run the tests separately."
-
- if [[ ${result} -ne 0 ]]; then
- die "emake test failed"
- fi
-}
-
-src_install() {
- local libdir=${ED}/usr/$(get_libdir)/python${PYVER}
-
- emake DESTDIR="${D}" altinstall
-
- # Remove static library
- rm "${ED}"/usr/$(get_libdir)/libpython*.a || die
-
- sed \
- -e "s/\(CONFIGURE_LDFLAGS=\).*/\1/" \
- -e "s/\(PY_LDFLAGS=\).*/\1/" \
- -i "${libdir}/config-${PYVER}"*/Makefile || die "sed failed"
-
- # 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
-
- use sqlite || rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die
- use tk || rm -r "${ED}/usr/bin/idle${PYVER}" "${libdir}/"{idlelib,tkinter,test/test_tk*} || die
-
- use threads || rm -r "${libdir}/multiprocessing" || die
- use wininst || rm "${libdir}/distutils/command/"wininst-*.exe || die
-
- 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 "${S}"/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"
-
- local -x EPYTHON=python${PYVER}
- # if not using a cross-compiler, use the fresh binary
- if ! tc-is-cross-compiler; then
- local -x PYTHON=./python
- local -x LD_LIBRARY_PATH=${LD_LIBRARY_PATH+${LD_LIBRARY_PATH}:}${PWD}
- else
- local -x PYTHON=${EPREFIX}/usr/bin/${EPYTHON}
- fi
-
- echo "EPYTHON='${EPYTHON}'" > epython.py || die
- python_domodule epython.py
-
- # python-exec wrapping support
- local pymajor=${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, pyvenv
- ln -s "../../../bin/2to3-${PYVER}" \
- "${scriptdir}/2to3" || die
- ln -s "../../../bin/pydoc${PYVER}" \
- "${scriptdir}/pydoc" || die
- ln -s "../../../bin/pyvenv-${PYVER}" \
- "${scriptdir}/pyvenv" || die
- # idle
- if use tk; then
- ln -s "../../../bin/idle${PYVER}" \
- "${scriptdir}/idle" || die
- fi
-}
diff --git a/dev-lang/python/python-3.7.9-r1.ebuild b/dev-lang/python/python-3.7.9-r1.ebuild
deleted file mode 100644
index 854310e45a11..000000000000
--- a/dev-lang/python/python-3.7.9-r1.ebuild
+++ /dev/null
@@ -1,318 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="7"
-WANT_LIBTOOL="none"
-
-inherit autotools flag-o-matic multiprocessing pax-utils \
- python-utils-r1 toolchain-funcs
-
-MY_P="Python-${PV}"
-PYVER=$(ver_cut 1-2)
-PATCHSET="python-gentoo-patches-${PV}-r1"
-
-DESCRIPTION="An interpreted, interactive, object-oriented programming language"
-HOMEPAGE="https://www.python.org/"
-SRC_URI="https://www.python.org/ftp/python/${PV}/${MY_P}.tar.xz
- https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz"
-S="${WORKDIR}/${MY_P}"
-
-LICENSE="PSF-2"
-SLOT="${PYVER}/${PYVER}m"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv s390 sparc x86"
-IUSE="bluetooth build examples gdbm hardened ipv6 libressl +ncurses +readline sqlite +ssl test tk wininst +xml"
-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:=
- dev-libs/libffi:=
- sys-apps/util-linux:=
- >=sys-libs/zlib-1.1.3:=
- virtual/libcrypt:=
- virtual/libintl
- gdbm? ( sys-libs/gdbm:=[berkdb] )
- ncurses? ( >=sys-libs/ncurses-5.2:= )
- readline? ( >=sys-libs/readline-4.1:= )
- sqlite? ( >=dev-db/sqlite-3.3.8:3= )
- ssl? (
- !libressl? ( dev-libs/openssl:= )
- libressl? ( dev-libs/libressl:= )
- )
- tk? (
- >=dev-lang/tcl-8.0:=
- >=dev-lang/tk-8.0:=
- dev-tcltk/blt:=
- dev-tcltk/tix
- )
- xml? ( >=dev-libs/expat-2.1:= )"
-# bluetooth requires headers from bluez
-DEPEND="${RDEPEND}
- bluetooth? ( net-wireless/bluez )
- test? ( app-arch/xz-utils[extra-filters(+)] )
- virtual/pkgconfig
- !sys-devel/gcc[libffi(-)]"
-PDEPEND="app-eselect/eselect-python"
-RDEPEND+=" !build? ( app-misc/mime-types )"
-
-src_prepare() {
- # Ensure that internal copies of expat, libffi and zlib are not used.
- rm -fr Modules/expat || die
- rm -fr Modules/_ctypes/libffi* || die
- rm -fr Modules/zlib || die
-
- local PATCHES=(
- "${WORKDIR}/${PATCHSET}"
- )
-
- default
-
- sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" \
- setup.py || die "sed failed to replace @@GENTOO_LIBDIR@@"
-
- # force correct number of jobs
- # https://bugs.gentoo.org/737660
- local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")
- sed -i -e "/self\.parallel/s:True:${jobs}:" setup.py || die
-
- eautoreconf
-}
-
-src_configure() {
- local disable
- # disable automagic bluetooth headers detection
- use bluetooth || export ac_cv_header_bluetooth_bluetooth_h=no
- use gdbm || disable+=" gdbm"
- use ncurses || disable+=" _curses _curses_panel"
- use readline || disable+=" readline"
- use sqlite || disable+=" _sqlite3"
- use ssl || export PYTHON_DISABLE_SSL="1"
- use tk || disable+=" _tkinter"
- use xml || disable+=" _elementtree pyexpat" # _elementtree uses pyexpat.
- export PYTHON_DISABLE_MODULES="${disable}"
-
- if ! use xml; then
- ewarn "You have configured Python without XML support."
- ewarn "This is NOT a recommended configuration as you"
- ewarn "may face problems parsing any XML documents."
- fi
-
- if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then
- einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}"
- fi
-
- if [[ "$(gcc-major-version)" -ge 4 ]]; then
- append-flags -fwrapv
- fi
-
- filter-flags -malign-double
-
- # https://bugs.gentoo.org/show_bug.cgi?id=50309
- if is-flagq -O3; then
- is-flagq -fstack-protector-all && replace-flags -O3 -O2
- use hardened && replace-flags -O3 -O2
- fi
-
- # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile.
- tc-export CXX
-
- # Set LDFLAGS so we link modules with -lpython3.2 correctly.
- # Needed on FreeBSD unless Python 3.2 is already installed.
- # Please query BSD team before removing this!
- append-ldflags "-L."
-
- # Fix implicit declarations on cross and prefix builds. Bug #674070.
- use ncurses && append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw
-
- local dbmliborder
- if use gdbm; then
- dbmliborder+="${dbmliborder:+:}gdbm"
- 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
- $(use_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
- )
-
- OPT="" econf "${myeconfargs[@]}"
-}
-
-src_compile() {
- # Ensure sed works as expected
- # https://bugs.gentoo.org/594768
- local -x LC_ALL=C
-
- emake CPPFLAGS= CFLAGS= LDFLAGS=
-
- # 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
-
- # Skip failing tests.
- local skipped_tests="gdb"
-
- for test in ${skipped_tests}; do
- mv "${S}"/Lib/test/test_${test}.py "${T}"
- done
-
- # bug 660358
- local -x COLUMNS=80
- local -x PYTHONDONTWRITEBYTECODE=
-
- local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")
-
- emake test EXTRATESTOPTS="-u-network -j${jobs}" \
- CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty
- local result=$?
-
- for test in ${skipped_tests}; do
- mv "${T}/test_${test}.py" "${S}"/Lib/test
- done
-
- elog "The following tests have been skipped:"
- for test in ${skipped_tests}; do
- elog "test_${test}.py"
- done
-
- elog "If you would like to run them, you may:"
- elog "cd '${EPREFIX}/usr/lib/python${PYVER}/test'"
- elog "and run the tests separately."
-
- if [[ ${result} -ne 0 ]]; then
- die "emake test failed"
- fi
-}
-
-src_install() {
- local libdir=${ED}/usr/lib/python${PYVER}
-
- emake DESTDIR="${D}" altinstall
-
- # Remove static library
- rm "${ED}"/usr/$(get_libdir)/libpython*.a || die
-
- sed \
- -e "s/\(CONFIGURE_LDFLAGS=\).*/\1/" \
- -e "s/\(PY_LDFLAGS=\).*/\1/" \
- -i "${libdir}/config-${PYVER}"*/Makefile || die "sed failed"
-
- # 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
-
- use sqlite || rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die
- use tk || rm -r "${ED}/usr/bin/idle${PYVER}" "${libdir}/"{idlelib,tkinter,test/test_tk*} || die
-
- use wininst || rm "${libdir}/distutils/command/"wininst-*.exe || die
-
- 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 "${S}"/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"
-
- local -x EPYTHON=python${PYVER}
- # if not using a cross-compiler, use the fresh binary
- if ! tc-is-cross-compiler; then
- local -x PYTHON=./python
- local -x LD_LIBRARY_PATH=${LD_LIBRARY_PATH+${LD_LIBRARY_PATH}:}${PWD}
- else
- local -x PYTHON=${EPREFIX}/usr/bin/${EPYTHON}
- fi
-
- echo "EPYTHON='${EPYTHON}'" > epython.py || die
- python_domodule epython.py
-
- # python-exec wrapping support
- local pymajor=${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, pyvenv
- ln -s "../../../bin/2to3-${PYVER}" \
- "${scriptdir}/2to3" || die
- ln -s "../../../bin/pydoc${PYVER}" \
- "${scriptdir}/pydoc" || die
- ln -s "../../../bin/pyvenv-${PYVER}" \
- "${scriptdir}/pyvenv" || die
- # idle
- if use tk; then
- ln -s "../../../bin/idle${PYVER}" \
- "${scriptdir}/idle" || die
- fi
-}
diff --git a/dev-lang/python/python-3.7.9-r2.ebuild b/dev-lang/python/python-3.7.9-r2.ebuild
deleted file mode 100644
index 7b22ccdb26a0..000000000000
--- a/dev-lang/python/python-3.7.9-r2.ebuild
+++ /dev/null
@@ -1,332 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="7"
-WANT_LIBTOOL="none"
-
-inherit autotools flag-o-matic multiprocessing pax-utils \
- python-utils-r1 toolchain-funcs verify-sig
-
-MY_P="Python-${PV}"
-PYVER=$(ver_cut 1-2)
-PATCHSET="python-gentoo-patches-${PV}-r2"
-
-DESCRIPTION="An interpreted, interactive, object-oriented programming language"
-HOMEPAGE="https://www.python.org/"
-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}/${PYVER}m"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 sparc ~x86"
-IUSE="bluetooth build examples gdbm hardened ipv6 libressl +ncurses +readline sqlite +ssl test tk wininst +xml"
-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:=
- dev-libs/libffi:=
- sys-apps/util-linux:=
- >=sys-libs/zlib-1.1.3:=
- virtual/libcrypt:=
- virtual/libintl
- gdbm? ( sys-libs/gdbm:=[berkdb] )
- ncurses? ( >=sys-libs/ncurses-5.2:= )
- readline? ( >=sys-libs/readline-4.1:= )
- sqlite? ( >=dev-db/sqlite-3.3.8:3= )
- ssl? (
- !libressl? ( dev-libs/openssl:= )
- libressl? ( dev-libs/libressl:= )
- )
- tk? (
- >=dev-lang/tcl-8.0:=
- >=dev-lang/tk-8.0:=
- dev-tcltk/blt:=
- dev-tcltk/tix
- )
- xml? ( >=dev-libs/expat-2.1:= )"
-# bluetooth requires headers from bluez
-DEPEND="${RDEPEND}
- bluetooth? ( net-wireless/bluez )
- test? ( app-arch/xz-utils[extra-filters(+)] )"
-BDEPEND="
- virtual/pkgconfig
- verify-sig? ( app-crypt/openpgp-keys-python )
- !sys-devel/gcc[libffi(-)]"
-PDEPEND="app-eselect/eselect-python"
-RDEPEND+=" !build? ( app-misc/mime-types )"
-
-VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc
-
-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, libffi and zlib are not used.
- rm -fr Modules/expat || die
- rm -fr Modules/_ctypes/libffi* || die
- rm -fr Modules/zlib || die
-
- local PATCHES=(
- "${WORKDIR}/${PATCHSET}"
- )
-
- default
-
- sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" \
- setup.py || die "sed failed to replace @@GENTOO_LIBDIR@@"
-
- # force correct number of jobs
- # https://bugs.gentoo.org/737660
- local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")
- sed -i -e "/self\.parallel/s:True:${jobs}:" setup.py || die
-
- eautoreconf
-}
-
-src_configure() {
- local disable
- # disable automagic bluetooth headers detection
- use bluetooth || export ac_cv_header_bluetooth_bluetooth_h=no
- use gdbm || disable+=" gdbm"
- use ncurses || disable+=" _curses _curses_panel"
- use readline || disable+=" readline"
- use sqlite || disable+=" _sqlite3"
- use ssl || export PYTHON_DISABLE_SSL="1"
- use tk || disable+=" _tkinter"
- use xml || disable+=" _elementtree pyexpat" # _elementtree uses pyexpat.
- export PYTHON_DISABLE_MODULES="${disable}"
-
- if ! use xml; then
- ewarn "You have configured Python without XML support."
- ewarn "This is NOT a recommended configuration as you"
- ewarn "may face problems parsing any XML documents."
- fi
-
- if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then
- einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}"
- fi
-
- if [[ "$(gcc-major-version)" -ge 4 ]]; then
- append-flags -fwrapv
- fi
-
- filter-flags -malign-double
-
- # https://bugs.gentoo.org/show_bug.cgi?id=50309
- if is-flagq -O3; then
- is-flagq -fstack-protector-all && replace-flags -O3 -O2
- use hardened && replace-flags -O3 -O2
- fi
-
- # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile.
- tc-export CXX
-
- # Set LDFLAGS so we link modules with -lpython3.2 correctly.
- # Needed on FreeBSD unless Python 3.2 is already installed.
- # Please query BSD team before removing this!
- append-ldflags "-L."
-
- # Fix implicit declarations on cross and prefix builds. Bug #674070.
- use ncurses && append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw
-
- local dbmliborder
- if use gdbm; then
- dbmliborder+="${dbmliborder:+:}gdbm"
- 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
- $(use_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
- )
-
- OPT="" econf "${myeconfargs[@]}"
-}
-
-src_compile() {
- # Ensure sed works as expected
- # https://bugs.gentoo.org/594768
- local -x LC_ALL=C
-
- emake CPPFLAGS= CFLAGS= LDFLAGS=
-
- # 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
-
- # Skip failing tests.
- local skipped_tests="gdb"
-
- for test in ${skipped_tests}; do
- mv "${S}"/Lib/test/test_${test}.py "${T}"
- done
-
- # bug 660358
- local -x COLUMNS=80
- local -x PYTHONDONTWRITEBYTECODE=
-
- local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")
-
- emake test EXTRATESTOPTS="-u-network -j${jobs}" \
- CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty
- local result=$?
-
- for test in ${skipped_tests}; do
- mv "${T}/test_${test}.py" "${S}"/Lib/test
- done
-
- elog "The following tests have been skipped:"
- for test in ${skipped_tests}; do
- elog "test_${test}.py"
- done
-
- elog "If you would like to run them, you may:"
- elog "cd '${EPREFIX}/usr/lib/python${PYVER}/test'"
- elog "and run the tests separately."
-
- if [[ ${result} -ne 0 ]]; then
- die "emake test failed"
- fi
-}
-
-src_install() {
- local libdir=${ED}/usr/lib/python${PYVER}
-
- emake DESTDIR="${D}" altinstall
-
- # Remove static library
- rm "${ED}"/usr/$(get_libdir)/libpython*.a || die
-
- sed \
- -e "s/\(CONFIGURE_LDFLAGS=\).*/\1/" \
- -e "s/\(PY_LDFLAGS=\).*/\1/" \
- -i "${libdir}/config-${PYVER}"*/Makefile || die "sed failed"
-
- # 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
-
- use sqlite || rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die
- use tk || rm -r "${ED}/usr/bin/idle${PYVER}" "${libdir}/"{idlelib,tkinter,test/test_tk*} || die
-
- use wininst || rm "${libdir}/distutils/command/"wininst-*.exe || die
-
- 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 "${S}"/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"
-
- local -x EPYTHON=python${PYVER}
- # if not using a cross-compiler, use the fresh binary
- if ! tc-is-cross-compiler; then
- local -x PYTHON=./python
- local -x LD_LIBRARY_PATH=${LD_LIBRARY_PATH+${LD_LIBRARY_PATH}:}${PWD}
- else
- local -x PYTHON=${EPREFIX}/usr/bin/${EPYTHON}
- fi
-
- echo "EPYTHON='${EPYTHON}'" > epython.py || die
- python_domodule epython.py
-
- # python-exec wrapping support
- local pymajor=${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, pyvenv
- ln -s "../../../bin/2to3-${PYVER}" \
- "${scriptdir}/2to3" || die
- ln -s "../../../bin/pydoc${PYVER}" \
- "${scriptdir}/pydoc" || die
- ln -s "../../../bin/pyvenv-${PYVER}" \
- "${scriptdir}/pyvenv" || die
- # idle
- if use tk; then
- ln -s "../../../bin/idle${PYVER}" \
- "${scriptdir}/idle" || die
- fi
-}
diff --git a/dev-lang/python/python-3.8.19_p1.ebuild b/dev-lang/python/python-3.8.19_p1.ebuild
new file mode 100644
index 000000000000..35dce04267d9
--- /dev/null
+++ b/dev-lang/python/python-3.8.19_p1.ebuild
@@ -0,0 +1,430 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="8"
+WANT_LIBTOOL="none"
+
+inherit autotools flag-o-matic multiprocessing pax-utils
+inherit prefix 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 debug +ensurepip examples gdbm +ncurses pgo
+ +readline +sqlite +ssl test tk valgrind
+"
+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:=
+ >=dev-libs/expat-2.1:=
+ dev-libs/libffi:=
+ dev-python/gentoo-common
+ >=sys-libs/zlib-1.1.3:=
+ virtual/libcrypt:=
+ virtual/libintl
+ ensurepip? ( dev-python/ensurepip-wheels )
+ gdbm? ( sys-libs/gdbm:=[berkdb] )
+ kernel_linux? ( sys-apps/util-linux:= )
+ ncurses? ( >=sys-libs/ncurses-5.2:= )
+ readline? ( >=sys-libs/readline-4.1:= )
+ 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
+ )
+"
+# bluetooth requires headers from bluez
+DEPEND="
+ ${RDEPEND}
+ bluetooth? ( net-wireless/bluez )
+ test? ( app-arch/xz-utils )
+ valgrind? ( dev-debug/valgrind )
+"
+# autoconf-archive needed to eautoreconf
+BDEPEND="
+ dev-build/autoconf-archive
+ app-alternatives/awk
+ virtual/pkgconfig
+ verify-sig? ( sec-keys/openpgp-keys-python )
+"
+RDEPEND+="
+ !build? ( app-misc/mime-types )
+"
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc
+
+QA_PKGCONFIG_VERSION=${PYVER}
+# false positives -- functions specific to *BSD
+QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags )
+
+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
+
+ rm Lib/distutils/command/wininst*.exe || die
+
+ eautoreconf
+}
+
+src_configure() {
+ # disable automagic bluetooth headers detection
+ if ! use bluetooth; then
+ local -x ac_cv_header_bluetooth_bluetooth_h=no
+ fi
+ local disable
+ use gdbm || disable+=" gdbm"
+ use ncurses || disable+=" _curses _curses_panel"
+ use readline || disable+=" readline"
+ use sqlite || disable+=" _sqlite3"
+ use ssl || export PYTHON_DISABLE_SSL="1"
+ use tk || disable+=" _tkinter"
+ export PYTHON_DISABLE_MODULES="${disable}"
+
+ if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then
+ einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}"
+ fi
+
+ append-flags -fwrapv
+ filter-flags -malign-double
+
+ # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile.
+ # PKG_CONFIG needed for cross.
+ tc-export CXX PKG_CONFIG
+
+ local dbmliborder=
+ if use gdbm; then
+ dbmliborder+="${dbmliborder:+:}gdbm"
+ 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
+ --enable-ipv6
+ --infodir='${prefix}/share/info'
+ --mandir='${prefix}/share/man'
+ --with-computed-gotos
+ --with-dbmliborder="${dbmliborder}"
+ --with-libc=
+ --enable-loadable-sqlite-extensions
+ --without-ensurepip
+ --without-lto
+ --with-system-expat
+ --with-system-ffi
+ --with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip
+
+ $(use_with debug assertions)
+ $(use_with valgrind)
+ )
+
+ # disable implicit optimization/debugging flags
+ local -x OPT=
+
+ # https://bugs.gentoo.org/700012
+ if tc-is-lto; then
+ append-cflags $(test-flags-CC -ffat-lto-objects)
+ myeconfargs+=(
+ --with-lto
+ )
+ fi
+
+ if tc-is-cross-compiler ; then
+ # Hack to workaround get_libdir not being able to handle CBUILD, bug #794181
+ local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi)
+
+ # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
+ # propagated to sysconfig for built extensions
+ #
+ # -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway)
+ local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto"
+ local -x LDFLAGS_NODIST=${BUILD_LDFLAGS}
+ local -x CFLAGS= LDFLAGS=
+ local -x BUILD_CFLAGS="${CFLAGS_NODIST}"
+ local -x BUILD_LDFLAGS=${LDFLAGS_NODIST}
+
+ # We need to build our own Python on CBUILD first, and feed it in.
+ # bug #847910 and bug #864911.
+ local myeconfargs_cbuild=(
+ "${myeconfargs[@]}"
+
+ --libdir="${cbuild_libdir:2}"
+
+ # Avoid needing to load the right libpython.so.
+ --disable-shared
+
+ # As minimal as possible for the mini CBUILD Python
+ # we build just for cross.
+ --without-lto
+ --disable-optimizations
+ )
+
+ # Point the imminent CHOST build to the Python we just
+ # built for CBUILD.
+ export PATH="${WORKDIR}/${P}-${CBUILD}:${PATH}"
+
+ mkdir "${WORKDIR}"/${P}-${CBUILD} || die
+ pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die
+ # We disable _ctypes and _crypt for CBUILD because Python's setup.py can't handle locating
+ # libdir correctly for cross.
+ PYTHON_DISABLE_MODULES="${PYTHON_DISABLE_MODULES} _ctypes _crypt" \
+ ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}"
+
+ # Avoid as many dependencies as possible for the cross build.
+ cat >> Makefile <<-EOF || die
+ MODULE_NIS=disabled
+ MODULE__DBM=disabled
+ MODULE__GDBM=disabled
+ MODULE__DBM=disabled
+ MODULE__SQLITE3=disabled
+ MODULE__HASHLIB=disabled
+ MODULE__SSL=disabled
+ MODULE__CURSES=disabled
+ MODULE__CURSES_PANEL=disabled
+ MODULE_READLINE=disabled
+ MODULE__TKINTER=disabled
+ MODULE_PYEXPAT=disabled
+ MODULE_ZLIB=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 Python it was pointed to
+ # immediately.
+ PYTHON_DISABLE_MODULES="${PYTHON_DISABLE_MODULES} _ctypes _crypt" emake
+ popd &> /dev/null || die
+ fi
+
+ # 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=
+
+ # Fix implicit declarations on cross and prefix builds. Bug #674070.
+ if use ncurses; then
+ append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw
+ fi
+
+ hprefixify setup.py
+ 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
+
+ # 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
+
+ # also need to clear the flags explicitly here or they end up
+ # in _sysconfigdata*
+ emake CPPFLAGS= CFLAGS= LDFLAGS=
+
+ # 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
+
+ local test_opts=(
+ -u-network
+ -j "$(makeopts_jobs)"
+
+ # fails
+ -x test_concurrent_futures
+ -x test_gdb
+ )
+
+ if use sparc ; then
+ # bug #788022
+ test_opts+=(
+ -x test_multiprocessing_fork
+ -x test_multiprocessing_forkserver
+ )
+ fi
+
+ # workaround docutils breaking tests
+ cat > Lib/docutils.py <<-EOF || die
+ raise ImportError("Thou shalt not import!")
+ EOF
+
+ # bug 660358
+ local -x COLUMNS=80
+ local -x PYTHONDONTWRITEBYTECODE=
+
+ nonfatal emake -Onone test EXTRATESTOPTS="${test_opts[*]}" \
+ CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty
+ local ret=${?}
+
+ rm Lib/docutils.py || die
+
+ [[ ${ret} -eq 0 ]] || die "emake test failed"
+}
+
+src_install() {
+ local libdir=${ED}/usr/lib/python${PYVER}
+
+ emake DESTDIR="${D}" altinstall
+
+ # Remove static library
+ rm "${ED}"/usr/$(get_libdir)/libpython*.a || die
+
+ # 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,test/test_sqlite*} || die
+ fi
+ if ! use tk; then
+ rm -r "${ED}/usr/bin/idle${PYVER}" || die
+ rm -r "${libdir}/"{idlelib,tkinter,test/test_tk*} || die
+ fi
+
+ ln -s ../python/EXTERNALLY-MANAGED "${libdir}/EXTERNALLY-MANAGED" || die
+
+ 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
+}
diff --git a/dev-lang/python/python-3.8.6-r1.ebuild b/dev-lang/python/python-3.8.6-r1.ebuild
deleted file mode 100644
index 0b9af8b3a705..000000000000
--- a/dev-lang/python/python-3.8.6-r1.ebuild
+++ /dev/null
@@ -1,322 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="7"
-WANT_LIBTOOL="none"
-
-inherit autotools flag-o-matic multiprocessing pax-utils \
- python-utils-r1 toolchain-funcs
-
-MY_P="Python-${PV}"
-PYVER=$(ver_cut 1-2)
-PATCHSET="python-gentoo-patches-${PV}-r1"
-
-DESCRIPTION="An interpreted, interactive, object-oriented programming language"
-HOMEPAGE="https://www.python.org/"
-SRC_URI="https://www.python.org/ftp/python/${PV}/${MY_P}.tar.xz
- https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz"
-S="${WORKDIR}/${MY_P}"
-
-LICENSE="PSF-2"
-SLOT="${PYVER}"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv s390 sparc x86"
-IUSE="bluetooth build examples gdbm hardened ipv6 libressl +ncurses +readline sqlite +ssl test tk wininst +xml"
-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:=
- dev-libs/libffi:=
- sys-apps/util-linux:=
- >=sys-libs/zlib-1.1.3:=
- virtual/libcrypt:=
- virtual/libintl
- gdbm? ( sys-libs/gdbm:=[berkdb] )
- ncurses? ( >=sys-libs/ncurses-5.2:= )
- readline? ( >=sys-libs/readline-4.1:= )
- sqlite? ( >=dev-db/sqlite-3.3.8:3= )
- ssl? (
- !libressl? ( dev-libs/openssl:= )
- libressl? ( dev-libs/libressl:= )
- )
- tk? (
- >=dev-lang/tcl-8.0:=
- >=dev-lang/tk-8.0:=
- dev-tcltk/blt:=
- dev-tcltk/tix
- )
- xml? ( >=dev-libs/expat-2.1:= )"
-# bluetooth requires headers from bluez
-DEPEND="${RDEPEND}
- bluetooth? ( net-wireless/bluez )
- test? ( app-arch/xz-utils[extra-filters(+)] )
- virtual/pkgconfig
- !sys-devel/gcc[libffi(-)]"
-PDEPEND="app-eselect/eselect-python"
-RDEPEND+=" !build? ( app-misc/mime-types )"
-
-src_prepare() {
- # Ensure that internal copies of expat, libffi and zlib are not used.
- rm -fr Modules/expat || die
- rm -fr Modules/_ctypes/libffi* || die
- rm -fr Modules/zlib || die
-
- local PATCHES=(
- "${WORKDIR}/${PATCHSET}"
- )
-
- default
-
- sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" \
- setup.py || die "sed failed to replace @@GENTOO_LIBDIR@@"
-
- # force correct number of jobs
- # https://bugs.gentoo.org/737660
- local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")
- 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
- use bluetooth || export ac_cv_header_bluetooth_bluetooth_h=no
- use gdbm || disable+=" gdbm"
- use ncurses || disable+=" _curses _curses_panel"
- use readline || disable+=" readline"
- use sqlite || disable+=" _sqlite3"
- use ssl || export PYTHON_DISABLE_SSL="1"
- use tk || disable+=" _tkinter"
- use xml || disable+=" _elementtree pyexpat" # _elementtree uses pyexpat.
- export PYTHON_DISABLE_MODULES="${disable}"
-
- if ! use xml; then
- ewarn "You have configured Python without XML support."
- ewarn "This is NOT a recommended configuration as you"
- ewarn "may face problems parsing any XML documents."
- fi
-
- if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then
- einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}"
- fi
-
- if [[ "$(gcc-major-version)" -ge 4 ]]; then
- append-flags -fwrapv
- fi
-
- filter-flags -malign-double
-
- # https://bugs.gentoo.org/show_bug.cgi?id=50309
- if is-flagq -O3; then
- is-flagq -fstack-protector-all && replace-flags -O3 -O2
- use hardened && replace-flags -O3 -O2
- fi
-
- # 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.
- tc-export CXX
-
- # Set LDFLAGS so we link modules with -lpython3.2 correctly.
- # Needed on FreeBSD unless Python 3.2 is already installed.
- # Please query BSD team before removing this!
- append-ldflags "-L."
-
- # Fix implicit declarations on cross and prefix builds. Bug #674070.
- use ncurses && append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw
-
- local dbmliborder
- if use gdbm; then
- dbmliborder+="${dbmliborder:+:}gdbm"
- 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
- $(use_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
- )
-
- OPT="" econf "${myeconfargs[@]}"
-}
-
-src_compile() {
- # Ensure sed works as expected
- # https://bugs.gentoo.org/594768
- local -x LC_ALL=C
-
- emake CPPFLAGS= CFLAGS= LDFLAGS=
-
- # 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
-
- # Skip failing tests.
- local skipped_tests="gdb"
-
- for test in ${skipped_tests}; do
- mv "${S}"/Lib/test/test_${test}.py "${T}"
- done
-
- # bug 660358
- local -x COLUMNS=80
- local -x PYTHONDONTWRITEBYTECODE=
-
- local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")
-
- emake test EXTRATESTOPTS="-u-network -j${jobs}" \
- CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty
- local result=$?
-
- for test in ${skipped_tests}; do
- mv "${T}/test_${test}.py" "${S}"/Lib/test
- done
-
- elog "The following tests have been skipped:"
- for test in ${skipped_tests}; do
- elog "test_${test}.py"
- done
-
- elog "If you would like to run them, you may:"
- elog "cd '${EPREFIX}/usr/lib/python${PYVER}/test'"
- elog "and run the tests separately."
-
- if [[ ${result} -ne 0 ]]; then
- die "emake test failed"
- fi
-}
-
-src_install() {
- local libdir=${ED}/usr/lib/python${PYVER}
-
- emake DESTDIR="${D}" altinstall
-
- # Remove static library
- rm "${ED}"/usr/$(get_libdir)/libpython*.a || die
-
- sed \
- -e "s/\(CONFIGURE_LDFLAGS=\).*/\1/" \
- -e "s/\(PY_LDFLAGS=\).*/\1/" \
- -i "${libdir}/config-${PYVER}"*/Makefile || die "sed failed"
-
- # 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
-
- use sqlite || rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die
- use tk || rm -r "${ED}/usr/bin/idle${PYVER}" "${libdir}/"{idlelib,tkinter,test/test_tk*} || die
-
- use wininst || rm "${libdir}/distutils/command/"wininst-*.exe || die
-
- 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 "${S}"/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"
-
- local -x EPYTHON=python${PYVER}
- # if not using a cross-compiler, use the fresh binary
- if ! tc-is-cross-compiler; then
- local -x PYTHON=./python
- local -x LD_LIBRARY_PATH=${LD_LIBRARY_PATH+${LD_LIBRARY_PATH}:}${PWD}
- else
- local -x PYTHON=${EPREFIX}/usr/bin/${EPYTHON}
- fi
-
- echo "EPYTHON='${EPYTHON}'" > epython.py || die
- python_domodule epython.py
-
- # python-exec wrapping support
- local pymajor=${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
-}
diff --git a/dev-lang/python/python-3.8.7-r1.ebuild b/dev-lang/python/python-3.8.7-r1.ebuild
deleted file mode 100644
index becacef96767..000000000000
--- a/dev-lang/python/python-3.8.7-r1.ebuild
+++ /dev/null
@@ -1,336 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="7"
-WANT_LIBTOOL="none"
-
-inherit autotools flag-o-matic multiprocessing pax-utils \
- python-utils-r1 toolchain-funcs verify-sig
-
-MY_P="Python-${PV}"
-PYVER=$(ver_cut 1-2)
-PATCHSET="python-gentoo-patches-3.8.7-r1"
-
-DESCRIPTION="An interpreted, interactive, object-oriented programming language"
-HOMEPAGE="https://www.python.org/"
-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 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 sparc ~x86"
-IUSE="bluetooth build examples gdbm hardened ipv6 libressl +ncurses +readline sqlite +ssl test tk wininst +xml"
-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:=
- dev-libs/libffi:=
- sys-apps/util-linux:=
- >=sys-libs/zlib-1.1.3:=
- virtual/libcrypt:=
- virtual/libintl
- gdbm? ( sys-libs/gdbm:=[berkdb] )
- ncurses? ( >=sys-libs/ncurses-5.2:= )
- readline? ( >=sys-libs/readline-4.1:= )
- sqlite? ( >=dev-db/sqlite-3.3.8:3= )
- ssl? (
- !libressl? ( dev-libs/openssl:= )
- libressl? ( dev-libs/libressl:= )
- )
- tk? (
- >=dev-lang/tcl-8.0:=
- >=dev-lang/tk-8.0:=
- dev-tcltk/blt:=
- dev-tcltk/tix
- )
- xml? ( >=dev-libs/expat-2.1:= )"
-# bluetooth requires headers from bluez
-DEPEND="${RDEPEND}
- bluetooth? ( net-wireless/bluez )
- test? ( app-arch/xz-utils[extra-filters(+)] )"
-BDEPEND="
- virtual/pkgconfig
- verify-sig? ( app-crypt/openpgp-keys-python )
- !sys-devel/gcc[libffi(-)]"
-PDEPEND="app-eselect/eselect-python"
-RDEPEND+=" !build? ( app-misc/mime-types )"
-
-VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc
-
-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, libffi and zlib are not used.
- rm -fr Modules/expat || die
- rm -fr Modules/_ctypes/libffi* || die
- rm -fr Modules/zlib || die
-
- local PATCHES=(
- "${WORKDIR}/${PATCHSET}"
- )
-
- default
-
- sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" \
- setup.py || die "sed failed to replace @@GENTOO_LIBDIR@@"
-
- # force correct number of jobs
- # https://bugs.gentoo.org/737660
- local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")
- 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
- use bluetooth || export ac_cv_header_bluetooth_bluetooth_h=no
- use gdbm || disable+=" gdbm"
- use ncurses || disable+=" _curses _curses_panel"
- use readline || disable+=" readline"
- use sqlite || disable+=" _sqlite3"
- use ssl || export PYTHON_DISABLE_SSL="1"
- use tk || disable+=" _tkinter"
- use xml || disable+=" _elementtree pyexpat" # _elementtree uses pyexpat.
- export PYTHON_DISABLE_MODULES="${disable}"
-
- if ! use xml; then
- ewarn "You have configured Python without XML support."
- ewarn "This is NOT a recommended configuration as you"
- ewarn "may face problems parsing any XML documents."
- fi
-
- if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then
- einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}"
- fi
-
- if [[ "$(gcc-major-version)" -ge 4 ]]; then
- append-flags -fwrapv
- fi
-
- filter-flags -malign-double
-
- # https://bugs.gentoo.org/show_bug.cgi?id=50309
- if is-flagq -O3; then
- is-flagq -fstack-protector-all && replace-flags -O3 -O2
- use hardened && replace-flags -O3 -O2
- fi
-
- # 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.
- tc-export CXX
-
- # Set LDFLAGS so we link modules with -lpython3.2 correctly.
- # Needed on FreeBSD unless Python 3.2 is already installed.
- # Please query BSD team before removing this!
- append-ldflags "-L."
-
- # Fix implicit declarations on cross and prefix builds. Bug #674070.
- use ncurses && append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw
-
- local dbmliborder
- if use gdbm; then
- dbmliborder+="${dbmliborder:+:}gdbm"
- 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
- $(use_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
- )
-
- OPT="" econf "${myeconfargs[@]}"
-}
-
-src_compile() {
- # Ensure sed works as expected
- # https://bugs.gentoo.org/594768
- local -x LC_ALL=C
-
- emake CPPFLAGS= CFLAGS= LDFLAGS=
-
- # 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
-
- # Skip failing tests.
- local skipped_tests="gdb"
-
- for test in ${skipped_tests}; do
- mv "${S}"/Lib/test/test_${test}.py "${T}"
- done
-
- # bug 660358
- local -x COLUMNS=80
- local -x PYTHONDONTWRITEBYTECODE=
-
- local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")
-
- emake test EXTRATESTOPTS="-u-network -j${jobs}" \
- CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty
- local result=$?
-
- for test in ${skipped_tests}; do
- mv "${T}/test_${test}.py" "${S}"/Lib/test
- done
-
- elog "The following tests have been skipped:"
- for test in ${skipped_tests}; do
- elog "test_${test}.py"
- done
-
- elog "If you would like to run them, you may:"
- elog "cd '${EPREFIX}/usr/lib/python${PYVER}/test'"
- elog "and run the tests separately."
-
- if [[ ${result} -ne 0 ]]; then
- die "emake test failed"
- fi
-}
-
-src_install() {
- local libdir=${ED}/usr/lib/python${PYVER}
-
- emake DESTDIR="${D}" altinstall
-
- # Remove static library
- rm "${ED}"/usr/$(get_libdir)/libpython*.a || die
-
- sed \
- -e "s/\(CONFIGURE_LDFLAGS=\).*/\1/" \
- -e "s/\(PY_LDFLAGS=\).*/\1/" \
- -i "${libdir}/config-${PYVER}"*/Makefile || die "sed failed"
-
- # 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
-
- use sqlite || rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die
- use tk || rm -r "${ED}/usr/bin/idle${PYVER}" "${libdir}/"{idlelib,tkinter,test/test_tk*} || die
-
- use wininst || rm "${libdir}/distutils/command/"wininst-*.exe || die
-
- 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 "${S}"/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"
-
- local -x EPYTHON=python${PYVER}
- # if not using a cross-compiler, use the fresh binary
- if ! tc-is-cross-compiler; then
- local -x PYTHON=./python
- local -x LD_LIBRARY_PATH=${LD_LIBRARY_PATH+${LD_LIBRARY_PATH}:}${PWD}
- else
- local -x PYTHON=${EPREFIX}/usr/bin/${EPYTHON}
- fi
-
- echo "EPYTHON='${EPYTHON}'" > epython.py || die
- python_domodule epython.py
-
- # python-exec wrapping support
- local pymajor=${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
-}
diff --git a/dev-lang/python/python-3.9.0-r1.ebuild b/dev-lang/python/python-3.9.0-r1.ebuild
deleted file mode 100644
index 4a05618b1091..000000000000
--- a/dev-lang/python/python-3.9.0-r1.ebuild
+++ /dev/null
@@ -1,331 +0,0 @@
-# Copyright 1999-2021 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 \
- python-utils-r1 toolchain-funcs
-
-MY_P="Python-${PV/_/}"
-PYVER=$(ver_cut 1-2)
-PATCHSET="python-gentoo-patches-${PV}-r1"
-
-DESCRIPTION="An interpreted, interactive, object-oriented programming language"
-HOMEPAGE="https://www.python.org/"
-SRC_URI="https://www.python.org/ftp/python/${PV%_*}/${MY_P}.tar.xz
- https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz"
-S="${WORKDIR}/${MY_P}"
-
-LICENSE="PSF-2"
-SLOT="${PYVER}"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv s390 sparc x86"
-IUSE="bluetooth build examples gdbm hardened ipv6 libressl +ncurses +readline sqlite +ssl test tk wininst +xml"
-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:=
- dev-libs/libffi:=
- sys-apps/util-linux:=
- >=sys-libs/zlib-1.1.3:=
- virtual/libcrypt:=
- virtual/libintl
- gdbm? ( sys-libs/gdbm:=[berkdb] )
- ncurses? ( >=sys-libs/ncurses-5.2:= )
- readline? ( >=sys-libs/readline-4.1:= )
- sqlite? ( >=dev-db/sqlite-3.3.8:3= )
- ssl? (
- !libressl? ( dev-libs/openssl:= )
- libressl? ( dev-libs/libressl:= )
- )
- tk? (
- >=dev-lang/tcl-8.0:=
- >=dev-lang/tk-8.0:=
- dev-tcltk/blt:=
- dev-tcltk/tix
- )
- xml? ( >=dev-libs/expat-2.1:= )"
-# bluetooth requires headers from bluez
-DEPEND="${RDEPEND}
- bluetooth? ( net-wireless/bluez )
- test? ( app-arch/xz-utils[extra-filters(+)] )
- virtual/pkgconfig
- !sys-devel/gcc[libffi(-)]"
-PDEPEND="app-eselect/eselect-python"
-RDEPEND+=" !build? ( app-misc/mime-types )"
-
-# large file tests involve a 2.5G file being copied (duplicated)
-CHECKREQS_DISK_BUILD=5500M
-
-pkg_pretend() {
- use test && check-reqs_pkg_pretend
-}
-
-pkg_setup() {
- use test && check-reqs_pkg_setup
-}
-
-src_prepare() {
- # Ensure that internal copies of expat, libffi and zlib are not used.
- rm -fr Modules/expat || die
- rm -fr Modules/_ctypes/libffi* || die
- rm -fr Modules/zlib || die
-
- local PATCHES=(
- "${WORKDIR}/${PATCHSET}"
- )
-
- default
-
- sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" \
- setup.py || die "sed failed to replace @@GENTOO_LIBDIR@@"
-
- # force correct number of jobs
- # https://bugs.gentoo.org/737660
- local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")
- 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
- use bluetooth || export ac_cv_header_bluetooth_bluetooth_h=no
- use gdbm || disable+=" gdbm"
- use ncurses || disable+=" _curses _curses_panel"
- use readline || disable+=" readline"
- use sqlite || disable+=" _sqlite3"
- use ssl || export PYTHON_DISABLE_SSL="1"
- use tk || disable+=" _tkinter"
- use xml || disable+=" _elementtree pyexpat" # _elementtree uses pyexpat.
- export PYTHON_DISABLE_MODULES="${disable}"
-
- if ! use xml; then
- ewarn "You have configured Python without XML support."
- ewarn "This is NOT a recommended configuration as you"
- ewarn "may face problems parsing any XML documents."
- fi
-
- if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then
- einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}"
- fi
-
- if [[ "$(gcc-major-version)" -ge 4 ]]; then
- append-flags -fwrapv
- fi
-
- filter-flags -malign-double
-
- # https://bugs.gentoo.org/show_bug.cgi?id=50309
- if is-flagq -O3; then
- is-flagq -fstack-protector-all && replace-flags -O3 -O2
- use hardened && replace-flags -O3 -O2
- fi
-
- # 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.
- tc-export CXX
-
- # Set LDFLAGS so we link modules with -lpython3.2 correctly.
- # Needed on FreeBSD unless Python 3.2 is already installed.
- # Please query BSD team before removing this!
- append-ldflags "-L."
-
- # Fix implicit declarations on cross and prefix builds. Bug #674070.
- use ncurses && append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw
-
- local dbmliborder
- if use gdbm; then
- dbmliborder+="${dbmliborder:+:}gdbm"
- 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
- $(use_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
- )
-
- OPT="" econf "${myeconfargs[@]}"
-}
-
-src_compile() {
- # Ensure sed works as expected
- # https://bugs.gentoo.org/594768
- local -x LC_ALL=C
-
- emake CPPFLAGS= CFLAGS= LDFLAGS=
-
- # 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
-
- # Skip failing tests.
- local skipped_tests="gdb"
-
- for test in ${skipped_tests}; do
- mv "${S}"/Lib/test/test_${test}.py "${T}"
- done
-
- # bug 660358
- local -x COLUMNS=80
- local -x PYTHONDONTWRITEBYTECODE=
-
- local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")
-
- emake test EXTRATESTOPTS="-u-network -j${jobs}" \
- CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty
- local result=$?
-
- for test in ${skipped_tests}; do
- mv "${T}/test_${test}.py" "${S}"/Lib/test
- done
-
- elog "The following tests have been skipped:"
- for test in ${skipped_tests}; do
- elog "test_${test}.py"
- done
-
- elog "If you would like to run them, you may:"
- elog "cd '${EPREFIX}/usr/lib/python${PYVER}/test'"
- elog "and run the tests separately."
-
- if [[ ${result} -ne 0 ]]; then
- die "emake test failed"
- fi
-}
-
-src_install() {
- local libdir=${ED}/usr/lib/python${PYVER}
-
- emake DESTDIR="${D}" altinstall
-
- # Remove static library
- rm "${ED}"/usr/$(get_libdir)/libpython*.a || die
-
- sed \
- -e "s/\(CONFIGURE_LDFLAGS=\).*/\1/" \
- -e "s/\(PY_LDFLAGS=\).*/\1/" \
- -i "${libdir}/config-${PYVER}"*/Makefile || die "sed failed"
-
- # 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
-
- use sqlite || rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die
- use tk || rm -r "${ED}/usr/bin/idle${PYVER}" "${libdir}/"{idlelib,tkinter,test/test_tk*} || die
-
- 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 "${S}"/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"
-
- local -x EPYTHON=python${PYVER}
- # if not using a cross-compiler, use the fresh binary
- if ! tc-is-cross-compiler; then
- local -x PYTHON=./python
- local -x LD_LIBRARY_PATH=${LD_LIBRARY_PATH+${LD_LIBRARY_PATH}:}${PWD}
- else
- local -x PYTHON=${EPREFIX}/usr/bin/${EPYTHON}
- fi
-
- echo "EPYTHON='${EPYTHON}'" > epython.py || die
- python_domodule epython.py
-
- # python-exec wrapping support
- local pymajor=${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
-}
diff --git a/dev-lang/python/python-3.9.1-r1.ebuild b/dev-lang/python/python-3.9.1-r1.ebuild
deleted file mode 100644
index 834dc6945507..000000000000
--- a/dev-lang/python/python-3.9.1-r1.ebuild
+++ /dev/null
@@ -1,345 +0,0 @@
-# Copyright 1999-2021 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 \
- python-utils-r1 toolchain-funcs verify-sig
-
-MY_P="Python-${PV/_/}"
-PYVER=$(ver_cut 1-2)
-PATCHSET="python-gentoo-patches-3.9.1-r1"
-
-DESCRIPTION="An interpreted, interactive, object-oriented programming language"
-HOMEPAGE="https://www.python.org/"
-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 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 sparc ~x86"
-IUSE="bluetooth build examples gdbm hardened ipv6 libressl +ncurses +readline sqlite +ssl test tk wininst +xml"
-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:=
- dev-libs/libffi:=
- sys-apps/util-linux:=
- >=sys-libs/zlib-1.1.3:=
- virtual/libcrypt:=
- virtual/libintl
- gdbm? ( sys-libs/gdbm:=[berkdb] )
- ncurses? ( >=sys-libs/ncurses-5.2:= )
- readline? ( >=sys-libs/readline-4.1:= )
- sqlite? ( >=dev-db/sqlite-3.3.8:3= )
- ssl? (
- !libressl? ( dev-libs/openssl:= )
- libressl? ( dev-libs/libressl:= )
- )
- tk? (
- >=dev-lang/tcl-8.0:=
- >=dev-lang/tk-8.0:=
- dev-tcltk/blt:=
- dev-tcltk/tix
- )
- xml? ( >=dev-libs/expat-2.1:= )"
-# bluetooth requires headers from bluez
-DEPEND="${RDEPEND}
- bluetooth? ( net-wireless/bluez )
- test? ( app-arch/xz-utils[extra-filters(+)] )"
-BDEPEND="
- virtual/pkgconfig
- verify-sig? ( app-crypt/openpgp-keys-python )
- !sys-devel/gcc[libffi(-)]"
-RDEPEND+=" !build? ( app-misc/mime-types )"
-PDEPEND="app-eselect/eselect-python"
-
-VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc
-
-# large file tests involve a 2.5G file being copied (duplicated)
-CHECKREQS_DISK_BUILD=5500M
-
-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, libffi and zlib are not used.
- rm -fr Modules/expat || die
- rm -fr Modules/_ctypes/libffi* || die
- rm -fr Modules/zlib || die
-
- local PATCHES=(
- "${WORKDIR}/${PATCHSET}"
- )
-
- default
-
- sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" \
- setup.py || die "sed failed to replace @@GENTOO_LIBDIR@@"
-
- # force correct number of jobs
- # https://bugs.gentoo.org/737660
- local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")
- 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
- use bluetooth || export ac_cv_header_bluetooth_bluetooth_h=no
- use gdbm || disable+=" gdbm"
- use ncurses || disable+=" _curses _curses_panel"
- use readline || disable+=" readline"
- use sqlite || disable+=" _sqlite3"
- use ssl || export PYTHON_DISABLE_SSL="1"
- use tk || disable+=" _tkinter"
- use xml || disable+=" _elementtree pyexpat" # _elementtree uses pyexpat.
- export PYTHON_DISABLE_MODULES="${disable}"
-
- if ! use xml; then
- ewarn "You have configured Python without XML support."
- ewarn "This is NOT a recommended configuration as you"
- ewarn "may face problems parsing any XML documents."
- fi
-
- if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then
- einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}"
- fi
-
- if [[ "$(gcc-major-version)" -ge 4 ]]; then
- append-flags -fwrapv
- fi
-
- filter-flags -malign-double
-
- # https://bugs.gentoo.org/show_bug.cgi?id=50309
- if is-flagq -O3; then
- is-flagq -fstack-protector-all && replace-flags -O3 -O2
- use hardened && replace-flags -O3 -O2
- fi
-
- # 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.
- tc-export CXX
-
- # Set LDFLAGS so we link modules with -lpython3.2 correctly.
- # Needed on FreeBSD unless Python 3.2 is already installed.
- # Please query BSD team before removing this!
- append-ldflags "-L."
-
- # Fix implicit declarations on cross and prefix builds. Bug #674070.
- use ncurses && append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw
-
- local dbmliborder
- if use gdbm; then
- dbmliborder+="${dbmliborder:+:}gdbm"
- 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
- $(use_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
- )
-
- OPT="" econf "${myeconfargs[@]}"
-}
-
-src_compile() {
- # Ensure sed works as expected
- # https://bugs.gentoo.org/594768
- local -x LC_ALL=C
-
- emake CPPFLAGS= CFLAGS= LDFLAGS=
-
- # 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
-
- # Skip failing tests.
- local skipped_tests="gdb"
-
- for test in ${skipped_tests}; do
- mv "${S}"/Lib/test/test_${test}.py "${T}"
- done
-
- # bug 660358
- local -x COLUMNS=80
- local -x PYTHONDONTWRITEBYTECODE=
-
- local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")
-
- emake test EXTRATESTOPTS="-u-network -j${jobs}" \
- CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty
- local result=$?
-
- for test in ${skipped_tests}; do
- mv "${T}/test_${test}.py" "${S}"/Lib/test
- done
-
- elog "The following tests have been skipped:"
- for test in ${skipped_tests}; do
- elog "test_${test}.py"
- done
-
- elog "If you would like to run them, you may:"
- elog "cd '${EPREFIX}/usr/lib/python${PYVER}/test'"
- elog "and run the tests separately."
-
- if [[ ${result} -ne 0 ]]; then
- die "emake test failed"
- fi
-}
-
-src_install() {
- local libdir=${ED}/usr/lib/python${PYVER}
-
- emake DESTDIR="${D}" altinstall
-
- # Remove static library
- rm "${ED}"/usr/$(get_libdir)/libpython*.a || die
-
- sed \
- -e "s/\(CONFIGURE_LDFLAGS=\).*/\1/" \
- -e "s/\(PY_LDFLAGS=\).*/\1/" \
- -i "${libdir}/config-${PYVER}"*/Makefile || die "sed failed"
-
- # 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
-
- use sqlite || rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die
- use tk || rm -r "${ED}/usr/bin/idle${PYVER}" "${libdir}/"{idlelib,tkinter,test/test_tk*} || die
-
- 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 "${S}"/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"
-
- local -x EPYTHON=python${PYVER}
- # if not using a cross-compiler, use the fresh binary
- if ! tc-is-cross-compiler; then
- local -x PYTHON=./python
- local -x LD_LIBRARY_PATH=${LD_LIBRARY_PATH+${LD_LIBRARY_PATH}:}${PWD}
- else
- local -x PYTHON=${EPREFIX}/usr/bin/${EPYTHON}
- fi
-
- echo "EPYTHON='${EPYTHON}'" > epython.py || die
- python_domodule epython.py
-
- # python-exec wrapping support
- local pymajor=${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
-}
diff --git a/dev-lang/python/python-3.9.19_p2.ebuild b/dev-lang/python/python-3.9.19_p2.ebuild
new file mode 100644
index 000000000000..2fac75e39220
--- /dev/null
+++ b/dev-lang/python/python-3.9.19_p2.ebuild
@@ -0,0 +1,490 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="8"
+WANT_LIBTOOL="none"
+
+inherit autotools check-reqs flag-o-matic multiprocessing pax-utils
+inherit prefix 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 debug +ensurepip examples gdbm +ncurses pgo
+ +readline +sqlite +ssl test tk valgrind
+"
+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:=
+ >=dev-libs/expat-2.1:=
+ dev-libs/libffi:=
+ dev-python/gentoo-common
+ >=sys-libs/zlib-1.1.3:=
+ virtual/libcrypt:=
+ virtual/libintl
+ ensurepip? ( dev-python/ensurepip-wheels )
+ gdbm? ( sys-libs/gdbm:=[berkdb] )
+ kernel_linux? ( sys-apps/util-linux:= )
+ ncurses? ( >=sys-libs/ncurses-5.2:= )
+ readline? ( >=sys-libs/readline-4.1:= )
+ 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
+ )
+"
+# bluetooth requires headers from bluez
+DEPEND="
+ ${RDEPEND}
+ bluetooth? ( net-wireless/bluez )
+ test? ( app-arch/xz-utils )
+ valgrind? ( dev-debug/valgrind )
+"
+# autoconf-archive needed to eautoreconf
+BDEPEND="
+ dev-build/autoconf-archive
+ app-alternatives/awk
+ virtual/pkgconfig
+ verify-sig? ( sec-keys/openpgp-keys-python )
+"
+RDEPEND+="
+ !build? ( app-misc/mime-types )
+"
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/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}
+# false positives -- functions specific to *BSD
+QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags )
+
+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() {
+ # disable automagic bluetooth headers detection
+ if ! use bluetooth; then
+ local -x ac_cv_header_bluetooth_bluetooth_h=no
+ fi
+ local disable
+ use gdbm || disable+=" gdbm"
+ use ncurses || disable+=" _curses _curses_panel"
+ use readline || disable+=" readline"
+ use sqlite || disable+=" _sqlite3"
+ use ssl || export PYTHON_DISABLE_SSL="1"
+ use tk || disable+=" _tkinter"
+ export PYTHON_DISABLE_MODULES="${disable}"
+
+ if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then
+ einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}"
+ fi
+
+ append-flags -fwrapv
+ filter-flags -malign-double
+
+ # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile.
+ # PKG_CONFIG needed for cross.
+ tc-export CXX PKG_CONFIG
+
+ 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
+ -x test_dtrace
+ -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_concurrent_futures
+ -x test_httpservers
+ -x test_logging
+ -x test_multiprocessing_fork
+ -x test_socket
+ -x test_xmlrpc
+
+ # Hangs (actually runs indefinitely executing itself w/ many cpython builds)
+ # bug #900429
+ -x test_tools
+ )
+
+ 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
+ --enable-ipv6
+ --infodir='${prefix}/share/info'
+ --mandir='${prefix}/share/man'
+ --with-computed-gotos
+ --with-dbmliborder="${dbmliborder}"
+ --with-libc=
+ --enable-loadable-sqlite-extensions
+ --without-ensurepip
+ --without-lto
+ --with-system-expat
+ --with-system-ffi
+ --with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip
+
+ $(use_with debug assertions)
+ $(use_enable pgo optimizations)
+ $(use_with valgrind)
+ )
+
+ # disable implicit optimization/debugging flags
+ local -x OPT=
+
+ # https://bugs.gentoo.org/700012
+ if tc-is-lto; then
+ append-cflags $(test-flags-CC -ffat-lto-objects)
+ myeconfargs+=(
+ --with-lto
+ )
+ fi
+
+ if tc-is-cross-compiler ; then
+ # Hack to workaround get_libdir not being able to handle CBUILD, bug #794181
+ local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi)
+
+ # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
+ # propagated to sysconfig for built extensions
+ #
+ # -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway)
+ local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto"
+ local -x LDFLAGS_NODIST=${BUILD_LDFLAGS}
+ local -x CFLAGS= LDFLAGS=
+ local -x BUILD_CFLAGS="${CFLAGS_NODIST}"
+ local -x BUILD_LDFLAGS=${LDFLAGS_NODIST}
+
+ # We need to build our own Python on CBUILD first, and feed it in.
+ # bug #847910 and bug #864911.
+ local myeconfargs_cbuild=(
+ "${myeconfargs[@]}"
+
+ --libdir="${cbuild_libdir:2}"
+
+ # Avoid needing to load the right libpython.so.
+ --disable-shared
+
+ # As minimal as possible for the mini CBUILD Python
+ # we build just for cross.
+ --without-lto
+ --disable-optimizations
+ )
+
+ # Point the imminent CHOST build to the Python we just
+ # built for CBUILD.
+ export PATH="${WORKDIR}/${P}-${CBUILD}:${PATH}"
+
+ mkdir "${WORKDIR}"/${P}-${CBUILD} || die
+ pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die
+ # We disable _ctypes and _crypt for CBUILD because Python's setup.py can't handle locating
+ # libdir correctly for cross.
+ PYTHON_DISABLE_MODULES="${PYTHON_DISABLE_MODULES} _ctypes _crypt" \
+ ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}"
+
+ # Avoid as many dependencies as possible for the cross build.
+ cat >> Makefile <<-EOF || die
+ MODULE_NIS=disabled
+ MODULE__DBM=disabled
+ MODULE__GDBM=disabled
+ MODULE__DBM=disabled
+ MODULE__SQLITE3=disabled
+ MODULE__HASHLIB=disabled
+ MODULE__SSL=disabled
+ MODULE__CURSES=disabled
+ MODULE__CURSES_PANEL=disabled
+ MODULE_READLINE=disabled
+ MODULE__TKINTER=disabled
+ MODULE_PYEXPAT=disabled
+ MODULE_ZLIB=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 Python it was pointed to
+ # immediately.
+ PYTHON_DISABLE_MODULES="${PYTHON_DISABLE_MODULES} _ctypes _crypt" emake
+ popd &> /dev/null || die
+ fi
+
+ # 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=
+
+ # Fix implicit declarations on cross and prefix builds. Bug #674070.
+ if use ncurses; then
+ append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw
+ fi
+
+ hprefixify setup.py
+ 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
+
+ # 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
+
+ # 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/python${PYVER}/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
+
+ local test_opts=(
+ -u-network
+ -j "$(makeopts_jobs)"
+
+ # fails
+ -x test_concurrent_futures
+ -x test_gdb
+ )
+
+ if use sparc ; then
+ # bug #788022
+ test_opts+=(
+ -x test_multiprocessing_fork
+ -x test_multiprocessing_forkserver
+ )
+ fi
+
+ # workaround docutils breaking tests
+ cat > Lib/docutils.py <<-EOF || die
+ raise ImportError("Thou shalt not import!")
+ EOF
+
+ # bug 660358
+ local -x COLUMNS=80
+ local -x PYTHONDONTWRITEBYTECODE=
+
+ nonfatal emake -Onone test EXTRATESTOPTS="${test_opts[*]}" \
+ CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty
+ local ret=${?}
+
+ rm Lib/docutils.py || die
+
+ [[ ${ret} -eq 0 ]] || die "emake test failed"
+}
+
+src_install() {
+ local libdir=${ED}/usr/lib/python${PYVER}
+
+ emake DESTDIR="${D}" altinstall
+
+ # Remove static library
+ rm "${ED}"/usr/$(get_libdir)/libpython*.a || die
+
+ # 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,test/test_sqlite*} || die
+ fi
+ if ! use tk; then
+ rm -r "${ED}/usr/bin/idle${PYVER}" || die
+ rm -r "${libdir}/"{idlelib,tkinter,test/test_tk*} || die
+ fi
+
+ ln -s ../python/EXTERNALLY-MANAGED "${libdir}/EXTERNALLY-MANAGED" || die
+
+ 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
+}
diff --git a/dev-lang/qore/Manifest b/dev-lang/qore/Manifest
new file mode 100644
index 000000000000..57a7cef0bdf8
--- /dev/null
+++ b/dev-lang/qore/Manifest
@@ -0,0 +1 @@
+DIST qore-1.19.2.tar.gz 3937953 BLAKE2B 136fd456dc6f262c3c1237448945c7d79b6c48a31c63e5213c7f03a695cda40d91605fc5f8f7887354ae47741342233228107ee327c192b449665fdec0664e62 SHA512 b79ecd1ed9ee934039e143711941a8317e02220403c934865632b37f030797520f0db434ef517e2d813f35a37d966f7c5a745202969fcee32494c4972f503fb1
diff --git a/dev-lang/qore/metadata.xml b/dev-lang/qore/metadata.xml
new file mode 100644
index 000000000000..f623d113a866
--- /dev/null
+++ b/dev-lang/qore/metadata.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+
+<pkgmetadata>
+ <maintainer type="person">
+ <email>xgqt@gentoo.org</email>
+ <name>Maciej Barć</name>
+ </maintainer>
+ <longdescription>
+ The Qore programming language is a powerful, thread-capable, embeddable
+ weakly-typed language with optional strong typing and procedural and
+ object-oriented features designed for anything from quick scripting to
+ complex multithreaded, network-aware application development to embedded
+ application scripting. Qore was initially designed to facilitate the rapid
+ implementation of sophisticated interfaces in embedded code in an
+ enterprise environment, and has since grown into a general-purpose language
+ as well.
+ </longdescription>
+ <upstream>
+ <bugs-to>https://github.com/qorelanguage/qore/issues</bugs-to>
+ <remote-id type="github">qorelanguage/qore</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-lang/qore/qore-1.19.2.ebuild b/dev-lang/qore/qore-1.19.2.ebuild
new file mode 100644
index 000000000000..bbc5f0d4f4f1
--- /dev/null
+++ b/dev-lang/qore/qore-1.19.2.ebuild
@@ -0,0 +1,76 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+DESCRIPTION="Qore, the embeddable multithreaded scripting language"
+HOMEPAGE="http://qore.org/
+ https://github.com/qorelanguage/qore/"
+
+if [[ "${PV}" == *9999* ]] ; then
+ inherit git-r3
+
+ EGIT_REPO_URI="https://github.com/qorelanguage/${PN}.git"
+else
+ SRC_URI="https://github.com/qorelanguage/${PN}/archive/release-${PV}.tar.gz
+ -> ${P}.tar.gz"
+ S="${WORKDIR}/${PN}-release-${PV}"
+
+ KEYWORDS="amd64 ~x86"
+fi
+
+LICENSE="GPL-2+ LGPL-2.1+ MIT"
+SLOT="0"
+IUSE="debug"
+
+RDEPEND="
+ app-arch/bzip2:=
+ dev-libs/libpcre:=
+ dev-libs/mpfr:=
+ dev-libs/openssl:=
+ sys-libs/zlib:=
+"
+DEPEND="
+ ${RDEPEND}
+"
+BDEPEND="
+ sys-devel/bison
+ sys-devel/flex
+"
+
+src_prepare() {
+ default
+
+ eautoreconf
+}
+
+src_configure() {
+ # Needs "bison" and "flex" exactly.
+ unset LEX
+ unset YACC
+
+ local -a myconf=(
+ --disable-optimization
+ --disable-profile
+ --disable-static-bz2
+ --disable-static-common
+ --disable-static-openssl
+ --disable-static-pcre
+ --disable-static-zlib
+ $(use_enable debug)
+ )
+ econf "${myconf[@]}"
+}
+
+src_test() {
+ PATH="${S}:${PATH}" emake check
+}
+
+src_install() {
+ default
+
+ find "${ED}" -type f -name "*.la" -delete ||
+ die "failed to remove libtool files without corresponding static libraries"
+}
diff --git a/dev-lang/qu-prolog/Manifest b/dev-lang/qu-prolog/Manifest
index 6c18791ba650..0a7cf61496ad 100644
--- a/dev-lang/qu-prolog/Manifest
+++ b/dev-lang/qu-prolog/Manifest
@@ -1 +1,2 @@
DIST qp10.6.tar.gz 1671349 BLAKE2B 189ddd733a0bbf939387de60ec76e8e41a430af5f4684a9a3b8cc3effa4e402cfd4471c955f4d626d2de8cf14eb93c2977540ad209d06ce9b562325a4b984fea SHA512 425b35c758ba86cc14a1faf5c19f2c091142be6c42261323dc6f551efd6c80f7223584cd2be239748539eaf25308f777d95fd5bfdc65b33ca3245377e1766299
+DIST qp10.7.tar.gz 1857589 BLAKE2B 986f0d8744d5b0a3974191d154a2ca0efa97f6c02483d975b4bb43bd7ae44d9d4233f6bffc1947d03ac3db9c0181953254e66bc62d55add6b0debbed1ad21de6 SHA512 305c89710e02167bb37e999b5af182b9dbca710d32c79149782a90f29b2e80f6a5462e9fb22153e770cef7484c5181bde31f1fe680b786f0f253ced13a3df830
diff --git a/dev-lang/qu-prolog/files/qu-prolog-10.x-compiler-flags.patch b/dev-lang/qu-prolog/files/qu-prolog-10.x-compiler-flags.patch
new file mode 100644
index 000000000000..3d07947a4977
--- /dev/null
+++ b/dev-lang/qu-prolog/files/qu-prolog-10.x-compiler-flags.patch
@@ -0,0 +1,18 @@
+--- qp10.6.orig/configure.in 2020-06-24 23:37:02.000000000 -0000
++++ qp10.6/configure.in 2021-05-15 16:36:32.504585122 -0000
+@@ -228,9 +228,12 @@
+ #-----------------------------------------------------------------------------
+ dnl Check for -fno-strict-aliasing
+ AC_MSG_CHECKING([for -fno-strict-aliasing])
+-echo "int i;" > aliasing_test.cc
+-qp_alias=[`gcc -fno-strict-aliasing -c aliasing_test.cc`]
+-rm aliasing_test.*
++ac_saved_cflags=$[]_AC_LANG_PREFIX[]FLAGS
++_AC_LANG_PREFIX[]FLAGS="-Werror -fno-strict-aliasing"
++AC_COMPILE_IFELSE([AC_LANG_SOURCE([[int main(void) { return 0; }]])],
++ [qp_alias=""],
++ [qp_alias="not-found"])
++_AC_LANG_PREFIX[]FLAGS="$ac_saved_cflags"
+ if test -n "$qp_alias"; then
+ AC_MSG_RESULT(not found)
+ GCC_ALIAS_FLAG=
diff --git a/dev-lang/qu-prolog/files/qu-prolog-10.x-qa-compiler-flags.patch b/dev-lang/qu-prolog/files/qu-prolog-10.x-qa-compiler-flags.patch
new file mode 100644
index 000000000000..c6dbaca842f0
--- /dev/null
+++ b/dev-lang/qu-prolog/files/qu-prolog-10.x-qa-compiler-flags.patch
@@ -0,0 +1,22 @@
+--- qp10.7.orig/src/Makefile.in 2020-06-24 23:37:02.000000000 -0000
++++ qp10.7/src/Makefile.in 2021-06-26 08:07:51.916841713 -0000
+@@ -41,7 +41,7 @@
+ #export DEBUGGING=
+
+ export CXXFLAGS = -std=c++11 @GCC_ALIAS_FLAG@ -Wall -D_GNU_SOURCE=1 $(OPTIMISATION) @DEBUGGING@ @GCCINCLUDES@ -Wno-uninitialized `pkg-config --cflags libpcre2-8`
+-export QACXXFLAGS = -Wall -D_GNU_SOURCE=1 @DEBUGGING@ @GCCINCLUDES@ -Wno-uninitialized
++export QACXXFLAGS = -Wall -D_GNU_SOURCE=1 $(OPTIMISATION) @DEBUGGING@ @GCCINCLUDES@ -Wno-uninitialized
+
+ .PHONY: all
+ all: commands
+--- qp10.7.orig/src/Makefile.ipc.in 2020-06-24 23:37:02.000000000 -0000
++++ qp10.7/src/Makefile.ipc.in 2021-06-26 08:14:01.700826247 -0000
+@@ -20,7 +20,7 @@
+
+
+ pedro_token.o : pedro_token.c
+- $(CXX) -fno-strict-aliasing -Wall -D_GNU_SOURCE=1 -O2 -DNDEBUG -Wno-uninitialized -c -o pedro_token.o pedro_token.c
++ $(CXX) $(CXXFLAGS) -c -o pedro_token.o pedro_token.c
+
+ pedro_token.c: pedro_token.l
+ flex -opedro_token.c pedro_token.l
diff --git a/dev-lang/qu-prolog/metadata.xml b/dev-lang/qu-prolog/metadata.xml
index 8f04a5fdaa28..e5e35855b65a 100644
--- a/dev-lang/qu-prolog/metadata.xml
+++ b/dev-lang/qu-prolog/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>prolog@gentoo.org</email>
diff --git a/dev-lang/qu-prolog/qu-prolog-10.6.ebuild b/dev-lang/qu-prolog/qu-prolog-10.6.ebuild
index 391648077ffb..cc10e9da950d 100644
--- a/dev-lang/qu-prolog/qu-prolog-10.6.ebuild
+++ b/dev-lang/qu-prolog/qu-prolog-10.6.ebuild
@@ -1,9 +1,11 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
-inherit autotools eutils multilib qmake-utils
+PYTHON_COMPAT=( python3_{9..11} )
+
+inherit autotools multilib python-any-r1 qmake-utils
MY_P=qp${PV}
@@ -26,15 +28,19 @@ RDEPEND="
pedro? ( net-misc/pedro )
readline? ( app-misc/rlwrap )"
DEPEND="${RDEPEND}
+ ${PYTHON_DEPS}
dev-lang/perl"
S="${WORKDIR}"/${MY_P}
src_prepare() {
eapply "${FILESDIR}"/${PN}-10.x-qt5.patch
+ eapply "${FILESDIR}"/${PN}-10.x-compiler-flags.patch
eapply_user
eautoconf
+
+ python_fix_shebang "${S}"/bin/qc.in
}
src_configure() {
diff --git a/dev-lang/qu-prolog/qu-prolog-10.7.ebuild b/dev-lang/qu-prolog/qu-prolog-10.7.ebuild
new file mode 100644
index 000000000000..9a5c4599174f
--- /dev/null
+++ b/dev-lang/qu-prolog/qu-prolog-10.7.ebuild
@@ -0,0 +1,107 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{9..11} )
+
+inherit autotools python-any-r1 qmake-utils
+
+MY_P=qp${PV}
+
+DESCRIPTION="Extended Prolog supporting quantifiers, object-variables and substitutions"
+HOMEPAGE="http://staff.itee.uq.edu.au/pjr/HomePages/QuPrologHome.html"
+SRC_URI="http://staff.itee.uq.edu.au/pjr/HomePages/QPFiles/${MY_P}.tar.gz"
+
+LICENSE="Apache-2.0 GPL-2+"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE="debug doc examples pcre pedro qt5 readline threads"
+
+RDEPEND="
+ !dev-util/rej
+ qt5? (
+ dev-qt/qtwidgets:5
+ dev-qt/qtgui:5
+ )
+ pcre? ( dev-libs/libpcre2 )
+ pedro? ( net-misc/pedro )
+ readline? ( app-misc/rlwrap )"
+DEPEND="${RDEPEND}
+ ${PYTHON_DEPS}
+ dev-lang/perl"
+
+S="${WORKDIR}"/${MY_P}
+
+src_prepare() {
+ eapply "${FILESDIR}"/${PN}-10.x-qt5.patch
+ eapply "${FILESDIR}"/${PN}-10.x-compiler-flags.patch
+ eapply "${FILESDIR}"/${PN}-10.x-qa-compiler-flags.patch
+ eapply_user
+
+ mv configure.in configure.ac || die
+ eautoconf
+
+ python_fix_shebang "${S}"/bin/qc.in
+}
+
+src_configure() {
+ econf \
+ --libdir=/usr/$(get_libdir) \
+ $(use_enable debug) \
+ $(use_enable threads multiple-threads)
+
+ if use qt5; then
+ cd "${S}"/src/xqp || die
+ eqmake5 xqp.pro
+ fi
+}
+
+src_compile() {
+ emake OPTIMISATION="${CXXFLAGS}"
+
+ if use qt5; then
+ cd "${S}"/src/xqp || die
+ emake
+ fi
+}
+
+src_install() {
+ sed \
+ -e "s|${S}|/usr/$(get_libdir)/qu-prolog|g" \
+ -i bin/qc bin/qc1.qup bin/qecat bin/qg bin/qp || die
+
+ dobin bin/{qc,qecat,qp,kq}
+
+ use qt5 && dobin src/xqp/xqp
+
+ into /usr/$(get_libdir)/${PN}
+ dobin bin/{qa,qc1.qup,qdeal,qem,qg,ql,qppp}
+
+ insinto /usr/$(get_libdir)/${PN}/bin
+ doins bin/rl_commands
+ doins bin/{qc1.qup,qecat,qg,qp}.qx
+
+ insinto /usr/$(get_libdir)/${PN}/library
+ doins prolog/library/*.qo
+
+ insinto /usr/$(get_libdir)/${PN}/compiler
+ doins prolog/compiler/*.qo
+
+ doman doc/man/man1/*.1
+
+ dodoc README
+
+ if use doc ; then
+ docinto reference-manual
+ dodoc doc/manual/*.html
+ docinto user-guide
+ dodoc doc/user/main.pdf
+ fi
+
+ if use examples ; then
+ docinto examples
+ newdoc examples/README README.examples
+ dodoc examples/*.ql
+ fi
+}
diff --git a/dev-lang/rakudo/Manifest b/dev-lang/rakudo/Manifest
index eab66d6906aa..54c2020b46b3 100644
--- a/dev-lang/rakudo/Manifest
+++ b/dev-lang/rakudo/Manifest
@@ -1,8 +1,2 @@
-DIST rakudo-2020.05.1.tar.gz 4802231 BLAKE2B ead9db815bb29d78f4a92157ff65e43c28f19e52e19f3972783b2a8d6c1814576c30d5b612e12f1500a7ae436c66b70d9774aa69f2ea421cc4382341cbd40498 SHA512 20d0818fc9f13693f098c41799cceb39e21442ac652993981fcab1fc1c7158058b42746f3ca3b145938fb6adb03f045f4784e77bf11da672c5908d0a5a36975f
-DIST rakudo-2020.06.tar.gz 4828268 BLAKE2B 5be85b3379f8f859ccff860cfbb5cbab23befd3f25175ae300acf414477f73ef9c2da8ea66a4516339a6dcddbef79d18ee3789e009619bdde44eff6a69cb765c SHA512 2eb6f4eecb2b8fe2cf94ef0309baf4f91cd4cdc7adb428e1023e5b84d804e34a5249448915b40d8120afe21dfb5bb1cb65c128d2b2f1afa3d98d84c97c84caea
-DIST rakudo-2020.07.tar.gz 4729727 BLAKE2B 131d4aaee21c7e38fb8f2c3091336597a4cb583be648979f41b6c025e65eb1f17aef81117d5bbddc4e7283ebb3af083443c4710532979a87c89caf2387126266 SHA512 05da50ed201054718136ae6ae3867c8cc54720a4e62e34867d082d9ac7d74a190c04b8a60f29b264273e641c31b9ee839d6189d41bad573c9c77f9bb58db233f
-DIST rakudo-2020.08.1.tar.gz 4740608 BLAKE2B be1b1f755690493483ba001407a89de69d64d0959d99bd28cdc4cbbacbcc56e884aa6244b2046c0ff6f6c4374b8edc86016c3c6b9719926a71eb5640092d16d1 SHA512 0142a5df29d4bd1c5a0e8cd37d59242b552dc523966293293fb643f4ce65a004457d81f76823db15bec1508a12c631eec324623cb3b8d60bc14d55b626959b11
-DIST rakudo-2020.09.tar.gz 4743378 BLAKE2B 4ccac6fa59ca80868e7525eabc05d358da9265a87aced24af2c25fae6c0e386aae18c5f44d9d3dd6db377f155b481e003c91c6e51bb6a89ee9a380e749e0c847 SHA512 c838b7a42670a99860184464b22b1cb3c9a27988eb6e982f4367df883afe06608199bf363164965c1199027eeed880f237771c1e8580a80e585f1fd67d0c0574
-DIST rakudo-2020.10.tar.gz 4755030 BLAKE2B 869f6dc6569093f7ad39d9c250d6564b6311cdefda2950784e54263bed6faca4b8653a9578b19f52819eb8e9f24e1f5f831468bf4620d885d4bb26944e22e8f4 SHA512 fcd00ac782ca28243ca2c6ceb45ff99322952086749aea01ccdfb5ae8c525cb6304fe5d20e7905a9808b1b7a1a96d7c4406847b10c0e4ea8b5fd7d053870f46a
-DIST rakudo-2020.11.tar.gz 5678270 BLAKE2B 314da91b516d509fcfcfff16e46444243083bdeb21294bc33a2996f1883317b663cc3442cbb6090c8339c5607b4e64a4c8c3c9f2fa5d728bd5c6513d6ef20bcf SHA512 d6c0f7849570b82611db311445f6b60000ecf1c0773d1bb5f4da0d27a9e0d443149ab72f954da2e75a8323d9be9c31f655dee1183a8ca714d89c63baa6e2489e
-DIST rakudo-2020.12.tar.gz 5690849 BLAKE2B 2f2bae068419279346d4dd49b734221d9a8bbeaac94b8fd44f03812ed33fbf8d4e096ba768388cb56571970d41f8ef319bf12d1f33a1cf36fe3ebb7ec6da40be SHA512 dfb94d1c8f75ec16e0149a37b57a9d9fc80ddaf256526edd3d3a23c0435881a187efbe88fd95a2174a9e9d93820987e561bb77745c7492e7ac50eb72879b4ab8
+DIST rakudo-2024.02.tar.gz 6879828 BLAKE2B aa361c9e21c34cc5c737390ab6b1b8828afaa6aafaa604dbde273d68084cd0cebaf9c8bd796a394844f05b7bafc4f5d2db8a80a7bc1be8baab52b7a7f858bfa2 SHA512 b9bfdcbaf7daa80e6dfe1fb96e68482d2b110cca03067ef4e3e12270897ef0d53710d90fda97254c4cc012b3cdc4ec0c5d4a25facc5a0224a7579b96f9cd7aa3
+DIST rakudo-2024.04.tar.gz 6908669 BLAKE2B 681a13e0fcefd8a0187f99a4bd92f72833a74870933497f6cb8de0b2ab3ddf07ee4c492760c53cd623f6d7afd3593194748882400ea94e703363c58fc4ea3d2c SHA512 98b4dd35456df1774a320dbd53ffecc72323d91c260ce1264b2056624e8cdf8a47cfcd89b775411f8bf3fb1f1b4725e2b75c7724c5891a4d366e5ba3f2a11cd4
diff --git a/dev-lang/rakudo/files/rakudo-2016.04-jna-lib.patch b/dev-lang/rakudo/files/rakudo-2016.04-jna-lib.patch
deleted file mode 100644
index 3f4532f0d154..000000000000
--- a/dev-lang/rakudo/files/rakudo-2016.04-jna-lib.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-Upstream uses -Xbootclasspath, which prevents us from using
-LD_LIBRARY_PATH, thefore we need to set jna.boot.library.path.
-See http://bugs.java.com/bugdatabase/view_bug.do?bug_id=4285197.
-
-Chewi
-2016/05/15
-
-diff -Naur rakudo-2016.04.orig/tools/build/create-jvm-runner.pl rakudo-2016.04/tools/build/create-jvm-runner.pl
---- rakudo-2016.04.orig/tools/build/create-jvm-runner.pl 2015-12-25 19:23:19.000000000 +0000
-+++ rakudo-2016.04/tools/build/create-jvm-runner.pl 2016-05-15 11:30:37.488085661 +0100
-@@ -60,7 +60,10 @@
- }
-
- my $classpath = join($cpsep, ($jardir, $libdir, $nqplibdir));
-+my $jna_lib = `java-config --query LIBRARY_PATH --package jna-4`;
-+chomp $jna_lib;
- my $jopts = '-noverify -Xms100m -Xbootclasspath/a:' . $perl6jars
-+ . ' -Djna.boot.library.path=' . $jna_lib
- . ' -cp ' . ($^O eq 'MSWin32' ? '"%CLASSPATH%";' : '$CLASSPATH:') . $classpath
- . ' -Dperl6.prefix=' . $prefix
- . ' -Djna.library.path=' . $sharedir
diff --git a/dev-lang/rakudo/metadata.xml b/dev-lang/rakudo/metadata.xml
index 4223f6b2087b..ec2a991a0ac9 100644
--- a/dev-lang/rakudo/metadata.xml
+++ b/dev-lang/rakudo/metadata.xml
@@ -1,14 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>patrick@gentoo.org</email>
<name>Patrick Lauer</name>
</maintainer>
- <maintainer type="project">
- <email>perl@gentoo.org</email>
- <name>Gentoo Perl Project</name>
- </maintainer>
<use>
<flag name="clang">Use Clang to compile the MoarVM backend</flag>
<flag name="moar">Use the MoarVM as backend</flag>
diff --git a/dev-lang/rakudo/rakudo-2020.05.1.ebuild b/dev-lang/rakudo/rakudo-2020.05.1.ebuild
deleted file mode 100644
index 4ba843c08746..000000000000
--- a/dev-lang/rakudo/rakudo-2020.05.1.ebuild
+++ /dev/null
@@ -1,73 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit java-pkg-opt-2
-
-DESCRIPTION="A compiler for the Perl 6 programming language"
-HOMEPAGE="https://rakudo.org"
-
-if [[ ${PV} == "9999" ]]; then
- EGIT_REPO_URI="https://github.com/rakudo/${PN}.git"
- inherit git-r3
- KEYWORDS=""
-else
- SRC_URI="https://rakudo.org/dl/${PN}/${P}.tar.gz"
- KEYWORDS="~amd64 ~x86"
-fi
-
-LICENSE="Artistic-2"
-SLOT="0"
-# TODO: add USE="javascript" once that's usable in nqp
-IUSE="clang java +moar test"
-RESTRICT="!test? ( test )"
-REQUIRED_USE="|| ( java moar )"
-
-CDEPEND="~dev-lang/nqp-${PV/.1/}:${SLOT}=[java?,moar?,clang=]"
-RDEPEND="${CDEPEND}
- java? ( >=virtual/jre-1.7 )"
-DEPEND="${CDEPEND}
- clang? ( sys-devel/clang )
- java? ( >=virtual/jdk-1.7 )
- >=dev-lang/perl-5.10"
-
-pkg_pretend() {
- if has_version dev-lang/rakudo; then
- ewarn "Rakudo is known to fail compilation/installation with Rakudo"
- ewarn "already being installed. So if it fails, try unmerging dev-lang/rakudo,"
- ewarn "then do a new installation."
- ewarn "(see Bug #584394)"
- fi
-}
-
-src_configure() {
- local backends
- use moar && backends+="moar,"
- use java && backends+="jvm"
-
- local myargs=(
- "--prefix=/usr"
- "--sysroot=/"
- "--sdkroot=/"
- "--backends=${backends}"
- )
-
- perl Configure.pl "${myargs[@]}" || die
-
- if use java; then
- NQP=$(java-pkg_getjars --with-dependencies nqp)
- fi
-}
-
-src_compile() {
- emake DESTDIR="${D}" NQP_JARS="${NQP}" BLD_NQP_JARS="${NQP}"
-}
-
-src_install() {
- emake DESTDIR="${D}" NQP_JARS="${NQP}" BLD_NQP_JARS="${NQP}" install
-}
-
-src_test() {
- RAKUDO_PRECOMP_PREFIX=$(mktemp -d) default
-}
diff --git a/dev-lang/rakudo/rakudo-2020.06.ebuild b/dev-lang/rakudo/rakudo-2020.06.ebuild
deleted file mode 100644
index 1353f67155bf..000000000000
--- a/dev-lang/rakudo/rakudo-2020.06.ebuild
+++ /dev/null
@@ -1,73 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit java-pkg-opt-2
-
-DESCRIPTION="A compiler for the Perl 6 programming language"
-HOMEPAGE="https://rakudo.org"
-
-if [[ ${PV} == "9999" ]]; then
- EGIT_REPO_URI="https://github.com/rakudo/${PN}.git"
- inherit git-r3
- KEYWORDS=""
-else
- SRC_URI="https://rakudo.org/dl/${PN}/${P}.tar.gz"
- KEYWORDS="~amd64 ~x86"
-fi
-
-LICENSE="Artistic-2"
-SLOT="0"
-# TODO: add USE="javascript" once that's usable in nqp
-IUSE="clang java +moar test"
-RESTRICT="!test? ( test )"
-REQUIRED_USE="|| ( java moar )"
-
-CDEPEND="~dev-lang/nqp-${PV/.1/}:${SLOT}=[java?,moar?,clang=]"
-RDEPEND="${CDEPEND}
- java? ( >=virtual/jre-1.7 )"
-DEPEND="${CDEPEND}
- clang? ( sys-devel/clang )
- java? ( >=virtual/jdk-1.7 )
- >=dev-lang/perl-5.10"
-
-pkg_pretend() {
- if has_version dev-lang/rakudo; then
- ewarn "Rakudo is known to fail compilation/installation with Rakudo"
- ewarn "already being installed. So if it fails, try unmerging dev-lang/rakudo,"
- ewarn "then do a new installation."
- ewarn "(see Bug #584394)"
- fi
-}
-
-src_configure() {
- local backends
- use moar && backends+="moar,"
- use java && backends+="jvm"
-
- local myargs=(
- "--prefix=/usr"
- "--sysroot=/"
- "--sdkroot=/"
- "--backends=${backends}"
- )
-
- perl Configure.pl "${myargs[@]}" || die
-
- if use java; then
- NQP=$(java-pkg_getjars --with-dependencies nqp)
- fi
-}
-
-src_compile() {
- emake DESTDIR="${D}" NQP_JARS="${NQP}" BLD_NQP_JARS="${NQP}"
-}
-
-src_install() {
- emake DESTDIR="${D}" NQP_JARS="${NQP}" BLD_NQP_JARS="${NQP}" install
-}
-
-src_test() {
- RAKUDO_PRECOMP_PREFIX=$(mktemp -d) default
-}
diff --git a/dev-lang/rakudo/rakudo-2020.07.ebuild b/dev-lang/rakudo/rakudo-2020.07.ebuild
deleted file mode 100644
index 1353f67155bf..000000000000
--- a/dev-lang/rakudo/rakudo-2020.07.ebuild
+++ /dev/null
@@ -1,73 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit java-pkg-opt-2
-
-DESCRIPTION="A compiler for the Perl 6 programming language"
-HOMEPAGE="https://rakudo.org"
-
-if [[ ${PV} == "9999" ]]; then
- EGIT_REPO_URI="https://github.com/rakudo/${PN}.git"
- inherit git-r3
- KEYWORDS=""
-else
- SRC_URI="https://rakudo.org/dl/${PN}/${P}.tar.gz"
- KEYWORDS="~amd64 ~x86"
-fi
-
-LICENSE="Artistic-2"
-SLOT="0"
-# TODO: add USE="javascript" once that's usable in nqp
-IUSE="clang java +moar test"
-RESTRICT="!test? ( test )"
-REQUIRED_USE="|| ( java moar )"
-
-CDEPEND="~dev-lang/nqp-${PV/.1/}:${SLOT}=[java?,moar?,clang=]"
-RDEPEND="${CDEPEND}
- java? ( >=virtual/jre-1.7 )"
-DEPEND="${CDEPEND}
- clang? ( sys-devel/clang )
- java? ( >=virtual/jdk-1.7 )
- >=dev-lang/perl-5.10"
-
-pkg_pretend() {
- if has_version dev-lang/rakudo; then
- ewarn "Rakudo is known to fail compilation/installation with Rakudo"
- ewarn "already being installed. So if it fails, try unmerging dev-lang/rakudo,"
- ewarn "then do a new installation."
- ewarn "(see Bug #584394)"
- fi
-}
-
-src_configure() {
- local backends
- use moar && backends+="moar,"
- use java && backends+="jvm"
-
- local myargs=(
- "--prefix=/usr"
- "--sysroot=/"
- "--sdkroot=/"
- "--backends=${backends}"
- )
-
- perl Configure.pl "${myargs[@]}" || die
-
- if use java; then
- NQP=$(java-pkg_getjars --with-dependencies nqp)
- fi
-}
-
-src_compile() {
- emake DESTDIR="${D}" NQP_JARS="${NQP}" BLD_NQP_JARS="${NQP}"
-}
-
-src_install() {
- emake DESTDIR="${D}" NQP_JARS="${NQP}" BLD_NQP_JARS="${NQP}" install
-}
-
-src_test() {
- RAKUDO_PRECOMP_PREFIX=$(mktemp -d) default
-}
diff --git a/dev-lang/rakudo/rakudo-2020.08.1.ebuild b/dev-lang/rakudo/rakudo-2020.08.1.ebuild
deleted file mode 100644
index 1353f67155bf..000000000000
--- a/dev-lang/rakudo/rakudo-2020.08.1.ebuild
+++ /dev/null
@@ -1,73 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit java-pkg-opt-2
-
-DESCRIPTION="A compiler for the Perl 6 programming language"
-HOMEPAGE="https://rakudo.org"
-
-if [[ ${PV} == "9999" ]]; then
- EGIT_REPO_URI="https://github.com/rakudo/${PN}.git"
- inherit git-r3
- KEYWORDS=""
-else
- SRC_URI="https://rakudo.org/dl/${PN}/${P}.tar.gz"
- KEYWORDS="~amd64 ~x86"
-fi
-
-LICENSE="Artistic-2"
-SLOT="0"
-# TODO: add USE="javascript" once that's usable in nqp
-IUSE="clang java +moar test"
-RESTRICT="!test? ( test )"
-REQUIRED_USE="|| ( java moar )"
-
-CDEPEND="~dev-lang/nqp-${PV/.1/}:${SLOT}=[java?,moar?,clang=]"
-RDEPEND="${CDEPEND}
- java? ( >=virtual/jre-1.7 )"
-DEPEND="${CDEPEND}
- clang? ( sys-devel/clang )
- java? ( >=virtual/jdk-1.7 )
- >=dev-lang/perl-5.10"
-
-pkg_pretend() {
- if has_version dev-lang/rakudo; then
- ewarn "Rakudo is known to fail compilation/installation with Rakudo"
- ewarn "already being installed. So if it fails, try unmerging dev-lang/rakudo,"
- ewarn "then do a new installation."
- ewarn "(see Bug #584394)"
- fi
-}
-
-src_configure() {
- local backends
- use moar && backends+="moar,"
- use java && backends+="jvm"
-
- local myargs=(
- "--prefix=/usr"
- "--sysroot=/"
- "--sdkroot=/"
- "--backends=${backends}"
- )
-
- perl Configure.pl "${myargs[@]}" || die
-
- if use java; then
- NQP=$(java-pkg_getjars --with-dependencies nqp)
- fi
-}
-
-src_compile() {
- emake DESTDIR="${D}" NQP_JARS="${NQP}" BLD_NQP_JARS="${NQP}"
-}
-
-src_install() {
- emake DESTDIR="${D}" NQP_JARS="${NQP}" BLD_NQP_JARS="${NQP}" install
-}
-
-src_test() {
- RAKUDO_PRECOMP_PREFIX=$(mktemp -d) default
-}
diff --git a/dev-lang/rakudo/rakudo-2020.11.ebuild b/dev-lang/rakudo/rakudo-2020.11.ebuild
deleted file mode 100644
index e912ccc2de62..000000000000
--- a/dev-lang/rakudo/rakudo-2020.11.ebuild
+++ /dev/null
@@ -1,73 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit java-pkg-opt-2
-
-DESCRIPTION="A compiler for the Perl 6 programming language"
-HOMEPAGE="https://rakudo.org"
-
-if [[ ${PV} == "9999" ]]; then
- EGIT_REPO_URI="https://github.com/rakudo/${PN}.git"
- inherit git-r3
- KEYWORDS=""
-else
- SRC_URI="https://rakudo.org/dl/${PN}/${P}.tar.gz"
- KEYWORDS="~amd64 ~x86"
-fi
-
-LICENSE="Artistic-2"
-SLOT="0"
-# TODO: add USE="javascript" once that's usable in nqp
-IUSE="clang java +moar test"
-RESTRICT="!test? ( test )"
-REQUIRED_USE="|| ( java moar )"
-
-CDEPEND="~dev-lang/nqp-${PV}:${SLOT}=[java?,moar?,clang=]"
-RDEPEND="${CDEPEND}
- java? ( >=virtual/jre-1.7 )"
-DEPEND="${CDEPEND}
- clang? ( sys-devel/clang )
- java? ( >=virtual/jdk-1.7 )
- >=dev-lang/perl-5.10"
-
-pkg_pretend() {
- if has_version dev-lang/rakudo; then
- ewarn "Rakudo is known to fail compilation/installation with Rakudo"
- ewarn "already being installed. So if it fails, try unmerging dev-lang/rakudo,"
- ewarn "then do a new installation."
- ewarn "(see Bug #584394)"
- fi
-}
-
-src_configure() {
- local backends
- use moar && backends+="moar,"
- use java && backends+="jvm"
-
- local myargs=(
- "--prefix=/usr"
- "--sysroot=/"
- "--sdkroot=/"
- "--backends=${backends}"
- )
-
- perl Configure.pl "${myargs[@]}" || die
-
- if use java; then
- NQP=$(java-pkg_getjars --with-dependencies nqp)
- fi
-}
-
-src_compile() {
- emake DESTDIR="${D}" NQP_JARS="${NQP}" BLD_NQP_JARS="${NQP}"
-}
-
-src_install() {
- emake DESTDIR="${D}" NQP_JARS="${NQP}" BLD_NQP_JARS="${NQP}" install
-}
-
-src_test() {
- RAKUDO_PRECOMP_PREFIX=$(mktemp -d) default
-}
diff --git a/dev-lang/rakudo/rakudo-2020.12.ebuild b/dev-lang/rakudo/rakudo-2020.12.ebuild
deleted file mode 100644
index e912ccc2de62..000000000000
--- a/dev-lang/rakudo/rakudo-2020.12.ebuild
+++ /dev/null
@@ -1,73 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit java-pkg-opt-2
-
-DESCRIPTION="A compiler for the Perl 6 programming language"
-HOMEPAGE="https://rakudo.org"
-
-if [[ ${PV} == "9999" ]]; then
- EGIT_REPO_URI="https://github.com/rakudo/${PN}.git"
- inherit git-r3
- KEYWORDS=""
-else
- SRC_URI="https://rakudo.org/dl/${PN}/${P}.tar.gz"
- KEYWORDS="~amd64 ~x86"
-fi
-
-LICENSE="Artistic-2"
-SLOT="0"
-# TODO: add USE="javascript" once that's usable in nqp
-IUSE="clang java +moar test"
-RESTRICT="!test? ( test )"
-REQUIRED_USE="|| ( java moar )"
-
-CDEPEND="~dev-lang/nqp-${PV}:${SLOT}=[java?,moar?,clang=]"
-RDEPEND="${CDEPEND}
- java? ( >=virtual/jre-1.7 )"
-DEPEND="${CDEPEND}
- clang? ( sys-devel/clang )
- java? ( >=virtual/jdk-1.7 )
- >=dev-lang/perl-5.10"
-
-pkg_pretend() {
- if has_version dev-lang/rakudo; then
- ewarn "Rakudo is known to fail compilation/installation with Rakudo"
- ewarn "already being installed. So if it fails, try unmerging dev-lang/rakudo,"
- ewarn "then do a new installation."
- ewarn "(see Bug #584394)"
- fi
-}
-
-src_configure() {
- local backends
- use moar && backends+="moar,"
- use java && backends+="jvm"
-
- local myargs=(
- "--prefix=/usr"
- "--sysroot=/"
- "--sdkroot=/"
- "--backends=${backends}"
- )
-
- perl Configure.pl "${myargs[@]}" || die
-
- if use java; then
- NQP=$(java-pkg_getjars --with-dependencies nqp)
- fi
-}
-
-src_compile() {
- emake DESTDIR="${D}" NQP_JARS="${NQP}" BLD_NQP_JARS="${NQP}"
-}
-
-src_install() {
- emake DESTDIR="${D}" NQP_JARS="${NQP}" BLD_NQP_JARS="${NQP}" install
-}
-
-src_test() {
- RAKUDO_PRECOMP_PREFIX=$(mktemp -d) default
-}
diff --git a/dev-lang/rakudo/rakudo-2020.09.ebuild b/dev-lang/rakudo/rakudo-2024.02.ebuild
index e912ccc2de62..2af8fe10b2b6 100644
--- a/dev-lang/rakudo/rakudo-2020.09.ebuild
+++ b/dev-lang/rakudo/rakudo-2024.02.ebuild
@@ -1,17 +1,16 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
inherit java-pkg-opt-2
-DESCRIPTION="A compiler for the Perl 6 programming language"
+DESCRIPTION="A compiler for the Raku programming language"
HOMEPAGE="https://rakudo.org"
if [[ ${PV} == "9999" ]]; then
EGIT_REPO_URI="https://github.com/rakudo/${PN}.git"
inherit git-r3
- KEYWORDS=""
else
SRC_URI="https://rakudo.org/dl/${PN}/${P}.tar.gz"
KEYWORDS="~amd64 ~x86"
@@ -26,10 +25,10 @@ REQUIRED_USE="|| ( java moar )"
CDEPEND="~dev-lang/nqp-${PV}:${SLOT}=[java?,moar?,clang=]"
RDEPEND="${CDEPEND}
- java? ( >=virtual/jre-1.7 )"
+ java? ( >=virtual/jre-1.9 )"
DEPEND="${CDEPEND}
clang? ( sys-devel/clang )
- java? ( >=virtual/jdk-1.7 )
+ java? ( >=virtual/jdk-1.9 )
>=dev-lang/perl-5.10"
pkg_pretend() {
@@ -61,7 +60,7 @@ src_configure() {
}
src_compile() {
- emake DESTDIR="${D}" NQP_JARS="${NQP}" BLD_NQP_JARS="${NQP}"
+ emake NQP_JARS="${NQP}" BLD_NQP_JARS="${NQP}"
}
src_install() {
diff --git a/dev-lang/rakudo/rakudo-2020.10.ebuild b/dev-lang/rakudo/rakudo-2024.04.ebuild
index e912ccc2de62..2af8fe10b2b6 100644
--- a/dev-lang/rakudo/rakudo-2020.10.ebuild
+++ b/dev-lang/rakudo/rakudo-2024.04.ebuild
@@ -1,17 +1,16 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
inherit java-pkg-opt-2
-DESCRIPTION="A compiler for the Perl 6 programming language"
+DESCRIPTION="A compiler for the Raku programming language"
HOMEPAGE="https://rakudo.org"
if [[ ${PV} == "9999" ]]; then
EGIT_REPO_URI="https://github.com/rakudo/${PN}.git"
inherit git-r3
- KEYWORDS=""
else
SRC_URI="https://rakudo.org/dl/${PN}/${P}.tar.gz"
KEYWORDS="~amd64 ~x86"
@@ -26,10 +25,10 @@ REQUIRED_USE="|| ( java moar )"
CDEPEND="~dev-lang/nqp-${PV}:${SLOT}=[java?,moar?,clang=]"
RDEPEND="${CDEPEND}
- java? ( >=virtual/jre-1.7 )"
+ java? ( >=virtual/jre-1.9 )"
DEPEND="${CDEPEND}
clang? ( sys-devel/clang )
- java? ( >=virtual/jdk-1.7 )
+ java? ( >=virtual/jdk-1.9 )
>=dev-lang/perl-5.10"
pkg_pretend() {
@@ -61,7 +60,7 @@ src_configure() {
}
src_compile() {
- emake DESTDIR="${D}" NQP_JARS="${NQP}" BLD_NQP_JARS="${NQP}"
+ emake NQP_JARS="${NQP}" BLD_NQP_JARS="${NQP}"
}
src_install() {
diff --git a/dev-lang/rakudo/rakudo-9999.ebuild b/dev-lang/rakudo/rakudo-9999.ebuild
deleted file mode 100644
index 9fb642f3c169..000000000000
--- a/dev-lang/rakudo/rakudo-9999.ebuild
+++ /dev/null
@@ -1,80 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-
-inherit java-pkg-opt-2
-
-DESCRIPTION="A compiler for the Perl 6 programming language"
-HOMEPAGE="https://rakudo.org"
-
-if [[ ${PV} == "9999" ]]; then
- EGIT_REPO_URI="https://github.com/rakudo/${PN}.git"
- inherit git-r3
- KEYWORDS=""
-else
- SRC_URI="https://rakudo.org/downloads/${PN}/${P}.tar.gz"
- KEYWORDS="~amd64 ~x86"
-fi
-
-LICENSE="Artistic-2"
-SLOT="0"
-# TODO: add USE="javascript" once that's usable in nqp
-IUSE="clang java +moar test"
-RESTRICT="!test? ( test )"
-REQUIRED_USE="|| ( java moar )"
-
-CDEPEND="~dev-lang/nqp-${PV}:${SLOT}=[java?,moar?,clang=]"
-RDEPEND="${CDEPEND}
- java? ( >=virtual/jre-1.7 )"
-DEPEND="${CDEPEND}
- clang? ( sys-devel/clang )
- java? ( >=virtual/jdk-1.7 )
- >=dev-lang/perl-5.10"
-
-PATCHES=( "${FILESDIR}/${PN}-2016.04-jna-lib.patch" )
-
-pkg_pretend() {
- if has_version dev-lang/rakudo; then
- ewarn "Rakudo is known to fail compilation/installation with Rakudo"
- ewarn "already being installed. So if it fails, try unmerging dev-lang/rakudo,"
- ewarn "then do a new installation."
- ewarn "(see Bug #584394)"
- fi
-}
-
-src_prepare() {
- epatch "${PATCHES[@]}"
- epatch_user
-}
-
-src_configure() {
- local backends
- use moar && backends+="moar,"
- use java && backends+="jvm"
-
- local myargs=(
- "--prefix=/usr"
- "--sysroot=/"
- "--sdkroot=/"
- "--backends=${backends}"
- )
-
- perl Configure.pl "${myargs[@]}" || die
-
- if use java; then
- NQP=$(java-pkg_getjars --with-dependencies nqp)
- fi
-}
-
-src_compile() {
- emake DESTDIR="${D}" NQP_JARS="${NQP}" BLD_NQP_JARS="${NQP}"
-}
-
-src_install() {
- emake DESTDIR="${D}" NQP_JARS="${NQP}" BLD_NQP_JARS="${NQP}" install
-}
-
-src_test() {
- RAKUDO_PRECOMP_PREFIX=$(mktemp -d) default
-}
diff --git a/dev-lang/rapydscript-ng/Manifest b/dev-lang/rapydscript-ng/Manifest
new file mode 100644
index 000000000000..2bcf41ce830d
--- /dev/null
+++ b/dev-lang/rapydscript-ng/Manifest
@@ -0,0 +1,2 @@
+DIST rapydscript-ng-0.7.22.tar.gz 437745 BLAKE2B 5720a24743b0276a179a8c5da4c0f890f7c91a07968df7ac1e9c3a830d003fb4da7cfb124410428afe20cbf98429d6985750c129ab9ad01316a97d92793385ec SHA512 301d83c3a6715d2ae0e45bf344c48070273f160c3dccd3396788be360768c5df228b12f58f2eca3daea499bf6994a6cd0afc14c5cc590855d585d39753e06e00
+DIST rapydscript-ng-node_modules-0.7.22.tar.xz 2340024 BLAKE2B 7b4683ef86f639b7898d4120414844b7da15c86bcaee569be12dea29581d2aa594db713bd3ee8837bb05ffdea9f831b12302643c31eded3abaf3f88c59ac17e1 SHA512 8b26ffc4748b99a698aaa93e7a8e858b0071613596228ce880ff24889bc66171b4030dc568f0d60e52846ecb3b530c1f3adafd1fd2377ace726ee91f0a2a3c41
diff --git a/dev-lang/rapydscript-ng/metadata.xml b/dev-lang/rapydscript-ng/metadata.xml
new file mode 100644
index 000000000000..ff2fd6660875
--- /dev/null
+++ b/dev-lang/rapydscript-ng/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <email>eschwartz93@gmail.com</email>
+ <name>Eli Schwartz</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">kovidgoyal/rapydscript-ng</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-lang/rapydscript-ng/rapydscript-ng-0.7.22.ebuild b/dev-lang/rapydscript-ng/rapydscript-ng-0.7.22.ebuild
new file mode 100644
index 000000000000..2de48c00ee4a
--- /dev/null
+++ b/dev-lang/rapydscript-ng/rapydscript-ng-0.7.22.ebuild
@@ -0,0 +1,75 @@
+# Copyright 2023-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+if [[ ${PV} == 9999 ]] ; then
+ EGIT_REPO_URI="https://github.com/kovidgoyal/rapydscript-ng"
+ # this is nodejs software, so possibly unfixable. I am sorry.
+ # Instead, we will have to generate this with the live ebuild and upload assets
+ # using EGIT_OVERRIDE_COMMIT for the tagged version we need.
+ BDEPEND="app-arch/libarchive"
+
+ inherit git-r3
+else
+ SRC_URI="
+ https://github.com/kovidgoyal/rapydscript-ng/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz
+ https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/rapydscript-ng-node_modules-${PV}.tar.xz
+ "
+ KEYWORDS="amd64 ~arm64"
+fi
+
+inherit edo
+
+DESCRIPTION="Pythonic JavaScript that doesn't suck"
+HOMEPAGE="https://github.com/kovidgoyal/rapydscript-ng"
+
+LICENSE="BSD"
+SLOT="0"
+
+BDEPEND+=" net-libs/nodejs"
+RDEPEND="net-libs/nodejs"
+
+maint_pkg_create() {
+ cd "${S}" || die
+
+ edo npm install --omit=optional
+
+ local ver=$(git describe)
+ ver=${ver#v}
+ local tar="${T}/rapydscript-ng-node_modules-${ver}.tar.xz"
+
+ bsdtar -s "#^#${PN}-node_modules-${ver}/#S" -caf "${tar}" package-lock.json node_modules/ || die
+ einfo "Packaged tar now available:"
+ einfo "$(du -b "${tar}")"
+}
+
+src_unpack() {
+ if [[ ${PV} == 9999 ]] ; then
+ git-r3_src_unpack
+ maint_pkg_create
+ else
+ unpack ${A}
+ cp -r "${WORKDIR}"/${PN}-node_modules-${PV}/{node_modules,package-lock.json} "${S}" || die
+ fi
+}
+
+src_compile() {
+ edo bin/rapydscript self --complete
+ rm -r release/ || die
+ mv dev/ release/ || die
+}
+
+src_test() {
+ edo bin/rapydscript test
+}
+
+src_install() {
+ local modulesdir=/usr/$(get_libdir)/node_modules/rapydscript-ng
+
+ insinto "${modulesdir}"
+ doins -r *
+
+ fperms +x "${modulesdir}"/bin/rapydscript
+ dosym -r "${modulesdir}"/bin/rapydscript /usr/bin/rapydscript
+}
diff --git a/dev-lang/rapydscript-ng/rapydscript-ng-9999.ebuild b/dev-lang/rapydscript-ng/rapydscript-ng-9999.ebuild
new file mode 100644
index 000000000000..cb27a394fe2b
--- /dev/null
+++ b/dev-lang/rapydscript-ng/rapydscript-ng-9999.ebuild
@@ -0,0 +1,75 @@
+# Copyright 2023-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+if [[ ${PV} == 9999 ]] ; then
+ EGIT_REPO_URI="https://github.com/kovidgoyal/rapydscript-ng"
+ # this is nodejs software, so possibly unfixable. I am sorry.
+ # Instead, we will have to generate this with the live ebuild and upload assets
+ # using EGIT_OVERRIDE_COMMIT for the tagged version we need.
+ BDEPEND="app-arch/libarchive"
+
+ inherit git-r3
+else
+ SRC_URI="
+ https://github.com/kovidgoyal/rapydscript-ng/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz
+ https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/rapydscript-ng-node_modules-${PV}.tar.xz
+ "
+ KEYWORDS="~amd64 ~arm64"
+fi
+
+inherit edo
+
+DESCRIPTION="Pythonic JavaScript that doesn't suck"
+HOMEPAGE="https://github.com/kovidgoyal/rapydscript-ng"
+
+LICENSE="BSD"
+SLOT="0"
+
+BDEPEND+=" net-libs/nodejs"
+RDEPEND="net-libs/nodejs"
+
+maint_pkg_create() {
+ cd "${S}" || die
+
+ edo npm install --omit=optional
+
+ local ver=$(git describe)
+ ver=${ver#v}
+ local tar="${T}/rapydscript-ng-node_modules-${ver}.tar.xz"
+
+ bsdtar -s "#^#${PN}-node_modules-${ver}/#S" -caf "${tar}" package-lock.json node_modules/ || die
+ einfo "Packaged tar now available:"
+ einfo "$(du -b "${tar}")"
+}
+
+src_unpack() {
+ if [[ ${PV} == 9999 ]] ; then
+ git-r3_src_unpack
+ maint_pkg_create
+ else
+ unpack ${A}
+ cp -r "${WORKDIR}"/${PN}-node_modules-${PV}/{node_modules,package-lock.json} "${S}" || die
+ fi
+}
+
+src_compile() {
+ edo bin/rapydscript self --complete
+ rm -r release/ || die
+ mv dev/ release/ || die
+}
+
+src_test() {
+ edo bin/rapydscript test
+}
+
+src_install() {
+ local modulesdir=/usr/$(get_libdir)/node_modules/rapydscript-ng
+
+ insinto "${modulesdir}"
+ doins -r *
+
+ fperms +x "${modulesdir}"/bin/rapydscript
+ dosym -r "${modulesdir}"/bin/rapydscript /usr/bin/rapydscript
+}
diff --git a/dev-lang/regina-rexx/Manifest b/dev-lang/regina-rexx/Manifest
deleted file mode 100644
index 94fb791e89f4..000000000000
--- a/dev-lang/regina-rexx/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-DIST Regina-REXX-3.9.1.tar.gz 1358458 BLAKE2B 48a46895fa2a98359f9dc58e8f22cdedd8429459c4ca1680abc6b556d2da19731265666e6259a02d6886167c58273a39e0b7509d5dae31d5b8359ac6a69daaae SHA512 679d146d68598ccca28c4e66a12ab898d5bfb77e2e5d64ce5ffc9159b982dcda419815a83b05e5dfbe3acea84f8f59955726a6466defefe1ac24646c46609677
diff --git a/dev-lang/regina-rexx/files/regina-rexx-3.9.1-makefile.patch b/dev-lang/regina-rexx/files/regina-rexx-3.9.1-makefile.patch
deleted file mode 100644
index 66d268c91762..000000000000
--- a/dev-lang/regina-rexx/files/regina-rexx-3.9.1-makefile.patch
+++ /dev/null
@@ -1,150 +0,0 @@
---- a/common/incdebug.m4
-+++ b/common/incdebug.m4
-@@ -15,54 +15,6 @@
- cflags_g="`echo $CFLAGS | grep -c '\-g'`"
- cflags_O="`echo $CFLAGS | grep -c '\-O'`"
-
--if test "$with_debug" = yes; then
-- DEBUG="-DDEBUG"
-- DEBUGGING="-g"
-- if test "$cflags_g" = "0"; then
-- CFLAGS="${CFLAGS} -g"
-- fi
-- if test "$cflags_O" != "0"; then
-- CFLAGS="`echo ${CFLAGS} | sed -e s/-O.//`"
-- fi
--else
-- DEBUG="-DNDEBUG"
-- if test "$cflags_O" = "0"; then
-- CFLAGS="${CFLAGS} -O"
-- fi
-- if test "$cflags_g" = "0"; then
-- CFLAGS="${CFLAGS} -g"
-- fi
--fi
--if test "$ac_cv_prog_CC" = "gcc" -o "$ac_cv_prog_CC" = "g++" -o "$ac_cv_prog_CC" = "clang"; then
-- if test "$with_debug" = yes; then
-- CFLAGS="${CFLAGS} -Wall"
-- else
--# CFLAGS="${CFLAGS} -O3 -Wall -fomit-frame-pointer -fno-strict-aliasing -Wno-char-subscripts"
-- CFLAGS="${CFLAGS} -O3 -Wall"
-- fi
--fi
--if test "$on_qnx4" = yes; then
-- if test "$ac_cv_prog_CC" = "gcc"; then
-- QNX4_CFLAGS=""
-- else
-- QNX4_CFLAGS="-Wc,-r -b -j -Wc,-ei -N4096000 -mf -DNO_REGEX -DQNX -DQNX4 -D__QNX__ -DSTRINGS_ALIGNED -Q"
-- fi
-- if test "$with_debug" = yes; then
-- CFLAGS="-g $QNX4_CFLAGS"
-- else
-- CFLAGS="-Otax $QNX4_CFLAGS"
-- fi
--fi
--if test "$on_beos" = yes; then
-- if test "$with_debug" = yes; then
-- CFLAGS="${CFLAGS} -Wall"
-- else
-- CFLAGS="${CFLAGS} -O2 -Wall"
-- fi
-- if test "$datadir" = "\${prefix}/share"; then
-- datadir="/boot/home/config/add-ons"
-- fi
--fi
- AC_SUBST(DEBUG)
- AC_SUBST(DEBUGGING)
-
---- a/configure.in
-+++ b/configure.in
-@@ -25,7 +25,7 @@
-
- dnl ---------------------- check for C compiler -----------------
- dnl Checks for one of the C compilers below - change if yours not there.
--MH_PROG_CC
-+AC_PROG_CC
-
- AC_CONFIG_HEADER(config.h)
- AC_ISC_POSIX
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -308,7 +308,7 @@
- #
- .SUFFIXES:
-
--all : rexx$(binarybitprefix)$(EXE) $(STATICLIB) execiser$(binarybitprefix)$(EXE) $(SHL_TARGETS) $(THREADSAFE_TARGET) rxstack$(binarybitprefix)$(EXE) rxqueue$(binarybitprefix)$(EXE) $(MTBFILES)
-+all : rexx$(binarybitprefix)$(EXE) execiser$(binarybitprefix)$(EXE) $(SHL_TARGETS) $(THREADSAFE_TARGET) rxstack$(binarybitprefix)$(EXE) rxqueue$(binarybitprefix)$(EXE) $(MTBFILES)
-
- $(srcdir)/rexx.h : $(srcdir)/extern.h $(srcdir)/strings.h $(srcdir)/defs.h $(srcdir)/regina_t.h $(srcdir)/mt.h
-
-@@ -1031,20 +1031,14 @@
- $(INSTALL) -m 755 -d $(DESTDIR)$(sharedir)
- $(INSTALL) -m 755 -d $(DESTDIR)$(examplesdir)
- $(INSTALL) -m 755 -d $(DESTDIR)$(mandir)/man1
-- $(INSTALL) -s -m 755 -c ./rexx$(binarybitprefix)$(EXE) $(DESTDIR)$(bindir)/rexx$(binarybitprefix)$(EXE)
-- $(INSTALL) -s -m 755 -c ./rxqueue$(binarybitprefix)$(EXE) $(DESTDIR)$(bindir)/rxqueue$(binarybitprefix)$(EXE)
-- $(INSTALL) -s -m 755 -c ./rxstack$(binarybitprefix)$(EXE) $(DESTDIR)$(bindir)/rxstack$(binarybitprefix)$(EXE)
-+ $(INSTALL) -m 755 -c ./rexx$(binarybitprefix)$(EXE) $(DESTDIR)$(bindir)/rexx$(binarybitprefix)$(EXE)
-+ $(INSTALL) -m 755 -c ./rxqueue$(binarybitprefix)$(EXE) $(DESTDIR)$(bindir)/rxqueue$(binarybitprefix)$(EXE)
-+ $(INSTALL) -m 755 -c ./rxstack$(binarybitprefix)$(EXE) $(DESTDIR)$(bindir)/rxstack$(binarybitprefix)$(EXE)
- $(INSTALL) -m 755 -c ./regina-config $(DESTDIR)$(bindir)/regina-config
-- -$(INSTALL) -m 644 -c ./$(LIBPRE)$(LIBFILE)$(LIBPST) $(DESTDIR)$(libdir)/$(LIBPRE)$(LIBFILE)$(LIBPST)
-- -$(RANLIB) $(DESTDIR)$(libdir)/$(LIBPRE)$(LIBFILE)$(LIBPST)
- $(INSTALL) -m 644 -c $(srcdir)/regina.1 $(DESTDIR)$(mandir)/man1/regina.1
- $(INSTALL) -m 644 -c $(srcdir)/regina-config.1 $(DESTDIR)$(mandir)/man1/regina-config.1
- $(INSTALL) -m 644 -c $(srcdir)/rxstack.1 $(DESTDIR)$(mandir)/man1/rxstack.1
- $(INSTALL) -m 644 -c $(srcdir)/rxqueue.1 $(DESTDIR)$(mandir)/man1/rxqueue.1
-- gzip -f $(DESTDIR)$(mandir)/man1/regina.1
-- gzip -f $(DESTDIR)$(mandir)/man1/regina-config.1
-- gzip -f $(DESTDIR)$(mandir)/man1/rxstack.1
-- gzip -f $(DESTDIR)$(mandir)/man1/rxqueue.1
- $(INSTALL) -m 644 -c $(srcdir)/rexxsaa.h $(DESTDIR)$(includedir)/rexxsaa.h
- $(INSTALL) -m 644 -c ./en.mtb $(DESTDIR)$(sharedir)/en.mtb
- $(INSTALL) -m 644 -c ./pt.mtb $(DESTDIR)$(sharedir)/pt.mtb
-@@ -1068,33 +1062,33 @@
- -chmod 755 $(DESTDIR)$(examplesdir)/newstr.rexx
-
- installregina:
-- $(INSTALL) -s -m 755 -c ./regina$(binarybitprefix)$(EXE) $(DESTDIR)$(bindir)/regina$(binarybitprefix)$(EXE)
-+ $(INSTALL) -m 755 -c ./regina$(binarybitprefix)$(EXE) $(DESTDIR)$(bindir)/regina$(binarybitprefix)$(EXE)
- $(DESTDIR)$(bindir)/rexx$(binarybitprefix)$(EXE) $(srcdir)/preinst.rexx $(bindir)/regina$(binarybitprefix)$(EXE) $(srcdir)/demo/dynfunc.rexx $(DESTDIR)$(examplesdir)/dynfunc.rexx
- -chmod 755 $(DESTDIR)$(examplesdir)/dynfunc.rexx
- $(DESTDIR)$(bindir)/rexx$(binarybitprefix)$(EXE) $(srcdir)/preinst.rexx $(bindir)/regina$(binarybitprefix)$(EXE) $(srcdir)/regutil/regutil.rexx $(DESTDIR)$(examplesdir)/regutil.rexx
- -chmod 755 $(DESTDIR)$(examplesdir)/regutil.rexx
-
- installlib: installregina
-- $(INSTALL) -s -m 755 -c ./$(SHLPRE)$(SHLFILE)$(SHLPST) $(DESTDIR)$(libdir)/$(SHLPRE)$(SHLFILE)$(SHLPST)
-- $(INSTALL) -s -m 755 -c ./$(SHLPRE)regutil$(MODPST) $(DESTDIR)$(addonsdir)/$(SHLPRE)regutil$(MODPST)
-- $(INSTALL) -s -m 755 -c ./$(SHLPRE)rxtest1$(MODPST) $(DESTDIR)$(addonsdir)/$(SHLPRE)rxtest1$(MODPST)
-- $(INSTALL) -s -m 755 -c ./$(SHLPRE)rxtest2$(MODPST) $(DESTDIR)$(addonsdir)/$(SHLPRE)rxtest2$(MODPST)
-+ $(INSTALL) -m 755 -c ./$(SHLPRE)$(SHLFILE)$(SHLPST) $(DESTDIR)$(libdir)/$(SHLPRE)$(SHLFILE)$(SHLPST)
-+ $(INSTALL) -m 755 -c ./$(SHLPRE)regutil$(MODPST) $(DESTDIR)$(addonsdir)/$(SHLPRE)regutil$(MODPST)
-+ $(INSTALL) -m 755 -c ./$(SHLPRE)rxtest1$(MODPST) $(DESTDIR)$(addonsdir)/$(SHLPRE)rxtest1$(MODPST)
-+ $(INSTALL) -m 755 -c ./$(SHLPRE)rxtest2$(MODPST) $(DESTDIR)$(addonsdir)/$(SHLPRE)rxtest2$(MODPST)
-
- installabilib: installregina
-- -$(INSTALL) -s -m 755 -c ./$(SHLPRE)$(SHLFILE)$(SHLPST).$(ABI) $(DESTDIR)$(libdir)/$(SHLPRE)$(SHLFILE)$(SHLPST).$(ABI)
-+ -$(INSTALL) -m 755 -c ./$(SHLPRE)$(SHLFILE)$(SHLPST).$(ABI) $(DESTDIR)$(libdir)/$(SHLPRE)$(SHLFILE)$(SHLPST).$(ABI)
- -rm -f $(DESTDIR)$(libdir)/$(SHLPRE)$(SHLFILE)$(SHLPST).$(ABI_MAJOR)
- -(cd $(DESTDIR)$(libdir);$(LN_S) $(SHLPRE)$(SHLFILE)$(SHLPST).$(ABI) $(SHLPRE)$(SHLFILE)$(SHLPST).$(ABI_MAJOR) )
- -rm -f $(DESTDIR)$(libdir)/$(SHLPRE)$(SHLFILE)$(SHLPST)
- -(cd $(DESTDIR)$(libdir);$(LN_S) $(SHLPRE)$(SHLFILE)$(SHLPST).$(ABI_MAJOR) $(SHLPRE)$(SHLFILE)$(SHLPST) )
-- $(INSTALL) -s -m 755 -c ./$(SHLPRE)regutil$(MODPST) $(DESTDIR)$(addonsdir)/$(SHLPRE)regutil$(MODPST)
-- $(INSTALL) -s -m 755 -c ./$(SHLPRE)rxtest1$(MODPST) $(DESTDIR)$(addonsdir)/$(SHLPRE)rxtest1$(MODPST)
-- $(INSTALL) -s -m 755 -c ./$(SHLPRE)rxtest2$(MODPST) $(DESTDIR)$(addonsdir)/$(SHLPRE)rxtest2$(MODPST)
-+ $(INSTALL) -m 755 -c ./$(SHLPRE)regutil$(MODPST) $(DESTDIR)$(addonsdir)/$(SHLPRE)regutil$(MODPST)
-+ $(INSTALL) -m 755 -c ./$(SHLPRE)rxtest1$(MODPST) $(DESTDIR)$(addonsdir)/$(SHLPRE)rxtest1$(MODPST)
-+ $(INSTALL) -m 755 -c ./$(SHLPRE)rxtest2$(MODPST) $(DESTDIR)$(addonsdir)/$(SHLPRE)rxtest2$(MODPST)
-
- installcyglib:
-- $(INSTALL) -s -m 755 -c ./$(SHLPRE)$(SHLFILE)$(SHLPST) $(DESTDIR)$(bindir)/$(SHLPRE)$(SHLFILE)$(SHLPST)
-- $(INSTALL) -s -m 755 -c ./$(SHLPRE)regutil$(MODPST) $(DESTDIR)$(addonsdir)/regutil$(MODPST)
-- $(INSTALL) -s -m 755 -c ./$(SHLPRE)rxtest1$(MODPST) $(DESTDIR)$(addonsdir)/rxtest1$(MODPST)
-- $(INSTALL) -s -m 755 -c ./$(SHLPRE)rxtest2$(MODPST) $(DESTDIR)$(addonsdir)/rxtest2$(MODPST)
-+ $(INSTALL) -m 755 -c ./$(SHLPRE)$(SHLFILE)$(SHLPST) $(DESTDIR)$(bindir)/$(SHLPRE)$(SHLFILE)$(SHLPST)
-+ $(INSTALL) -m 755 -c ./$(SHLPRE)regutil$(MODPST) $(DESTDIR)$(addonsdir)/regutil$(MODPST)
-+ $(INSTALL) -m 755 -c ./$(SHLPRE)rxtest1$(MODPST) $(DESTDIR)$(addonsdir)/rxtest1$(MODPST)
-+ $(INSTALL) -m 755 -c ./$(SHLPRE)rxtest2$(MODPST) $(DESTDIR)$(addonsdir)/rxtest2$(MODPST)
-
- #
- # Can't strip .dylib on OSX
diff --git a/dev-lang/regina-rexx/files/rxstack-r1 b/dev-lang/regina-rexx/files/rxstack-r1
deleted file mode 100644
index 668af5ec0a46..000000000000
--- a/dev-lang/regina-rexx/files/rxstack-r1
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/sbin/openrc-run
-
-start() {
- ebegin "Starting Regina stack"
- start-stop-daemon --start --pidfile /var/run/rxstack.pid \
- --exec /usr/bin/rxstack -- -d
- eend $?
-}
-
-stop() {
- ebegin "Stopping Regina stack"
- start-stop-daemon --stop --exec /usr/bin/rxstack
- eend $?
-}
diff --git a/dev-lang/regina-rexx/metadata.xml b/dev-lang/regina-rexx/metadata.xml
deleted file mode 100644
index ab9a547bb04b..000000000000
--- a/dev-lang/regina-rexx/metadata.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
- <!-- maintainer-needed -->
- <longdescription lang="en">
- Regina is a Rexx interpreter. Rexx is a programming language that was
- designed to be easy to use for inexperienced programmers yet powerful
- enough for experienced users. It is also a language ideally suited as a
- macro language for other applications.
- </longdescription>
- <upstream>
- <remote-id type="sourceforge">regina-rexx</remote-id>
- <bugs-to>https://sourceforge.net/p/regina-rexx/bugs/</bugs-to>
- </upstream>
-</pkgmetadata>
diff --git a/dev-lang/regina-rexx/regina-rexx-3.9.1-r1.ebuild b/dev-lang/regina-rexx/regina-rexx-3.9.1-r1.ebuild
deleted file mode 100644
index bc100fa59cf2..000000000000
--- a/dev-lang/regina-rexx/regina-rexx-3.9.1-r1.ebuild
+++ /dev/null
@@ -1,44 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit autotools
-
-DESCRIPTION="Portable Rexx interpreter"
-HOMEPAGE="https://regina-rexx.sourceforge.io/"
-SRC_URI="mirror://sourceforge/${PN}/Regina-REXX-${PV}.tar.gz"
-
-LICENSE="LGPL-2.1 MPL-1.0"
-SLOT="0"
-KEYWORDS="~amd64 ~ppc ~x86"
-
-S="${WORKDIR}/Regina-REXX-${PV}"
-
-PATCHES=( "${FILESDIR}"/${PN}-3.9.1-makefile.patch )
-
-src_prepare() {
- default
- mv configure.{in,ac} || die
- eautoconf
-}
-
-src_compile() {
- emake -j1
-}
-
-src_install() {
- emake -j1 DESTDIR="${D}" install
- DOCS=( BUGS HACKERS.txt README.Unix README_SAFE TODO )
- einstalldocs
-
- newinitd "${FILESDIR}"/rxstack-r1 rxstack
-}
-
-pkg_postinst() {
- elog "You may want to run"
- elog
- elog "\trc-update add rxstack default"
- elog
- elog "to enable Rexx queues (optional)."
-}
diff --git a/dev-lang/ruby/Manifest b/dev-lang/ruby/Manifest
index a474614b3776..ec89cddbf5b8 100644
--- a/dev-lang/ruby/Manifest
+++ b/dev-lang/ruby/Manifest
@@ -1,4 +1,6 @@
-DIST ruby-2.5.8.tar.xz 11298404 BLAKE2B 3256c0448e72b63c0bd89f89a27fa9c09c8feed54d42cd79899b7d5cfe9dbc29ca708d12c630b3f52ff85b0c6a4011ae7ff0483d64b2fd445700a72a91028035 SHA512 2886be764a454425c5beef2777c64a70ee0d048b07896b327633d904f5077fea4299526689f9e2ac4dcd2fc4811cf9a6c8ce75367ed35d29dfe1a54222872e0d
-DIST ruby-2.6.6.tar.xz 11567284 BLAKE2B 45e910dd9b128c46bff3003834c4fdcbbc2e2e4d3e44f298ff4356a285de2c375d6b6021a3aa28d89336b32a1655fa4a7c086d07f4a0f6bcd578a11dd4a894da SHA512 86caf93dbf61d03781767ab5375a7edf4761f13ba08ccfefe16c0a7550499237e7390c2f72a95d42670d4fe76b2401b4218936187c62ec1572799e9e04c50d62
-DIST ruby-2.7.2.tar.xz 12037052 BLAKE2B a4ad22295b3fed4e8064fc6e77adb8642d1fa7ae1f4ef912d7bde19c735cb25b1a3e3aefba53dad944046d844d608bcefba61c314cf1e52747f50d7d91f4c436 SHA512 7972278b096aa768c7adf2befd26003e18781a29ca317640317d30d93d6e963ded197724c8e2f1dfe1e838c5647176d414a74732a62e931fb50d6f2e0f777349
-DIST ruby-3.0.0.tar.xz 14374176 BLAKE2B 9e7520e0b1ae6644285449c4ae92983d306772b3dd5366a17da709a55797c798d099424a5628c78c842b825fb336c6a769ac9c371ef276f42bf3550fd0761ebe SHA512 2a23c2894e62e24bb20cec6b2a016b66d7df05083668726b6f70af8338211cfec417aa3624290d1f5ccd130f65ee7b52b5db7d428abc4a9460459c9a5dd1a450
+DIST ruby-3.1.4.tar.xz 15316604 BLAKE2B 5d771c267451c05ae192991976957d43d1131e652ac5a90a8dfff9deba97cf6b139d0113f5d2ed44225a545aa79a1c732555de1efc83d1010d097ec35f7e92dd SHA512 a627bb629a10750b8b2081ad451a41faea0fc85d95aa1e267e3d2a0f56a35bb58195d4a8d13bbdbd82f4197a96dae22b1cee1dfc83861ec33a67ece07aef5633
+DIST ruby-3.1.5.tar.xz 15293020 BLAKE2B 5d886f45f2a27dbe7682f5afc234d4992ffc5006cfaa98f23c29e1fff0323c277ffec827c71ee75885b4f2cf0bf7baed4ea239ae32283578213821e597bf51da SHA512 a9883f4d074825bb1f54ef3429a9a71341274bd2de1aa8ea32bce19b6b9c1bac5e5dc4c34a92b8e7caa73ba71d7ed7c546a6fec6f1fd3d8986974dce214f6d49
+DIST ruby-3.2.3.tar.xz 15163960 BLAKE2B e2cfa215b2cb910bac5f3b58edcdece91b21ffcfb6b4c183eec0c8502c320b78e7a8732c393b6e6a38dc9cfd81e129c00562d9be45f0deb36306ac81f96dcdc1 SHA512 d2a1897c2f4e801a28acb869322abfee76775115016252cecad90639485ed51deda1446cb16edb387f10a2e188602d646ef9b008b57f27bd745071277c535f3b
+DIST ruby-3.2.4.tar.xz 15175656 BLAKE2B 9c2300a958b03528d51f0d74a069c8c538ca4009835d55377509a000bcfb43893a8a80d8fda57011e77c72e6283cb259281d5ba7b37444546e49f2a9ad515cf3 SHA512 fb0af37be4b6ad7b98ab9f8a508952238ee68b5828e3926331e4db52e2ebc1e6046f31114069322db0cd3bea7c9b82ace91c8564573ddcfa1f960877b237dbff
+DIST ruby-3.3.0.tar.xz 16345456 BLAKE2B 09ef6fb4b2768118207e7a9ece17c5c62c9f596b1c13ac6199245889fcc5d25f03336831ec3bf1367a460a8a26c4426c32bcd576b0da8bdafc90301032b4d2f0 SHA512 7959c5753bfa0bfc4d6d74060869aabbe9815c1c97930659da11b917ee0803ddbbd80e869e00c48b8694b4ba48709c3b6493fd045568e36e902616c35ababf01
+DIST ruby-3.3.1.tar.xz 16350792 BLAKE2B f3591d2420edd8c1d5b365d1442fcc07c014e402478dce01a80b81c16c3c7083bcd3e9e9aa0f8d586cd482f0f18eb64ad813ea31755f5d12b137ce03b1a0fa4c SHA512 c58e9be9b5ab48191fbf7d67e13f0ec42ee71ed338170e0f7b246708e9cfc617ce65098f5ce7ab32d4305e785642d3e44253462104d5b9c4abcb1a4113f48347
diff --git a/dev-lang/ruby/files/2.4/002_windows_crossdev.patch b/dev-lang/ruby/files/2.4/002_windows_crossdev.patch
deleted file mode 100644
index 7e290d434f03..000000000000
--- a/dev-lang/ruby/files/2.4/002_windows_crossdev.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-Bug: https://bugs.gentoo.org/show_bug.cgi?id=618878
-
-A few patches to make crossdev for mingw-w64 play nice with ruby's ebuilds.
-Basic gist is that without the following patch to configure.in ruby-2.4.1
-hardcodes 240 into the shared, static, and import library names, which when
-built with the current ruby ebuilds results in names like libx64-msvcrt-ruby24240.dll and so on. The patch is in ruby-trunk[1], but may take a while
-to hit the tarballs that gentoo uses.
-
-Index: configure.in
-===================================================================
---- a/configure.in (revision 57824)
-+++ b/configure.in (revision 57825)
-@@ -3825,7 +3825,23 @@
-
- AC_ARG_WITH(soname,
- AS_HELP_STRING([--with-soname=SONAME], [base name of shared library]),
-- [RUBY_SO_NAME=$withval], [RUBY_SO_NAME='$(RUBY_BASE_NAME)'])
-+ [RUBY_SO_NAME=$withval],
-+ [
-+ AS_CASE(["$target_os"],
-+ [darwin*], [
-+ RUBY_SO_NAME='$(RUBY_BASE_NAME).$(RUBY_PROGRAM_VERSION)'
-+ ],
-+ [cygwin*], [
-+ RUBY_SO_NAME='$(RUBY_BASE_NAME)$(MAJOR)$(MINOR)0'
-+ ],
-+ [mingw*], [
-+ RUBY_SO_NAME="${rb_cv_msvcrt}"'-$(RUBY_BASE_NAME)$(MAJOR)$(MINOR)0'
-+ AS_IF([test x"${target_cpu}" != xi386], [
-+ RUBY_SO_NAME="${target_cpu}-${RUBY_SO_NAME}"
-+ ])
-+ ],
-+ [RUBY_SO_NAME='$(RUBY_BASE_NAME)'])
-+ ])
-
- LIBRUBY_LDSHARED=$LDSHARED
- LIBRUBY_DLDFLAGS=$DLDFLAGS
-@@ -3925,7 +3941,6 @@
- SOLIBS='-lm -lc'
- ],
- [darwin*], [
-- RUBY_SO_NAME="$RUBY_SO_NAME"'.$(RUBY_PROGRAM_VERSION)'
- LIBRUBY_LDSHARED='$(CC) -dynamiclib'
- if test "$load_relative" = yes; then
- libprefix="@executable_path/../${libdir_basename}"
-@@ -4157,7 +4172,6 @@
- fi
- ],
- [cygwin*|mingw*], [
-- RUBY_SO_NAME="${RUBY_SO_NAME}"'$(MAJOR)$(MINOR)0'
- LIBRUBY_DLDFLAGS="${DLDFLAGS}"' -Wl,--out-implib=$(LIBRUBY)'
- AS_CASE(["$target_os"],
- [cygwin*], [
-@@ -4167,10 +4181,6 @@
- fi
- ],
- [mingw*], [
-- RUBY_SO_NAME="${rb_cv_msvcrt}-${RUBY_SO_NAME}"
-- if test x"${target_cpu}" != xi386; then
-- RUBY_SO_NAME="${target_cpu}-${RUBY_SO_NAME}"
-- fi
- if test x"$enable_shared" = xyes; then
- LIBRUBY_SO='$(RUBY_SO_NAME)'.dll
- LIBRUBY_DLDFLAGS="${LIBRUBY_DLDFLAGS}"' $(RUBYDEF)'
diff --git a/dev-lang/ruby/files/2.4/005_no-undefined-ext.patch b/dev-lang/ruby/files/2.4/005_no-undefined-ext.patch
deleted file mode 100644
index f27993240128..000000000000
--- a/dev-lang/ruby/files/2.4/005_no-undefined-ext.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- ruby-1.9.3-preview1.orig/configure.in
-+++ ruby-1.9.3-preview1/configure.in
-@@ -2038,7 +2038,7 @@ if test "$with_dln_a_out" != yes; then
- [linux* | gnu* | k*bsd*-gnu | netbsd* | bsdi* | kopensolaris*-gnu], [
- : ${LDSHARED='$(CC) -shared'}
- if test "$rb_cv_binary_elf" = yes; then
-- LDFLAGS="$LDFLAGS -Wl,-export-dynamic"
-+ LDFLAGS="$LDFLAGS -Wl,-export-dynamic -Wl,--no-undefined"
- fi
- rb_cv_dlopen=yes],
- [interix*], [ : ${LDSHARED='$(CC) -shared'}
diff --git a/dev-lang/ruby/files/2.4/009_no-gems.patch b/dev-lang/ruby/files/2.4/009_no-gems.patch
deleted file mode 100644
index 6e4e2643d4c0..000000000000
--- a/dev-lang/ruby/files/2.4/009_no-gems.patch
+++ /dev/null
@@ -1,112 +0,0 @@
---- a/tool/rbinstall.rb.~1~ 2016-10-17 09:17:07.000000000 +0200
-+++ b/tool/rbinstall.rb 2016-12-25 08:20:07.873491045 +0100
-@@ -695,107 +695,11 @@
- # :startdoc:
-
- install?(:ext, :comm, :gem) do
-- gem_dir = Gem.default_dir
-- directories = Gem.ensure_gem_subdirectories(gem_dir, :mode => $dir_mode)
-- prepare "default gems", gem_dir, directories
--
-- spec_dir = File.join(gem_dir, directories.grep(/^spec/)[0])
-- default_spec_dir = "#{spec_dir}/default"
-- makedirs(default_spec_dir)
--
-- gems = Dir.glob(srcdir+"/{lib,ext}/**/*.gemspec").map {|src|
-- spec = Gem::Specification.load(src) || raise("invalid spec in #{src}")
-- file_collector = RbInstall::Specs::FileCollector.new(File.dirname(src))
-- files = file_collector.collect
-- next if files.empty?
-- spec.files = files
-- spec
-- }
-- gems.compact.sort_by(&:name).each do |gemspec|
-- full_name = "#{gemspec.name}-#{gemspec.version}"
--
-- puts "#{" "*30}#{gemspec.name} #{gemspec.version}"
-- gemspec_path = File.join(default_spec_dir, "#{full_name}.gemspec")
-- open_for_install(gemspec_path, $data_mode) do
-- gemspec.to_ruby
-- end
--
-- unless gemspec.executables.empty? then
-- bin_dir = File.join(gem_dir, 'gems', full_name, gemspec.bindir)
-- makedirs(bin_dir)
--
-- execs = gemspec.executables.map {|exec| File.join(srcdir, 'bin', exec)}
-- install(execs, bin_dir, :mode => $script_mode)
-- end
-- end
-+ # gems are unbundled in Gentoo
- end
-
- install?(:ext, :comm, :gem) do
-- gem_dir = Gem.default_dir
-- directories = Gem.ensure_gem_subdirectories(gem_dir, :mode => $dir_mode)
-- prepare "bundle gems", gem_dir, directories
-- install_dir = with_destdir(gem_dir)
-- installed_gems = {}
-- options = {
-- :install_dir => install_dir,
-- :bin_dir => with_destdir(bindir),
-- :domain => :local,
-- :ignore_dependencies => true,
-- :dir_mode => $dir_mode,
-- :data_mode => $data_mode,
-- :prog_mode => $prog_mode,
-- :wrappers => true,
-- :format_executable => true,
-- }
-- gem_ext_dir = "#$extout/gems/#{CONFIG['arch']}"
-- extensions_dir = Gem::StubSpecification.gemspec_stub("", gem_dir, gem_dir).extensions_dir
-- Gem::Specification.each_gemspec([srcdir+'/gems/*']) do |path|
-- dir = File.dirname(path)
-- spec = Dir.chdir(dir) {
-- Gem::Specification.load(File.basename(path))
-- }
-- next unless spec.platform == Gem::Platform::RUBY
-- next unless spec.full_name == path[srcdir.size..-1][/\A\/gems\/([^\/]+)/, 1]
-- spec.extension_dir = "#{extensions_dir}/#{spec.full_name}"
-- if File.directory?(ext = "#{gem_ext_dir}/#{spec.full_name}")
-- spec.extensions[0] ||= "-"
-- end
-- ins = RbInstall::UnpackedInstaller.new(spec, options)
-- puts "#{" "*30}#{spec.name} #{spec.version}"
-- ins.install
-- File.chmod($data_mode, File.join(install_dir, "specifications", "#{spec.full_name}.gemspec"))
-- unless spec.extensions.empty?
-- install_recursive(ext, spec.extension_dir)
-- end
-- installed_gems[spec.full_name] = true
-- end
-- installed_gems, gems = Dir.glob(srcdir+'/gems/*.gem').partition {|gem| installed_gems.key?(File.basename(gem, '.gem'))}
-- unless installed_gems.empty?
-- install installed_gems, gem_dir+"/cache"
-- end
-- next if gems.empty?
-- if defined?(Zlib)
-- Gem.instance_variable_set(:@ruby, with_destdir(File.join(bindir, ruby_install_name)))
-- silent = Gem::SilentUI.new
-- gems.each do |gem|
-- inst = Gem::Installer.new(gem, options)
-- inst.spec.extension_dir = with_destdir(inst.spec.extension_dir)
-- begin
-- Gem::DefaultUserInteraction.use_ui(silent) {inst.install}
-- rescue Gem::InstallError => e
-- next
-- end
-- gemname = File.basename(gem)
-- puts "#{" "*30}#{gemname}"
-- end
-- # fix directory permissions
-- # TODO: Gem.install should accept :dir_mode option or something
-- File.chmod($dir_mode, *Dir.glob(install_dir+"/**/"))
-- # fix .gemspec permissions
-- File.chmod($data_mode, *Dir.glob(install_dir+"/specifications/*.gemspec"))
-- else
-- puts "skip installing bundle gems because of lacking zlib"
-- end
-+ # gems are unbundled in Gentoo
- end
-
- parse_args()
diff --git a/dev-lang/ruby/files/2.4/010-libressl_2.7.patch b/dev-lang/ruby/files/2.4/010-libressl_2.7.patch
deleted file mode 100644
index 2e25ab095858..000000000000
--- a/dev-lang/ruby/files/2.4/010-libressl_2.7.patch
+++ /dev/null
@@ -1,15 +0,0 @@
---- a/ext/openssl/extconf.rb.orig 2017-09-08 14:38:12 UTC
-+++ b/ext/openssl/extconf.rb
-@@ -157,8 +157,11 @@ OpenSSL.check_func_or_macro("SSL_get_ser
- have_func("SSL_is_server")
-
- # added in 1.1.0
-+if !have_struct_member("SSL", "ctx", "openssl/ssl.h") ||
-+ try_static_assert("LIBRESSL_VERSION_NUMBER >= 0x2070000fL", "openssl/opensslv.h")
-+ $defs.push("-DHAVE_OPAQUE_OPENSSL")
-+end
- have_func("CRYPTO_lock") || $defs.push("-DHAVE_OPENSSL_110_THREADING_API")
--have_struct_member("SSL", "ctx", "openssl/ssl.h") || $defs.push("-DHAVE_OPAQUE_OPENSSL")
- have_func("BN_GENCB_new")
- have_func("BN_GENCB_free")
- have_func("BN_GENCB_get_arg")
diff --git a/dev-lang/ruby/files/2.4/011-gcc8.patch b/dev-lang/ruby/files/2.4/011-gcc8.patch
deleted file mode 100644
index cb2443631dd8..000000000000
--- a/dev-lang/ruby/files/2.4/011-gcc8.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-From 027b576b31cd12bad575b3a39476726273f58c41 Mon Sep 17 00:00:00 2001
-From: naruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>
-Date: Mon, 18 Dec 2017 09:03:59 +0000
-Subject: [PATCH] suppress warning: 'const' attribute on function returning
- 'void'
-
-git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61323 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
----
- include/ruby/intern.h | 4 ++--
- include/ruby/ruby.h | 2 +-
- internal.h | 4 ++--
- 3 files changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/include/ruby/intern.h b/include/ruby/intern.h
-index 5684b3230a67..a711b861159f 100644
---- a/include/ruby/intern.h
-+++ b/include/ruby/intern.h
-@@ -249,9 +249,9 @@ PRINTF_ARGS(NORETURN(void rb_name_error_str(VALUE, const char*, ...)), 2, 3);
- NORETURN(void rb_invalid_str(const char*, const char*));
- NORETURN(void rb_error_frozen(const char*));
- NORETURN(void rb_error_frozen_object(VALUE));
--CONSTFUNC(void rb_error_untrusted(VALUE));
-+void rb_error_untrusted(VALUE);
- void rb_check_frozen(VALUE);
--CONSTFUNC(void rb_check_trusted(VALUE));
-+void rb_check_trusted(VALUE);
- #define rb_check_frozen_internal(obj) do { \
- VALUE frozen_obj = (obj); \
- if (OBJ_FROZEN(frozen_obj)) { \
-diff --git a/include/ruby/ruby.h b/include/ruby/ruby.h
-index 9c7d2fb68439..3210103c648a 100644
---- a/include/ruby/ruby.h
-+++ b/include/ruby/ruby.h
-@@ -628,7 +628,7 @@ int ruby_safe_level_2_warning(void) __attribute__((const,warning("$SAFE=2 to 4 a
- # define rb_set_safe_level(level) rb_set_safe_level(RUBY_SAFE_LEVEL_CHECK(level, error))
- #endif
- void rb_set_safe_level_force(int);
--CONSTFUNC(void rb_secure_update(VALUE));
-+void rb_secure_update(VALUE);
- NORETURN(void rb_insecure_operation(void));
-
- VALUE rb_errinfo(void);
-diff --git a/internal.h b/internal.h
-index d0257a8d8ba0..4ccf3218c6ca 100644
---- a/internal.h
-+++ b/internal.h
-@@ -1110,7 +1110,7 @@ VALUE rb_invcmp(VALUE, VALUE);
- struct rb_block;
- int rb_dvar_defined(ID, const struct rb_block *);
- int rb_local_defined(ID, const struct rb_block *);
--CONSTFUNC(const char * rb_insns_name(int i));
-+const char * rb_insns_name(int i);
- VALUE rb_insns_name_array(void);
-
- /* complex.c */
-@@ -1136,7 +1136,7 @@ void Init_ext(void);
-
- /* encoding.c */
- ID rb_id_encoding(void);
--CONSTFUNC(void rb_gc_mark_encodings(void));
-+void rb_gc_mark_encodings(void);
- rb_encoding *rb_enc_get_from_index(int index);
- rb_encoding *rb_enc_check_str(VALUE str1, VALUE str2);
- int rb_encdb_replicate(const char *alias, const char *orig);
diff --git a/dev-lang/ruby/files/2.4/012-openssl_1.1.patch b/dev-lang/ruby/files/2.4/012-openssl_1.1.patch
deleted file mode 100644
index edf344bedc8c..000000000000
--- a/dev-lang/ruby/files/2.4/012-openssl_1.1.patch
+++ /dev/null
@@ -1,339 +0,0 @@
-From 7af808153dd34a980e027a04d4490ae38019b3ed Mon Sep 17 00:00:00 2001
-From: Mark Wright <gienah@gentoo.org>
-Date: Sun, 15 Oct 2017 01:24:12 +1100
-Subject: [PATCH] Fix build failure against OpenSSL 1.1 built with
- no-deprecated Thanks rhenium for the code review and fixes.
-
----
- ext/openssl/openssl_missing.h | 4 +++
- ext/openssl/ossl.c | 23 ++++++---------
- ext/openssl/ossl.h | 5 ++++
- ext/openssl/ossl_cipher.c | 14 ++++-----
- ext/openssl/ossl_engine.c | 54 ++++++++++++++++++++++-------------
- ext/openssl/ossl_ssl.c | 2 +-
- ext/openssl/ossl_x509cert.c | 4 +--
- ext/openssl/ossl_x509crl.c | 4 +--
- 8 files changed, 63 insertions(+), 47 deletions(-)
-
-diff --git a/ext/openssl/openssl_missing.h b/ext/openssl/openssl_missing.h
-index cc31f6ac..debd25ad 100644
---- a/ext/openssl/openssl_missing.h
-+++ b/ext/openssl/openssl_missing.h
-@@ -209,6 +209,10 @@ IMPL_PKEY_GETTER(EC_KEY, ec)
- # define X509_get0_notAfter(x) X509_get_notAfter(x)
- # define X509_CRL_get0_lastUpdate(x) X509_CRL_get_lastUpdate(x)
- # define X509_CRL_get0_nextUpdate(x) X509_CRL_get_nextUpdate(x)
-+# define X509_set1_notBefore(x, t) X509_set_notBefore(x, t)
-+# define X509_set1_notAfter(x, t) X509_set_notAfter(x, t)
-+# define X509_CRL_set1_lastUpdate(x, t) X509_CRL_set_lastUpdate(x, t)
-+# define X509_CRL_set1_nextUpdate(x, t) X509_CRL_set_nextUpdate(x, t)
- #endif
-
- #if !defined(HAVE_SSL_SESSION_GET_PROTOCOL_VERSION)
-diff --git a/ext/openssl/ossl.c b/ext/openssl/ossl.c
-index 93ecc7d4..245385e7 100644
---- a/ext/openssl/ossl.c
-+++ b/ext/openssl/ossl.c
-@@ -1109,25 +1109,14 @@ Init_openssl(void)
- /*
- * Init all digests, ciphers
- */
-- /* CRYPTO_malloc_init(); */
-- /* ENGINE_load_builtin_engines(); */
-+#if !defined(LIBRESSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER >= 0x10100000
-+ if (!OPENSSL_init_ssl(0, NULL))
-+ rb_raise(rb_eRuntimeError, "OPENSSL_init_ssl");
-+#else
- OpenSSL_add_ssl_algorithms();
- OpenSSL_add_all_algorithms();
- ERR_load_crypto_strings();
- SSL_load_error_strings();
--
-- /*
-- * FIXME:
-- * On unload do:
-- */
--#if 0
-- CONF_modules_unload(1);
-- destroy_ui_method();
-- EVP_cleanup();
-- ENGINE_cleanup();
-- CRYPTO_cleanup_all_ex_data();
-- ERR_remove_state(0);
-- ERR_free_strings();
- #endif
-
- /*
-@@ -1149,7 +1138,11 @@ Init_openssl(void)
- /*
- * Version of OpenSSL the ruby OpenSSL extension is running with
- */
-+#if !defined(LIBRESSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER >= 0x10100000
-+ rb_define_const(mOSSL, "OPENSSL_LIBRARY_VERSION", rb_str_new2(OpenSSL_version(OPENSSL_VERSION)));
-+#else
- rb_define_const(mOSSL, "OPENSSL_LIBRARY_VERSION", rb_str_new2(SSLeay_version(SSLEAY_VERSION)));
-+#endif
-
- /*
- * Version number of OpenSSL the ruby OpenSSL extension was built with
-diff --git a/ext/openssl/ossl.h b/ext/openssl/ossl.h
-index f08889b2..5a15839c 100644
---- a/ext/openssl/ossl.h
-+++ b/ext/openssl/ossl.h
-@@ -35,6 +35,11 @@
- #if !defined(OPENSSL_NO_OCSP)
- # include <openssl/ocsp.h>
- #endif
-+#include <openssl/bn.h>
-+#include <openssl/rsa.h>
-+#include <openssl/dsa.h>
-+#include <openssl/evp.h>
-+#include <openssl/dh.h>
-
- /*
- * Common Module
-diff --git a/ext/openssl/ossl_cipher.c b/ext/openssl/ossl_cipher.c
-index bfa76c1a..e6179733 100644
---- a/ext/openssl/ossl_cipher.c
-+++ b/ext/openssl/ossl_cipher.c
-@@ -508,9 +508,9 @@ ossl_cipher_set_iv(VALUE self, VALUE iv)
- StringValue(iv);
- GetCipher(self, ctx);
-
- #if defined(HAVE_AUTHENTICATED_ENCRYPTION)
-- if (EVP_CIPHER_CTX_flags(ctx) & EVP_CIPH_FLAG_AEAD_CIPHER)
-+ if (EVP_CIPHER_flags(EVP_CIPHER_CTX_cipher(ctx)) & EVP_CIPH_FLAG_AEAD_CIPHER)
- iv_len = (int)(VALUE)EVP_CIPHER_CTX_get_app_data(ctx);
- #endif
- if (!iv_len)
- iv_len = EVP_CIPHER_CTX_iv_length(ctx);
-@@ -535,7 +535,7 @@ ossl_cipher_is_authenticated(VALUE self)
-
- GetCipher(self, ctx);
-
- #if defined(HAVE_AUTHENTICATED_ENCRYPTION)
-- return (EVP_CIPHER_CTX_flags(ctx) & EVP_CIPH_FLAG_AEAD_CIPHER) ? Qtrue : Qfalse;
-+ return (EVP_CIPHER_flags(EVP_CIPHER_CTX_cipher(ctx)) & EVP_CIPH_FLAG_AEAD_CIPHER) ? Qtrue : Qfalse;
- #else
- return Qfalse;
- #endif
-@@ -606,7 +606,7 @@ ossl_cipher_get_auth_tag(int argc, VALUE *argv, VALUE self)
-
- GetCipher(self, ctx);
-
-- if (!(EVP_CIPHER_CTX_flags(ctx) & EVP_CIPH_FLAG_AEAD_CIPHER))
-+ if (!(EVP_CIPHER_flags(EVP_CIPHER_CTX_cipher(ctx)) & EVP_CIPH_FLAG_AEAD_CIPHER))
- ossl_raise(eCipherError, "authentication tag not supported by this cipher");
-
- ret = rb_str_new(NULL, tag_len);
-@@ -641,7 +641,7 @@ ossl_cipher_set_auth_tag(VALUE self, VALUE vtag)
- tag_len = RSTRING_LENINT(vtag);
-
- GetCipher(self, ctx);
-- if (!(EVP_CIPHER_CTX_flags(ctx) & EVP_CIPH_FLAG_AEAD_CIPHER))
-+ if (!(EVP_CIPHER_flags(EVP_CIPHER_CTX_cipher(ctx)) & EVP_CIPH_FLAG_AEAD_CIPHER))
- ossl_raise(eCipherError, "authentication tag not supported by this cipher");
-
- if (!EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_AEAD_SET_TAG, tag_len, tag))
-@@ -668,7 +668,7 @@ ossl_cipher_set_auth_tag_len(VALUE self, VALUE vlen)
- EVP_CIPHER_CTX *ctx;
-
- GetCipher(self, ctx);
-- if (!(EVP_CIPHER_CTX_flags(ctx) & EVP_CIPH_FLAG_AEAD_CIPHER))
-+ if (!(EVP_CIPHER_flags(EVP_CIPHER_CTX_cipher(ctx)) & EVP_CIPH_FLAG_AEAD_CIPHER))
- ossl_raise(eCipherError, "AEAD not supported by this cipher");
-
- if (!EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_AEAD_SET_TAG, tag_len, NULL))
-@@ -695,7 +695,7 @@ ossl_cipher_set_iv_length(VALUE self, VALUE iv_length)
- EVP_CIPHER_CTX *ctx;
-
- GetCipher(self, ctx);
-- if (!(EVP_CIPHER_CTX_flags(ctx) & EVP_CIPH_FLAG_AEAD_CIPHER))
-+ if (!(EVP_CIPHER_flags(EVP_CIPHER_CTX_cipher(ctx)) & EVP_CIPH_FLAG_AEAD_CIPHER))
- ossl_raise(eCipherError, "cipher does not support AEAD");
-
- if (!EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_AEAD_SET_IVLEN, len, NULL))
-@@ -786,9 +786,9 @@ ossl_cipher_iv_length(VALUE self)
- int len = 0;
-
- GetCipher(self, ctx);
- #if defined(HAVE_AUTHENTICATED_ENCRYPTION)
-- if (EVP_CIPHER_CTX_flags(ctx) & EVP_CIPH_FLAG_AEAD_CIPHER)
-+ if (EVP_CIPHER_flags(EVP_CIPHER_CTX_cipher(ctx)) & EVP_CIPH_FLAG_AEAD_CIPHER)
- len = (int)(VALUE)EVP_CIPHER_CTX_get_app_data(ctx);
- #endif
- if (!len)
- len = EVP_CIPHER_CTX_iv_length(ctx);
-diff --git a/ext/openssl/ossl_engine.c b/ext/openssl/ossl_engine.c
-index d69b5dca..5ca0d4ca 100644
---- a/ext/openssl/ossl_engine.c
-+++ b/ext/openssl/ossl_engine.c
-@@ -46,13 +46,25 @@ VALUE eEngineError;
- /*
- * Private
- */
--#define OSSL_ENGINE_LOAD_IF_MATCH(x) \
-+#if !defined(LIBRESSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER >= 0x10100000
-+#define OSSL_ENGINE_LOAD_IF_MATCH(engine_name, x) \
- do{\
-- if(!strcmp(#x, RSTRING_PTR(name))){\
-- ENGINE_load_##x();\
-+ if(!strcmp(#engine_name, RSTRING_PTR(name))){\
-+ if (OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_##x, NULL))\
-+ return Qtrue;\
-+ else\
-+ ossl_raise(eEngineError, "OPENSSL_init_crypto"); \
-+ }\
-+}while(0)
-+#else
-+#define OSSL_ENGINE_LOAD_IF_MATCH(engine_name, x) \
-+do{\
-+ if(!strcmp(#engine_name, RSTRING_PTR(name))){\
-+ ENGINE_load_##engine_name();\
- return Qtrue;\
- }\
- }while(0)
-+#endif
-
- static void
- ossl_engine_free(void *engine)
-@@ -94,55 +106,55 @@ ossl_engine_s_load(int argc, VALUE *argv, VALUE klass)
- StringValueCStr(name);
- #ifndef OPENSSL_NO_STATIC_ENGINE
- #if HAVE_ENGINE_LOAD_DYNAMIC
-- OSSL_ENGINE_LOAD_IF_MATCH(dynamic);
-+ OSSL_ENGINE_LOAD_IF_MATCH(dynamic, DYNAMIC);
- #endif
- #if HAVE_ENGINE_LOAD_4758CCA
-- OSSL_ENGINE_LOAD_IF_MATCH(4758cca);
-+ OSSL_ENGINE_LOAD_IF_MATCH(4758cca, 4758CCA);
- #endif
- #if HAVE_ENGINE_LOAD_AEP
-- OSSL_ENGINE_LOAD_IF_MATCH(aep);
-+ OSSL_ENGINE_LOAD_IF_MATCH(aep, AEP);
- #endif
- #if HAVE_ENGINE_LOAD_ATALLA
-- OSSL_ENGINE_LOAD_IF_MATCH(atalla);
-+ OSSL_ENGINE_LOAD_IF_MATCH(atalla, ATALLA);
- #endif
- #if HAVE_ENGINE_LOAD_CHIL
-- OSSL_ENGINE_LOAD_IF_MATCH(chil);
-+ OSSL_ENGINE_LOAD_IF_MATCH(chil, CHIL);
- #endif
- #if HAVE_ENGINE_LOAD_CSWIFT
-- OSSL_ENGINE_LOAD_IF_MATCH(cswift);
-+ OSSL_ENGINE_LOAD_IF_MATCH(cswift, CSWIFT);
- #endif
- #if HAVE_ENGINE_LOAD_NURON
-- OSSL_ENGINE_LOAD_IF_MATCH(nuron);
-+ OSSL_ENGINE_LOAD_IF_MATCH(nuron, NURON);
- #endif
- #if HAVE_ENGINE_LOAD_SUREWARE
-- OSSL_ENGINE_LOAD_IF_MATCH(sureware);
-+ OSSL_ENGINE_LOAD_IF_MATCH(sureware, SUREWARE);
- #endif
- #if HAVE_ENGINE_LOAD_UBSEC
-- OSSL_ENGINE_LOAD_IF_MATCH(ubsec);
-+ OSSL_ENGINE_LOAD_IF_MATCH(ubsec, UBSEC);
- #endif
- #if HAVE_ENGINE_LOAD_PADLOCK
-- OSSL_ENGINE_LOAD_IF_MATCH(padlock);
-+ OSSL_ENGINE_LOAD_IF_MATCH(padlock, PADLOCK);
- #endif
- #if HAVE_ENGINE_LOAD_CAPI
-- OSSL_ENGINE_LOAD_IF_MATCH(capi);
-+ OSSL_ENGINE_LOAD_IF_MATCH(capi, CAPI);
- #endif
- #if HAVE_ENGINE_LOAD_GMP
-- OSSL_ENGINE_LOAD_IF_MATCH(gmp);
-+ OSSL_ENGINE_LOAD_IF_MATCH(gmp, GMP);
- #endif
- #if HAVE_ENGINE_LOAD_GOST
-- OSSL_ENGINE_LOAD_IF_MATCH(gost);
-+ OSSL_ENGINE_LOAD_IF_MATCH(gost, GOST);
- #endif
- #if HAVE_ENGINE_LOAD_CRYPTODEV
-- OSSL_ENGINE_LOAD_IF_MATCH(cryptodev);
-+ OSSL_ENGINE_LOAD_IF_MATCH(cryptodev, CRYPTODEV);
- #endif
- #if HAVE_ENGINE_LOAD_AESNI
-- OSSL_ENGINE_LOAD_IF_MATCH(aesni);
-+ OSSL_ENGINE_LOAD_IF_MATCH(aesni, AESNI);
- #endif
- #endif
- #ifdef HAVE_ENGINE_LOAD_OPENBSD_DEV_CRYPTO
-- OSSL_ENGINE_LOAD_IF_MATCH(openbsd_dev_crypto);
-+ OSSL_ENGINE_LOAD_IF_MATCH(openbsd_dev_crypto, OPENBSD_DEV_CRYPTO);
- #endif
-- OSSL_ENGINE_LOAD_IF_MATCH(openssl);
-+ OSSL_ENGINE_LOAD_IF_MATCH(openssl, OPENSSL);
- rb_warning("no such builtin loader for `%"PRIsVALUE"'", name);
- return Qnil;
- #endif /* HAVE_ENGINE_LOAD_BUILTIN_ENGINES */
-@@ -160,7 +172,9 @@ ossl_engine_s_load(int argc, VALUE *argv, VALUE klass)
- static VALUE
- ossl_engine_s_cleanup(VALUE self)
- {
-+#if defined(LIBRESSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER < 0x10100000
- ENGINE_cleanup();
-+#endif
- return Qnil;
- }
-
-diff --git a/ext/openssl/ossl_ssl.c b/ext/openssl/ossl_ssl.c
-index 8e3c0c42..d32a299c 100644
---- a/ext/openssl/ossl_ssl.c
-+++ b/ext/openssl/ossl_ssl.c
-@@ -379,7 +379,7 @@ ossl_call_session_get_cb(VALUE ary)
-
- /* this method is currently only called for servers (in OpenSSL <= 0.9.8e) */
- static SSL_SESSION *
--#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
-+#if OPENSSL_VERSION_NUMBER >= 0x10100000 && !defined(LIBRESSL_VERSION_NUMBER)
- ossl_sslctx_session_get_cb(SSL *ssl, const unsigned char *buf, int len, int *copy)
- #else
- ossl_sslctx_session_get_cb(SSL *ssl, unsigned char *buf, int len, int *copy)
-diff --git a/ext/openssl/ossl_x509cert.c b/ext/openssl/ossl_x509cert.c
-index cf82a53d..8d16b9b7 100644
---- a/ext/openssl/ossl_x509cert.c
-+++ b/ext/openssl/ossl_x509cert.c
-@@ -440,7 +440,7 @@ ossl_x509_set_not_before(VALUE self, VALUE time)
-
- GetX509(self, x509);
- asn1time = ossl_x509_time_adjust(NULL, time);
-- if (!X509_set_notBefore(x509, asn1time)) {
-+ if (!X509_set1_notBefore(x509, asn1time)) {
- ASN1_TIME_free(asn1time);
- ossl_raise(eX509CertError, "X509_set_notBefore");
- }
-@@ -479,7 +479,7 @@ ossl_x509_set_not_after(VALUE self, VALUE time)
-
- GetX509(self, x509);
- asn1time = ossl_x509_time_adjust(NULL, time);
-- if (!X509_set_notAfter(x509, asn1time)) {
-+ if (!X509_set1_notAfter(x509, asn1time)) {
- ASN1_TIME_free(asn1time);
- ossl_raise(eX509CertError, "X509_set_notAfter");
- }
-diff --git a/ext/openssl/ossl_x509crl.c b/ext/openssl/ossl_x509crl.c
-index 5ecd7ea0..45cf7fb4 100644
---- a/ext/openssl/ossl_x509crl.c
-+++ b/ext/openssl/ossl_x509crl.c
-@@ -226,7 +226,7 @@ ossl_x509crl_set_last_update(VALUE self, VALUE time)
-
- GetX509CRL(self, crl);
- asn1time = ossl_x509_time_adjust(NULL, time);
-- if (!X509_CRL_set_lastUpdate(crl, asn1time)) {
-+ if (!X509_CRL_set1_lastUpdate(crl, asn1time)) {
- ASN1_TIME_free(asn1time);
- ossl_raise(eX509CRLError, "X509_CRL_set_lastUpdate");
- }
-@@ -257,7 +257,7 @@ ossl_x509crl_set_next_update(VALUE self, VALUE time)
-
- GetX509CRL(self, crl);
- asn1time = ossl_x509_time_adjust(NULL, time);
-- if (!X509_CRL_set_nextUpdate(crl, asn1time)) {
-+ if (!X509_CRL_set1_nextUpdate(crl, asn1time)) {
- ASN1_TIME_free(asn1time);
- ossl_raise(eX509CRLError, "X509_CRL_set_nextUpdate");
- }
diff --git a/dev-lang/ruby/files/2.5/001-ia64-update-ia64-specific-code-to-use-execution-cont.patch b/dev-lang/ruby/files/2.5/001-ia64-update-ia64-specific-code-to-use-execution-cont.patch
deleted file mode 100644
index 2ade8b8d4203..000000000000
--- a/dev-lang/ruby/files/2.5/001-ia64-update-ia64-specific-code-to-use-execution-cont.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From 5af43b1ec2674e9f86090790bc61abdb96be14ff Mon Sep 17 00:00:00 2001
-From: hsbt <hsbt@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>
-Date: Tue, 30 Jan 2018 05:43:42 +0000
-Subject: [PATCH] ia64: update ia64-specific code to use execution context
-
-This change follows commit 837fd5e494731d7d44786f29e7d6e8c27029806f
-in '#ifdef __ia64' branches.
-
-Noticed as a build failure by John Paul Adrian Glaubitz:
-
-```
- cont.c:502:50: error: 'rb_thread_t {aka struct rb_thread_struct}'
- has no member named 'machine'
- size = cont->machine.register_stack_size =
- th->machine.register_stack_end - th->machine.register_stack_start;
- ^~
-```
-
-The change is trivial: update 'th->machine' usage to 'th->ec->machine'.
-Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
-
-git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62106 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
----
- cont.c | 6 +++---
- thread.c | 2 +-
- 2 files changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/cont.c b/cont.c
-index f48fd2e52b..93a64f8fe6 100644
---- a/cont.c
-+++ b/cont.c
-@@ -475,7 +475,7 @@ cont_save_machine_stack(rb_thread_t *th, rb_context_t *cont)
-
- SET_MACHINE_STACK_END(&th->ec->machine.stack_end);
- #ifdef __ia64
-- th->machine.register_stack_end = rb_ia64_bsp();
-+ th->ec->machine.register_stack_end = rb_ia64_bsp();
- #endif
-
- if (th->ec->machine.stack_start > th->ec->machine.stack_end) {
-@@ -499,8 +499,8 @@ cont_save_machine_stack(rb_thread_t *th, rb_context_t *cont)
-
- #ifdef __ia64
- rb_ia64_flushrs();
-- size = cont->machine.register_stack_size = th->machine.register_stack_end - th->machine.register_stack_start;
-- cont->machine.register_stack_src = th->machine.register_stack_start;
-+ size = cont->machine.register_stack_size = th->ec->machine.register_stack_end - th->ec->machine.register_stack_start;
-+ cont->machine.register_stack_src = th->ec->machine.register_stack_start;
- if (cont->machine.register_stack) {
- REALLOC_N(cont->machine.register_stack, VALUE, size);
- }
-diff --git a/thread.c b/thread.c
-index acb53354fd..23957eba09 100644
---- a/thread.c
-+++ b/thread.c
-@@ -133,7 +133,7 @@ static inline void blocking_region_end(rb_thread_t *th, struct rb_blocking_regio
-
- #ifdef __ia64
- #define RB_GC_SAVE_MACHINE_REGISTER_STACK(th) \
-- do{(th)->machine.register_stack_end = rb_ia64_bsp();}while(0)
-+ do{(th)->ec->machine.register_stack_end = rb_ia64_bsp();}while(0)
- #else
- #define RB_GC_SAVE_MACHINE_REGISTER_STACK(th)
- #endif
---
-2.16.1
-
diff --git a/dev-lang/ruby/files/2.5/002-autoconf-2.70.patch b/dev-lang/ruby/files/2.5/002-autoconf-2.70.patch
deleted file mode 100644
index 576ed6c759bd..000000000000
--- a/dev-lang/ruby/files/2.5/002-autoconf-2.70.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-From 6160ea5e22ee7353a0814159c94bd3cf890a52ce Mon Sep 17 00:00:00 2001
-From: Sergei Trofimovich <slyfox@gentoo.org>
-Date: Mon, 16 Nov 2020 08:42:15 +0000
-Subject: [PATCH] configure.ac: fix for upcoming autoconf-2.70
-
-The failure initially noticed on `autoconf-2.69d` (soon to become 2.70):
-
-```
-$ ./configure
-./configure: line 8720: syntax error near unexpected token `fi'
-./configure: line 8720: `fi'
-```
-
-Before the change generated `./configure ` snippet looked like:
-
-```
- if ! $CC -E -xc - <<SRC >/dev/null
-then :
-
- #if defined __APPLE_CC__ && defined __clang_major__ && __clang_major__ < 3
- #error premature clang
- #endif
-SRC
- as_fn_error $? "clang version 3.0 or later is required" "$LINENO" 5
-fi
-```
-
-Note the newline that breaks here-document syntax.
-
-After the change the snippet does not use here-document.
-
-Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
----
- configure.ac | 15 ++++++++-------
- 1 file changed, 8 insertions(+), 7 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index a5e3dc76f6..4e4a52f066 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -271,13 +271,14 @@ AS_CASE(["$host_os:$build_os"],
- # clang version 1.0 (http://llvm.org/svn/llvm-project/cfe/tags/Apple/clang-23 exported)
- # Apple clang version 2.0 (tags/Apple/clang-137) (based on LLVM 2.9svn)
- # Apple clang version 2.1 (tags/Apple/clang-163.7.1) (based on LLVM 3.0svn)
-- AS_IF([! $CC -E -xc - <<SRC >/dev/null], [
-- @%:@if defined __APPLE_CC__ && defined __clang_major__ && __clang_major__ < 3
-- @%:@error premature clang
-- @%:@endif
--SRC
-- AC_MSG_ERROR([clang version 3.0 or later is required])
-- ])
-+ AC_PREPROC_IFELSE(
-+ [AC_LANG_PROGRAM([
-+ @%:@if defined __APPLE_CC__ && defined __clang_major__ && __clang_major__ < 3
-+ @%:@error premature clang
-+ @%:@endif
-+ ])],
-+ [],
-+ [AC_MSG_ERROR([clang version 3.0 or later is required])])
- ])
-
- AS_CASE(["$target_os"],
---
-2.29.2
-
diff --git a/dev-lang/ruby/files/2.5/005_no-undefined-ext.patch b/dev-lang/ruby/files/2.5/005_no-undefined-ext.patch
deleted file mode 100644
index 1f0fdda08da5..000000000000
--- a/dev-lang/ruby/files/2.5/005_no-undefined-ext.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/configure.ac.~1~ 2017-12-15 10:43:40.000000000 +0100
-+++ b/configure.ac 2017-12-25 11:02:19.099076831 +0100
-@@ -3233,7 +3233,7 @@
- [linux* | gnu* | k*bsd*-gnu | netbsd* | bsdi* | kopensolaris*-gnu | haiku*], [
- : ${LDSHARED='$(CC) -shared'}
- AS_IF([test "$rb_cv_binary_elf" = yes], [
-- LDFLAGS="$LDFLAGS -Wl,-export-dynamic"
-+ LDFLAGS="$LDFLAGS -Wl,-export-dynamic -Wl,--no-undefined"
- ])
- rb_cv_dlopen=yes],
- [interix*], [ : ${LDSHARED='$(CC) -shared'}
diff --git a/dev-lang/ruby/files/2.5/009_no-gems.patch b/dev-lang/ruby/files/2.5/009_no-gems.patch
deleted file mode 100644
index e12429a43242..000000000000
--- a/dev-lang/ruby/files/2.5/009_no-gems.patch
+++ /dev/null
@@ -1,95 +0,0 @@
---- a/tool/rbinstall.rb.~1~ 2017-10-30 06:45:20.000000000 +0100
-+++ b/tool/rbinstall.rb 2017-12-25 11:06:53.340432435 +0100
-@@ -700,20 +700,10 @@
- # :startdoc:
-
- install?(:ext, :comm, :gem, :'default-gems', :'default-gems-comm') do
-- install_default_gem('lib', srcdir)
-+ # Gems are unbundled in Gentoo
- end
- install?(:ext, :arch, :gem, :'default-gems', :'default-gems-arch') do
-- install_default_gem('ext', srcdir) do |path|
-- # assume that gemspec and extconf.rb are placed in the same directory
-- success = false
-- begin
-- IO.foreach(File.dirname(path[(srcdir.size+1)..-1]) + "/Makefile") do |l|
-- break success = true if /^TARGET\s*=/ =~ l
-- end
-- rescue Errno::ENOENT
-- end
-- success
-- end
-+ # Gems are unbundled in Gentoo
- end
-
- def load_gemspec(file)
-@@ -765,68 +755,7 @@
- end
-
- install?(:ext, :comm, :gem, :'bundled-gems') do
-- gem_dir = Gem.default_dir
-- directories = Gem.ensure_gem_subdirectories(gem_dir, :mode => $dir_mode)
-- prepare "bundled gems", gem_dir, directories
-- install_dir = with_destdir(gem_dir)
-- installed_gems = {}
-- options = {
-- :install_dir => install_dir,
-- :bin_dir => with_destdir(bindir),
-- :domain => :local,
-- :ignore_dependencies => true,
-- :dir_mode => $dir_mode,
-- :data_mode => $data_mode,
-- :prog_mode => $prog_mode,
-- :wrappers => true,
-- :format_executable => true,
-- }
-- gem_ext_dir = "#$extout/gems/#{CONFIG['arch']}"
-- extensions_dir = Gem::StubSpecification.gemspec_stub("", gem_dir, gem_dir).extensions_dir
-- Gem::Specification.each_gemspec([srcdir+'/gems/*']) do |path|
-- spec = load_gemspec(path)
-- next unless spec.platform == Gem::Platform::RUBY
-- next unless spec.full_name == path[srcdir.size..-1][/\A\/gems\/([^\/]+)/, 1]
-- spec.extension_dir = "#{extensions_dir}/#{spec.full_name}"
-- if File.directory?(ext = "#{gem_ext_dir}/#{spec.full_name}")
-- spec.extensions[0] ||= "-"
-- end
-- ins = RbInstall::UnpackedInstaller.new(spec, options)
-- puts "#{INDENT}#{spec.name} #{spec.version}"
-- ins.install
-- File.chmod($data_mode, File.join(install_dir, "specifications", "#{spec.full_name}.gemspec"))
-- unless spec.extensions.empty?
-- install_recursive(ext, spec.extension_dir)
-- end
-- installed_gems[spec.full_name] = true
-- end
-- installed_gems, gems = Dir.glob(srcdir+'/gems/*.gem').partition {|gem| installed_gems.key?(File.basename(gem, '.gem'))}
-- unless installed_gems.empty?
-- install installed_gems, gem_dir+"/cache"
-- end
-- next if gems.empty?
-- if defined?(Zlib)
-- Gem.instance_variable_set(:@ruby, with_destdir(File.join(bindir, ruby_install_name)))
-- silent = Gem::SilentUI.new
-- gems.each do |gem|
-- inst = Gem::Installer.new(gem, options)
-- inst.spec.extension_dir = with_destdir(inst.spec.extension_dir)
-- begin
-- Gem::DefaultUserInteraction.use_ui(silent) {inst.install}
-- rescue Gem::InstallError => e
-- next
-- end
-- gemname = File.basename(gem)
-- puts "#{INDENT}#{gemname}"
-- end
-- # fix directory permissions
-- # TODO: Gem.install should accept :dir_mode option or something
-- File.chmod($dir_mode, *Dir.glob(install_dir+"/**/"))
-- # fix .gemspec permissions
-- File.chmod($data_mode, *Dir.glob(install_dir+"/specifications/*.gemspec"))
-- else
-- puts "skip installing bundled gems because of lacking zlib"
-- end
-+ # Gems are unbundled in Gentoo
- end
-
- parse_args()
diff --git a/dev-lang/ruby/files/2.5/010-libressl_2.7.patch b/dev-lang/ruby/files/2.5/010-libressl_2.7.patch
deleted file mode 100644
index 150f43c9e55d..000000000000
--- a/dev-lang/ruby/files/2.5/010-libressl_2.7.patch
+++ /dev/null
@@ -1,15 +0,0 @@
---- a/ext/openssl/extconf.rb.orig 2018-04-02 09:57:14 UTC
-+++ b/ext/openssl/extconf.rb
-@@ -122,8 +122,11 @@ OpenSSL.check_func_or_macro("SSL_get_ser
- have_func("SSL_is_server")
-
- # added in 1.1.0
-+if !have_struct_member("SSL", "ctx", "openssl/ssl.h") ||
-+ try_static_assert("LIBRESSL_VERSION_NUMBER >= 0x2070000fL", "openssl/opensslv.h")
-+ $defs.push("-DHAVE_OPAQUE_OPENSSL")
-+end
- have_func("CRYPTO_lock") || $defs.push("-DHAVE_OPENSSL_110_THREADING_API")
--have_struct_member("SSL", "ctx", "openssl/ssl.h") || $defs.push("-DHAVE_OPAQUE_OPENSSL")
- have_func("BN_GENCB_new")
- have_func("BN_GENCB_free")
- have_func("BN_GENCB_get_arg")
diff --git a/dev-lang/ruby/files/2.5/011-no-gems.patch b/dev-lang/ruby/files/2.5/011-no-gems.patch
deleted file mode 100644
index 2ebe064c8ac6..000000000000
--- a/dev-lang/ruby/files/2.5/011-no-gems.patch
+++ /dev/null
@@ -1,85 +0,0 @@
---- a/tool/rbinstall.rb.~1~ 2017-10-30 06:45:20.000000000 +0100
-+++ b/tool/rbinstall.rb 2017-12-25 11:06:53.340432435 +0100
-@@ -700,10 +700,10 @@
- # :startdoc:
-
- install?(:ext, :comm, :gem, :'default-gems', :'default-gems-comm') do
-- install_default_gem('lib', srcdir)
-+ # Gems are unbundled in Gentoo
- end
- install?(:ext, :arch, :gem, :'default-gems', :'default-gems-arch') do
-- install_default_gem('ext', srcdir)
-+ # Gems are unbundled in Gentoo
- end
-
- def load_gemspec(file)
-@@ -765,68 +755,7 @@
- end
-
- install?(:ext, :comm, :gem, :'bundled-gems') do
-- gem_dir = Gem.default_dir
-- directories = Gem.ensure_gem_subdirectories(gem_dir, :mode => $dir_mode)
-- prepare "bundled gems", gem_dir, directories
-- install_dir = with_destdir(gem_dir)
-- installed_gems = {}
-- options = {
-- :install_dir => install_dir,
-- :bin_dir => with_destdir(bindir),
-- :domain => :local,
-- :ignore_dependencies => true,
-- :dir_mode => $dir_mode,
-- :data_mode => $data_mode,
-- :prog_mode => $prog_mode,
-- :wrappers => true,
-- :format_executable => true,
-- }
-- gem_ext_dir = "#$extout/gems/#{CONFIG['arch']}"
-- extensions_dir = Gem::StubSpecification.gemspec_stub("", gem_dir, gem_dir).extensions_dir
-- Gem::Specification.each_gemspec([srcdir+'/gems/*']) do |path|
-- spec = load_gemspec(path)
-- next unless spec.platform == Gem::Platform::RUBY
-- next unless spec.full_name == path[srcdir.size..-1][/\A\/gems\/([^\/]+)/, 1]
-- spec.extension_dir = "#{extensions_dir}/#{spec.full_name}"
-- if File.directory?(ext = "#{gem_ext_dir}/#{spec.full_name}")
-- spec.extensions[0] ||= "-"
-- end
-- ins = RbInstall::UnpackedInstaller.new(spec, options)
-- puts "#{INDENT}#{spec.name} #{spec.version}"
-- ins.install
-- File.chmod($data_mode, File.join(install_dir, "specifications", "#{spec.full_name}.gemspec"))
-- unless spec.extensions.empty?
-- install_recursive(ext, spec.extension_dir)
-- end
-- installed_gems[spec.full_name] = true
-- end
-- installed_gems, gems = Dir.glob(srcdir+'/gems/*.gem').partition {|gem| installed_gems.key?(File.basename(gem, '.gem'))}
-- unless installed_gems.empty?
-- install installed_gems, gem_dir+"/cache"
-- end
-- next if gems.empty?
-- if defined?(Zlib)
-- Gem.instance_variable_set(:@ruby, with_destdir(File.join(bindir, ruby_install_name)))
-- silent = Gem::SilentUI.new
-- gems.each do |gem|
-- inst = Gem::Installer.new(gem, options)
-- inst.spec.extension_dir = with_destdir(inst.spec.extension_dir)
-- begin
-- Gem::DefaultUserInteraction.use_ui(silent) {inst.install}
-- rescue Gem::InstallError => e
-- next
-- end
-- gemname = File.basename(gem)
-- puts "#{INDENT}#{gemname}"
-- end
-- # fix directory permissions
-- # TODO: Gem.install should accept :dir_mode option or something
-- File.chmod($dir_mode, *Dir.glob(install_dir+"/**/"))
-- # fix .gemspec permissions
-- File.chmod($data_mode, *Dir.glob(install_dir+"/specifications/*.gemspec"))
-- else
-- puts "skip installing bundled gems because of lacking zlib"
-- end
-+ # Gems are unbundled in Gentoo
- end
-
- parse_args()
diff --git a/dev-lang/ruby/files/2.6/002-autoconf-2.70.patch b/dev-lang/ruby/files/2.6/002-autoconf-2.70.patch
deleted file mode 100644
index 576ed6c759bd..000000000000
--- a/dev-lang/ruby/files/2.6/002-autoconf-2.70.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-From 6160ea5e22ee7353a0814159c94bd3cf890a52ce Mon Sep 17 00:00:00 2001
-From: Sergei Trofimovich <slyfox@gentoo.org>
-Date: Mon, 16 Nov 2020 08:42:15 +0000
-Subject: [PATCH] configure.ac: fix for upcoming autoconf-2.70
-
-The failure initially noticed on `autoconf-2.69d` (soon to become 2.70):
-
-```
-$ ./configure
-./configure: line 8720: syntax error near unexpected token `fi'
-./configure: line 8720: `fi'
-```
-
-Before the change generated `./configure ` snippet looked like:
-
-```
- if ! $CC -E -xc - <<SRC >/dev/null
-then :
-
- #if defined __APPLE_CC__ && defined __clang_major__ && __clang_major__ < 3
- #error premature clang
- #endif
-SRC
- as_fn_error $? "clang version 3.0 or later is required" "$LINENO" 5
-fi
-```
-
-Note the newline that breaks here-document syntax.
-
-After the change the snippet does not use here-document.
-
-Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
----
- configure.ac | 15 ++++++++-------
- 1 file changed, 8 insertions(+), 7 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index a5e3dc76f6..4e4a52f066 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -271,13 +271,14 @@ AS_CASE(["$host_os:$build_os"],
- # clang version 1.0 (http://llvm.org/svn/llvm-project/cfe/tags/Apple/clang-23 exported)
- # Apple clang version 2.0 (tags/Apple/clang-137) (based on LLVM 2.9svn)
- # Apple clang version 2.1 (tags/Apple/clang-163.7.1) (based on LLVM 3.0svn)
-- AS_IF([! $CC -E -xc - <<SRC >/dev/null], [
-- @%:@if defined __APPLE_CC__ && defined __clang_major__ && __clang_major__ < 3
-- @%:@error premature clang
-- @%:@endif
--SRC
-- AC_MSG_ERROR([clang version 3.0 or later is required])
-- ])
-+ AC_PREPROC_IFELSE(
-+ [AC_LANG_PROGRAM([
-+ @%:@if defined __APPLE_CC__ && defined __clang_major__ && __clang_major__ < 3
-+ @%:@error premature clang
-+ @%:@endif
-+ ])],
-+ [],
-+ [AC_MSG_ERROR([clang version 3.0 or later is required])])
- ])
-
- AS_CASE(["$target_os"],
---
-2.29.2
-
diff --git a/dev-lang/ruby/files/2.6/005_no-undefined-ext.patch b/dev-lang/ruby/files/2.6/005_no-undefined-ext.patch
deleted file mode 100644
index 1f0fdda08da5..000000000000
--- a/dev-lang/ruby/files/2.6/005_no-undefined-ext.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/configure.ac.~1~ 2017-12-15 10:43:40.000000000 +0100
-+++ b/configure.ac 2017-12-25 11:02:19.099076831 +0100
-@@ -3233,7 +3233,7 @@
- [linux* | gnu* | k*bsd*-gnu | netbsd* | bsdi* | kopensolaris*-gnu | haiku*], [
- : ${LDSHARED='$(CC) -shared'}
- AS_IF([test "$rb_cv_binary_elf" = yes], [
-- LDFLAGS="$LDFLAGS -Wl,-export-dynamic"
-+ LDFLAGS="$LDFLAGS -Wl,-export-dynamic -Wl,--no-undefined"
- ])
- rb_cv_dlopen=yes],
- [interix*], [ : ${LDSHARED='$(CC) -shared'}
diff --git a/dev-lang/ruby/files/2.6/009_no-gems.patch b/dev-lang/ruby/files/2.6/009_no-gems.patch
deleted file mode 100644
index f98801d50312..000000000000
--- a/dev-lang/ruby/files/2.6/009_no-gems.patch
+++ /dev/null
@@ -1,39 +0,0 @@
---- a/tool/rbinstall.rb.~1~ 2018-12-27 07:43:59.938638174 +0100
-+++ b/tool/rbinstall.rb 2018-12-27 07:51:09.096382161 +0100
-@@ -723,17 +723,7 @@
- # :startdoc:
-
- install?(:ext, :arch, :gem, :'default-gems', :'default-gems-arch') do
-- install_default_gem('ext', srcdir) do |path|
-- # assume that gemspec and extconf.rb are placed in the same directory
-- success = false
-- begin
-- IO.foreach(File.dirname(path[(srcdir.size+1)..-1]) + "/Makefile") do |l|
-- break success = true if /^TARGET\s*=/ =~ l
-- end
-- rescue Errno::ENOENT
-- end
-- success
-- end
-+ # Gems are unbundled in Gentoo
- end
-
- def load_gemspec(file)
-@@ -743,7 +743,7 @@
- end
-
- def install_default_gem(dir, srcdir)
-- gem_dir = Gem.default_dir
-+ gem_dir = ENV['GEM_DESTDIR'] ; puts "gem_dir for default gems = #{gem_dir}"
- directories = Gem.ensure_gem_subdirectories(gem_dir, :mode => $dir_mode)
- prepare "default gems from #{dir}", gem_dir, directories
-
-@@ -777,7 +777,7 @@
- end
-
- install?(:ext, :comm, :gem, :'bundled-gems') do
-- gem_dir = Gem.default_dir
-+ gem_dir = ENV['GEM_DESTDIR']
- directories = Gem.ensure_gem_subdirectories(gem_dir, :mode => $dir_mode)
- prepare "bundled gems", gem_dir, directories
- install_dir = with_destdir(gem_dir)
diff --git a/dev-lang/ruby/files/2.6/010-default-gem-location.patch b/dev-lang/ruby/files/2.6/010-default-gem-location.patch
deleted file mode 100644
index 7a50c35ff6c9..000000000000
--- a/dev-lang/ruby/files/2.6/010-default-gem-location.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- a/tool/rbinstall.rb.~1~ 2019-01-24 02:00:07.000000000 +0100
-+++ b/tool/rbinstall.rb 2019-02-03 08:39:49.778007118 +0100
-@@ -806,7 +806,7 @@
- end
-
- def install_default_gem(dir, srcdir)
-- gem_dir = Gem.default_dir
-+ gem_dir = ENV['GEM_DESTDIR']
- directories = Gem.ensure_gem_subdirectories(gem_dir, :mode => $dir_mode)
- prepare "default gems from #{dir}", gem_dir, directories
-
-@@ -844,7 +844,7 @@
- end
-
- install?(:ext, :comm, :gem, :'bundled-gems') do
-- gem_dir = Gem.default_dir
-+ gem_dir = ENV['GEM_DESTDIR']
- directories = Gem.ensure_gem_subdirectories(gem_dir, :mode => $dir_mode)
- prepare "bundled gems", gem_dir, directories
- install_dir = with_destdir(gem_dir)
diff --git a/dev-lang/ruby/files/2.7/002-autoconf-2.70.patch b/dev-lang/ruby/files/2.7/002-autoconf-2.70.patch
deleted file mode 100644
index bea2bc178dc4..000000000000
--- a/dev-lang/ruby/files/2.7/002-autoconf-2.70.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-diff --git a/configure.ac b/configure.ac
-index 6766df2..bc503d6 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -177,13 +177,14 @@ AS_CASE(["$host_os:$build_os"],
- # clang version 1.0 (http://llvm.org/svn/llvm-project/cfe/tags/Apple/clang-23 exported)
- # Apple clang version 2.0 (tags/Apple/clang-137) (based on LLVM 2.9svn)
- # Apple clang version 2.1 (tags/Apple/clang-163.7.1) (based on LLVM 3.0svn)
-- AS_IF([! $CC -E -xc - <<SRC >/dev/null], [
-- @%:@if defined __APPLE_CC__ && defined __clang_major__ && __clang_major__ < 3
-- @%:@error premature clang
-- @%:@endif
--SRC
-- AC_MSG_ERROR([clang version 3.0 or later is required])
-- ])],
-+ AC_PREPROC_IFELSE(
-+ [AC_LANG_PROGRAM([
-+ @%:@if defined __APPLE_CC__ && defined __clang_major__ && __clang_major__ < 3
-+ @%:@error premature clang
-+ @%:@endif
-+ ])],
-+ [],
-+ [AC_MSG_ERROR([clang version 3.0 or later is required])])],
- [openbsd*:openbsd*], [
- AC_CHECK_TOOLS(CC, [cc])
- ])
diff --git a/dev-lang/ruby/files/2.7/010-default-gem-location.patch b/dev-lang/ruby/files/2.7/010-default-gem-location.patch
deleted file mode 100644
index 7a50c35ff6c9..000000000000
--- a/dev-lang/ruby/files/2.7/010-default-gem-location.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- a/tool/rbinstall.rb.~1~ 2019-01-24 02:00:07.000000000 +0100
-+++ b/tool/rbinstall.rb 2019-02-03 08:39:49.778007118 +0100
-@@ -806,7 +806,7 @@
- end
-
- def install_default_gem(dir, srcdir)
-- gem_dir = Gem.default_dir
-+ gem_dir = ENV['GEM_DESTDIR']
- directories = Gem.ensure_gem_subdirectories(gem_dir, :mode => $dir_mode)
- prepare "default gems from #{dir}", gem_dir, directories
-
-@@ -844,7 +844,7 @@
- end
-
- install?(:ext, :comm, :gem, :'bundled-gems') do
-- gem_dir = Gem.default_dir
-+ gem_dir = ENV['GEM_DESTDIR']
- directories = Gem.ensure_gem_subdirectories(gem_dir, :mode => $dir_mode)
- prepare "bundled gems", gem_dir, directories
- install_dir = with_destdir(gem_dir)
diff --git a/dev-lang/ruby/files/3.0/900-musl-coroutine.patch b/dev-lang/ruby/files/3.0/900-musl-coroutine.patch
new file mode 100644
index 000000000000..a323cdd6e770
--- /dev/null
+++ b/dev-lang/ruby/files/3.0/900-musl-coroutine.patch
@@ -0,0 +1,28 @@
+Adapted for Gentoo version 3.0.2
+
+From b570e7de87aaad8c903176d835e8124127f627b3 Mon Sep 17 00:00:00 2001
+From: Andrew Aladjev <aladjev.andrew@gmail.com>
+Date: Sat, 26 Sep 2020 12:58:06 +0300
+Subject: [PATCH] fixed default coroutine selection for musl
+
+---
+ configure.ac | 5 ++++-
+ coroutine/copy/Context.c | 2 ++
+ 2 files changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index ab5d532c103b..084f0936c006 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -2364,7 +2364,10 @@
+ rb_cv_coroutine=copy
+ ],
+ [
+- rb_cv_coroutine=ucontext
++ AC_CHECK_FUNCS([getcontext swapcontext makecontext],
++ [rb_cv_coroutine=ucontext],
++ [rb_cv_coroutine=copy; break]
++ )
+ ]
+ )
+ AC_MSG_RESULT(${rb_cv_coroutine})
diff --git a/dev-lang/ruby/files/3.0/901-musl-stacksize.patch b/dev-lang/ruby/files/3.0/901-musl-stacksize.patch
new file mode 100644
index 000000000000..e5fcfce2195e
--- /dev/null
+++ b/dev-lang/ruby/files/3.0/901-musl-stacksize.patch
@@ -0,0 +1,26 @@
+musl has a conservative stacksize, as compared to glibc, so treat it
+like other systems with such stacksize
+
+diff --git a/thread_pthread.c b/thread_pthread.c
+index 951885ffa0..e2d662143b 100644
+--- a/thread_pthread.c
++++ b/thread_pthread.c
+@@ -721,7 +721,7 @@ ruby_init_stack(volatile VALUE *addr
+ {
+ native_main_thread.id = pthread_self();
+
+-#if MAINSTACKADDR_AVAILABLE
++#if MAINSTACKADDR_AVAILABLE && !(defined(__linux__) && !defined(__GLIBC__))
+ if (native_main_thread.stack_maxsize) return;
+ {
+ void* stackaddr;
+@@ -1680,7 +1680,7 @@ ruby_stack_overflowed_p(const rb_thread_t *th, const void *addr)
+
+ #ifdef STACKADDR_AVAILABLE
+ if (get_stack(&base, &size) == 0) {
+-# ifdef __APPLE__
++# if defined(__APPLE__) || (defined(__linux__) && !defined(__GLIBC__))
+ if (pthread_equal(th->thread_id, native_main_thread.id)) {
+ struct rlimit rlim;
+ if (getrlimit(RLIMIT_STACK, &rlim) == 0 && rlim.rlim_cur > size) {
+
diff --git a/dev-lang/ruby/files/3.0/902-hppa-pthread-stack-size.patch b/dev-lang/ruby/files/3.0/902-hppa-pthread-stack-size.patch
new file mode 100644
index 000000000000..7978566afc7e
--- /dev/null
+++ b/dev-lang/ruby/files/3.0/902-hppa-pthread-stack-size.patch
@@ -0,0 +1,54 @@
+https://bugs.gentoo.org/701494
+
+From 794b6fce94343c4f9dceca5d08224b0fb364fde8 Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Fri, 7 Apr 2023 11:46:12 +0100
+Subject: [PATCH] thread_pthread: Grow main_stack if required (fixes tests on
+ HPPA)
+
+On HPPA, test_insns.rb fails (along with various Ruby gems) with
+'stack level too deep (SystemStackError)'. This turns out to be because HPPA
+defaults to a small(er) stack.
+
+With this change, most of Ruby's test suite now passes on HPPA.
+
+Thanks to both Dave and Helge for the investigation and coming up with the
+patch.
+
+Bug: https://bugs.gentoo.org/701494
+Bug: https://bugs.debian.org/881773
+Bug: https://bugs.debian.org/881772 (for PPC64)
+Bug: https://github.com/rack/rack/issues/1640
+Thanks-to: John David Anglin <dave.anglin@bell.net>
+Thanks-to: Helge Deller <deller@gmx.de>
+Signed-off-by: Sam James <sam@gentoo.org>
+--- a/thread_pthread.c
++++ b/thread_pthread.c
+@@ -681,8 +681,22 @@ size_t pthread_get_stacksize_np(pthread_t);
+ # define MAINSTACKADDR_AVAILABLE 0
+ # endif
+ #endif
+-#if MAINSTACKADDR_AVAILABLE && !defined(get_main_stack)
+-# define get_main_stack(addr, size) get_stack(addr, size)
++#if MAINSTACKADDR_AVAILABLE
++static int get_stack(void **, size_t *);
++static int
++get_main_stack(void **addr, size_t *size)
++{
++ int ret = get_stack(addr, size);
++
++#ifdef __hppa__
++ /* On some architectures, the initial stack size may be too small, but fortunately,
++ it's growable. Bump it up to the minimum needed if it is too small. */
++ if (*size < RUBY_VM_THREAD_VM_STACK_SIZE)
++ *size = RUBY_VM_THREAD_VM_STACK_SIZE;
++#endif
++
++ return ret;
++}
+ #endif
+
+ #ifdef STACKADDR_AVAILABLE
+--
+2.40.0
+
diff --git a/dev-lang/ruby/files/3.1/001-socksocket-fix.patch b/dev-lang/ruby/files/3.1/001-socksocket-fix.patch
new file mode 100644
index 000000000000..1a79e25491cc
--- /dev/null
+++ b/dev-lang/ruby/files/3.1/001-socksocket-fix.patch
@@ -0,0 +1,15 @@
+Fix compilation with socks5 USE flag.
+
+Patch by Phobos Kappa in https://bugs.gentoo.org/762253
+
+--- a/ext/socket/sockssocket.c 2020-12-25 05:33:01.000000000 +0200
++++ b/ext/socket/sockssocket.c 2020-12-28 15:42:50.310029778 +0200
+@@ -34,7 +34,7 @@
+ init = 1;
+ }
+
+- return rsock_init_inetsock(sock, host, port, Qnil, Qnil, INET_SOCKS, Qnil);
++ return rsock_init_inetsock(sock, host, port, Qnil, Qnil, INET_SOCKS, Qnil, Qnil);
+ }
+
+ #ifdef SOCKS5
diff --git a/dev-lang/ruby/files/3.1/010-default-gem-location.patch b/dev-lang/ruby/files/3.1/010-default-gem-location.patch
new file mode 100644
index 000000000000..039a44b0530b
--- /dev/null
+++ b/dev-lang/ruby/files/3.1/010-default-gem-location.patch
@@ -0,0 +1,20 @@
+--- a/tool/rbinstall.rb.~1~ 2020-12-25 04:33:01.000000000 +0100
++++ b/tool/rbinstall.rb 2020-12-25 10:05:34.629096405 +0100
+@@ -897,7 +897,7 @@
+ end
+
+ def install_default_gem(dir, srcdir, bindir)
+- gem_dir = Gem.default_dir
++ gem_dir = ENV['GEM_DESTDIR']
+ install_dir = with_destdir(gem_dir)
+ prepare "default gems from #{dir}", gem_dir
+ makedirs(Gem.ensure_default_gem_subdirectories(install_dir, $dir_mode).map {|d| File.join(gem_dir, d)})
+@@ -1018,7 +1018,7 @@
+ end
+ Gem.instance_variable_set(:@ruby, ruby_path) if Gem.ruby != ruby_path
+
+- gem_dir = Gem.default_dir
++ gem_dir = ENV['GEM_DESTDIR']
+ install_dir = with_destdir(gem_dir)
+ prepare "bundled gems", gem_dir
+ RbInstall.no_write do
diff --git a/dev-lang/ruby/files/3.1/011-default-gem-location.patch b/dev-lang/ruby/files/3.1/011-default-gem-location.patch
new file mode 100644
index 000000000000..fe5d33d69c01
--- /dev/null
+++ b/dev-lang/ruby/files/3.1/011-default-gem-location.patch
@@ -0,0 +1,20 @@
+--- a/tool/rbinstall.rb.~1~ 2020-12-25 04:33:01.000000000 +0100
++++ b/tool/rbinstall.rb 2020-12-25 10:05:34.629096405 +0100
+@@ -897,7 +897,7 @@
+ end
+
+ def install_default_gem(dir, srcdir, bindir)
+- gem_dir = Gem.default_dir
++ gem_dir = ENV['GEM_DESTDIR']
+ install_dir = with_destdir(gem_dir)
+ prepare "default gems from #{dir}", gem_dir
+ makedirs(Gem.ensure_default_gem_subdirectories(install_dir, $dir_mode).map {|d| File.join(gem_dir, d)})
+@@ -1010,7 +1010,7 @@
+ end
+
+ install?(:ext, :comm, :gem, :'bundled-gems') do
+- gem_dir = Gem.default_dir
++ gem_dir = ENV['GEM_DESTDIR']
+ install_dir = with_destdir(gem_dir)
+ prepare "bundled gems", gem_dir
+ RbInstall.no_write do
diff --git a/dev-lang/ruby/files/3.1/901-musl-stacksize.patch b/dev-lang/ruby/files/3.1/901-musl-stacksize.patch
new file mode 100644
index 000000000000..e5fcfce2195e
--- /dev/null
+++ b/dev-lang/ruby/files/3.1/901-musl-stacksize.patch
@@ -0,0 +1,26 @@
+musl has a conservative stacksize, as compared to glibc, so treat it
+like other systems with such stacksize
+
+diff --git a/thread_pthread.c b/thread_pthread.c
+index 951885ffa0..e2d662143b 100644
+--- a/thread_pthread.c
++++ b/thread_pthread.c
+@@ -721,7 +721,7 @@ ruby_init_stack(volatile VALUE *addr
+ {
+ native_main_thread.id = pthread_self();
+
+-#if MAINSTACKADDR_AVAILABLE
++#if MAINSTACKADDR_AVAILABLE && !(defined(__linux__) && !defined(__GLIBC__))
+ if (native_main_thread.stack_maxsize) return;
+ {
+ void* stackaddr;
+@@ -1680,7 +1680,7 @@ ruby_stack_overflowed_p(const rb_thread_t *th, const void *addr)
+
+ #ifdef STACKADDR_AVAILABLE
+ if (get_stack(&base, &size) == 0) {
+-# ifdef __APPLE__
++# if defined(__APPLE__) || (defined(__linux__) && !defined(__GLIBC__))
+ if (pthread_equal(th->thread_id, native_main_thread.id)) {
+ struct rlimit rlim;
+ if (getrlimit(RLIMIT_STACK, &rlim) == 0 && rlim.rlim_cur > size) {
+
diff --git a/dev-lang/ruby/files/3.1/902-hppa-pthread-stack-size.patch b/dev-lang/ruby/files/3.1/902-hppa-pthread-stack-size.patch
new file mode 100644
index 000000000000..2578ff03c3a6
--- /dev/null
+++ b/dev-lang/ruby/files/3.1/902-hppa-pthread-stack-size.patch
@@ -0,0 +1,54 @@
+https://bugs.gentoo.org/701494
+
+From 91bfb8a5166f4530ce556a11a4b7fb64983b7686 Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Fri, 7 Apr 2023 11:46:12 +0100
+Subject: [PATCH] thread_pthread: Grow main_stack if required (fixes tests on
+ HPPA)
+
+On HPPA, test_insns.rb fails (along with various Ruby gems) with
+'stack level too deep (SystemStackError)'. This turns out to be because HPPA
+defaults to a small(er) stack.
+
+With this change, most of Ruby's test suite now passes on HPPA.
+
+Thanks to both Dave and Helge for the investigation and coming up with the
+patch.
+
+Bug: https://bugs.gentoo.org/701494
+Bug: https://bugs.debian.org/881773
+Bug: https://bugs.debian.org/881772 (for PPC64)
+Bug: https://github.com/rack/rack/issues/1640
+Thanks-to: John David Anglin <dave.anglin@bell.net>
+Thanks-to: Helge Deller <deller@gmx.de>
+Signed-off-by: Sam James <sam@gentoo.org>
+--- a/thread_pthread.c
++++ b/thread_pthread.c
+@@ -738,8 +738,22 @@ size_t pthread_get_stacksize_np(pthread_t);
+ # define MAINSTACKADDR_AVAILABLE 0
+ # endif
+ #endif
+-#if MAINSTACKADDR_AVAILABLE && !defined(get_main_stack)
+-# define get_main_stack(addr, size) get_stack(addr, size)
++#if MAINSTACKADDR_AVAILABLE
++static int get_stack(void **, size_t *);
++static int
++get_main_stack(void **addr, size_t *size)
++{
++ int ret = get_stack(addr, size);
++
++#ifdef __hppa__
++ /* On some architectures, the initial stack size may be too small, but fortunately,
++ it's growable. Bump it up to the minimum needed if it is too small. */
++ if (*size < RUBY_VM_THREAD_VM_STACK_SIZE)
++ *size = RUBY_VM_THREAD_VM_STACK_SIZE;
++#endif
++
++ return ret;
++}
+ #endif
+
+ #ifdef STACKADDR_AVAILABLE
+--
+2.40.0
+
diff --git a/dev-lang/ruby/files/3.2/010-default-gem-location.patch b/dev-lang/ruby/files/3.2/010-default-gem-location.patch
new file mode 100644
index 000000000000..36009ad66f61
--- /dev/null
+++ b/dev-lang/ruby/files/3.2/010-default-gem-location.patch
@@ -0,0 +1,11 @@
+--- a/tool/rbinstall.rb 2022-11-13 08:12:27.373041649 +0100
++++ b/tool/rbinstall.rb 2022-11-13 08:16:09.110406705 +0100
+@@ -994,7 +994,7 @@
+ end
+
+ install?(:ext, :comm, :gem, :'bundled-gems') do
+- gem_dir = Gem.default_dir
++ gem_dir = ENV['GEM_DESTDIR']
+ install_dir = with_destdir(gem_dir)
+ prepare "bundled gems", gem_dir
+ RbInstall.no_write do
diff --git a/dev-lang/ruby/files/3.2/011-arm64-branch-protection.patch b/dev-lang/ruby/files/3.2/011-arm64-branch-protection.patch
new file mode 100644
index 000000000000..14d2c00837a7
--- /dev/null
+++ b/dev-lang/ruby/files/3.2/011-arm64-branch-protection.patch
@@ -0,0 +1,28 @@
+From a8af871e29c6c922c4c3aeb94697ab958fc12e9b Mon Sep 17 00:00:00 2001
+From: Yuta Saito <kateinoigakukun@gmail.com>
+Date: Wed, 27 Dec 2023 06:22:45 +0000
+Subject: [PATCH] [Bug #20085] Use consistent default options for
+ `-mbranch-protection`
+
+We need to use the same options for both C compiler and assembler
+when `-mbranch-protection` is guessed by configure. Otherwise,
+`coroutine/arm64/Context.{h,S}` will use incompatible PAC strategies.
+---
+ configure.ac | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/configure.ac b/configure.ac
+index 9286946fc15f4..18b4247991d42 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -830,7 +830,10 @@ AS_IF([test "$GCC" = yes], [
+ AS_FOR(option, opt, [-mbranch-protection=pac-ret -msign-return-address=all], [
+ RUBY_TRY_CFLAGS(option, [branch_protection=yes], [branch_protection=no])
+ AS_IF([test "x$branch_protection" = xyes], [
++ # C compiler and assembler must be consistent for -mbranch-protection
++ # since they both check `__ARM_FEATURE_PAC_DEFAULT` definition.
+ RUBY_APPEND_OPTION(XCFLAGS, option)
++ RUBY_APPEND_OPTION(ASFLAGS, option)
+ break
+ ])
+ ])
diff --git a/dev-lang/ruby/files/3.2/901-musl-stacksize.patch b/dev-lang/ruby/files/3.2/901-musl-stacksize.patch
new file mode 100644
index 000000000000..f18aa271ea65
--- /dev/null
+++ b/dev-lang/ruby/files/3.2/901-musl-stacksize.patch
@@ -0,0 +1,20 @@
+--- a/thread_pthread.c 2023-02-08 05:02:20.000000000 +0100
++++ b/thread_pthread.c 2023-03-10 17:46:25.694739053 +0100
+@@ -1033,7 +1033,7 @@
+ {
+ native_main_thread.id = pthread_self();
+
+-#if MAINSTACKADDR_AVAILABLE
++#if MAINSTACKADDR_AVAILABLE && !(defined(__linux__) && !defined(__GLIBC__))
+ if (native_main_thread.stack_maxsize) return;
+ {
+ void* stackaddr;
+@@ -2090,7 +2090,7 @@
+
+ #ifdef STACKADDR_AVAILABLE
+ if (get_stack(&base, &size) == 0) {
+-# ifdef __APPLE__
++# if defined(__APPLE__) || (defined(__linux__) && !defined(__GLIBC__))
+ if (pthread_equal(th->nt->thread_id, native_main_thread.id)) {
+ struct rlimit rlim;
+ if (getrlimit(RLIMIT_STACK, &rlim) == 0 && rlim.rlim_cur > size) {
diff --git a/dev-lang/ruby/files/3.2/902-hppa-pthread-stack-size.patch b/dev-lang/ruby/files/3.2/902-hppa-pthread-stack-size.patch
new file mode 100644
index 000000000000..96e24a340ad9
--- /dev/null
+++ b/dev-lang/ruby/files/3.2/902-hppa-pthread-stack-size.patch
@@ -0,0 +1,54 @@
+https://bugs.gentoo.org/701494
+
+From 40ccf3b91071d3603335b0b7095613ef1843f9e1 Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Fri, 7 Apr 2023 11:46:12 +0100
+Subject: [PATCH] thread_pthread: Grow main_stack if required (fixes tests on
+ HPPA)
+
+On HPPA, test_insns.rb fails (along with various Ruby gems) with
+'stack level too deep (SystemStackError)'. This turns out to be because HPPA
+defaults to a small(er) stack.
+
+With this change, most of Ruby's test suite now passes on HPPA.
+
+Thanks to both Dave and Helge for the investigation and coming up with the
+patch.
+
+Bug: https://bugs.gentoo.org/701494
+Bug: https://bugs.debian.org/881773
+Bug: https://bugs.debian.org/881772 (for PPC64)
+Bug: https://github.com/rack/rack/issues/1640
+Thanks-to: John David Anglin <dave.anglin@bell.net>
+Thanks-to: Helge Deller <deller@gmx.de>
+Signed-off-by: Sam James <sam@gentoo.org>
+--- a/thread_pthread.c
++++ b/thread_pthread.c
+@@ -858,8 +858,22 @@ size_t pthread_get_stacksize_np(pthread_t);
+ # define MAINSTACKADDR_AVAILABLE 0
+ # endif
+ #endif
+-#if MAINSTACKADDR_AVAILABLE && !defined(get_main_stack)
+-# define get_main_stack(addr, size) get_stack(addr, size)
++#if MAINSTACKADDR_AVAILABLE
++static int get_stack(void **, size_t *);
++static int
++get_main_stack(void **addr, size_t *size)
++{
++ int ret = get_stack(addr, size);
++
++#ifdef __hppa__
++ /* On some architectures, the initial stack size may be too small, but fortunately,
++ it's growable. Bump it up to the minimum needed if it is too small. */
++ if (*size < RUBY_VM_THREAD_VM_STACK_SIZE)
++ *size = RUBY_VM_THREAD_VM_STACK_SIZE;
++#endif
++
++ return ret;
++}
+ #endif
+
+ #ifdef STACKADDR_AVAILABLE
+--
+2.40.0
+
diff --git a/dev-lang/ruby/files/3.3/010-default-gem-location.patch b/dev-lang/ruby/files/3.3/010-default-gem-location.patch
new file mode 100644
index 000000000000..36009ad66f61
--- /dev/null
+++ b/dev-lang/ruby/files/3.3/010-default-gem-location.patch
@@ -0,0 +1,11 @@
+--- a/tool/rbinstall.rb 2022-11-13 08:12:27.373041649 +0100
++++ b/tool/rbinstall.rb 2022-11-13 08:16:09.110406705 +0100
+@@ -994,7 +994,7 @@
+ end
+
+ install?(:ext, :comm, :gem, :'bundled-gems') do
+- gem_dir = Gem.default_dir
++ gem_dir = ENV['GEM_DESTDIR']
+ install_dir = with_destdir(gem_dir)
+ prepare "bundled gems", gem_dir
+ RbInstall.no_write do
diff --git a/dev-lang/ruby/files/3.3/011-arm64-branch-protection.patch b/dev-lang/ruby/files/3.3/011-arm64-branch-protection.patch
new file mode 100644
index 000000000000..14d2c00837a7
--- /dev/null
+++ b/dev-lang/ruby/files/3.3/011-arm64-branch-protection.patch
@@ -0,0 +1,28 @@
+From a8af871e29c6c922c4c3aeb94697ab958fc12e9b Mon Sep 17 00:00:00 2001
+From: Yuta Saito <kateinoigakukun@gmail.com>
+Date: Wed, 27 Dec 2023 06:22:45 +0000
+Subject: [PATCH] [Bug #20085] Use consistent default options for
+ `-mbranch-protection`
+
+We need to use the same options for both C compiler and assembler
+when `-mbranch-protection` is guessed by configure. Otherwise,
+`coroutine/arm64/Context.{h,S}` will use incompatible PAC strategies.
+---
+ configure.ac | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/configure.ac b/configure.ac
+index 9286946fc15f4..18b4247991d42 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -830,7 +830,10 @@ AS_IF([test "$GCC" = yes], [
+ AS_FOR(option, opt, [-mbranch-protection=pac-ret -msign-return-address=all], [
+ RUBY_TRY_CFLAGS(option, [branch_protection=yes], [branch_protection=no])
+ AS_IF([test "x$branch_protection" = xyes], [
++ # C compiler and assembler must be consistent for -mbranch-protection
++ # since they both check `__ARM_FEATURE_PAC_DEFAULT` definition.
+ RUBY_APPEND_OPTION(XCFLAGS, option)
++ RUBY_APPEND_OPTION(ASFLAGS, option)
+ break
+ ])
+ ])
diff --git a/dev-lang/ruby/files/3.3/901-musl-stacksize.patch b/dev-lang/ruby/files/3.3/901-musl-stacksize.patch
new file mode 100644
index 000000000000..f18aa271ea65
--- /dev/null
+++ b/dev-lang/ruby/files/3.3/901-musl-stacksize.patch
@@ -0,0 +1,20 @@
+--- a/thread_pthread.c 2023-02-08 05:02:20.000000000 +0100
++++ b/thread_pthread.c 2023-03-10 17:46:25.694739053 +0100
+@@ -1033,7 +1033,7 @@
+ {
+ native_main_thread.id = pthread_self();
+
+-#if MAINSTACKADDR_AVAILABLE
++#if MAINSTACKADDR_AVAILABLE && !(defined(__linux__) && !defined(__GLIBC__))
+ if (native_main_thread.stack_maxsize) return;
+ {
+ void* stackaddr;
+@@ -2090,7 +2090,7 @@
+
+ #ifdef STACKADDR_AVAILABLE
+ if (get_stack(&base, &size) == 0) {
+-# ifdef __APPLE__
++# if defined(__APPLE__) || (defined(__linux__) && !defined(__GLIBC__))
+ if (pthread_equal(th->nt->thread_id, native_main_thread.id)) {
+ struct rlimit rlim;
+ if (getrlimit(RLIMIT_STACK, &rlim) == 0 && rlim.rlim_cur > size) {
diff --git a/dev-lang/ruby/files/3.3/902-hppa-pthread-stack-size.patch b/dev-lang/ruby/files/3.3/902-hppa-pthread-stack-size.patch
new file mode 100644
index 000000000000..96e24a340ad9
--- /dev/null
+++ b/dev-lang/ruby/files/3.3/902-hppa-pthread-stack-size.patch
@@ -0,0 +1,54 @@
+https://bugs.gentoo.org/701494
+
+From 40ccf3b91071d3603335b0b7095613ef1843f9e1 Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Fri, 7 Apr 2023 11:46:12 +0100
+Subject: [PATCH] thread_pthread: Grow main_stack if required (fixes tests on
+ HPPA)
+
+On HPPA, test_insns.rb fails (along with various Ruby gems) with
+'stack level too deep (SystemStackError)'. This turns out to be because HPPA
+defaults to a small(er) stack.
+
+With this change, most of Ruby's test suite now passes on HPPA.
+
+Thanks to both Dave and Helge for the investigation and coming up with the
+patch.
+
+Bug: https://bugs.gentoo.org/701494
+Bug: https://bugs.debian.org/881773
+Bug: https://bugs.debian.org/881772 (for PPC64)
+Bug: https://github.com/rack/rack/issues/1640
+Thanks-to: John David Anglin <dave.anglin@bell.net>
+Thanks-to: Helge Deller <deller@gmx.de>
+Signed-off-by: Sam James <sam@gentoo.org>
+--- a/thread_pthread.c
++++ b/thread_pthread.c
+@@ -858,8 +858,22 @@ size_t pthread_get_stacksize_np(pthread_t);
+ # define MAINSTACKADDR_AVAILABLE 0
+ # endif
+ #endif
+-#if MAINSTACKADDR_AVAILABLE && !defined(get_main_stack)
+-# define get_main_stack(addr, size) get_stack(addr, size)
++#if MAINSTACKADDR_AVAILABLE
++static int get_stack(void **, size_t *);
++static int
++get_main_stack(void **addr, size_t *size)
++{
++ int ret = get_stack(addr, size);
++
++#ifdef __hppa__
++ /* On some architectures, the initial stack size may be too small, but fortunately,
++ it's growable. Bump it up to the minimum needed if it is too small. */
++ if (*size < RUBY_VM_THREAD_VM_STACK_SIZE)
++ *size = RUBY_VM_THREAD_VM_STACK_SIZE;
++#endif
++
++ return ret;
++}
+ #endif
+
+ #ifdef STACKADDR_AVAILABLE
+--
+2.40.0
+
diff --git a/dev-lang/ruby/metadata.xml b/dev-lang/ruby/metadata.xml
index 3a5415201c60..cf9a21622439 100644
--- a/dev-lang/ruby/metadata.xml
+++ b/dev-lang/ruby/metadata.xml
@@ -1,13 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>ruby@gentoo.org</email>
<name>Gentoo Ruby Project</name>
</maintainer>
<use>
- <flag name="rubytests">Install ruby tests that can only be run after ruby is installed</flag>
<flag name="rdoc">Install <pkg>dev-ruby/rdoc</pkg> after installing Ruby.</flag>
<flag name="systemtap">Enable SystemTAP/DTrace tracing</flag>
</use>
+ <upstream>
+ <remote-id type="github">ruby/ruby</remote-id>
+ </upstream>
</pkgmetadata>
diff --git a/dev-lang/ruby/ruby-2.5.8-r1.ebuild b/dev-lang/ruby/ruby-2.5.8-r1.ebuild
deleted file mode 100644
index 1a4584807865..000000000000
--- a/dev-lang/ruby/ruby-2.5.8-r1.ebuild
+++ /dev/null
@@ -1,246 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit autotools flag-o-matic multilib
-
-MY_P="${PN}-$(ver_cut 1-3)"
-S=${WORKDIR}/${MY_P}
-
-SLOT=$(ver_cut 1-2)
-MY_SUFFIX=$(ver_rs 1 '' ${SLOT})
-RUBYVERSION=${SLOT}.0
-
-DESCRIPTION="An object-oriented scripting language"
-HOMEPAGE="https://www.ruby-lang.org/"
-SRC_URI="https://cache.ruby-lang.org/pub/ruby/${SLOT}/${MY_P}.tar.xz"
-
-LICENSE="|| ( Ruby-BSD BSD-2 )"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-IUSE="berkdb debug doc examples gdbm ipv6 jemalloc libressl +rdoc rubytests socks5 +ssl static-libs systemtap tk xemacs"
-
-RDEPEND="
- berkdb? ( sys-libs/db:= )
- gdbm? ( sys-libs/gdbm:= )
- jemalloc? ( dev-libs/jemalloc )
- ssl? (
- !libressl? ( dev-libs/openssl:0= )
- libressl? ( dev-libs/libressl )
- )
- socks5? ( >=net-proxy/dante-1.1.13 )
- systemtap? ( dev-util/systemtap )
- tk? (
- dev-lang/tcl:0=[threads]
- dev-lang/tk:0=[threads]
- )
- dev-libs/libyaml
- dev-libs/libffi:=
- sys-libs/readline:0=
- sys-libs/zlib
- >=app-eselect/eselect-ruby-20171225
-"
-
-DEPEND="${RDEPEND}"
-
-BUNDLED_GEMS="
- >=dev-ruby/did_you_mean-1.2.0:2.5[ruby_targets_ruby25]
- >=dev-ruby/minitest-5.10.3[ruby_targets_ruby25]
- >=dev-ruby/net-telnet-0.1.1[ruby_targets_ruby25]
- >=dev-ruby/power_assert-1.1.1[ruby_targets_ruby25]
- >=dev-ruby/rake-12.3.0[ruby_targets_ruby25]
- >=dev-ruby/test-unit-3.2.7[ruby_targets_ruby25]
- >=dev-ruby/xmlrpc-0.3.0[ruby_targets_ruby25]
-"
-
-PDEPEND="
- ${BUNDLED_GEMS}
- virtual/rubygems[ruby_targets_ruby25]
- >=dev-ruby/json-2.0.2[ruby_targets_ruby25]
- rdoc? ( >=dev-ruby/rdoc-6.1.2[ruby_targets_ruby25] )
- xemacs? ( app-xemacs/ruby-modes )"
-
-src_prepare() {
- eapply "${FILESDIR}"/${SLOT}/{001,002,005,011}*.patch
-
- einfo "Unbundling gems..."
- cd "$S"
- # Remove bundled gems that we will install via PDEPEND, bug
- # 539700. Use explicit version numbers to ensure rm fails when they
- # change so we can update dependencies accordingly.
- rm -f gems/{did_you_mean-1.2.0,minitest-5.10.3,net-telnet-0.1.1,power_assert-1.1.1,rake-12.3.0,test-unit-3.2.7,xmlrpc-0.3.0}.gem || die
-
- einfo "Removing bundled libraries..."
- rm -fr ext/fiddle/libffi-3.2.1 || die
-
- if use prefix ; then
- # Fix hardcoded SHELL var in mkmf library
- sed -i -e "s#\(SHELL = \).*#\1${EPREFIX}/bin/sh#" lib/mkmf.rb || die
-
- if [[ ${CHOST} == *darwin* ]] ; then
- # avoid symlink loop on Darwin (?!)
- sed -i \
- -e '/LIBRUBY_ALIASES=/s/lib$(RUBY_INSTALL_NAME).$(SOEXT)//' \
- configure.ac || die
-
- # make ar/libtool hack for Darwin work
- sed -i \
- -e "s/ac_cv_prog_ac_ct_AR='libtool/ac_cv_prog_AR='${CHOST}-libtool/" \
- configure.ac || die
- fi
- fi
-
- eapply_user
-
- eautoreconf
-}
-
-src_configure() {
- local modules= myconf=
-
- # -fomit-frame-pointer makes ruby segfault, see bug #150413.
- filter-flags -fomit-frame-pointer
- # In many places aliasing rules are broken; play it safe
- # as it's risky with newer compilers to leave it as it is.
- append-flags -fno-strict-aliasing
-
- # Socks support via dante
- if use socks5 ; then
- # Socks support can't be disabled as long as SOCKS_SERVER is
- # set and socks library is present, so need to unset
- # SOCKS_SERVER in that case.
- unset SOCKS_SERVER
- fi
-
- # Increase GC_MALLOC_LIMIT if set (default is 8000000)
- if [ -n "${RUBY_GC_MALLOC_LIMIT}" ] ; then
- append-flags "-DGC_MALLOC_LIMIT=${RUBY_GC_MALLOC_LIMIT}"
- fi
-
- # ipv6 hack, bug 168939. Needs --enable-ipv6.
- use ipv6 || myconf="${myconf} --with-lookup-order-hack=INET"
-
- # Determine which modules *not* to build depending in the USE flags.
- if ! use berkdb ; then
- modules="${modules},dbm"
- fi
- if ! use gdbm ; then
- modules="${modules},gdbm"
- fi
- if ! use ssl ; then
- modules="${modules},openssl"
- fi
- if ! use tk ; then
- modules="${modules},tk"
- fi
-
- # Provide an empty LIBPATHENV because we disable rpath but we do not
- # need LD_LIBRARY_PATH by default since that breaks USE=multitarget
- # #564272
- INSTALL="${EPREFIX}/usr/bin/install -c" LIBPATHENV="" econf \
- --program-suffix=${MY_SUFFIX} \
- --with-soname=ruby${MY_SUFFIX} \
- --with-readline-dir="${EPREFIX}"/usr \
- --enable-shared \
- --enable-pthread \
- --disable-rpath \
- --with-out-ext="${modules}" \
- $(use_with jemalloc jemalloc) \
- $(use_enable socks5 socks) \
- $(use_enable systemtap dtrace) \
- $(use_enable doc install-doc) \
- --enable-ipv6 \
- $(use_enable static-libs static) \
- $(use_enable static-libs install-static-library) \
- $(use_with static-libs static-linked-ext) \
- $(use_enable debug) \
- ${myconf} \
- --enable-option-checking=no
-}
-
-src_compile() {
- emake V=1 EXTLDFLAGS="${LDFLAGS}"
-}
-
-src_test() {
- emake -j1 V=1 test
-
- elog "Ruby's make test has been run. Ruby also ships with a make check"
- elog "that cannot be run until after ruby has been installed."
- elog
- if use rubytests; then
- elog "You have enabled rubytests, so they will be installed to"
- elog "/usr/share/${PN}-${SLOT}/test. To run them you must be a user other"
- elog "than root, and you must place them into a writeable directory."
- elog "Then call: "
- elog
- elog "ruby${MY_SUFFIX} -C /location/of/tests runner.rb"
- else
- elog "Enable the rubytests USE flag to install the make check tests"
- fi
-}
-
-src_install() {
- # Remove the remaining bundled gems. We do this late in the process
- # since they are used during the build to e.g. create the
- # documentation.
- rm -rf ext/json || die
-
- # Ruby is involved in the install process, we don't want interference here.
- unset RUBYOPT
-
- local MINIRUBY=$(echo -e 'include Makefile\ngetminiruby:\n\t@echo $(MINIRUBY)'|make -f - getminiruby)
-
- LD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}"
-
- if [[ ${CHOST} == *darwin* ]] ; then
- DYLD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${DYLD_LIBRARY_PATH+:}${DYLD_LIBRARY_PATH}"
- export DYLD_LIBRARY_PATH
- fi
-
- RUBYLIB="${S}:${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}"
- for d in $(find "${S}/ext" -type d) ; do
- RUBYLIB="${RUBYLIB}:$d"
- done
- export LD_LIBRARY_PATH RUBYLIB
-
- emake V=1 DESTDIR="${D}" install
-
- # Remove installed rubygems and rdoc copy
- rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}/rubygems" || die "rm rubygems failed"
- rm -rf "${ED}/usr/bin/"gem"${MY_SUFFIX}" || die "rm rdoc bins failed"
- rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}"/rdoc* || die "rm rdoc failed"
- rm -rf "${ED}/usr/bin/"{ri,rdoc}"${MY_SUFFIX}" || die "rm rdoc bins failed"
-
- if use doc; then
- make DESTDIR="${D}" install-doc || die "make install-doc failed"
- fi
-
- if use examples; then
- dodoc -r sample
- fi
-
- dodoc ChangeLog NEWS doc/NEWS* README*
-
- if use rubytests; then
- pushd test
- insinto /usr/share/${PN}-${SLOT}/test
- doins -r .
- popd
- fi
-}
-
-pkg_postinst() {
- if [[ ! -n $(readlink "${EROOT}"/usr/bin/ruby) ]] ; then
- eselect ruby set ruby${MY_SUFFIX}
- fi
-
- elog
- elog "To switch between available Ruby profiles, execute as root:"
- elog "\teselect ruby set ruby(23|24|...)"
- elog
-}
-
-pkg_postrm() {
- eselect ruby cleanup
-}
diff --git a/dev-lang/ruby/ruby-2.5.8.ebuild b/dev-lang/ruby/ruby-2.5.8.ebuild
deleted file mode 100644
index e722111acf8c..000000000000
--- a/dev-lang/ruby/ruby-2.5.8.ebuild
+++ /dev/null
@@ -1,220 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit autotools flag-o-matic multilib
-
-MY_P="${PN}-$(ver_cut 1-3)"
-S=${WORKDIR}/${MY_P}
-
-SLOT=$(ver_cut 1-2)
-MY_SUFFIX=$(ver_rs 1 '' ${SLOT})
-RUBYVERSION=${SLOT}.0
-
-DESCRIPTION="An object-oriented scripting language"
-HOMEPAGE="https://www.ruby-lang.org/"
-SRC_URI="https://cache.ruby-lang.org/pub/ruby/${SLOT}/${MY_P}.tar.xz"
-
-LICENSE="|| ( Ruby-BSD BSD-2 )"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~mips ppc ppc64 s390 sparc x86"
-IUSE="berkdb debug doc examples gdbm ipv6 jemalloc libressl +rdoc rubytests socks5 +ssl static-libs tk xemacs"
-
-RDEPEND="
- berkdb? ( sys-libs/db:= )
- gdbm? ( sys-libs/gdbm:= )
- jemalloc? ( dev-libs/jemalloc )
- ssl? (
- !libressl? ( dev-libs/openssl:0= )
- libressl? ( dev-libs/libressl )
- )
- socks5? ( >=net-proxy/dante-1.1.13 )
- tk? (
- dev-lang/tcl:0=[threads]
- dev-lang/tk:0=[threads]
- )
- dev-libs/libyaml
- dev-libs/libffi:=
- sys-libs/readline:0=
- sys-libs/zlib
- >=app-eselect/eselect-ruby-20171225
-"
-
-DEPEND="${RDEPEND}"
-
-BUNDLED_GEMS="
- >=dev-ruby/did_you_mean-1.2.0:2.5[ruby_targets_ruby25]
- >=dev-ruby/minitest-5.10.3[ruby_targets_ruby25]
- >=dev-ruby/net-telnet-0.1.1[ruby_targets_ruby25]
- >=dev-ruby/power_assert-1.1.1[ruby_targets_ruby25]
- >=dev-ruby/rake-12.3.0[ruby_targets_ruby25]
- >=dev-ruby/test-unit-3.2.7[ruby_targets_ruby25]
- >=dev-ruby/xmlrpc-0.3.0[ruby_targets_ruby25]
-"
-
-PDEPEND="
- ${BUNDLED_GEMS}
- virtual/rubygems[ruby_targets_ruby25]
- >=dev-ruby/json-2.0.2[ruby_targets_ruby25]
- rdoc? ( >=dev-ruby/rdoc-6.1.2[ruby_targets_ruby25] )
- xemacs? ( app-xemacs/ruby-modes )"
-
-src_prepare() {
- eapply "${FILESDIR}"/${SLOT}/{001,005,011}*.patch
-
- einfo "Unbundling gems..."
- cd "$S"
- # Remove bundled gems that we will install via PDEPEND, bug
- # 539700. Use explicit version numbers to ensure rm fails when they
- # change so we can update dependencies accordingly.
- rm -f gems/{did_you_mean-1.2.0,minitest-5.10.3,net-telnet-0.1.1,power_assert-1.1.1,rake-12.3.0,test-unit-3.2.7,xmlrpc-0.3.0}.gem || die
-
- einfo "Removing bundled libraries..."
- rm -fr ext/fiddle/libffi-3.2.1 || die
-
- eapply_user
-
- eautoreconf
-}
-
-src_configure() {
- local modules= myconf=
-
- # -fomit-frame-pointer makes ruby segfault, see bug #150413.
- filter-flags -fomit-frame-pointer
- # In many places aliasing rules are broken; play it safe
- # as it's risky with newer compilers to leave it as it is.
- append-flags -fno-strict-aliasing
-
- # Socks support via dante
- if use socks5 ; then
- # Socks support can't be disabled as long as SOCKS_SERVER is
- # set and socks library is present, so need to unset
- # SOCKS_SERVER in that case.
- unset SOCKS_SERVER
- fi
-
- # Increase GC_MALLOC_LIMIT if set (default is 8000000)
- if [ -n "${RUBY_GC_MALLOC_LIMIT}" ] ; then
- append-flags "-DGC_MALLOC_LIMIT=${RUBY_GC_MALLOC_LIMIT}"
- fi
-
- # ipv6 hack, bug 168939. Needs --enable-ipv6.
- use ipv6 || myconf="${myconf} --with-lookup-order-hack=INET"
-
- # Determine which modules *not* to build depending in the USE flags.
- if ! use berkdb ; then
- modules="${modules},dbm"
- fi
- if ! use gdbm ; then
- modules="${modules},gdbm"
- fi
- if ! use ssl ; then
- modules="${modules},openssl"
- fi
- if ! use tk ; then
- modules="${modules},tk"
- fi
-
- # Provide an empty LIBPATHENV because we disable rpath but we do not
- # need LD_LIBRARY_PATH by default since that breaks USE=multitarget
- # #564272
- INSTALL="${EPREFIX}/usr/bin/install -c" LIBPATHENV="" econf \
- --program-suffix=${MY_SUFFIX} \
- --with-soname=ruby${MY_SUFFIX} \
- --enable-shared \
- --enable-pthread \
- --disable-rpath \
- --with-out-ext="${modules}" \
- $(use_with jemalloc jemalloc) \
- $(use_enable socks5 socks) \
- $(use_enable doc install-doc) \
- --enable-ipv6 \
- $(use_enable static-libs static) \
- $(use_enable static-libs install-static-library) \
- $(use_with static-libs static-linked-ext) \
- $(use_enable debug) \
- ${myconf} \
- --enable-option-checking=no
-}
-
-src_compile() {
- emake V=1 EXTLDFLAGS="${LDFLAGS}"
-}
-
-src_test() {
- emake -j1 V=1 test
-
- elog "Ruby's make test has been run. Ruby also ships with a make check"
- elog "that cannot be run until after ruby has been installed."
- elog
- if use rubytests; then
- elog "You have enabled rubytests, so they will be installed to"
- elog "/usr/share/${PN}-${SLOT}/test. To run them you must be a user other"
- elog "than root, and you must place them into a writeable directory."
- elog "Then call: "
- elog
- elog "ruby${MY_SUFFIX} -C /location/of/tests runner.rb"
- else
- elog "Enable the rubytests USE flag to install the make check tests"
- fi
-}
-
-src_install() {
- # Remove the remaining bundled gems. We do this late in the process
- # since they are used during the build to e.g. create the
- # documentation.
- rm -rf ext/json || die
-
- # Ruby is involved in the install process, we don't want interference here.
- unset RUBYOPT
-
- local MINIRUBY=$(echo -e 'include Makefile\ngetminiruby:\n\t@echo $(MINIRUBY)'|make -f - getminiruby)
-
- LD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}"
- RUBYLIB="${S}:${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}"
- for d in $(find "${S}/ext" -type d) ; do
- RUBYLIB="${RUBYLIB}:$d"
- done
- export LD_LIBRARY_PATH RUBYLIB
-
- emake V=1 DESTDIR="${D}" install
-
- # Remove installed rubygems and rdoc copy
- rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}/rubygems" || die "rm rubygems failed"
- rm -rf "${ED}/usr/bin/"gem"${MY_SUFFIX}" || die "rm rdoc bins failed"
- rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}"/rdoc* || die "rm rdoc failed"
- rm -rf "${ED}/usr/bin/"{ri,rdoc}"${MY_SUFFIX}" || die "rm rdoc bins failed"
-
- if use doc; then
- make DESTDIR="${D}" install-doc || die "make install-doc failed"
- fi
-
- if use examples; then
- dodoc -r sample
- fi
-
- dodoc ChangeLog NEWS doc/NEWS* README*
-
- if use rubytests; then
- pushd test
- insinto /usr/share/${PN}-${SLOT}/test
- doins -r .
- popd
- fi
-}
-
-pkg_postinst() {
- if [[ ! -n $(readlink "${EROOT}"/usr/bin/ruby) ]] ; then
- eselect ruby set ruby${MY_SUFFIX}
- fi
-
- elog
- elog "To switch between available Ruby profiles, execute as root:"
- elog "\teselect ruby set ruby(23|24|...)"
- elog
-}
-
-pkg_postrm() {
- eselect ruby cleanup
-}
diff --git a/dev-lang/ruby/ruby-3.0.0-r1.ebuild b/dev-lang/ruby/ruby-3.1.4-r3.ebuild
index 5653275879f3..49032262514a 100644
--- a/dev-lang/ruby/ruby-3.0.0-r1.ebuild
+++ b/dev-lang/ruby/ruby-3.1.4-r3.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-inherit autotools flag-o-matic multilib
+inherit autotools flag-o-matic multiprocessing
MY_P="${PN}-$(ver_cut 1-3)"
S=${WORKDIR}/${MY_P}
@@ -17,20 +17,19 @@ HOMEPAGE="https://www.ruby-lang.org/"
SRC_URI="https://cache.ruby-lang.org/pub/ruby/${SLOT}/${MY_P}.tar.xz"
LICENSE="|| ( Ruby-BSD BSD-2 )"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-IUSE="berkdb debug doc examples gdbm ipv6 jemalloc jit libressl +rdoc rubytests socks5 +ssl static-libs systemtap tk xemacs"
+KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+IUSE="berkdb debug doc examples gdbm ipv6 jemalloc jit +rdoc socks5 +ssl static-libs systemtap tk valgrind xemacs"
RDEPEND="
berkdb? ( sys-libs/db:= )
gdbm? ( sys-libs/gdbm:= )
- jemalloc? ( dev-libs/jemalloc )
+ jemalloc? ( dev-libs/jemalloc:= )
jit? ( || ( sys-devel/gcc:* sys-devel/clang:* ) )
ssl? (
- !libressl? ( dev-libs/openssl:0= )
- libressl? ( dev-libs/libressl )
+ dev-libs/openssl:0=
)
socks5? ( >=net-proxy/dante-1.1.13 )
- systemtap? ( dev-util/systemtap )
+ systemtap? ( dev-debug/systemtap )
tk? (
dev-lang/tcl:0=[threads]
dev-lang/tk:0=[threads]
@@ -39,33 +38,43 @@ RDEPEND="
dev-libs/libffi:=
sys-libs/readline:0=
sys-libs/zlib
+ virtual/libcrypt:=
>=app-eselect/eselect-ruby-20201225
"
-DEPEND="${RDEPEND}"
+DEPEND="
+ ${RDEPEND}
+ valgrind? ( dev-debug/valgrind )
+"
BUNDLED_GEMS="
- >=dev-ruby/minitest-5.14.2[ruby_targets_ruby30]
- >=dev-ruby/power_assert-1.2.0[ruby_targets_ruby30]
- >=dev-ruby/rake-13.0.3[ruby_targets_ruby30]
- >=dev-ruby/rbs-1.0.0[ruby_targets_ruby30]
- >=dev-ruby/rexml-3.2.4[ruby_targets_ruby30]
- >=dev-ruby/rss-0.2.9[ruby_targets_ruby30]
- >=dev-ruby/test-unit-3.3.7[ruby_targets_ruby30]
- >=dev-ruby/typeprof-0.11.0[ruby_targets_ruby30]
+ >=dev-ruby/minitest-5.15.0[ruby_targets_ruby31(-)]
+ >=dev-ruby/power_assert-2.0.1[ruby_targets_ruby31(-)]
+ >=dev-ruby/rake-13.0.6-r2[ruby_targets_ruby31(-)]
+ >=dev-ruby/rbs-2.1.0[ruby_targets_ruby31(-)]
+ >=dev-ruby/rexml-3.2.5[ruby_targets_ruby31(-)]
+ >=dev-ruby/rss-0.2.9[ruby_targets_ruby31(-)]
+ >=dev-ruby/test-unit-3.5.3[ruby_targets_ruby31(-)]
+ >=dev-ruby/typeprof-0.12.2[ruby_targets_ruby31(-)]
"
PDEPEND="
${BUNDLED_GEMS}
- virtual/rubygems[ruby_targets_ruby30]
- >=dev-ruby/bundler-2.1.4[ruby_targets_ruby30]
- >=dev-ruby/did_you_mean-1.5.0[ruby_targets_ruby30]
- >=dev-ruby/json-2.5.1[ruby_targets_ruby30]
- rdoc? ( >=dev-ruby/rdoc-6.3.0[ruby_targets_ruby30] )
- xemacs? ( app-xemacs/ruby-modes )"
+ virtual/rubygems[ruby_targets_ruby31(-)]
+ >=dev-ruby/bundler-2.3.3[ruby_targets_ruby31(-)]
+ >=dev-ruby/did_you_mean-1.6.1[ruby_targets_ruby31(-)]
+ >=dev-ruby/json-2.6.1[ruby_targets_ruby31(-)]
+ rdoc? ( >=dev-ruby/rdoc-6.3.3[ruby_targets_ruby31(-)] )
+ xemacs? ( app-xemacs/ruby-modes )
+"
src_prepare() {
- eapply "${FILESDIR}"/"${SLOT}"/{001,010}*.patch
+ eapply "${FILESDIR}"/"${SLOT}"/011*.patch
+ eapply "${FILESDIR}"/"${SLOT}"/902*.patch
+
+ if use elibc_musl ; then
+ eapply "${FILESDIR}"/3.1/901-musl-*.patch
+ fi
einfo "Unbundling gems..."
cd "$S"
@@ -80,6 +89,12 @@ src_prepare() {
einfo "Removing bundled libraries..."
rm -fr ext/fiddle/libffi-3.2.1 || die
+ # Remove tests that are known to fail or require a network connection
+ rm -f test/ruby/test_process.rb test/rubygems/test_gem{,_path_support}.rb || die
+ rm -f test/rinda/test_rinda.rb test/socket/test_tcp.rb test/fiber/test_address_resolve.rb test/resolv/test_addr.rb \
+ spec/ruby/library/socket/tcpsocket/{initialize,open}_spec.rb|| die
+ sed -i -e '/def test_test/askip "Depends on system setup"' test/ruby/test_file_exhaustive.rb || die
+
if use prefix ; then
# Fix hardcoded SHELL var in mkmf library
sed -i -e "s#\(SHELL = \).*#\1${EPREFIX}/bin/sh#" lib/mkmf.rb || die
@@ -94,6 +109,11 @@ src_prepare() {
sed -i \
-e "s/ac_cv_prog_ac_ct_AR='libtool/ac_cv_prog_AR='${CHOST}-libtool/" \
configure.ac || die
+
+ # disable using security framework (GCC barfs on those headers)
+ sed -i \
+ -e 's/MAC_OS_X_VERSION_MIN_REQUIRED/_DISABLED_/' \
+ random.c || die
fi
fi
@@ -103,7 +123,16 @@ src_prepare() {
}
src_configure() {
- local modules= myconf=
+ local modules="win32,win32ole" myconf=
+
+ # Ruby's build system does interesting things with MAKEOPTS and doesn't
+ # handle MAKEOPTS="-Oline" or similar well. Just filter it all out
+ # and use -j/-l parsed out from the original MAKEOPTS, then use that.
+ # Newer Portage sets this option by default in GNUMAKEFLAGS if nothing
+ # is set by the user in MAKEOPTS. See bug #900929 and bug #728424.
+ local makeopts_tmp="-j$(makeopts_jobs) -l$(makeopts_loadavg)"
+ unset MAKEOPTS MAKEFLAGS GNUMAKEFLAGS
+ export MAKEOPTS="${makeopts_tmp}"
# -fomit-frame-pointer makes ruby segfault, see bug #150413.
filter-flags -fomit-frame-pointer
@@ -151,6 +180,9 @@ src_configure() {
--enable-shared \
--enable-pthread \
--disable-rpath \
+ --without-baseruby \
+ --with-compress-debug-sections=no \
+ --enable-mkmf-verbose \
--with-out-ext="${modules}" \
$(use_with jemalloc jemalloc) \
$(use_enable jit jit-support ) \
@@ -162,6 +194,7 @@ src_configure() {
$(use_enable static-libs install-static-library) \
$(use_with static-libs static-linked-ext) \
$(use_enable debug) \
+ $(use_with valgrind) \
${myconf} \
--enable-option-checking=no
@@ -174,28 +207,14 @@ src_compile() {
}
src_test() {
- emake -j1 V=1 test
-
- elog "Ruby's make test has been run. Ruby also ships with a make check"
- elog "that cannot be run until after ruby has been installed."
- elog
- if use rubytests; then
- elog "You have enabled rubytests, so they will be installed to"
- elog "/usr/share/${PN}-${SLOT}/test. To run them you must be a user other"
- elog "than root, and you must place them into a writeable directory."
- elog "Then call: "
- elog
- elog "ruby${MY_SUFFIX} -C /location/of/tests runner.rb"
- else
- elog "Enable the rubytests USE flag to install the make check tests"
- fi
+ emake V=1 check
}
src_install() {
# Remove the remaining bundled gems. We do this late in the process
# since they are used during the build to e.g. create the
# documentation.
- rm -rf ext/json || die
+ einfo "Removing default gems before installation"
rm -rf lib/bundler* lib/rdoc/rdoc.gemspec || die
# Ruby is involved in the install process, we don't want interference here.
@@ -203,18 +222,16 @@ src_install() {
local MINIRUBY=$(echo -e 'include Makefile\ngetminiruby:\n\t@echo $(MINIRUBY)'|make -f - getminiruby)
- LD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}"
+ local -x LD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}"
if [[ ${CHOST} == *darwin* ]] ; then
- DYLD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${DYLD_LIBRARY_PATH+:}${DYLD_LIBRARY_PATH}"
- export DYLD_LIBRARY_PATH
+ local -x DYLD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${DYLD_LIBRARY_PATH+:}${DYLD_LIBRARY_PATH}"
fi
- RUBYLIB="${S}:${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}"
+ local -x RUBYLIB="${S}:${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}"
for d in $(find "${S}/ext" -type d) ; do
RUBYLIB="${RUBYLIB}:$d"
done
- export LD_LIBRARY_PATH RUBYLIB
# Create directory for the default gems
local gem_home="${EPREFIX}/usr/$(get_libdir)/ruby/gems/${RUBYVERSION}"
@@ -237,13 +254,6 @@ src_install() {
fi
dodoc ChangeLog NEWS.md doc/NEWS* README*
-
- if use rubytests; then
- pushd test
- insinto /usr/share/${PN}-${SLOT}/test
- doins -r .
- popd
- fi
}
pkg_postinst() {
@@ -253,7 +263,7 @@ pkg_postinst() {
elog
elog "To switch between available Ruby profiles, execute as root:"
- elog "\teselect ruby set ruby(23|24|...)"
+ elog "\teselect ruby set ruby(30|31|...)"
elog
}
diff --git a/dev-lang/ruby/ruby-3.0.0.ebuild b/dev-lang/ruby/ruby-3.1.4-r5.ebuild
index bd5074777ec7..bad6e20d9e3b 100644
--- a/dev-lang/ruby/ruby-3.0.0.ebuild
+++ b/dev-lang/ruby/ruby-3.1.4-r5.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-inherit autotools flag-o-matic multilib
+inherit autotools flag-o-matic multiprocessing
MY_P="${PN}-$(ver_cut 1-3)"
S=${WORKDIR}/${MY_P}
@@ -17,20 +17,19 @@ HOMEPAGE="https://www.ruby-lang.org/"
SRC_URI="https://cache.ruby-lang.org/pub/ruby/${SLOT}/${MY_P}.tar.xz"
LICENSE="|| ( Ruby-BSD BSD-2 )"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-IUSE="berkdb debug doc examples gdbm ipv6 jemalloc jit libressl +rdoc rubytests socks5 +ssl static-libs systemtap tk xemacs"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+IUSE="berkdb debug doc examples gdbm ipv6 jemalloc jit socks5 +ssl static-libs systemtap tk valgrind xemacs"
RDEPEND="
berkdb? ( sys-libs/db:= )
gdbm? ( sys-libs/gdbm:= )
- jemalloc? ( dev-libs/jemalloc )
+ jemalloc? ( dev-libs/jemalloc:= )
jit? ( || ( sys-devel/gcc:* sys-devel/clang:* ) )
ssl? (
- !libressl? ( dev-libs/openssl:0= )
- libressl? ( dev-libs/libressl )
+ dev-libs/openssl:0=
)
socks5? ( >=net-proxy/dante-1.1.13 )
- systemtap? ( dev-util/systemtap )
+ systemtap? ( dev-debug/systemtap )
tk? (
dev-lang/tcl:0=[threads]
dev-lang/tk:0=[threads]
@@ -39,33 +38,44 @@ RDEPEND="
dev-libs/libffi:=
sys-libs/readline:0=
sys-libs/zlib
- >=app-eselect/eselect-ruby-20201225
+ virtual/libcrypt:=
+ >=app-eselect/eselect-ruby-20231008
"
-DEPEND="${RDEPEND}"
+DEPEND="
+ ${RDEPEND}
+ valgrind? ( dev-debug/valgrind )
+"
BUNDLED_GEMS="
- >=dev-ruby/minitest-5.14.2[ruby_targets_ruby30]
- >=dev-ruby/power_assert-1.2.0[ruby_targets_ruby30]
- >=dev-ruby/rake-13.0.3[ruby_targets_ruby30]
- >=dev-ruby/rbs-1.0.0[ruby_targets_ruby30]
- >=dev-ruby/rexml-3.2.4[ruby_targets_ruby30]
- >=dev-ruby/rss-0.2.9[ruby_targets_ruby30]
- >=dev-ruby/test-unit-3.3.7[ruby_targets_ruby30]
- >=dev-ruby/typeprof-0.11.0[ruby_targets_ruby30]
+ >=dev-ruby/irb-1.4.1[ruby_targets_ruby31(-)]
+ >=dev-ruby/minitest-5.15.0[ruby_targets_ruby31(-)]
+ >=dev-ruby/power_assert-2.0.1[ruby_targets_ruby31(-)]
+ >=dev-ruby/rake-13.0.6-r2[ruby_targets_ruby31(-)]
+ >=dev-ruby/rbs-2.1.0[ruby_targets_ruby31(-)]
+ >=dev-ruby/rexml-3.2.5[ruby_targets_ruby31(-)]
+ >=dev-ruby/rss-0.2.9[ruby_targets_ruby31(-)]
+ >=dev-ruby/test-unit-3.5.3[ruby_targets_ruby31(-)]
+ >=dev-ruby/typeprof-0.12.2[ruby_targets_ruby31(-)]
"
PDEPEND="
${BUNDLED_GEMS}
- virtual/rubygems[ruby_targets_ruby30]
- >=dev-ruby/bundler-2.1.4[ruby_targets_ruby30]
- >=dev-ruby/did_you_mean-1.5.0[ruby_targets_ruby30]
- >=dev-ruby/json-2.5.1[ruby_targets_ruby30]
- rdoc? ( >=dev-ruby/rdoc-6.3.0[ruby_targets_ruby30] )
- xemacs? ( app-xemacs/ruby-modes )"
+ virtual/rubygems[ruby_targets_ruby31(-)]
+ >=dev-ruby/bundler-2.3.3[ruby_targets_ruby31(-)]
+ >=dev-ruby/did_you_mean-1.6.1[ruby_targets_ruby31(-)]
+ >=dev-ruby/json-2.6.1[ruby_targets_ruby31(-)]
+ >=dev-ruby/rdoc-6.3.3[ruby_targets_ruby31(-)]
+ xemacs? ( app-xemacs/ruby-modes )
+"
src_prepare() {
- eapply "${FILESDIR}"/"${SLOT}"/010*.patch
+ eapply "${FILESDIR}"/"${SLOT}"/011*.patch
+ eapply "${FILESDIR}"/"${SLOT}"/902*.patch
+
+ if use elibc_musl ; then
+ eapply "${FILESDIR}"/3.1/901-musl-*.patch
+ fi
einfo "Unbundling gems..."
cd "$S"
@@ -80,6 +90,15 @@ src_prepare() {
einfo "Removing bundled libraries..."
rm -fr ext/fiddle/libffi-3.2.1 || die
+ # Remove webrick tests because setting LD_LIBRARY_PATH does not work for them.
+ rm -rf tool/test/webrick || die
+
+ # Remove tests that are known to fail or require a network connection
+ rm -f test/ruby/test_process.rb test/rubygems/test_gem{,_path_support}.rb || die
+ rm -f test/rinda/test_rinda.rb test/socket/test_tcp.rb test/fiber/test_address_resolve.rb test/resolv/test_addr.rb \
+ spec/ruby/library/socket/tcpsocket/{initialize,open}_spec.rb|| die
+ sed -i -e '/def test_test/askip "Depends on system setup"' test/ruby/test_file_exhaustive.rb || die
+
if use prefix ; then
# Fix hardcoded SHELL var in mkmf library
sed -i -e "s#\(SHELL = \).*#\1${EPREFIX}/bin/sh#" lib/mkmf.rb || die
@@ -94,6 +113,11 @@ src_prepare() {
sed -i \
-e "s/ac_cv_prog_ac_ct_AR='libtool/ac_cv_prog_AR='${CHOST}-libtool/" \
configure.ac || die
+
+ # disable using security framework (GCC barfs on those headers)
+ sed -i \
+ -e 's/MAC_OS_X_VERSION_MIN_REQUIRED/_DISABLED_/' \
+ random.c || die
fi
fi
@@ -103,7 +127,16 @@ src_prepare() {
}
src_configure() {
- local modules= myconf=
+ local modules="win32,win32ole" myconf=
+
+ # Ruby's build system does interesting things with MAKEOPTS and doesn't
+ # handle MAKEOPTS="-Oline" or similar well. Just filter it all out
+ # and use -j/-l parsed out from the original MAKEOPTS, then use that.
+ # Newer Portage sets this option by default in GNUMAKEFLAGS if nothing
+ # is set by the user in MAKEOPTS. See bug #900929 and bug #728424.
+ local makeopts_tmp="-j$(makeopts_jobs) -l$(makeopts_loadavg)"
+ unset MAKEOPTS MAKEFLAGS GNUMAKEFLAGS
+ export MAKEOPTS="${makeopts_tmp}"
# -fomit-frame-pointer makes ruby segfault, see bug #150413.
filter-flags -fomit-frame-pointer
@@ -151,6 +184,9 @@ src_configure() {
--enable-shared \
--enable-pthread \
--disable-rpath \
+ --without-baseruby \
+ --with-compress-debug-sections=no \
+ --enable-mkmf-verbose \
--with-out-ext="${modules}" \
$(use_with jemalloc jemalloc) \
$(use_enable jit jit-support ) \
@@ -162,6 +198,7 @@ src_configure() {
$(use_enable static-libs install-static-library) \
$(use_with static-libs static-linked-ext) \
$(use_enable debug) \
+ $(use_with valgrind) \
${myconf} \
--enable-option-checking=no
@@ -174,28 +211,14 @@ src_compile() {
}
src_test() {
- emake -j1 V=1 test
-
- elog "Ruby's make test has been run. Ruby also ships with a make check"
- elog "that cannot be run until after ruby has been installed."
- elog
- if use rubytests; then
- elog "You have enabled rubytests, so they will be installed to"
- elog "/usr/share/${PN}-${SLOT}/test. To run them you must be a user other"
- elog "than root, and you must place them into a writeable directory."
- elog "Then call: "
- elog
- elog "ruby${MY_SUFFIX} -C /location/of/tests runner.rb"
- else
- elog "Enable the rubytests USE flag to install the make check tests"
- fi
+ emake V=1 check
}
src_install() {
# Remove the remaining bundled gems. We do this late in the process
# since they are used during the build to e.g. create the
# documentation.
- rm -rf ext/json || die
+ einfo "Removing default gems before installation"
rm -rf lib/bundler* lib/rdoc/rdoc.gemspec || die
# Ruby is involved in the install process, we don't want interference here.
@@ -203,18 +226,16 @@ src_install() {
local MINIRUBY=$(echo -e 'include Makefile\ngetminiruby:\n\t@echo $(MINIRUBY)'|make -f - getminiruby)
- LD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}"
+ local -x LD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}"
if [[ ${CHOST} == *darwin* ]] ; then
- DYLD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${DYLD_LIBRARY_PATH+:}${DYLD_LIBRARY_PATH}"
- export DYLD_LIBRARY_PATH
+ local -x DYLD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${DYLD_LIBRARY_PATH+:}${DYLD_LIBRARY_PATH}"
fi
- RUBYLIB="${S}:${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}"
+ local -x RUBYLIB="${S}:${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}"
for d in $(find "${S}/ext" -type d) ; do
RUBYLIB="${RUBYLIB}:$d"
done
- export LD_LIBRARY_PATH RUBYLIB
# Create directory for the default gems
local gem_home="${EPREFIX}/usr/$(get_libdir)/ruby/gems/${RUBYVERSION}"
@@ -237,13 +258,6 @@ src_install() {
fi
dodoc ChangeLog NEWS.md doc/NEWS* README*
-
- if use rubytests; then
- pushd test
- insinto /usr/share/${PN}-${SLOT}/test
- doins -r .
- popd
- fi
}
pkg_postinst() {
@@ -253,7 +267,7 @@ pkg_postinst() {
elog
elog "To switch between available Ruby profiles, execute as root:"
- elog "\teselect ruby set ruby(23|24|...)"
+ elog "\teselect ruby set ruby(30|31|...)"
elog
}
diff --git a/dev-lang/ruby/ruby-2.7.2.ebuild b/dev-lang/ruby/ruby-3.1.5.ebuild
index 138024506971..8f3d74c898fc 100644
--- a/dev-lang/ruby/ruby-2.7.2.ebuild
+++ b/dev-lang/ruby/ruby-3.1.5.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-inherit autotools flag-o-matic multilib
+inherit autotools flag-o-matic multiprocessing
MY_P="${PN}-$(ver_cut 1-3)"
S=${WORKDIR}/${MY_P}
@@ -17,20 +17,19 @@ HOMEPAGE="https://www.ruby-lang.org/"
SRC_URI="https://cache.ruby-lang.org/pub/ruby/${SLOT}/${MY_P}.tar.xz"
LICENSE="|| ( Ruby-BSD BSD-2 )"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-IUSE="berkdb debug doc examples gdbm ipv6 jemalloc jit libressl +rdoc rubytests socks5 +ssl static-libs systemtap tk xemacs"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+IUSE="berkdb debug doc examples gdbm ipv6 jemalloc jit socks5 +ssl static-libs systemtap tk valgrind xemacs"
RDEPEND="
berkdb? ( sys-libs/db:= )
gdbm? ( sys-libs/gdbm:= )
- jemalloc? ( dev-libs/jemalloc )
+ jemalloc? ( dev-libs/jemalloc:= )
jit? ( || ( sys-devel/gcc:* sys-devel/clang:* ) )
ssl? (
- !libressl? ( dev-libs/openssl:0= )
- libressl? ( dev-libs/libressl )
+ dev-libs/openssl:0=
)
socks5? ( >=net-proxy/dante-1.1.13 )
- systemtap? ( dev-util/systemtap )
+ systemtap? ( dev-debug/systemtap )
tk? (
dev-lang/tcl:0=[threads]
dev-lang/tk:0=[threads]
@@ -39,39 +38,51 @@ RDEPEND="
dev-libs/libffi:=
sys-libs/readline:0=
sys-libs/zlib
- >=app-eselect/eselect-ruby-20191222
+ virtual/libcrypt:=
+ >=app-eselect/eselect-ruby-20231008
"
-DEPEND="${RDEPEND}"
+DEPEND="
+ ${RDEPEND}
+ valgrind? ( dev-debug/valgrind )
+"
BUNDLED_GEMS="
- >=dev-ruby/minitest-5.13.0[ruby_targets_ruby27]
- >=dev-ruby/net-telnet-0.2.0[ruby_targets_ruby27]
- >=dev-ruby/power_assert-1.1.7[ruby_targets_ruby27]
- >=dev-ruby/rake-13.0.1[ruby_targets_ruby27]
- >=dev-ruby/test-unit-3.3.4[ruby_targets_ruby27]
- >=dev-ruby/xmlrpc-0.3.0[ruby_targets_ruby27]
+ >=dev-ruby/irb-1.4.1[ruby_targets_ruby31(-)]
+ >=dev-ruby/minitest-5.15.0[ruby_targets_ruby31(-)]
+ >=dev-ruby/power_assert-2.0.1[ruby_targets_ruby31(-)]
+ >=dev-ruby/rake-13.0.6-r2[ruby_targets_ruby31(-)]
+ >=dev-ruby/rbs-2.1.0[ruby_targets_ruby31(-)]
+ >=dev-ruby/rexml-3.2.5[ruby_targets_ruby31(-)]
+ >=dev-ruby/rss-0.2.9[ruby_targets_ruby31(-)]
+ >=dev-ruby/test-unit-3.5.3[ruby_targets_ruby31(-)]
+ >=dev-ruby/typeprof-0.12.2[ruby_targets_ruby31(-)]
"
PDEPEND="
${BUNDLED_GEMS}
- virtual/rubygems[ruby_targets_ruby27]
- >=dev-ruby/bundler-2.1.4[ruby_targets_ruby27]
- >=dev-ruby/did_you_mean-1.3.1[ruby_targets_ruby27]
- >=dev-ruby/json-2.0.2[ruby_targets_ruby27]
- rdoc? ( >=dev-ruby/rdoc-6.1.2[ruby_targets_ruby27] )
- xemacs? ( app-xemacs/ruby-modes )"
+ virtual/rubygems[ruby_targets_ruby31(-)]
+ >=dev-ruby/bundler-2.3.3[ruby_targets_ruby31(-)]
+ >=dev-ruby/did_you_mean-1.6.1[ruby_targets_ruby31(-)]
+ >=dev-ruby/json-2.6.1[ruby_targets_ruby31(-)]
+ >=dev-ruby/rdoc-6.3.3[ruby_targets_ruby31(-)]
+ xemacs? ( app-xemacs/ruby-modes )
+"
src_prepare() {
- # 005 does not compile bigdecimal and is questionable because it
- # compiles ruby in a non-standard way, may be dropped
- eapply "${FILESDIR}"/2.7/{002,010}*.patch
+ eapply "${FILESDIR}"/"${SLOT}"/011*.patch
+ eapply "${FILESDIR}"/"${SLOT}"/902*.patch
+
+ if use elibc_musl ; then
+ eapply "${FILESDIR}"/3.1/901-musl-*.patch
+ fi
einfo "Unbundling gems..."
cd "$S"
# Remove bundled gems that we will install via PDEPEND, bug
# 539700.
rm -fr gems/* || die
+ touch gems/bundled_gems || die
# Don't install CLI tools since they will clash with the gem
rm -f bin/{racc,racc2y,y2racc} || die
sed -i -e '/executables/ s:^:#:' lib/racc/racc.gemspec || die
@@ -79,6 +90,18 @@ src_prepare() {
einfo "Removing bundled libraries..."
rm -fr ext/fiddle/libffi-3.2.1 || die
+ # Remove webrick tests because setting LD_LIBRARY_PATH does not work for them.
+ rm -rf tool/test/webrick || die
+
+ # Remove tests that are known to fail or require a network connection
+ rm -f test/ruby/test_process.rb test/rubygems/test_gem{,_path_support}.rb || die
+ rm -f test/rinda/test_rinda.rb test/socket/test_tcp.rb test/fiber/test_address_resolve.rb test/resolv/test_addr.rb \
+ spec/ruby/library/socket/tcpsocket/{initialize,open}_spec.rb|| die
+ sed -i -e '/def test_test/askip "Depends on system setup"' test/ruby/test_file_exhaustive.rb || die
+
+ # MJIT is broken and removed in later ruby versions.
+ rm -f test/ruby/test_jit.rb || die
+
if use prefix ; then
# Fix hardcoded SHELL var in mkmf library
sed -i -e "s#\(SHELL = \).*#\1${EPREFIX}/bin/sh#" lib/mkmf.rb || die
@@ -93,6 +116,11 @@ src_prepare() {
sed -i \
-e "s/ac_cv_prog_ac_ct_AR='libtool/ac_cv_prog_AR='${CHOST}-libtool/" \
configure.ac || die
+
+ # disable using security framework (GCC barfs on those headers)
+ sed -i \
+ -e 's/MAC_OS_X_VERSION_MIN_REQUIRED/_DISABLED_/' \
+ random.c || die
fi
fi
@@ -102,7 +130,16 @@ src_prepare() {
}
src_configure() {
- local modules= myconf=
+ local modules="win32,win32ole" myconf=
+
+ # Ruby's build system does interesting things with MAKEOPTS and doesn't
+ # handle MAKEOPTS="-Oline" or similar well. Just filter it all out
+ # and use -j/-l parsed out from the original MAKEOPTS, then use that.
+ # Newer Portage sets this option by default in GNUMAKEFLAGS if nothing
+ # is set by the user in MAKEOPTS. See bug #900929 and bug #728424.
+ local makeopts_tmp="-j$(makeopts_jobs) -l$(makeopts_loadavg)"
+ unset MAKEOPTS MAKEFLAGS GNUMAKEFLAGS
+ export MAKEOPTS="${makeopts_tmp}"
# -fomit-frame-pointer makes ruby segfault, see bug #150413.
filter-flags -fomit-frame-pointer
@@ -150,6 +187,9 @@ src_configure() {
--enable-shared \
--enable-pthread \
--disable-rpath \
+ --without-baseruby \
+ --with-compress-debug-sections=no \
+ --enable-mkmf-verbose \
--with-out-ext="${modules}" \
$(use_with jemalloc jemalloc) \
$(use_enable jit jit-support ) \
@@ -161,6 +201,7 @@ src_configure() {
$(use_enable static-libs install-static-library) \
$(use_with static-libs static-linked-ext) \
$(use_enable debug) \
+ $(use_with valgrind) \
${myconf} \
--enable-option-checking=no
@@ -173,28 +214,14 @@ src_compile() {
}
src_test() {
- emake -j1 V=1 test
-
- elog "Ruby's make test has been run. Ruby also ships with a make check"
- elog "that cannot be run until after ruby has been installed."
- elog
- if use rubytests; then
- elog "You have enabled rubytests, so they will be installed to"
- elog "/usr/share/${PN}-${SLOT}/test. To run them you must be a user other"
- elog "than root, and you must place them into a writeable directory."
- elog "Then call: "
- elog
- elog "ruby${MY_SUFFIX} -C /location/of/tests runner.rb"
- else
- elog "Enable the rubytests USE flag to install the make check tests"
- fi
+ emake V=1 check
}
src_install() {
# Remove the remaining bundled gems. We do this late in the process
# since they are used during the build to e.g. create the
# documentation.
- rm -rf ext/json || die
+ einfo "Removing default gems before installation"
rm -rf lib/bundler* lib/rdoc/rdoc.gemspec || die
# Ruby is involved in the install process, we don't want interference here.
@@ -202,18 +229,16 @@ src_install() {
local MINIRUBY=$(echo -e 'include Makefile\ngetminiruby:\n\t@echo $(MINIRUBY)'|make -f - getminiruby)
- LD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}"
+ local -x LD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}"
if [[ ${CHOST} == *darwin* ]] ; then
- DYLD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${DYLD_LIBRARY_PATH+:}${DYLD_LIBRARY_PATH}"
- export DYLD_LIBRARY_PATH
+ local -x DYLD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${DYLD_LIBRARY_PATH+:}${DYLD_LIBRARY_PATH}"
fi
- RUBYLIB="${S}:${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}"
+ local -x RUBYLIB="${S}:${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}"
for d in $(find "${S}/ext" -type d) ; do
RUBYLIB="${RUBYLIB}:$d"
done
- export LD_LIBRARY_PATH RUBYLIB
# Create directory for the default gems
local gem_home="${EPREFIX}/usr/$(get_libdir)/ruby/gems/${RUBYVERSION}"
@@ -235,14 +260,7 @@ src_install() {
dodoc -r sample
fi
- dodoc ChangeLog NEWS doc/NEWS* README*
-
- if use rubytests; then
- pushd test
- insinto /usr/share/${PN}-${SLOT}/test
- doins -r .
- popd
- fi
+ dodoc ChangeLog NEWS.md doc/NEWS* README*
}
pkg_postinst() {
@@ -252,7 +270,7 @@ pkg_postinst() {
elog
elog "To switch between available Ruby profiles, execute as root:"
- elog "\teselect ruby set ruby(23|24|...)"
+ elog "\teselect ruby set ruby(30|31|...)"
elog
}
diff --git a/dev-lang/ruby/ruby-2.6.6-r2.ebuild b/dev-lang/ruby/ruby-3.2.3.ebuild
index 795321234d25..1c19b91c8e3d 100644
--- a/dev-lang/ruby/ruby-2.6.6-r2.ebuild
+++ b/dev-lang/ruby/ruby-3.2.3.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-inherit autotools flag-o-matic multilib
+inherit autotools flag-o-matic multiprocessing
MY_P="${PN}-$(ver_cut 1-3)"
S=${WORKDIR}/${MY_P}
@@ -17,20 +17,19 @@ HOMEPAGE="https://www.ruby-lang.org/"
SRC_URI="https://cache.ruby-lang.org/pub/ruby/${SLOT}/${MY_P}.tar.xz"
LICENSE="|| ( Ruby-BSD BSD-2 )"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~mips ppc ppc64 ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-IUSE="berkdb debug doc examples gdbm ipv6 jemalloc jit libressl +rdoc rubytests socks5 +ssl static-libs systemtap tk xemacs"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+IUSE="berkdb debug doc examples gdbm ipv6 jemalloc jit socks5 +ssl static-libs systemtap tk valgrind xemacs"
RDEPEND="
berkdb? ( sys-libs/db:= )
gdbm? ( sys-libs/gdbm:= )
- jemalloc? ( dev-libs/jemalloc )
- jit? ( || ( sys-devel/gcc:* sys-devel/clang:* ) )
+ jemalloc? ( dev-libs/jemalloc:= )
+ jit? ( >=virtual/rust-1.58.1 )
ssl? (
- !libressl? ( dev-libs/openssl:0= )
- libressl? ( dev-libs/libressl )
+ dev-libs/openssl:0=
)
socks5? ( >=net-proxy/dante-1.1.13 )
- systemtap? ( dev-util/systemtap )
+ systemtap? ( dev-debug/systemtap )
tk? (
dev-lang/tcl:0=[threads]
dev-lang/tk:0=[threads]
@@ -39,42 +38,82 @@ RDEPEND="
dev-libs/libffi:=
sys-libs/readline:0=
sys-libs/zlib
- >=app-eselect/eselect-ruby-20181225
+ virtual/libcrypt:=
+ >=app-eselect/eselect-ruby-20231008
"
-DEPEND="${RDEPEND}"
+DEPEND="
+ ${RDEPEND}
+ valgrind? ( dev-debug/valgrind )
+"
BUNDLED_GEMS="
- >=dev-ruby/did_you_mean-1.2.1[ruby_targets_ruby26]
- >=dev-ruby/minitest-5.11.3[ruby_targets_ruby26]
- >=dev-ruby/net-telnet-0.2.0[ruby_targets_ruby26]
- >=dev-ruby/power_assert-1.1.3[ruby_targets_ruby26]
- >=dev-ruby/rake-12.3.2[ruby_targets_ruby26]
- >=dev-ruby/test-unit-3.2.9[ruby_targets_ruby26]
- >=dev-ruby/xmlrpc-0.3.0[ruby_targets_ruby26]
+ >=dev-ruby/debug-1.7.1[ruby_targets_ruby32(-)]
+ >=dev-ruby/irb-1.6.2[ruby_targets_ruby32(-)]
+ >=dev-ruby/matrix-0.4.2[ruby_targets_ruby32(-)]
+ >=dev-ruby/minitest-5.16.3[ruby_targets_ruby32(-)]
+ >=dev-ruby/net-ftp-0.2.0[ruby_targets_ruby32(-)]
+ >=dev-ruby/net-imap-0.3.4[ruby_targets_ruby32(-)]
+ >=dev-ruby/net-pop-0.1.2[ruby_targets_ruby32(-)]
+ >=dev-ruby/net-smtp-0.3.3[ruby_targets_ruby32(-)]
+ >=dev-ruby/power_assert-2.0.3[ruby_targets_ruby32(-)]
+ >=dev-ruby/prime-0.1.2[ruby_targets_ruby32(-)]
+ >=dev-ruby/rake-13.0.6-r2[ruby_targets_ruby32(-)]
+ >=dev-ruby/rbs-2.8.2[ruby_targets_ruby32(-)]
+ >=dev-ruby/rexml-3.2.5[ruby_targets_ruby32(-)]
+ >=dev-ruby/rss-0.2.9[ruby_targets_ruby32(-)]
+ >=dev-ruby/test-unit-3.5.7[ruby_targets_ruby32(-)]
+ >=dev-ruby/typeprof-0.21.3[ruby_targets_ruby32(-)]
"
PDEPEND="
${BUNDLED_GEMS}
- virtual/rubygems[ruby_targets_ruby26]
- >=dev-ruby/bundler-1.17.2[ruby_targets_ruby26]
- >=dev-ruby/json-2.0.2[ruby_targets_ruby26]
- rdoc? ( >=dev-ruby/rdoc-6.1.2[ruby_targets_ruby26] )
- xemacs? ( app-xemacs/ruby-modes )"
+ virtual/rubygems[ruby_targets_ruby32(-)]
+ >=dev-ruby/bundler-2.3.3[ruby_targets_ruby32(-)]
+ >=dev-ruby/did_you_mean-1.6.1[ruby_targets_ruby32(-)]
+ >=dev-ruby/json-2.6.1[ruby_targets_ruby32(-)]
+ >=dev-ruby/rdoc-6.3.3[ruby_targets_ruby32(-)]
+ xemacs? ( app-xemacs/ruby-modes )
+"
src_prepare() {
- # 005 does not compile bigdecimal and is questionable because it
- # compiles ruby in a non-standard way, may be dropped
- eapply "${FILESDIR}"/2.6/{002,010}*.patch
+ eapply "${FILESDIR}"/"${SLOT}"/010*.patch
+ eapply "${FILESDIR}"/"${SLOT}"/011*.patch
+ eapply "${FILESDIR}"/"${SLOT}"/902*.patch
+
+ if use elibc_musl ; then
+ eapply "${FILESDIR}"/${SLOT}/901-musl-*.patch
+ fi
einfo "Unbundling gems..."
cd "$S"
# Remove bundled gems that we will install via PDEPEND, bug
# 539700.
rm -fr gems/* || die
+ touch gems/bundled_gems || die
+ # Don't install CLI tools since they will clash with the gem
+ rm -f bin/{racc,racc2y,y2racc} || die
+ sed -i -e '/executables/ s:^:#:' lib/racc/racc.gemspec || die
+
+ # Remove tests that are known to fail or require a network connection
+ rm -f test/ruby/test_process.rb test/rubygems/test_gem{,_path_support}.rb || die
+ rm -f test/rinda/test_rinda.rb test/socket/test_tcp.rb test/fiber/test_address_resolve.rb spec/ruby/library/socket/tcpsocket/{initialize,open}_spec.rb|| die
+
+ # Remove webrick tests because setting LD_LIBRARY_PATH does not work for them.
+ rm -rf tool/test/webrick || die
+
+ # Avoid test using the system ruby
+ sed -i -e '/test_dumb_terminal/aomit "Uses system ruby"' test/reline/test_reline.rb || die
+
+ # Avoid testing against hard-coded blockdev devices that most likely are not available
+ sed -i -e '/def blockdev/a@blockdev = nil' test/ruby/test_file_exhaustive.rb || die
+
+ # Avoid tests that require gem downloads
+ sed -i -e '/^test-syntax-suggest/ s/\$(TEST_RUNNABLE)/no/' common.mk || die
+ sed -i -e '/^check:/ s/\$(TEST_RUNNABLE)-\$(PREPARE_SYNTAX_SUGGEST) test-syntax-suggest//' common.mk || die
- einfo "Removing bundled libraries..."
- rm -fr ext/fiddle/libffi-3.2.1 || die
+ # Avoid test that fails intermittently
+ sed -i -e '/test_gem_exec_gem_uninstall/aomit "Fails intermittently"' test/rubygems/test_gem_commands_exec_command.rb || die
if use prefix ; then
# Fix hardcoded SHELL var in mkmf library
@@ -90,6 +129,11 @@ src_prepare() {
sed -i \
-e "s/ac_cv_prog_ac_ct_AR='libtool/ac_cv_prog_AR='${CHOST}-libtool/" \
configure.ac || die
+
+ # disable using security framework (GCC barfs on those headers)
+ sed -i \
+ -e 's/MAC_OS_X_VERSION_MIN_REQUIRED/_DISABLED_/' \
+ random.c || die
fi
fi
@@ -99,7 +143,16 @@ src_prepare() {
}
src_configure() {
- local modules= myconf=
+ local modules="win32,win32ole" myconf=
+
+ # Ruby's build system does interesting things with MAKEOPTS and doesn't
+ # handle MAKEOPTS="-Oline" or similar well. Just filter it all out
+ # and use -j/-l parsed out from the original MAKEOPTS, then use that.
+ # Newer Portage sets this option by default in GNUMAKEFLAGS if nothing
+ # is set by the user in MAKEOPTS. See bug #900929 and bug #728424.
+ local makeopts_tmp="-j$(makeopts_jobs) -l$(makeopts_loadavg)"
+ unset MAKEOPTS MAKEFLAGS GNUMAKEFLAGS
+ export MAKEOPTS="${makeopts_tmp}"
# -fomit-frame-pointer makes ruby segfault, see bug #150413.
filter-flags -fomit-frame-pointer
@@ -147,9 +200,13 @@ src_configure() {
--enable-shared \
--enable-pthread \
--disable-rpath \
+ --without-baseruby \
+ --with-compress-debug-sections=no \
+ --enable-mkmf-verbose \
--with-out-ext="${modules}" \
$(use_with jemalloc jemalloc) \
- $(use_enable jit jit-support ) \
+ $(use_enable jit jit-support) \
+ $(use_enable jit yjit) \
$(use_enable socks5 socks) \
$(use_enable systemtap dtrace) \
$(use_enable doc install-doc) \
@@ -159,6 +216,7 @@ src_configure() {
$(use_with static-libs static-linked-ext) \
$(use_enable debug) \
${myconf} \
+ $(use_with valgrind) \
--enable-option-checking=no
# Makefile is broken because it lacks -ldl
@@ -166,32 +224,20 @@ src_configure() {
}
src_compile() {
+ local -x LD_LIBRARY_PATH="${S}${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}"
emake V=1 EXTLDFLAGS="${LDFLAGS}" MJIT_CFLAGS="${CFLAGS}" MJIT_OPTFLAGS="" MJIT_DEBUGFLAGS=""
}
src_test() {
- emake -j1 V=1 test
-
- elog "Ruby's make test has been run. Ruby also ships with a make check"
- elog "that cannot be run until after ruby has been installed."
- elog
- if use rubytests; then
- elog "You have enabled rubytests, so they will be installed to"
- elog "/usr/share/${PN}-${SLOT}/test. To run them you must be a user other"
- elog "than root, and you must place them into a writeable directory."
- elog "Then call: "
- elog
- elog "ruby${MY_SUFFIX} -C /location/of/tests runner.rb"
- else
- elog "Enable the rubytests USE flag to install the make check tests"
- fi
+ local -x LD_LIBRARY_PATH="${S}${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}"
+ emake V=1 check
}
src_install() {
# Remove the remaining bundled gems. We do this late in the process
# since they are used during the build to e.g. create the
# documentation.
- rm -rf ext/json || die
+ einfo "Removing default gems before installation"
rm -rf lib/bundler* lib/rdoc/rdoc.gemspec || die
# Ruby is involved in the install process, we don't want interference here.
@@ -199,18 +245,16 @@ src_install() {
local MINIRUBY=$(echo -e 'include Makefile\ngetminiruby:\n\t@echo $(MINIRUBY)'|make -f - getminiruby)
- LD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}"
+ local -x LD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}"
if [[ ${CHOST} == *darwin* ]] ; then
- DYLD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${DYLD_LIBRARY_PATH+:}${DYLD_LIBRARY_PATH}"
- export DYLD_LIBRARY_PATH
+ local -x DYLD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${DYLD_LIBRARY_PATH+:}${DYLD_LIBRARY_PATH}"
fi
- RUBYLIB="${S}:${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}"
+ local -x RUBYLIB="${S}:${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}"
for d in $(find "${S}/ext" -type d) ; do
RUBYLIB="${RUBYLIB}:$d"
done
- export LD_LIBRARY_PATH RUBYLIB
# Create directory for the default gems
local gem_home="${EPREFIX}/usr/$(get_libdir)/ruby/gems/${RUBYVERSION}"
@@ -232,14 +276,8 @@ src_install() {
dodoc -r sample
fi
- dodoc ChangeLog NEWS doc/NEWS* README*
-
- if use rubytests; then
- pushd test
- insinto /usr/share/${PN}-${SLOT}/test
- doins -r .
- popd
- fi
+ dodoc ChangeLog NEWS.md README*
+ dodoc -r doc
}
pkg_postinst() {
@@ -249,7 +287,7 @@ pkg_postinst() {
elog
elog "To switch between available Ruby profiles, execute as root:"
- elog "\teselect ruby set ruby(23|24|...)"
+ elog "\teselect ruby set ruby(30|31|...)"
elog
}
diff --git a/dev-lang/ruby/ruby-3.2.4.ebuild b/dev-lang/ruby/ruby-3.2.4.ebuild
new file mode 100644
index 000000000000..1c19b91c8e3d
--- /dev/null
+++ b/dev-lang/ruby/ruby-3.2.4.ebuild
@@ -0,0 +1,296 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools flag-o-matic multiprocessing
+
+MY_P="${PN}-$(ver_cut 1-3)"
+S=${WORKDIR}/${MY_P}
+
+SLOT=$(ver_cut 1-2)
+MY_SUFFIX=$(ver_rs 1 '' ${SLOT})
+RUBYVERSION=${SLOT}.0
+
+DESCRIPTION="An object-oriented scripting language"
+HOMEPAGE="https://www.ruby-lang.org/"
+SRC_URI="https://cache.ruby-lang.org/pub/ruby/${SLOT}/${MY_P}.tar.xz"
+
+LICENSE="|| ( Ruby-BSD BSD-2 )"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+IUSE="berkdb debug doc examples gdbm ipv6 jemalloc jit socks5 +ssl static-libs systemtap tk valgrind xemacs"
+
+RDEPEND="
+ berkdb? ( sys-libs/db:= )
+ gdbm? ( sys-libs/gdbm:= )
+ jemalloc? ( dev-libs/jemalloc:= )
+ jit? ( >=virtual/rust-1.58.1 )
+ ssl? (
+ dev-libs/openssl:0=
+ )
+ socks5? ( >=net-proxy/dante-1.1.13 )
+ systemtap? ( dev-debug/systemtap )
+ tk? (
+ dev-lang/tcl:0=[threads]
+ dev-lang/tk:0=[threads]
+ )
+ dev-libs/libyaml
+ dev-libs/libffi:=
+ sys-libs/readline:0=
+ sys-libs/zlib
+ virtual/libcrypt:=
+ >=app-eselect/eselect-ruby-20231008
+"
+
+DEPEND="
+ ${RDEPEND}
+ valgrind? ( dev-debug/valgrind )
+"
+
+BUNDLED_GEMS="
+ >=dev-ruby/debug-1.7.1[ruby_targets_ruby32(-)]
+ >=dev-ruby/irb-1.6.2[ruby_targets_ruby32(-)]
+ >=dev-ruby/matrix-0.4.2[ruby_targets_ruby32(-)]
+ >=dev-ruby/minitest-5.16.3[ruby_targets_ruby32(-)]
+ >=dev-ruby/net-ftp-0.2.0[ruby_targets_ruby32(-)]
+ >=dev-ruby/net-imap-0.3.4[ruby_targets_ruby32(-)]
+ >=dev-ruby/net-pop-0.1.2[ruby_targets_ruby32(-)]
+ >=dev-ruby/net-smtp-0.3.3[ruby_targets_ruby32(-)]
+ >=dev-ruby/power_assert-2.0.3[ruby_targets_ruby32(-)]
+ >=dev-ruby/prime-0.1.2[ruby_targets_ruby32(-)]
+ >=dev-ruby/rake-13.0.6-r2[ruby_targets_ruby32(-)]
+ >=dev-ruby/rbs-2.8.2[ruby_targets_ruby32(-)]
+ >=dev-ruby/rexml-3.2.5[ruby_targets_ruby32(-)]
+ >=dev-ruby/rss-0.2.9[ruby_targets_ruby32(-)]
+ >=dev-ruby/test-unit-3.5.7[ruby_targets_ruby32(-)]
+ >=dev-ruby/typeprof-0.21.3[ruby_targets_ruby32(-)]
+"
+
+PDEPEND="
+ ${BUNDLED_GEMS}
+ virtual/rubygems[ruby_targets_ruby32(-)]
+ >=dev-ruby/bundler-2.3.3[ruby_targets_ruby32(-)]
+ >=dev-ruby/did_you_mean-1.6.1[ruby_targets_ruby32(-)]
+ >=dev-ruby/json-2.6.1[ruby_targets_ruby32(-)]
+ >=dev-ruby/rdoc-6.3.3[ruby_targets_ruby32(-)]
+ xemacs? ( app-xemacs/ruby-modes )
+"
+
+src_prepare() {
+ eapply "${FILESDIR}"/"${SLOT}"/010*.patch
+ eapply "${FILESDIR}"/"${SLOT}"/011*.patch
+ eapply "${FILESDIR}"/"${SLOT}"/902*.patch
+
+ if use elibc_musl ; then
+ eapply "${FILESDIR}"/${SLOT}/901-musl-*.patch
+ fi
+
+ einfo "Unbundling gems..."
+ cd "$S"
+ # Remove bundled gems that we will install via PDEPEND, bug
+ # 539700.
+ rm -fr gems/* || die
+ touch gems/bundled_gems || die
+ # Don't install CLI tools since they will clash with the gem
+ rm -f bin/{racc,racc2y,y2racc} || die
+ sed -i -e '/executables/ s:^:#:' lib/racc/racc.gemspec || die
+
+ # Remove tests that are known to fail or require a network connection
+ rm -f test/ruby/test_process.rb test/rubygems/test_gem{,_path_support}.rb || die
+ rm -f test/rinda/test_rinda.rb test/socket/test_tcp.rb test/fiber/test_address_resolve.rb spec/ruby/library/socket/tcpsocket/{initialize,open}_spec.rb|| die
+
+ # Remove webrick tests because setting LD_LIBRARY_PATH does not work for them.
+ rm -rf tool/test/webrick || die
+
+ # Avoid test using the system ruby
+ sed -i -e '/test_dumb_terminal/aomit "Uses system ruby"' test/reline/test_reline.rb || die
+
+ # Avoid testing against hard-coded blockdev devices that most likely are not available
+ sed -i -e '/def blockdev/a@blockdev = nil' test/ruby/test_file_exhaustive.rb || die
+
+ # Avoid tests that require gem downloads
+ sed -i -e '/^test-syntax-suggest/ s/\$(TEST_RUNNABLE)/no/' common.mk || die
+ sed -i -e '/^check:/ s/\$(TEST_RUNNABLE)-\$(PREPARE_SYNTAX_SUGGEST) test-syntax-suggest//' common.mk || die
+
+ # Avoid test that fails intermittently
+ sed -i -e '/test_gem_exec_gem_uninstall/aomit "Fails intermittently"' test/rubygems/test_gem_commands_exec_command.rb || die
+
+ if use prefix ; then
+ # Fix hardcoded SHELL var in mkmf library
+ sed -i -e "s#\(SHELL = \).*#\1${EPREFIX}/bin/sh#" lib/mkmf.rb || die
+
+ if [[ ${CHOST} == *darwin* ]] ; then
+ # avoid symlink loop on Darwin (?!)
+ sed -i \
+ -e '/LIBRUBY_ALIASES=/s/lib$(RUBY_INSTALL_NAME).$(SOEXT)//' \
+ configure.ac || die
+
+ # make ar/libtool hack for Darwin work
+ sed -i \
+ -e "s/ac_cv_prog_ac_ct_AR='libtool/ac_cv_prog_AR='${CHOST}-libtool/" \
+ configure.ac || die
+
+ # disable using security framework (GCC barfs on those headers)
+ sed -i \
+ -e 's/MAC_OS_X_VERSION_MIN_REQUIRED/_DISABLED_/' \
+ random.c || die
+ fi
+ fi
+
+ eapply_user
+
+ eautoreconf
+}
+
+src_configure() {
+ local modules="win32,win32ole" myconf=
+
+ # Ruby's build system does interesting things with MAKEOPTS and doesn't
+ # handle MAKEOPTS="-Oline" or similar well. Just filter it all out
+ # and use -j/-l parsed out from the original MAKEOPTS, then use that.
+ # Newer Portage sets this option by default in GNUMAKEFLAGS if nothing
+ # is set by the user in MAKEOPTS. See bug #900929 and bug #728424.
+ local makeopts_tmp="-j$(makeopts_jobs) -l$(makeopts_loadavg)"
+ unset MAKEOPTS MAKEFLAGS GNUMAKEFLAGS
+ export MAKEOPTS="${makeopts_tmp}"
+
+ # -fomit-frame-pointer makes ruby segfault, see bug #150413.
+ filter-flags -fomit-frame-pointer
+ # In many places aliasing rules are broken; play it safe
+ # as it's risky with newer compilers to leave it as it is.
+ append-flags -fno-strict-aliasing
+
+ # Socks support via dante
+ if use socks5 ; then
+ # Socks support can't be disabled as long as SOCKS_SERVER is
+ # set and socks library is present, so need to unset
+ # SOCKS_SERVER in that case.
+ unset SOCKS_SERVER
+ fi
+
+ # Increase GC_MALLOC_LIMIT if set (default is 8000000)
+ if [ -n "${RUBY_GC_MALLOC_LIMIT}" ] ; then
+ append-flags "-DGC_MALLOC_LIMIT=${RUBY_GC_MALLOC_LIMIT}"
+ fi
+
+ # ipv6 hack, bug 168939. Needs --enable-ipv6.
+ use ipv6 || myconf="${myconf} --with-lookup-order-hack=INET"
+
+ # Determine which modules *not* to build depending in the USE flags.
+ if ! use berkdb ; then
+ modules="${modules},dbm"
+ fi
+ if ! use gdbm ; then
+ modules="${modules},gdbm"
+ fi
+ if ! use ssl ; then
+ modules="${modules},openssl"
+ fi
+ if ! use tk ; then
+ modules="${modules},tk"
+ fi
+
+ # Provide an empty LIBPATHENV because we disable rpath but we do not
+ # need LD_LIBRARY_PATH by default since that breaks USE=multitarget
+ # #564272
+ INSTALL="${EPREFIX}/usr/bin/install -c" LIBPATHENV="" econf \
+ --program-suffix=${MY_SUFFIX} \
+ --with-soname=ruby${MY_SUFFIX} \
+ --with-readline-dir="${EPREFIX}"/usr \
+ --enable-shared \
+ --enable-pthread \
+ --disable-rpath \
+ --without-baseruby \
+ --with-compress-debug-sections=no \
+ --enable-mkmf-verbose \
+ --with-out-ext="${modules}" \
+ $(use_with jemalloc jemalloc) \
+ $(use_enable jit jit-support) \
+ $(use_enable jit yjit) \
+ $(use_enable socks5 socks) \
+ $(use_enable systemtap dtrace) \
+ $(use_enable doc install-doc) \
+ --enable-ipv6 \
+ $(use_enable static-libs static) \
+ $(use_enable static-libs install-static-library) \
+ $(use_with static-libs static-linked-ext) \
+ $(use_enable debug) \
+ ${myconf} \
+ $(use_with valgrind) \
+ --enable-option-checking=no
+
+ # Makefile is broken because it lacks -ldl
+ rm -rf ext/-test-/popen_deadlock || die
+}
+
+src_compile() {
+ local -x LD_LIBRARY_PATH="${S}${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}"
+ emake V=1 EXTLDFLAGS="${LDFLAGS}" MJIT_CFLAGS="${CFLAGS}" MJIT_OPTFLAGS="" MJIT_DEBUGFLAGS=""
+}
+
+src_test() {
+ local -x LD_LIBRARY_PATH="${S}${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}"
+ emake V=1 check
+}
+
+src_install() {
+ # Remove the remaining bundled gems. We do this late in the process
+ # since they are used during the build to e.g. create the
+ # documentation.
+ einfo "Removing default gems before installation"
+ rm -rf lib/bundler* lib/rdoc/rdoc.gemspec || die
+
+ # Ruby is involved in the install process, we don't want interference here.
+ unset RUBYOPT
+
+ local MINIRUBY=$(echo -e 'include Makefile\ngetminiruby:\n\t@echo $(MINIRUBY)'|make -f - getminiruby)
+
+ local -x LD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}"
+
+ if [[ ${CHOST} == *darwin* ]] ; then
+ local -x DYLD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${DYLD_LIBRARY_PATH+:}${DYLD_LIBRARY_PATH}"
+ fi
+
+ local -x RUBYLIB="${S}:${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}"
+ for d in $(find "${S}/ext" -type d) ; do
+ RUBYLIB="${RUBYLIB}:$d"
+ done
+
+ # Create directory for the default gems
+ local gem_home="${EPREFIX}/usr/$(get_libdir)/ruby/gems/${RUBYVERSION}"
+ mkdir -p "${D}/${gem_home}" || die "mkdir gem home failed"
+
+ emake V=1 DESTDIR="${D}" GEM_DESTDIR=${gem_home} install
+
+ # Remove installed rubygems and rdoc copy
+ rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}/rubygems" || die "rm rubygems failed"
+ rm -rf "${ED}/usr/bin/"gem"${MY_SUFFIX}" || die "rm rdoc bins failed"
+ rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}"/rdoc* || die "rm rdoc failed"
+ rm -rf "${ED}/usr/bin/"{bundle,bundler,ri,rdoc}"${MY_SUFFIX}" || die "rm rdoc bins failed"
+
+ if use doc; then
+ emake DESTDIR="${D}" GEM_DESTDIR=${gem_home} install-doc
+ fi
+
+ if use examples; then
+ dodoc -r sample
+ fi
+
+ dodoc ChangeLog NEWS.md README*
+ dodoc -r doc
+}
+
+pkg_postinst() {
+ if [[ ! -n $(readlink "${EROOT}"/usr/bin/ruby) ]] ; then
+ eselect ruby set ruby${MY_SUFFIX}
+ fi
+
+ elog
+ elog "To switch between available Ruby profiles, execute as root:"
+ elog "\teselect ruby set ruby(30|31|...)"
+ elog
+}
+
+pkg_postrm() {
+ eselect ruby cleanup
+}
diff --git a/dev-lang/ruby/ruby-3.3.0-r2.ebuild b/dev-lang/ruby/ruby-3.3.0-r2.ebuild
new file mode 100644
index 000000000000..73b25c63a53d
--- /dev/null
+++ b/dev-lang/ruby/ruby-3.3.0-r2.ebuild
@@ -0,0 +1,294 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools flag-o-matic multiprocessing
+
+MY_P="${PN}-$(ver_cut 1-3)"
+S=${WORKDIR}/${MY_P}
+
+SLOT=$(ver_cut 1-2)
+MY_SUFFIX=$(ver_rs 1 '' ${SLOT})
+RUBYVERSION=${SLOT}.0
+
+DESCRIPTION="An object-oriented scripting language"
+HOMEPAGE="https://www.ruby-lang.org/"
+SRC_URI="https://cache.ruby-lang.org/pub/ruby/${SLOT}/${MY_P}.tar.xz"
+
+LICENSE="|| ( Ruby-BSD BSD-2 )"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+IUSE="berkdb debug doc examples gdbm jemalloc jit socks5 +ssl static-libs systemtap tk valgrind xemacs"
+
+RDEPEND="
+ berkdb? ( sys-libs/db:= )
+ gdbm? ( sys-libs/gdbm:= )
+ jemalloc? ( dev-libs/jemalloc:= )
+ jit? ( >=virtual/rust-1.58.1 )
+ ssl? (
+ dev-libs/openssl:0=
+ )
+ socks5? ( >=net-proxy/dante-1.1.13 )
+ systemtap? ( dev-debug/systemtap )
+ tk? (
+ dev-lang/tcl:0=[threads]
+ dev-lang/tk:0=[threads]
+ )
+ dev-libs/libyaml
+ dev-libs/libffi:=
+ sys-libs/zlib
+ virtual/libcrypt:=
+ >=app-eselect/eselect-ruby-20231226
+"
+
+DEPEND="
+ ${RDEPEND}
+ valgrind? ( dev-debug/valgrind )
+"
+
+BUNDLED_GEMS="
+ >=dev-ruby/debug-1.9.1[ruby_targets_ruby33(-)]
+ >=dev-ruby/irb-1.11.0[ruby_targets_ruby33(-)]
+ >=dev-ruby/matrix-0.4.2[ruby_targets_ruby33(-)]
+ >=dev-ruby/minitest-5.20.0[ruby_targets_ruby33(-)]
+ >=dev-ruby/net-ftp-0.3.3[ruby_targets_ruby33(-)]
+ >=dev-ruby/net-imap-0.4.9[ruby_targets_ruby33(-)]
+ >=dev-ruby/net-pop-0.1.2[ruby_targets_ruby33(-)]
+ >=dev-ruby/net-smtp-0.4.0[ruby_targets_ruby33(-)]
+ >=dev-ruby/power_assert-2.0.3[ruby_targets_ruby33(-)]
+ >=dev-ruby/prime-0.1.2[ruby_targets_ruby33(-)]
+ >=dev-ruby/racc-1.7.3[ruby_targets_ruby33(-)]
+ >=dev-ruby/rake-13.1.0[ruby_targets_ruby33(-)]
+ >=dev-ruby/rbs-3.4.0[ruby_targets_ruby33(-)]
+ >=dev-ruby/rexml-3.2.6[ruby_targets_ruby33(-)]
+ >=dev-ruby/rss-0.3.0[ruby_targets_ruby33(-)]
+ >=dev-ruby/test-unit-3.6.1[ruby_targets_ruby33(-)]
+ >=dev-ruby/typeprof-0.21.9[ruby_targets_ruby33(-)]
+"
+
+PDEPEND="
+ ${BUNDLED_GEMS}
+ virtual/rubygems[ruby_targets_ruby33(-)]
+ >=dev-ruby/bundler-2.5.3[ruby_targets_ruby33(-)]
+ >=dev-ruby/did_you_mean-1.6.3[ruby_targets_ruby33(-)]
+ >=dev-ruby/json-2.7.1[ruby_targets_ruby33(-)]
+ >=dev-ruby/rdoc-6.6.2[ruby_targets_ruby33(-)]
+ xemacs? ( app-xemacs/ruby-modes )
+"
+
+src_prepare() {
+ eapply "${FILESDIR}"/"${SLOT}"/010*.patch
+ eapply "${FILESDIR}"/"${SLOT}"/011*.patch
+ eapply "${FILESDIR}"/"${SLOT}"/902*.patch
+
+ if use elibc_musl ; then
+ eapply "${FILESDIR}"/${SLOT}/901-musl-*.patch
+ fi
+
+ einfo "Unbundling gems..."
+ cd "$S"
+ # Remove bundled gems that we will install via PDEPEND, bug
+ # 539700.
+ rm -fr gems/* || die
+ touch gems/bundled_gems || die
+
+ # Avoid the irb default gemspec since we will install the normal gem
+ # instead. This avoids a file collision with dev-ruby/irb.
+ rm lib/irb/irb.gemspec || die
+
+ # Remove tests that are known to fail or require a network connection
+ rm -f test/ruby/test_process.rb test/rubygems/test_gem{,_path_support}.rb || die
+ rm -f test/rinda/test_rinda.rb test/socket/test_tcp.rb test/fiber/test_address_resolve.rb \
+ spec/ruby/library/socket/tcpsocket/{initialize,open}_spec.rb|| die
+
+ # Remove webrick tests because setting LD_LIBRARY_PATH does not work for them.
+ rm -rf tool/test/webrick || die
+
+ # Avoid test using the system ruby
+ sed -i -e '/test_dumb_terminal/aomit "Uses system ruby"' test/reline/test_reline.rb || die
+
+ # Avoid testing against hard-coded blockdev devices that most likely are not available
+ sed -i -e '/def blockdev/a@blockdev = nil' test/ruby/test_file_exhaustive.rb || die
+
+ # Avoid tests that require gem downloads
+ sed -e '/^\(test-syntax-suggest\|PREPARE_SYNTAX_SUGGEST\)/ s/\$(TEST_RUNNABLE)/no/' \
+ -i common.mk
+
+ # Avoid test that fails intermittently
+ sed -e '/test_gem_exec_gem_uninstall/aomit "Fails intermittently"' \
+ -i test/rubygems/test_gem_commands_exec_command.rb || die
+
+ if use prefix ; then
+ # Fix hardcoded SHELL var in mkmf library
+ sed -i -e "s#\(SHELL = \).*#\1${EPREFIX}/bin/sh#" lib/mkmf.rb || die
+
+ if [[ ${CHOST} == *darwin* ]] ; then
+ # avoid symlink loop on Darwin (?!)
+ sed -i \
+ -e '/LIBRUBY_ALIASES=/s/lib$(RUBY_INSTALL_NAME).$(SOEXT)//' \
+ configure.ac || die
+
+ # make ar/libtool hack for Darwin work
+ sed -i \
+ -e "s/ac_cv_prog_ac_ct_AR='libtool/ac_cv_prog_AR='${CHOST}-libtool/" \
+ configure.ac || die
+
+ # disable using security framework (GCC barfs on those headers)
+ sed -i \
+ -e 's/MAC_OS_X_VERSION_MIN_REQUIRED/_DISABLED_/' \
+ random.c || die
+ fi
+ fi
+
+ eapply_user
+
+ eautoreconf
+}
+
+src_configure() {
+ local modules="win32,win32ole" myconf=
+
+ # Ruby's build system does interesting things with MAKEOPTS and doesn't
+ # handle MAKEOPTS="-Oline" or similar well. Just filter it all out
+ # and use -j/-l parsed out from the original MAKEOPTS, then use that.
+ # Newer Portage sets this option by default in GNUMAKEFLAGS if nothing
+ # is set by the user in MAKEOPTS. See bug #900929 and bug #728424.
+ local makeopts_tmp="-j$(makeopts_jobs) -l$(makeopts_loadavg)"
+ unset MAKEOPTS MAKEFLAGS GNUMAKEFLAGS
+ export MAKEOPTS="${makeopts_tmp}"
+
+ # -fomit-frame-pointer makes ruby segfault, see bug #150413.
+ filter-flags -fomit-frame-pointer
+ # In many places aliasing rules are broken; play it safe
+ # as it's risky with newer compilers to leave it as it is.
+ append-flags -fno-strict-aliasing
+
+ # Socks support via dante
+ if use socks5 ; then
+ # Socks support can't be disabled as long as SOCKS_SERVER is
+ # set and socks library is present, so need to unset
+ # SOCKS_SERVER in that case.
+ unset SOCKS_SERVER
+ fi
+
+ # Increase GC_MALLOC_LIMIT if set (default is 8000000)
+ if [ -n "${RUBY_GC_MALLOC_LIMIT}" ] ; then
+ append-flags "-DGC_MALLOC_LIMIT=${RUBY_GC_MALLOC_LIMIT}"
+ fi
+
+ # Determine which modules *not* to build depending in the USE flags.
+ if ! use berkdb ; then
+ modules="${modules},dbm"
+ fi
+ if ! use gdbm ; then
+ modules="${modules},gdbm"
+ fi
+ if ! use ssl ; then
+ modules="${modules},openssl"
+ fi
+ if ! use tk ; then
+ modules="${modules},tk"
+ fi
+
+ # Provide an empty LIBPATHENV because we disable rpath but we do not
+ # need LD_LIBRARY_PATH by default since that breaks USE=multitarget
+ # #564272
+ INSTALL="${EPREFIX}/usr/bin/install -c" LIBPATHENV="" econf \
+ --program-suffix=${MY_SUFFIX} \
+ --with-soname=ruby${MY_SUFFIX} \
+ --enable-shared \
+ --enable-pthread \
+ --disable-rpath \
+ --without-baseruby \
+ --with-compress-debug-sections=no \
+ --enable-mkmf-verbose \
+ --with-out-ext="${modules}" \
+ $(use_with jemalloc jemalloc) \
+ $(use_enable jit jit-support) \
+ $(use_enable jit yjit) \
+ $(use_enable socks5 socks) \
+ $(use_enable systemtap dtrace) \
+ $(use_enable doc install-doc) \
+ $(use_enable static-libs static) \
+ $(use_enable static-libs install-static-library) \
+ $(use_with static-libs static-linked-ext) \
+ $(use_enable debug) \
+ ${myconf} \
+ $(use_with valgrind) \
+ --enable-option-checking=no
+
+ # Makefile is broken because it lacks -ldl
+ rm -rf ext/-test-/popen_deadlock || die
+}
+
+src_compile() {
+ local -x LD_LIBRARY_PATH="${S}${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}"
+ emake V=1 EXTLDFLAGS="${LDFLAGS}" MJIT_CFLAGS="${CFLAGS}" MJIT_OPTFLAGS="" MJIT_DEBUGFLAGS=""
+}
+
+src_test() {
+ local -x LD_LIBRARY_PATH="${S}${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}"
+ emake V=1 check
+}
+
+src_install() {
+ # Remove the remaining bundled gems. We do this late in the process
+ # since they are used during the build to e.g. create the
+ # documentation.
+ einfo "Removing default gems before installation"
+ rm -rf lib/bundler* lib/rdoc/rdoc.gemspec || die
+
+ # Ruby is involved in the install process, we don't want interference here.
+ unset RUBYOPT
+
+ local MINIRUBY=$(echo -e 'include Makefile\ngetminiruby:\n\t@echo $(MINIRUBY)'|make -f - getminiruby)
+
+ local -x LD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}"
+
+ if [[ ${CHOST} == *darwin* ]] ; then
+ local -x DYLD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${DYLD_LIBRARY_PATH+:}${DYLD_LIBRARY_PATH}"
+ fi
+
+ local -x RUBYLIB="${S}:${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}"
+ for d in $(find "${S}/ext" -type d) ; do
+ RUBYLIB="${RUBYLIB}:$d"
+ done
+
+ # Create directory for the default gems
+ local gem_home="${EPREFIX}/usr/$(get_libdir)/ruby/gems/${RUBYVERSION}"
+ mkdir -p "${D}/${gem_home}" || die "mkdir gem home failed"
+
+ emake V=1 DESTDIR="${D}" GEM_DESTDIR=${gem_home} install
+
+ # Remove installed rubygems and rdoc copy
+ rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}/rubygems" || die "rm rubygems failed"
+ rm -rf "${ED}/usr/bin/"gem"${MY_SUFFIX}" || die "rm rdoc bins failed"
+ rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}"/rdoc* || die "rm rdoc failed"
+ rm -rf "${ED}/usr/bin/"{bundle,bundler,ri,rdoc}"${MY_SUFFIX}" || die "rm rdoc bins failed"
+
+ if use doc; then
+ emake DESTDIR="${D}" GEM_DESTDIR=${gem_home} install-doc
+ fi
+
+ if use examples; then
+ dodoc -r sample
+ fi
+
+ dodoc ChangeLog NEWS.md README*
+ dodoc -r doc
+}
+
+pkg_postinst() {
+ if [[ ! -n $(readlink "${EROOT}"/usr/bin/ruby) ]] ; then
+ eselect ruby set ruby${MY_SUFFIX}
+ fi
+
+ elog
+ elog "To switch between available Ruby profiles, execute as root:"
+ elog "\teselect ruby set ruby(30|31|...)"
+ elog
+}
+
+pkg_postrm() {
+ eselect ruby cleanup
+}
diff --git a/dev-lang/ruby/ruby-3.3.1.ebuild b/dev-lang/ruby/ruby-3.3.1.ebuild
new file mode 100644
index 000000000000..02b05be1c6ca
--- /dev/null
+++ b/dev-lang/ruby/ruby-3.3.1.ebuild
@@ -0,0 +1,293 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools flag-o-matic multiprocessing
+
+MY_P="${PN}-$(ver_cut 1-3)"
+S=${WORKDIR}/${MY_P}
+
+SLOT=$(ver_cut 1-2)
+MY_SUFFIX=$(ver_rs 1 '' ${SLOT})
+RUBYVERSION=${SLOT}.0
+
+DESCRIPTION="An object-oriented scripting language"
+HOMEPAGE="https://www.ruby-lang.org/"
+SRC_URI="https://cache.ruby-lang.org/pub/ruby/${SLOT}/${MY_P}.tar.xz"
+
+LICENSE="|| ( Ruby-BSD BSD-2 )"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+IUSE="berkdb debug doc examples gdbm jemalloc jit socks5 +ssl static-libs systemtap tk valgrind xemacs"
+
+RDEPEND="
+ berkdb? ( sys-libs/db:= )
+ gdbm? ( sys-libs/gdbm:= )
+ jemalloc? ( dev-libs/jemalloc:= )
+ jit? ( >=virtual/rust-1.58.1 )
+ ssl? (
+ dev-libs/openssl:0=
+ )
+ socks5? ( >=net-proxy/dante-1.1.13 )
+ systemtap? ( dev-debug/systemtap )
+ tk? (
+ dev-lang/tcl:0=[threads]
+ dev-lang/tk:0=[threads]
+ )
+ dev-libs/libyaml
+ dev-libs/libffi:=
+ sys-libs/zlib
+ virtual/libcrypt:=
+ >=app-eselect/eselect-ruby-20231226
+"
+
+DEPEND="
+ ${RDEPEND}
+ valgrind? ( dev-debug/valgrind )
+"
+
+BUNDLED_GEMS="
+ >=dev-ruby/debug-1.9.1[ruby_targets_ruby33(-)]
+ >=dev-ruby/irb-1.11.0[ruby_targets_ruby33(-)]
+ >=dev-ruby/matrix-0.4.2[ruby_targets_ruby33(-)]
+ >=dev-ruby/minitest-5.20.0[ruby_targets_ruby33(-)]
+ >=dev-ruby/net-ftp-0.3.3[ruby_targets_ruby33(-)]
+ >=dev-ruby/net-imap-0.4.9[ruby_targets_ruby33(-)]
+ >=dev-ruby/net-pop-0.1.2[ruby_targets_ruby33(-)]
+ >=dev-ruby/net-smtp-0.4.0[ruby_targets_ruby33(-)]
+ >=dev-ruby/power_assert-2.0.3[ruby_targets_ruby33(-)]
+ >=dev-ruby/prime-0.1.2[ruby_targets_ruby33(-)]
+ >=dev-ruby/racc-1.7.3[ruby_targets_ruby33(-)]
+ >=dev-ruby/rake-13.1.0[ruby_targets_ruby33(-)]
+ >=dev-ruby/rbs-3.4.0[ruby_targets_ruby33(-)]
+ >=dev-ruby/rexml-3.2.6[ruby_targets_ruby33(-)]
+ >=dev-ruby/rss-0.3.0[ruby_targets_ruby33(-)]
+ >=dev-ruby/test-unit-3.6.1[ruby_targets_ruby33(-)]
+ >=dev-ruby/typeprof-0.21.9[ruby_targets_ruby33(-)]
+"
+
+PDEPEND="
+ ${BUNDLED_GEMS}
+ virtual/rubygems[ruby_targets_ruby33(-)]
+ >=dev-ruby/bundler-2.5.3[ruby_targets_ruby33(-)]
+ >=dev-ruby/did_you_mean-1.6.3[ruby_targets_ruby33(-)]
+ >=dev-ruby/json-2.7.1[ruby_targets_ruby33(-)]
+ >=dev-ruby/rdoc-6.6.2[ruby_targets_ruby33(-)]
+ xemacs? ( app-xemacs/ruby-modes )
+"
+
+src_prepare() {
+ eapply "${FILESDIR}"/"${SLOT}"/010*.patch
+ eapply "${FILESDIR}"/"${SLOT}"/902*.patch
+
+ if use elibc_musl ; then
+ eapply "${FILESDIR}"/${SLOT}/901-musl-*.patch
+ fi
+
+ einfo "Unbundling gems..."
+ cd "$S"
+ # Remove bundled gems that we will install via PDEPEND, bug
+ # 539700.
+ rm -fr gems/* || die
+ touch gems/bundled_gems || die
+
+ # Avoid the irb default gemspec since we will install the normal gem
+ # instead. This avoids a file collision with dev-ruby/irb.
+ rm lib/irb/irb.gemspec || die
+
+ # Remove tests that are known to fail or require a network connection
+ rm -f test/ruby/test_process.rb test/rubygems/test_gem{,_path_support}.rb || die
+ rm -f test/rinda/test_rinda.rb test/socket/test_tcp.rb test/fiber/test_address_resolve.rb \
+ spec/ruby/library/socket/tcpsocket/{initialize,open}_spec.rb|| die
+
+ # Remove webrick tests because setting LD_LIBRARY_PATH does not work for them.
+ rm -rf tool/test/webrick || die
+
+ # Avoid test using the system ruby
+ sed -i -e '/test_dumb_terminal/aomit "Uses system ruby"' test/reline/test_reline.rb || die
+
+ # Avoid testing against hard-coded blockdev devices that most likely are not available
+ sed -i -e '/def blockdev/a@blockdev = nil' test/ruby/test_file_exhaustive.rb || die
+
+ # Avoid tests that require gem downloads
+ sed -e '/^\(test-syntax-suggest\|PREPARE_SYNTAX_SUGGEST\)/ s/\$(TEST_RUNNABLE)/no/' \
+ -i common.mk
+
+ # Avoid test that fails intermittently
+ sed -e '/test_gem_exec_gem_uninstall/aomit "Fails intermittently"' \
+ -i test/rubygems/test_gem_commands_exec_command.rb || die
+
+ if use prefix ; then
+ # Fix hardcoded SHELL var in mkmf library
+ sed -i -e "s#\(SHELL = \).*#\1${EPREFIX}/bin/sh#" lib/mkmf.rb || die
+
+ if [[ ${CHOST} == *darwin* ]] ; then
+ # avoid symlink loop on Darwin (?!)
+ sed -i \
+ -e '/LIBRUBY_ALIASES=/s/lib$(RUBY_INSTALL_NAME).$(SOEXT)//' \
+ configure.ac || die
+
+ # make ar/libtool hack for Darwin work
+ sed -i \
+ -e "s/ac_cv_prog_ac_ct_AR='libtool/ac_cv_prog_AR='${CHOST}-libtool/" \
+ configure.ac || die
+
+ # disable using security framework (GCC barfs on those headers)
+ sed -i \
+ -e 's/MAC_OS_X_VERSION_MIN_REQUIRED/_DISABLED_/' \
+ random.c || die
+ fi
+ fi
+
+ eapply_user
+
+ eautoreconf
+}
+
+src_configure() {
+ local modules="win32,win32ole" myconf=
+
+ # Ruby's build system does interesting things with MAKEOPTS and doesn't
+ # handle MAKEOPTS="-Oline" or similar well. Just filter it all out
+ # and use -j/-l parsed out from the original MAKEOPTS, then use that.
+ # Newer Portage sets this option by default in GNUMAKEFLAGS if nothing
+ # is set by the user in MAKEOPTS. See bug #900929 and bug #728424.
+ local makeopts_tmp="-j$(makeopts_jobs) -l$(makeopts_loadavg)"
+ unset MAKEOPTS MAKEFLAGS GNUMAKEFLAGS
+ export MAKEOPTS="${makeopts_tmp}"
+
+ # -fomit-frame-pointer makes ruby segfault, see bug #150413.
+ filter-flags -fomit-frame-pointer
+ # In many places aliasing rules are broken; play it safe
+ # as it's risky with newer compilers to leave it as it is.
+ append-flags -fno-strict-aliasing
+
+ # Socks support via dante
+ if use socks5 ; then
+ # Socks support can't be disabled as long as SOCKS_SERVER is
+ # set and socks library is present, so need to unset
+ # SOCKS_SERVER in that case.
+ unset SOCKS_SERVER
+ fi
+
+ # Increase GC_MALLOC_LIMIT if set (default is 8000000)
+ if [ -n "${RUBY_GC_MALLOC_LIMIT}" ] ; then
+ append-flags "-DGC_MALLOC_LIMIT=${RUBY_GC_MALLOC_LIMIT}"
+ fi
+
+ # Determine which modules *not* to build depending in the USE flags.
+ if ! use berkdb ; then
+ modules="${modules},dbm"
+ fi
+ if ! use gdbm ; then
+ modules="${modules},gdbm"
+ fi
+ if ! use ssl ; then
+ modules="${modules},openssl"
+ fi
+ if ! use tk ; then
+ modules="${modules},tk"
+ fi
+
+ # Provide an empty LIBPATHENV because we disable rpath but we do not
+ # need LD_LIBRARY_PATH by default since that breaks USE=multitarget
+ # #564272
+ INSTALL="${EPREFIX}/usr/bin/install -c" LIBPATHENV="" econf \
+ --program-suffix=${MY_SUFFIX} \
+ --with-soname=ruby${MY_SUFFIX} \
+ --enable-shared \
+ --enable-pthread \
+ --disable-rpath \
+ --without-baseruby \
+ --with-compress-debug-sections=no \
+ --enable-mkmf-verbose \
+ --with-out-ext="${modules}" \
+ $(use_with jemalloc jemalloc) \
+ $(use_enable jit jit-support) \
+ $(use_enable jit yjit) \
+ $(use_enable socks5 socks) \
+ $(use_enable systemtap dtrace) \
+ $(use_enable doc install-doc) \
+ $(use_enable static-libs static) \
+ $(use_enable static-libs install-static-library) \
+ $(use_with static-libs static-linked-ext) \
+ $(use_enable debug) \
+ ${myconf} \
+ $(use_with valgrind) \
+ --enable-option-checking=no
+
+ # Makefile is broken because it lacks -ldl
+ rm -rf ext/-test-/popen_deadlock || die
+}
+
+src_compile() {
+ local -x LD_LIBRARY_PATH="${S}${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}"
+ emake V=1 EXTLDFLAGS="${LDFLAGS}" MJIT_CFLAGS="${CFLAGS}" MJIT_OPTFLAGS="" MJIT_DEBUGFLAGS=""
+}
+
+src_test() {
+ local -x LD_LIBRARY_PATH="${S}${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}"
+ emake V=1 check
+}
+
+src_install() {
+ # Remove the remaining bundled gems. We do this late in the process
+ # since they are used during the build to e.g. create the
+ # documentation.
+ einfo "Removing default gems before installation"
+ rm -rf lib/bundler* lib/rdoc/rdoc.gemspec || die
+
+ # Ruby is involved in the install process, we don't want interference here.
+ unset RUBYOPT
+
+ local MINIRUBY=$(echo -e 'include Makefile\ngetminiruby:\n\t@echo $(MINIRUBY)'|make -f - getminiruby)
+
+ local -x LD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}"
+
+ if [[ ${CHOST} == *darwin* ]] ; then
+ local -x DYLD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${DYLD_LIBRARY_PATH+:}${DYLD_LIBRARY_PATH}"
+ fi
+
+ local -x RUBYLIB="${S}:${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}"
+ for d in $(find "${S}/ext" -type d) ; do
+ RUBYLIB="${RUBYLIB}:$d"
+ done
+
+ # Create directory for the default gems
+ local gem_home="${EPREFIX}/usr/$(get_libdir)/ruby/gems/${RUBYVERSION}"
+ mkdir -p "${D}/${gem_home}" || die "mkdir gem home failed"
+
+ emake V=1 DESTDIR="${D}" GEM_DESTDIR=${gem_home} install
+
+ # Remove installed rubygems and rdoc copy
+ rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}/rubygems" || die "rm rubygems failed"
+ rm -rf "${ED}/usr/bin/"gem"${MY_SUFFIX}" || die "rm rdoc bins failed"
+ rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}"/rdoc* || die "rm rdoc failed"
+ rm -rf "${ED}/usr/bin/"{bundle,bundler,ri,rdoc}"${MY_SUFFIX}" || die "rm rdoc bins failed"
+
+ if use doc; then
+ emake DESTDIR="${D}" GEM_DESTDIR=${gem_home} install-doc
+ fi
+
+ if use examples; then
+ dodoc -r sample
+ fi
+
+ dodoc ChangeLog NEWS.md README*
+ dodoc -r doc
+}
+
+pkg_postinst() {
+ if [[ ! -n $(readlink "${EROOT}"/usr/bin/ruby) ]] ; then
+ eselect ruby set ruby${MY_SUFFIX}
+ fi
+
+ elog
+ elog "To switch between available Ruby profiles, execute as root:"
+ elog "\teselect ruby set ruby(30|31|...)"
+ elog
+}
+
+pkg_postrm() {
+ eselect ruby cleanup
+}
diff --git a/dev-lang/rust-bin/Manifest b/dev-lang/rust-bin/Manifest
index 0131be51c80f..fa3d893c7e86 100644
--- a/dev-lang/rust-bin/Manifest
+++ b/dev-lang/rust-bin/Manifest
@@ -1,42 +1,230 @@
-DIST rust-1.46.0-aarch64-unknown-linux-gnu.tar.xz 127384736 BLAKE2B a1efd25cf429a309a454ef5db38c68d642920e859ef6effbe88ace7f3c4050ae7e9cf10d2f5b70405475ffcbbbc80338e3a5e4b3cb632c555e31a0ebc1b76cd4 SHA512 53e5d8afadaa9505286dce4acbb911126d17bc7bf45ea4685070ff07be7f6c7860e543a7686eeac695e7e3e127ca38ba2f09b73467fbf5f92d0b2195467c51f2
-DIST rust-1.46.0-arm-unknown-linux-gnueabi.tar.xz 121741008 BLAKE2B d277cb19c9f9641f216eba9ddb8bdb0a1bf70b7376e82798dad3116ff6d976c6ec8f6442831ae6a3c64cfdb46c59cf47b482df5200af49ba5eeccb663538084b SHA512 74cc1c8f56c88bdb669d52edca69c8aed7500e51498e8bf4099b2edbf85a2beab1e6d447029eb24e12fdfcbf2272f5d8b741eb4aa48fe83dac44759478429284
-DIST rust-1.46.0-arm-unknown-linux-gnueabihf.tar.xz 120726564 BLAKE2B 5ef9c319d4744016e336a8d8bde99b2b9183dd13fc6873d4f0e239a52a86e054d42ee48ca1a84ac42d140b1bbe234f4eeaf90717f14959ad6966681429eef233 SHA512 89972cc03c05dd5bc003f6cf16e062b935b3fda288ae0c3d32a3d08ccdcbf7699c306aa3c017a13e76f13f8dca7a951ec98f23507de978ae87cffb6d6907af5c
-DIST rust-1.46.0-armv7-unknown-linux-gnueabihf.tar.xz 123912836 BLAKE2B 97cdb2e8d643826f7dd1554096e14c58c35b38cc2eebb49c478343bf8bc157995a9f1099c014800701d34edbf0f0798ac29babbd2a5bf261d1956bc731b0a99c SHA512 c7e320fd5169c99bf8a12fb5bf1c5fb19a05d14f75ce655e4b64cad3456594ef09be1da7ac34a09b5d84da0c857d1a6e5a0695b5ff04cda491ea92fea15d28dc
-DIST rust-1.46.0-i686-unknown-linux-gnu.tar.xz 141319800 BLAKE2B 712227e42b8597ee1c645cb344042e79ca40aef0e22d783c4a0c042bd07f686aafd9b80bebe0dfe69b4b012056509bfe510fffa8ba5357656d459fe5885fe0fe SHA512 b01e9b06c9de50e43bc6b5e1a5e6cc49dab1cf28b9cf0a8b974d2630c7ed4c6a5df6f321c872e11eb622c42f1d8cfaec77c1b67254a84365464fe3415acfa07f
-DIST rust-1.46.0-mips-unknown-linux-gnu.tar.xz 110175584 BLAKE2B 23e38e81d281d0df23795ff60e4a7503f63d443d966bc6d5068edc50fc0dd90e2fe45eb90b901a1fb3f8f813375533eaa142d625b661f5d76d2097b0cf572606 SHA512 0635060dd15f548834e5c946ec8deea10bf234f550f6a01d4d491f45e0d5f16e957f99caba14c91225d100e7c59e909869b816dfffe9f8681c09e9e5b6ca2bdd
-DIST rust-1.46.0-mips64-unknown-linux-gnuabi64.tar.xz 117357812 BLAKE2B c3118a0b710ceaffda8523840551306d4bbc7c78fc26016fc1ac0037c2a7cd68f56c11999f7e3bc435f93e0dbebf348fdc52255cc5978bdffb2d55dc9d56e23e SHA512 5dc6de40429e72ecad9546390f1f5e626d388938c7bc50a56fb258787b45e8d7363170d8d1a2bff56fbd8bef22060b6cb0c50fb016ccc7d4fb767ba6b7e80c2d
-DIST rust-1.46.0-mipsel-unknown-linux-gnu.tar.xz 111804692 BLAKE2B 4779d5602f2107321d5c6042dce1baaf6eec2f60cf2ba4330bf72fda0868d7e8294cf573b3ffab3654a0689d11599f2fc37430005686e91439abc7ae6fefb977 SHA512 3c9d17fa89636d37e125d7665883abc9912330d4a1f5291d44771fd1cbb17d604deccc07685cb567f1b141dde3668d5ef55f3661b04e4506d5337d69acc6738c
-DIST rust-1.46.0-powerpc-unknown-linux-gnu.tar.xz 111495200 BLAKE2B d618c61a05507abe13d1294594187a4552896cb61396c2f8bd6e506a71ab4bb5cd26ae3b2b573d1d5a4ea79fb4dd2238a2ae34059357ef397264beb0b67cbc34 SHA512 38df2204bd4bfe7371365266651a84da218ba909c3ae107432f6fef892e71488d193b8f54fe6738edd91aa0ca029038d864806b25289254711bd10f736bcc2d7
-DIST rust-1.46.0-powerpc64-unknown-linux-gnu.tar.xz 124882812 BLAKE2B 2362e25d39cfd2039ce18db08f43bceaaccd208ec113c16f6718803eadda964bb254a6afc606765a00026adc93cf366495d3546d6aac8a7444088f519d421c9b SHA512 40f9423d838cab74b9920372e728c4ca7057005d83af587387dd2b164a0bf93de65cebc035320bce25f80914c63ce65b84218b9a776b0b905428e4cba0821b8b
-DIST rust-1.46.0-powerpc64le-unknown-linux-gnu.tar.xz 130200900 BLAKE2B d38a7f131983aee27e6af59ab03999e7420745a0f9256b2623e71f36dd6f12605025dbdc510bd5ffb73e0d31a5c7e56a791bdf718b2eba629d08e2f75221b1c8 SHA512 986f0bf7995f35836b73fb7045cf43ae5efe0c2543c75c66cdcc0f8c1dd3513def3c291e021241e328142deaca690ce113526ffc870c4412a7841f244258a43e
-DIST rust-1.46.0-s390x-unknown-linux-gnu.tar.xz 134521076 BLAKE2B d3efd71dd7db812736680929185ad5f58a2dbf7d1b8a6f851834dd7b41713fc171dbcdf2472bedc13751bfeed58070d919d2a1138765ab75c0f4bdf817cb6418 SHA512 b6146695225ff6d0516e7bb6bc4620599356bb89b14f429a09d9d7f8715a94e8e218402346d5c9a10eeb54c0bdc40fb179289216b0cb4edd5bdf886f6b69aab4
-DIST rust-1.46.0-x86_64-unknown-linux-gnu.tar.xz 127200200 BLAKE2B 7d755e0622cda99d111490197b21ff4aaeb7b13292804566bc677b7b1d833eaa644b7a801863a1a01e3aa34be28a80344cae69edc57f8c8788884c78e037b750 SHA512 95f5adc2d2137010c7e5ac8a0fc70485250b4f9a909cb8b164b35fffff76ab88e9b09d305bfac37324ed080c5fc7643001d2abec5454ca911dc3513f1af52c88
-DIST rust-1.46.0-x86_64-unknown-linux-musl.tar.xz 142372372 BLAKE2B 7d3672234b61b772e2311127db569b37296bf3a9bf86841fb78c6d20da6a6abfc6c866ba4aa7cc44c12eebb0744fbeb401b491314db9eb481b926792cadcca22 SHA512 e2599c4c10fe9725e63524d89c0be869d43347620b0f6ff1a93cee5e7219f5560c6171d8eda99e5624eba60b9d488bfe0942c23eacdbac2ba42e4cd63f14b7c9
-DIST rust-1.47.0-aarch64-unknown-linux-gnu.tar.xz 136486128 BLAKE2B 872226c232141e25466413d9a998bb021a6f4955dd8ccb5d68f8cca70ea8f7056a6f7b4125134b48a3106331dd3db2e77b32a0083fca3c66a348b77699c49e7a SHA512 7df7045df341f03508f1ad795a9117b39c1f4c4cc778c7fd9d78c42e7da662ce244d018084ac9e80d9409cf8b3b5d1ccc25ef4cb71a2b8727398d30a4e962e19
-DIST rust-1.47.0-arm-unknown-linux-gnueabi.tar.xz 133989400 BLAKE2B 301c17d6f9c048f43d460898ca352e189f7770539431721d178239d5cd64e9e62c05a63482049c18d6fe3fbaa463616d64cf6d82f2bd846576dedc6fc19bd3bd SHA512 db9caa96f142145c3f515730a1aee2fb24c9990f7b9b56e277997975409786904c6490609dfb29712acd9bba077acf36103e4d612bc6c2a74581b40fb50d12ad
-DIST rust-1.47.0-arm-unknown-linux-gnueabihf.tar.xz 133431024 BLAKE2B ab94ee2961ac3060154834d21a47384dd09a55213f1a7082911e0976ab9e572b5b234e175ad068cee0fa9355ef2d85acd7ebfff109565be013f14c32e61a71ff SHA512 fa0643c4b2eb36c2bcf4c786517d27fee4428114b79565e0da3b5626700275e9368ce6a68e93b4eae9881265ecca474cced25d63f352ffe3c8617a725185cd28
-DIST rust-1.47.0-armv7-unknown-linux-gnueabihf.tar.xz 137060904 BLAKE2B 8e6cbd665cdffcdd059dc4278dfb1647d046a96619f784dfe45299a0c29f1af51de4511b87cb8c0d0d166ba76b484f4249819e22275e2c1775c53b2ee5b1ffb5 SHA512 b207ab7c478dce6db4018527888f539938c8e77b5ceccb460b9d52ffee13a2329d225d03a605b60729cae6254129245bdd69730aebb6ec91dd0c83005cf25253
-DIST rust-1.47.0-i686-unknown-linux-gnu.tar.xz 154793612 BLAKE2B a8063a9241fb9fa8b7f9c430d65fd2353d3a1014e51148c9cd1b5686338ccf5170fbde78cb6f95a9d4db5441392ad4e7bf14e5a39418208937cda4019cf4e2e2 SHA512 551204b4edfc1500aa83108c88b845997bb6befba0dd3401e9ae5294ab27960421f1b3130159946b996171c1d46f7532afa0c3ae767a9318985db0bb7c88dba0
-DIST rust-1.47.0-mips-unknown-linux-gnu.tar.xz 122428884 BLAKE2B 10778716e282f9b74ef1a3daeec70ed1bb4f4dcc4a31baeed90c26f398bbe313df58b62469595ced95c73df9aad4739210add4eb3c6f0f94b5fa3dc937967394 SHA512 0e39ef2cd814474c33adc38658cbc2e84879f0208fbb37c1a4bf3719d3cace071606e7b03fd8464ba80f6328cc0a0bd38ec8e7772cc460b5a2d2d8b704042c49
-DIST rust-1.47.0-mips64-unknown-linux-gnuabi64.tar.xz 125553888 BLAKE2B 27c9f5d860025ceff4acb1e40ecfa0ec4c053ac694e4bec3bab41e2a193492afb8b4ac22ca471d3170ebe5c3e0fce628d0bf8060b5831af10bd99d614caaceb6 SHA512 186324da11997a65586930e5f2422c687a6ad817e3e0a5766caadbd51153cd29dd1e0d472586117c654d5db20e0ea2bd4073e05a94f3197bed2403dc325b31d5
-DIST rust-1.47.0-mipsel-unknown-linux-gnu.tar.xz 122801616 BLAKE2B 667712f3441ce63bcfc245801dd580ba8a9a06e0695b9f9a713baa55d8f9b8ca208a02f043918814490166a4c3dd2cb6ffa0d669b9533845f9c241063ee9b9c1 SHA512 8cd441739a25af20298ed25d877f8da4b81969e6f591d45527b94187808b7ce04ef6106785fc050d1318f71fccd00c295f60cdbf8fb79288aac80d92be9e57c4
-DIST rust-1.47.0-powerpc-unknown-linux-gnu.tar.xz 125781632 BLAKE2B 00e966a5ba83702ee36fc2dadd9d058f655d4ea8b3b0072b61d221508ccddb82efae0f5028768a4744b6c439e0f7080db5f727e9f2f7facd7d57964bc332b5a3 SHA512 8a20462ed79f22b868a3e64ba147b32c32eb0b0a149a7a571cc91ffe1ae9fe2d71a244c910817f3c151464f6c417550923a4f02e9dc433670b38502684bf349f
-DIST rust-1.47.0-powerpc64-unknown-linux-gnu.tar.xz 134272040 BLAKE2B c7b4256df6c7a031a53e022ba00999706674e273c041534b75743fee1d366567dcd86fb805ec9997737cff3902641e21269f2a95fef651227cac5da34c947091 SHA512 46fa1c042aebb06db4185fed6ef3bc7772f2a13f2290a20f5499757aae2a05dc984026315be7b5813aac172f52f50565e56aa074d32f6271858590a9ceb9e1c7
-DIST rust-1.47.0-powerpc64le-unknown-linux-gnu.tar.xz 141965604 BLAKE2B b4b7ce862b2201526e6a96249e509faa7bce2d841e571b6dd241c9a82bd9011c92e0918df649ffcce7f3c6c93aa47aa8f66b99e6529b1b3cecbe16622b08e0b2 SHA512 d5c6580861786545f0540cc9591884fb9f2036061bdd451d17cf8bfb427008d365cacd14e5054028c72b83d1d5eb347ab74478a882cbbd7fcc75a7421657561c
-DIST rust-1.47.0-s390x-unknown-linux-gnu.tar.xz 146987276 BLAKE2B 1810e7bfbd235613563677449376167700c33960eb57b100e65058f6a00692316db518f2f4b79b39e414f3892c62bb1ec09b0866ff2221641c4a3056659a1668 SHA512 dd5877b6ff5c310ca6aa23c1cc621e6b0675d4c46f5a06b2a0b107641b604a1a2101109ba8e286267bab1158768c601d5d9a922a8da72486c91755ef465720c0
-DIST rust-1.47.0-x86_64-unknown-linux-gnu.tar.xz 150891572 BLAKE2B 45ff02465ba82ae96de25dd616fa08abb2396be21236d2f66f831effb349f39b047a380b38cb83254f27e56cecdbea8478f4de8ccc0aa23b11de2f11a28f501b SHA512 f695986ab8e67636b0e92ca7ea223984121e3c22788434a6f1062690e7932f6b30c0c302160fef96831f821acedaf8a909bd3d00a9aa873c7200d2b8fa39013f
-DIST rust-1.47.0-x86_64-unknown-linux-musl.tar.xz 166456672 BLAKE2B d6ccfc574a81ae3e9e6a96805e6863009970b5c480f35ee0d582a204b782fe513b9c6c7094d1adea509de1a3097a8a0524ac00c2186b968f70f390615904eb5a SHA512 f71b162635955ecd8a6ec322818be69c788c18d4e923d84d901916648f2eb58573b1f97b460209294ee64198e76566b78e472f9cbca8665c59444adfc5ae603c
-DIST rust-1.48.0-aarch64-unknown-linux-gnu.tar.xz 133782948 BLAKE2B 95e80db4734a91a1aed6433cb6dcc65358ef713f365216f6c344c4940c2b5e43b7dc5805f53635c4e7585e70c9d5773b6c93034fa2ffd0a28efb2f20a18f1be8 SHA512 6ebbd936b1bc2ccf30b62dbbbc6f3986fb57738d89e33a23d58bab09be57a445c17df7912866add91cc108ef7547d229a08c6206db2d2fb00d72887ff6a0894d
-DIST rust-1.48.0-arm-unknown-linux-gnueabi.tar.xz 133293068 BLAKE2B f98129d16e0de958a164233a1cc6317dc64eeeee76aa88b6982af2cb0a4b9f798a989b6bc153dcd55a7a6dfd3a8a6b36330faae82fedc133ae927b75638629aa SHA512 8958b8548711bb393e188d7516a842dcde5e7f9751804a90621d28a787a28b330057f343f14f930bafdcbdd8fa2cf391d6a4c1953f6d33a34bcbc65fd0e24e9b
-DIST rust-1.48.0-arm-unknown-linux-gnueabihf.tar.xz 132424008 BLAKE2B ed0aad5dba3eff6ca18eac5e7fc1864d2b72e262b5c8d6b510196653edc505bcb2327d529b326b10279ad19d6e2258e40103ed39067094f6ac2bd9dfed170b35 SHA512 d932676a579eed1849e58c133aa3759750b01436aa6f837098953cc558b9025427bdd54f1f2688aa0022934c48177da34874e27cc319c7bf1c96e219615d2bb2
-DIST rust-1.48.0-armv7-unknown-linux-gnueabihf.tar.xz 134716224 BLAKE2B 1918eadca80dbaacb4700dc5af8c791cc0966a29b4d01bba10e8ec31d5506a2748f4a0c9ed6695e9aa9cd88511e0dc347354a1410b419013757d9ae443e9e9af SHA512 9763b0c5bc5dc7b265b86636ed32947aab98bd9b5732c4b298ade93e9a09bab82ad37fc7ca2d7c97dfd87634756b3c55015d47696c0a6ed2cb44be03659bcf55
-DIST rust-1.48.0-i686-unknown-linux-gnu.tar.xz 161602224 BLAKE2B e4f1d1b51d520f85f7af8ddd12ad716d8c501a25d1bcdf40efd23902da9c35168108ba705c08a7aa3617ac1afb41584180d1d2399732918900f9126158111c25 SHA512 b8b3c5407304a333fc6c10ad70363589a88673640dda7b5fde8971097e679f56a8c733da31b2183044ae2ce30700db923cc3c3cb8c590d785df680b60b199451
-DIST rust-1.48.0-mips-unknown-linux-gnu.tar.xz 96393696 BLAKE2B 6cd06b3b1b8aeb4b251bc14e47dd8b8cd099f9292705402d718657de4efd480f8999bf23694d9be455236e3ebd4d330b2645a0333eeab7f9a189239df5e02698 SHA512 973130e8c0924e4a22e3b803102b96e80d6247328879a92c3bf0d9e80ec185264b980bd481ee79b6f8afe8e47f7fd61b9657a85adb7ae99008357d39e2428a39
-DIST rust-1.48.0-mips64-unknown-linux-gnuabi64.tar.xz 107548156 BLAKE2B 98b481032689f094490689b3af5a0a9162c8bf0ac8a60203b0be2de0f0ac555296e0401d1d534934d2faee852c61b20324aadf0a1696dd57607b71389f03071a SHA512 b3adf893d3e1a36da859bbd3cb39acebb2358522591694e636574ac5a1f81484a60ee53a9de7f348717fbfdaac9f2dd6ec27ea78959cdf94346d251d4a6be877
-DIST rust-1.48.0-mipsel-unknown-linux-gnu.tar.xz 97538116 BLAKE2B c4777428637bf2a08964b0abf048c2ea3b895901130f6b2c4307bfd448c7e09e2d8e862d0a10bab23c73a580aa2e9d868c7716d6a7fd103fa40f0d4207090c71 SHA512 09529c30c2b31317a495b058ee48d8ad7b0c89a59a70e62c9085d59bbd2f22a37223956a13959175cd05b195b7541feac9b8acc49438f575fce3fad26d2bd927
-DIST rust-1.48.0-powerpc-unknown-linux-gnu.tar.xz 106401772 BLAKE2B 2b10bb21198b9104dee49038ca4a7bee9dc93331465166ce9ca451d84c7e759e7bd5635c017223f6a1b96f71430a8240bd65022e9067fb20e5be85d06e79baba SHA512 b77afbca6fe9f1122c863bee14a764adb1dc5f233058292c5aaa72e50f473c1f9cccd1fc08c427485a7edab460fcea595544fd902d5f96d290e208aa03d910a3
-DIST rust-1.48.0-powerpc64-unknown-linux-gnu.tar.xz 120497676 BLAKE2B 6aa1dedcf5953f1292997fa7aac19067a6daa5e676a7e5fb7b7a29707831328b5514a88904edcc00dcf76d32e911646c8a349e40431a531585c373ce755bfb3c SHA512 f79e1f984cc3c4dce08599418be2885666e0b6f73e639b10e97ffff4b900606d880c0596b6c2ab7c5f999cfc364d22b2ca6ab88db6ba38b8b227670b222fe23b
-DIST rust-1.48.0-powerpc64le-unknown-linux-gnu.tar.xz 124335896 BLAKE2B fe95cb27e69258d4b0fe471e856bc98d4ddae3d90c7d5bbd723575cb86da28061c8b0ca8f5fd945f0ce4789997f5e7658edf5f40b57aa215d76ffeb3c3207602 SHA512 7ddd2b0599872012f8613ccab456622cb05a0a43587b7d389e8b7fdf9381f0387763726d892da931233c89e8e3ce45c2b303ed00b1cce1f91c88d8f88d6b148d
-DIST rust-1.48.0-s390x-unknown-linux-gnu.tar.xz 127221600 BLAKE2B 08511be6aadc0feb36caa19df5914a207565eed3b4b3914cad7fc8f7170011a7431c14d50b1334f5d5e00b4c94e7e84ee59afad179286e889480cc9b21e1f402 SHA512 b2b1565f3b1cc0c3bf4aa06aba1da7df775c6e29c892ca7727d0e549f175b632080433be2586e799c5636231de6c678f0228dedee8358fbf167016a1f7d25389
-DIST rust-1.48.0-x86_64-unknown-linux-gnu.tar.xz 155254844 BLAKE2B 37bce978eb297bb1732f9d513bb6fdcee4aefc42a578496a84b5f8abbb9f90f1c524c73f28c85f33c25a365bf5ba566253b1739009bb112c2e1d46a2ed978e10 SHA512 0784e156e70c47386abfa88ecfeb62b1109364459b1fee225de0749c30379c4eb443ff3ff7faa7dc1a6ff373bc6eb43997007f937889cb35daf940a74641753b
-DIST rust-1.48.0-x86_64-unknown-linux-musl.tar.xz 168361012 BLAKE2B efeb9a9812f2fa2cbf1cfd963b5b714cf18d73ca9b7a3de4efa701acf7e2e8fc3b610cd90f7391b10bddd1c9d44b8b0aa910f58ce739750d4e910b063825dc28 SHA512 7188fb0b1bf6fd6ab320089cd17f334867baefec1a9c57a81e6cb729276456e56850938dbd0eafbc52375266a87392ad3045a4dbd2c41689bba6b0da152e4034
+DIST rust-1.71.0-aarch64-unknown-linux-gnu.tar.xz 209991076 BLAKE2B 1400684c4bd3349dd73c5941e8edb1ba3d334522651d8c8fc614528197ad661d99e58165ab6dc0c384b1b918161602baf068a2b199c103cd17b6c8082fa22b62 SHA512 2a99e296f973f7eb91814debe376b3eb30c0950032c8ed8894d23b0509d2e0b9a2da4aa149dd809139bbd5625a2ae917b71a34f485ac78f07a8b83037b5983f8
+DIST rust-1.71.0-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 98c26527bb54799e76ffcb637e4c8a5e1e84115bc2aa1f918e1db5b626c6b76a5b3ae86ee6f622ed2050f5685c59dc35f43f3430e8db121396d780b917a9e049 SHA512 66bf98344620b917992b6b6ca35f7ddfb5d20cbe59eaae9ab05d2b8a6badb1a44a4c4e0a18859d2c5b0ccb3e782c9d8a215f6765072ca488943e7055e62e45c9
+DIST rust-1.71.0-aarch64-unknown-linux-musl.tar.xz 193402460 BLAKE2B 7f637ceebf6319b79d61a93a5fbcf70f10783fb9d049a0273f7fe2b38a4802e53e115e3b058aa240cea81ff8f8ccea714bfdb07ecbef3b53b1cccf33c4a6700e SHA512 2bd95b6036680d9e8890e6a1e141c4df6b70e24e4a7c3ea47d02cc0895c6c4693198ecc7a793363fe18a9fc6fd665c4b52e7a315fd3a75883011c1bf874b5c3f
+DIST rust-1.71.0-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 56484d4d5486627f358f83d895a1314b8652a8bca9d1b09f6328421ac4e32ae2d975859c5ee3d68ec1ef1275a3d69a0b3d37d9d9665e658725dac0c33444333c SHA512 d4bb8be012ca57b5ff11b945e0208a13a823025a3e8c3c8cf6c924a812e9556d1db7a61588beac7839504eee1714e1f15503ebad1f7558be32f339bdfe3a6fd4
+DIST rust-1.71.0-arm-unknown-linux-gnueabi.tar.xz 173764116 BLAKE2B 6ca4784b4a844b799d36800fd88126f4fc1d6f2a9599d8e5d9c72a008c06770d0d7ae474306870d83e64373f4adf6a5f87894351cc5780cfb66084eb82b11b21 SHA512 e9b54549e6ac416ee3c261c9779c7e970d99279b4dfe4a032c438f4d854fd7392453873adcc3d6e4d138e0240dea2351d3c08698b00edc5858fc17951df0cc09
+DIST rust-1.71.0-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B f8170dc6faf26f85259a4ded0cc462e9d59c5884ce0943efa185d5a4bfeb1fb9de1c254ceafdf86e7ddb2c4ec1417142667e52c58b18c9932cfebfd9adafca23 SHA512 e0380cbe0dc2af9ff0664c59c17c8e9c521bbfbd09f2af9ae7d24ecda2128a8f260515831c08ee1220bde36fbf24c3a0f4b251376c5a143c20a868d0bfe13307
+DIST rust-1.71.0-arm-unknown-linux-gnueabihf.tar.xz 174050576 BLAKE2B ea0698a4073cd288f4da89ffabd2c9e28999578918e224891115c48539bcb465aad693f7efe0d26592e35da23a43c1689130126d89ea3c33e74efd4e10375660 SHA512 34322d585707e60c5896752b7181efc9e0904869ae24a1228ad243b8e693687785ad6321f93e9d4695e491a614c9ad2d8619f977e85904b0b47f0239fc4d59cc
+DIST rust-1.71.0-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 8d2176f2921601b46fa31884dfe8ea4c2676ed5d0beda839216d3686fc6b02b0d35a17b0f6a3c410672ca11f488d3f1254fbefdab96e062e93900d19cccd1c8a SHA512 5df4b6c60a132cc05abc121f25db1f04cf7de3c14a46490dd103d72b59e5619b1d3b4de0caa00997861d719f8d12ff2aee661358052cdb9e60e269f59cfa44b5
+DIST rust-1.71.0-armv7-unknown-linux-gnueabihf.tar.xz 178354684 BLAKE2B d0f98052377d3a6359c00ae9aa716240f2a73b41a6078acf855f7518f124ba69a07add924772159b566c16b6aea7be3fdba414377b552a1283f203794a7de526 SHA512 34324db7d5a06c6d57a954aa30da70d8d16b1ef90b0681e0bde8c55dc4ba208125a7b2f969462853c11145152f9add706e61a6cf91afbc4316762a7cb236196f
+DIST rust-1.71.0-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 26eaa3a0a2643db61aa7e9f08513d0b76edc4963de2ad52003eda2af26f33597a4a68a211e0579c324fe55bb0404a45473b1f762b13c0ea2ed22657b78c922ea SHA512 41c8ee305e0ca0e703da55c1e101088ca7efb2d7713f3745ee02473c77c2e6fb1ecee53e206fa5bf22823486fbbd3c13a108ac072d0acc18fd5bb1bcd09dcaaf
+DIST rust-1.71.0-i686-unknown-linux-gnu.tar.xz 202182092 BLAKE2B a00b28125209bda56b2cff4dbece301dda405d3181eb081df8fd57bcb7722900f709ef4dfb3130d4a85e252f17cea7cc489de691199316a9652357b5a2857a63 SHA512 a6eedbc044d59e13d79a251c5cef250c41db1680179a7011682a5401e0fc26afeafa50c91a0fba43b723ebda29498579eedfa5f7b1f69df4c540076c835bec72
+DIST rust-1.71.0-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 9876a0aee36b98c160b16eb89b3d51488b780f937681dd7b530469f5f0ddee9e8212048fbfb28f902f4ecbf2ffc667d4214c114f9689af20aec9e908679119b8 SHA512 51ef8bd55e656179d70c33f49387e94dc9d1083630166eb1cfd646b0601c3abb97ec2f244c5445a5612bdcd14d84ee82523db9367d896e4c3e5795b31385973c
+DIST rust-1.71.0-loongarch64-unknown-linux-gnu.tar.xz 157813464 BLAKE2B f5891e63685d5d3087820190ececffcda16ac1030a8bc26845b6c7c944040b676adcaebde2003407dec9994bf2dae6be16277a0d3ca0c7f47e1ef744caca90ae SHA512 1872cb88ef536609323cd40acc40473f295699a8d008ed6f9aaa3c2f6993f61d17f798d64ff071f1b4ad8d2574eaac5e88fe431dab35304aefbfa72b83faf4db
+DIST rust-1.71.0-loongarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B f799bb6a169dfe5f681bd8535ff34d3b42bd0085aba7491a64ba16b3e65475e5ee9c9f35347be6af9bf35f2f40beefa7af45c79db6b52f7f5192b63b8715cf3d SHA512 84468e736a7cd1d16d7ba065f8162e34b277459d76f47204dc8e086dcc994f0d1b155ef6784018017d7cd92c118c4f5f768d2b8660b388b531f7d6b53367dd36
+DIST rust-1.71.0-mips-unknown-linux-gnu.tar.xz 152295116 BLAKE2B a3d08447b652a2738bf04f15349c6f733290920375e78be905f26e53e6b85811f9d1b0bba3cabf3994470a101cd607b162bb8f60220f258ce17cbc01bafa5902 SHA512 418bcc86c93806dc51f7da54ac5907f53b84381209fe02dc276bcb378a120332ea0df154e5fb4b28aaf425abba047e1265ca888533e3fa55683a402dfc877be1
+DIST rust-1.71.0-mips-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B fc5f101c57de8de6fa69a125ff0fd5f26cf59e5521c566047acf626c4dd3fcaff347636af97441e77ac5edde7da41720a4c4d381cd62e5aa5c7026f19c97e195 SHA512 930467025f3a626e3f439eeb61cc8b873985a52fbeccbe853f67cbcae197be8c7b1a204b433b0dbce35c8f873b54730f427bf97e9cef4c3ac66abead25300d11
+DIST rust-1.71.0-mips64-unknown-linux-gnuabi64.tar.xz 150684312 BLAKE2B ecb130f57b555990dccdddb861b56522605eb3e7552f5eaf8ae4bc93056746fe540bf30468fc03cfd86d3daa9cf437f1e245c28f5ef6392a8e1ff8ccb7418e90 SHA512 029b897ad026f03faf1d73565963c4f1013f996143ba72de06118aee960c176d0320dbf81964bbfa0fe2f50771b5afc156db353a318abd9f0e8dbb5a5b4dd46b
+DIST rust-1.71.0-mips64-unknown-linux-gnuabi64.tar.xz.asc 801 BLAKE2B 5f72f40cd2d5e5d0bce8d7efd612fb315e2102dee6a4feaac6340047f7fea369956948939cda6632948e778cc41c9794e11a25f5a814b5bfe2037ad157fff660 SHA512 54bfe40e378d565bdee3628e87b8e4facfebf2d88ee4a9ae64fedaeef14399348b9d710cb770c2c36c6fca9831488371078d6560b9e641619775eb931558a5fd
+DIST rust-1.71.0-mips64el-unknown-linux-gnuabi64.tar.xz 154483548 BLAKE2B 8cf96a0636b55c037869f944250bdec80b968f396cdce7398dccdbe691fdeb545218e899774e7386e6f0cb7ce5cfde8d1ce6b538fa887e5db7d675dcce6a592f SHA512 db86f3fe6c7df7ea0e49d75a44baed9cf3219fc967edba16be583b1b3fa9815eca84d302e2e01bd1d86339fbef7d2b4b3fc4a154fc07b6d0a9477a7891c54be7
+DIST rust-1.71.0-mips64el-unknown-linux-gnuabi64.tar.xz.asc 801 BLAKE2B 6b1cc481b0dc991134bdd97dbf27e5b7ba2b0c51055755f835ccf6062c265c7bcf5c50a9edf67aeb2220bac6ae6ce1d9540893ae26a7fe3ec19353829b3b409f SHA512 a34f37e79bac3f09e1042a330e039f52c9ac4c7dad501072555728fdc6825a5faf33b87ef72f5756e26c952360b211f2d0f9fb00935b9cbd5bfa9e052b2d7f86
+DIST rust-1.71.0-mipsel-unknown-linux-gnu.tar.xz 156128712 BLAKE2B 29c995bbb9b6fa5f110fb3fb1d12018084b229d913ee4b6b30549081e8f6eba3984c1aaee50e82f4b41c379476736a580805bf1c74c10888e67ab6bf839207d2 SHA512 6779c9b7f75328a07eaf1c358c2ddd46f9e17b15e667e0b668422b398be70343f1ec49237d9e3de47e144ad13b49006b80ed0945a81cad18c7cbc63119755e4c
+DIST rust-1.71.0-mipsel-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B d0c4948f3e46a215069fe58575ac7ada4a1ff93f5efa85046099c908779b3eba52cd5120554ee92bfe014c681fcd6efa6992b74b8dd6dc00ef5143a056704185 SHA512 ab931513befb14061f2de18f7ea901058c1991deacfef0518156bec8915bcf10502711b106147e65b3ebe1097fe5a088e0bd1d2f0159fcc8fd716faef5e086c0
+DIST rust-1.71.0-powerpc-unknown-linux-gnu.tar.xz 173001556 BLAKE2B 15273f254ae7d60cfe2209edcd9e9c08c317caeac5d35b899a86c84dafa97af154e95d0abc73b0cb72539057b68faf1fcaf5e96483060692163fab04375bda9e SHA512 dd402332f949599440ab2c3d7e1335ce3191d07aa3c4aa36b96e48ee61ea720d1a81d707e89de8717bd76a21b39b300de92ebe97c83421b15ccb4c7c3a5c07c3
+DIST rust-1.71.0-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 08f7a28a99927e957abedb7a56b23624e5d84eacfcd6f95538c2e20575b7da0a64c51453aff85a2a715aa5d3542a23cea666eaa2682e94242e9747f8c2925d2d SHA512 ccfde9ed8c614aa315dd3ebba5a55a08510b1e04d256a0ff37150cf2b6bb30a6750aa7eed72ed66b49b85c8ae3dd88b579052ab8bbc579e9fac102fcb1dfc5a7
+DIST rust-1.71.0-powerpc64-unknown-linux-gnu.tar.xz 172593332 BLAKE2B 82eeebf794b989441fc5a9c18ff1165b36de3f29412f973af4a229475f50e7ac477a004b96605d2267a1bc0f56c8bd4fe66f22e360fbe4a071eab137afcb16cf SHA512 ac3d27414d23dc2755f5683f09f73b1a36e35b7cf77edc746a62c76ef0a83361e8c074db37b716f5cfc843264651ac7bfdd7faae3d8225ef9177bac5975bf331
+DIST rust-1.71.0-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 1e034a4bea8c037ea22c87255c8ae91d338e8dab5830f7aa1138aad32742f97e42a64892f2d9b7b967ce192925c95d75a1a0f5dbc575bf443dd38e353742f5ab SHA512 c068875df6654db7305ba520e75c4ddf766a23905a4206a7a9ae0d414cb493a6c427c3f5f4bfc2111209e42b390bb54bd0eff7ec6b257165d1cbb42f47057b36
+DIST rust-1.71.0-powerpc64le-unknown-linux-gnu.tar.xz 184310820 BLAKE2B 8a619e8fdfd8310edad2604285ba307124d6a91c46ad6a2449188a50df0dfc7f3aed1140e3da7ee1d589710386b166018bb1a207befb456d9dd0b98c1903f4dd SHA512 841b3aede46a20fdf8a9abe7178fb314ddaa6ed568f3eee9ba085d5a8e9ed320ca8096f8c864a81a524e7978856538bdbc21e2031534f2f72943bcc137c700f3
+DIST rust-1.71.0-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 74acdcddf4861469ad955f2aeb6feefb2eb07beec2d781cab1ee5b567572b2c9af0d5f06dde4448288e15ca86c2a7c80777a79f4b1df2a592d0158b9d46b22f9 SHA512 6d237e26f9dc6ad350d582173cf96b2e4e495d0cce033b6a2e9481f2a6facb533f5f422753bf826d44e8c43d87cf048a5431e18f64755b4ffa493dbcb9a5662e
+DIST rust-1.71.0-riscv64gc-unknown-linux-gnu.tar.xz 164997272 BLAKE2B 816cd02dcab4128faa8321f7134188231983a7c67f5cbb52fa6d1be5370a8acd7ac01123223a342952b30339219dc4ec6f58383dd98b955f7d5809af8e918592 SHA512 3bcf6520781b70d38762af142e99844f575887116da8f7f117e4f9e1b568f85a2d997e66457c64ca7e274598454e26f2eba2cfcf395fcbc083097115763a0b03
+DIST rust-1.71.0-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 6ccdf48a7e345367bc847e05861c75561511092ad3459fa15515b500536b36d2d94555cb130dc405fb2fbc49c00fe18c20fc27b24c5c52d066c4314e321622ba SHA512 4fc85f2169b9a3db7747736837668d07d8ef17cb701a6300297ccd20700fb538687897f8c8967926ee06c21bdbfff37eaa3a527b9a0ed111bbec4914d6461b4d
+DIST rust-1.71.0-s390x-unknown-linux-gnu.tar.xz 195655276 BLAKE2B bb5ca6d712fd109478f1fb33fc224ca2dc6b2d2f32bf14892e21b1918d8a201d815cd899210cec546763b07612a0fa7d734704ce968d96b51feae430eae2fd97 SHA512 f3128d9dfec1ee3c18815b2b26213dbb6624e7f0094b4dd8a259e12e1482eb5a984ea90bbfe287caf1bd749cc30e6fa3cdf25978ba76edc99e58deba7a7de9f4
+DIST rust-1.71.0-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 54e1f18d7130c7759e0327dd46361ab9755ddcb2738d1ba74b0fea622a7aa0bcee27221bb6c5acf7c6ec4da79d1879ff581e9f87dac94d649cb86f8269a7d332 SHA512 0241b9f02635211434b174532899351d2d273529c67e4f7e94b690247c4a3fed542ac97d269666e1fbf4e5a4297bd68f3206b1c42a980543f84b279a0aec34e0
+DIST rust-1.71.0-sparc64-unknown-linux-gnu.sam.tar.xz 57339712 BLAKE2B f4cd9826be28e9ed449f9bea8e6be70d0b453ad687e29db3770a92474901e43b8925afebd611a402e3bd67c9d7e54234b02868427fb10d7b05d7a9e8b984cb32 SHA512 62c1fc936bbe5989adb97bb001050f00b47342c318b2f534a4bf90e872cb8eaca1244bdb44f20bb9ee210d69fd9ba09936aafc63972ecb5a09eac0367c334b28
+DIST rust-1.71.0-x86_64-unknown-linux-gnu.tar.xz 161430980 BLAKE2B dcafde40a19b0ee40f45d627e063deab934ef3d537f07fca1eaa9b0ebd01bb16a3f6531b50f7967e8fb6216f446016f73095f28bd57487a7f4676bd91097257e SHA512 fcd8a5ae5bc28bf691d37b1abb9574d98a8daca73ef6e1853363baa545f317910230fcd655d4bd4116b93a58959544728f96f785dc9fb9bda109767e1fa54c42
+DIST rust-1.71.0-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 3878bb57f44a1d08b6bf9d61b69d9ea1107e0d2d8de51298f2be892e62eec60788ffa1c135cea4a53dee4564cf31aea61f8fef9a3bfdb7451094955a51d5abd2 SHA512 053f7e253f0c15a98491544a27172c0b7bbc160c169c42629d29acbfbc3be6c94a0483b6b8efc2bbb19b258571e02fcafa33cf19fa316a51f99a94d120b0bd45
+DIST rust-1.71.0-x86_64-unknown-linux-musl.tar.xz 232159228 BLAKE2B fe57a684cd3b5cf0d20e62faf8589308f80342353e80c17dca76da7772a7c1b2debbad7d6b8453d92af306f3adea97f85d7a15b858dd51ea237a41748243c49c SHA512 3bbedf056e176a2a00b8d151b0ec245e18ff109816a665a2b913c1e715815cbdbbe42fe470e8f78e0eb7ae0302f41cef4132cd02e58b550695476a2bb4f49979
+DIST rust-1.71.0-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 48edbb815080eb34dabe8361e05b0ad73fd7d5c96eb277ef4dbea397a4b78124d8ebdf680da1c45ffce58b0b8ea635d7fecd04c0e70fa5dc61030bb76315c890 SHA512 2beff44790ccba5c6fb414038e05846285f3f62f23b880454e414b449a442c7e09c54fbf9c3b4cb5265b13c18647144d73f3a9e90b4c64323a2b0be42df2f5eb
+DIST rust-1.71.1-aarch64-unknown-linux-gnu.tar.xz 209839296 BLAKE2B da65e966a6bd8c6a8a13e5ab747da2a8d9b55f90fc20c1bd041ccc1a2f4e2d11d50d2ed9cc7f3a470e7f886ec8b891ef98ea1295491414d5afeae7f83fa3a555 SHA512 a2ea1383a6ea965e4b0c3a7c648bb357fb531a6984418756abcff3c526ccd9221a28aeedd11b65180fd166575e07a00151460dbc15e3b132a0bcac643911d242
+DIST rust-1.71.1-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 52d1fbdba32db7ac2578615fd10a3db1da84441274bb190624e517aec67279c7330f7c6b7fa0835d8e1cd8f578d34952813228a6a221e41c4193e9a079cc6fb6 SHA512 63cbbdd9a73f0223444565b60f59765a734633ef8e93843639969b96fb67550b85fe58079d486a927174f95619f0d6fdfe3f3b84d871f776bc48986be7965238
+DIST rust-1.71.1-aarch64-unknown-linux-musl.tar.xz 193170880 BLAKE2B 26384119108f4503d35f79fc5401c46e1eee326eca4dc6cc282949d2f195928fda5d3bf56c0509b04fdaa3e7c3c47f4ba44b2b82a60b02f7bc520360b0433efe SHA512 3e79692cd4dba512516eb48970dc9711448c33e1d7a5ebe7c5fadaed7f053ae9c1a8e6efcd1713f87dd84107a37b0fb21b1246e0d5c3e0dab677e5c7ed210825
+DIST rust-1.71.1-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 223d21586b07645d5860a3a023f42a191fc2490ad9e5736c3b2335565227780aa1f87174060cd6f87c4c873b965bb32b1556fb60fe70a7dc0f753409adabb024 SHA512 197197752e5ce110a1a96ecab8d1ae3aa82769a199c51b42a14b1f0749045a280f00aea0dd0653211bb941b80fbf43960d1e11766cf2dc35be3a34445e336423
+DIST rust-1.71.1-arm-unknown-linux-gnueabi.tar.xz 173870064 BLAKE2B 3c2e440e22199e081f6121513cf2a86b22ba0da08569d0b95edd1a69d890e191bda150429f4329c9932d45c44d49e8dfe1902513bb379b039dabfeb8bca36a44 SHA512 c59b1ba5d8bc29a2d1bb57f19e584af28ac92d8bbf889b80d443684e09a6249453bea429226078c9ffcc4d04a7a03f3605d82e3d8b412ca83720cabf5595a8e5
+DIST rust-1.71.1-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B 38a5fe9e5e67298909d6a36e625b990128649975d47e544847a2d6067ff88fa63cc0c3e1c8e2c8697f0a0f39584b4e60cb8f29390cc6abad721c681a4cf183e2 SHA512 a7230aa7f507e5e4d71d2701fd5c1abe29e3c53109d67a5133fc32ea32018c6ea6dfe512a0e58acfa8d2c39dbaeee2cafe420aef4979e95ce9d62b7520b9b01c
+DIST rust-1.71.1-arm-unknown-linux-gnueabihf.tar.xz 174277632 BLAKE2B c317f946f4fa7b4e5c4e39bf4035108ff1a6085420f932eaa532cb89f15babf4b80a5c231f9980300d4ea18b6dd369bcda33bdceeb7065b03fdde41a01165e76 SHA512 ff4b6ac0e6691820f525a84505a3556a729cb189700209c084e9fe981bd076ad7ec30fb748666b7f51ee901ac039d596670bf782c60018590980ff1e61cd396b
+DIST rust-1.71.1-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 2fa6e24ac4cd9ec4772655c5e8b135a0118c38ebb41462940669df0c65c0091e60306a5a09cb020dcdaf06aca7b2c8cdff904dd2a5f4ca87acfbc5775adf2b6c SHA512 c9cf9c1f8e19fe0576dd805f21ed8afd1d3536fa8ba00fcd39d6e6638198fca51114a8d99cd62164d8a0aee6bdf37831e678f08241fb8ba63ccdd6e8c7225717
+DIST rust-1.71.1-armv7-unknown-linux-gnueabihf.tar.xz 178239136 BLAKE2B ae0ca46260aa4bb60760812f50e606ecc18fc14b3dfa56135cb6a83249c0cd5e0544d29ef5eb34d3ce45e53552f736c8db2928b3d65d847a9b3d61be7e863ee2 SHA512 56c63d4e9dd99ba3604bec5c0f0d8c2a51a93c0d11beed721d99cca05b20310f4439c049ee5b3ddb6e723381e315ac991d9a7327cea86e852b6cfca4cc7f9a0d
+DIST rust-1.71.1-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B d5cea850a1930a316574c977542e7026eed67dc244d8857c720d9de168f39b5437912634cd5ebefb63e8d58200e7b11d69b8c6ea0e257642a0df7c1ae8026c80 SHA512 2d06f90f916e4f184d536b695d123628a28f452ad4fb3da53dd3fcf5e013df594e8ee6eb1819268bc5b20ceb1c05d6d3b68a4021e60c73c7da934fc05014d2c1
+DIST rust-1.71.1-i686-unknown-linux-gnu.tar.xz 202188608 BLAKE2B 153f94771d68ab8bc25d1e38afea206cdd182a1ca0b7ea8616b932617c2368acaffda959ce3220506d7b2601b5120ce65ab83fbef167429b1b8a76108f3137b6 SHA512 e835354cee992f751d994943718d8908bc687a540b91b4b296962ceb0047d447e5b12a7cfc6661de8a4ee9c90722f8274c3e6a37f6842e8012f883cff32ac2aa
+DIST rust-1.71.1-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B d2e47ce2eaf7d8c16a12630778cffb25fdbbe23d978ff46d02fb6363f6ce45a6295cb948f7b20c9a966d14f832a38e3c53018188b54fcfaac7b2df85508990a9 SHA512 2e5d191ba550965de6962c595c5dd063f96603522eff467433f3cffb31539e3406c1a62e3fd37a66c4eeaff2c1200a33439c6ca5133dc00930c89c7713ecb0ee
+DIST rust-1.71.1-loongarch64-unknown-linux-gnu.tar.xz 158000652 BLAKE2B 6ca5a251202330755f53eff6151abb724cbfbdf190e19d15df009e33cb17795b74a491e8a6c040ea69fcb603d19b7baf6f1f47afb5a984bcbb6239640748e003 SHA512 be33401e6f02669102e51524ecb2a4bcb75a539084ed0e04f80bd389be8432a7f3952304b21397fc1d6894d86a263da40831625a04b72536dd2af79b0d2e1845
+DIST rust-1.71.1-loongarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 5b744b2bd11ff69ac0c66af93a80c0c9f4d6aec465109033a8ffc63d2a1a8bb0e9cde1d3e9aa65e27287105673230acd07511e58112b7c5beb0c452323cea72a SHA512 a5d71f2555bfda22c0366a35032ab902071e3c75e781d1b1c5d090b6b6dac78046b31b789f71f9ed4adf80523903add324c1eb8e8f8a7b744d6a7d8cc6d3be68
+DIST rust-1.71.1-mips-unknown-linux-gnu.tar.xz 152451900 BLAKE2B 86804480dec985aecedec561707ce7dd2dff5e85b25da940051c2d89ae905b630ed7bb0df9e9bf6373917c5f6f513049b8be4b0b673d7c0dd77d8095700e6103 SHA512 0d3069e17c23e6651bc6dc2f7dd4de6b5b54e24ade5aa81a8ddbaa5f4f13c26084c3a04d246181d49fbb15cedede2a5d8f3e4a21080654a257c1b4285dcdef27
+DIST rust-1.71.1-mips-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 217ca15420e4ccce2ea287913eaee07b90a1ec534a805b899032a8ba18f7b6a75feba873b8fa773efef32cbb0b265da08ff026e6d387c824e63000b04e7419b5 SHA512 2e0355d8364a9e6b711012fc8e1f227c76290804d967def666ae30e899f52197da06dc1498191f6b9de6868730eb8883ca0849351981efd82a5b9d12da9681d0
+DIST rust-1.71.1-mips64-unknown-linux-gnuabi64.tar.xz 150685836 BLAKE2B 90496f5f9b3af09d9da3b45913a57ac2b1035838cf4940d3a6d4c2fb6bd1c5dacc86b144e8be851a35bcce19100ed2cc800d840c3182b01ea1954353060d56d4 SHA512 af97988af615c7cfe08db0424169cb133f97914fcc75a76356ae3b0eeac2c8eed436208694d218a75879db163963d87523d23d6ce5ccc91688679950536c13df
+DIST rust-1.71.1-mips64-unknown-linux-gnuabi64.tar.xz.asc 801 BLAKE2B 04665afa887c047d2e888ee4275faab1efda5f7dbeb4222c056af53c756a00ccfa5cd0f5a792df4bff325cb870f50ce6cb09e713afeeec201050eaa14dd6b0da SHA512 560d1e474e177cdc28cf94b10f72785ccc0db748a185b5bee8ab0c9598d3ef7152f79bffa7f11594be06ae07c3d56bc8176bfbd40284a6888d20e77bd036b9e6
+DIST rust-1.71.1-mips64el-unknown-linux-gnuabi64.tar.xz 153800316 BLAKE2B 63787c2fd44406d45de5f153259237df8116aa5419d241c92c5e9509db1fdea6fbfa0b119bca83cbc23a2abdfd50365de7c7e3f37bb0f7d402382657c97ad226 SHA512 a6c8399f2f4e56340d1712c71f03ac87ecb8f3694f0c4f1ce64a1f810de850f5ece7361cd93e8881d83cea2094a82a51f0d54cb795c4d02a5a1d94ed49b8f0cf
+DIST rust-1.71.1-mips64el-unknown-linux-gnuabi64.tar.xz.asc 801 BLAKE2B b69e13a4dd21447d7a39c24f96e9416c7b68bdb4af08c1ee7e312d78d2b064d1d67e397c0f04f9f8c68498ff3934350729021c9a4ee521967bdb63f53ab08c17 SHA512 9bcf27125cdf776719c87adb2947b1b9965dd3dcb231293a225e2424906e759f97ce2972d2f7ecaf69d708266303b8dc776c3e119c070e1c21ef59fb90405050
+DIST rust-1.71.1-mipsel-unknown-linux-gnu.tar.xz 155924032 BLAKE2B a4862cfd02053dc8303de9158929da634980c15d8fe32b7b51b316e6aa83de1f0d075ea4acd250d5bb210cb269bff373613bd45eba003f38439e22831b433dc2 SHA512 96708e1481c4790d5c2938ce7664cf83c2b9295023af017345ab0c9afa37bd43c2db93b9e8097d8d1aa6c913bab0db9324f057ecb25aa65bc16295cc625f2bdd
+DIST rust-1.71.1-mipsel-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 90063d27ffb9071f6c10cc54d17073ea79436dab947b7f8f0a8f2d7c0671edc66f7e45d5954af77f30f8c3a005d2951af56f129d311cf328c9987bd5a5ea9802 SHA512 a2bc87f7c1baaf6f245b1d008162a1e5f52b6f949a3e06f69a7ae22315fc7770403ace7289830cfa60f6e66fabbb23352fabb5f0c24be05d58f4f891a8d6e956
+DIST rust-1.71.1-powerpc-unknown-linux-gnu.tar.xz 172809692 BLAKE2B dd6e3c96d168dc2ad4b3bca38a42a2b3c5c0ec5555f042ffb9a7e1d6430bce3659953c2c6c5454843ab41e648e479c5cef2645f2ce0bafe72892ff1ed014787d SHA512 bc2a8b9fc8494cdbab89364c15212f7f8e9af416639f9dd05cc57f0ffe18288be7ec489d18061387c43a2f8f4ab1273bcd7de58126546b59a42ae80e9a2c45d8
+DIST rust-1.71.1-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 620a63d1732cc0cccdc3bf6b141e2467c0ba50668d72be44cf04becfa9e0c30e5a5a4a7f5ae39fd1321130703bc6522c78e9bfdb23e7b3354fd760eb4d118991 SHA512 f6467c3ab3694fb89db06c67e6fb8afde75b4ab86752d9c918c89ca6bcc8914bf45da71076142eeea2dd10910edea42ab0d8144ff7b769b22edcf9bdb447e381
+DIST rust-1.71.1-powerpc64-unknown-linux-gnu.tar.xz 172399116 BLAKE2B ebc82664a4e9f651e9111e862a9cc341615526c6e7af2b181a653eb7d6a0c52156bf1cd35671c6e5aea41fa2653f042a9c865212bef6e8844a88fb9bb7a8891a SHA512 94395abdeb1615f594e4fc86d8bad85a01bbab05893bc8af7890ec509a2006d51c1a8723d3cc8082a214ee851fe4ba06707e01c3f009ed340d791d35e034341a
+DIST rust-1.71.1-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 6d3565b8d9ec5b6d719dbe06120469e2a6f1ac42708bd7ef9705e796f0a4c528929a3984a7090a4da6521b09a53b48db119dc388d66f782f01a1ebfa61c8df21 SHA512 847fa662ddf9234a4a6b73e9d515b06fd0af0f098a826463ddb7df406dfdb25ca7b37110e90ff07f0a58cdf2c42755ccac70f057243b44f3b733ddc449cbde2a
+DIST rust-1.71.1-powerpc64le-unknown-linux-gnu.tar.xz 183620460 BLAKE2B f8c562813364a2ddcad26287f227ea93af4d91fb083998835e469a676c9be1c0262e88d0cb7e06cdd1293ba8807334744d4e4000c58d9f34c07fc851b0e31e5b SHA512 f8f627d847e405c9960a01f59eb1e14aa647e42004cbeaabe734c110827921f019cc01bea13f2ea0b5b3c2e4391f60b6ccbe4298182593564169cce0db6c9ae6
+DIST rust-1.71.1-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 2c09621ed09918bcebc6561f7f12e387be7919568929d0215a6bc5333610c158acca2998ff8c918956d8289da2f3e2ed4850c0ce45a9f1d85a304063eb8d5671 SHA512 5f5361a954d4b0510d48cf5b2f2bd0722f9d99a7b28aab8f3dfea9303489d9b60f6e20ee4fc61b74619d3c0fd298ab9bb903b3509f55c448886e428ba9e28d71
+DIST rust-1.71.1-riscv64gc-unknown-linux-gnu.tar.xz 164813572 BLAKE2B f86f7443da64afd416ea3119933a05a7638ee41576e9d761f491376b781e9362992223186109a6b930ee8a012dac5c37547448dcb903bd5bc480b66f8fef3123 SHA512 525a345dcb09141e4f4f5ef911c8f8dd63180fab956752ce0e9f5e2821c89603a2896e7042e019f61ae8807052e96b52bec492f49508dad2a351ce1a9c6de79b
+DIST rust-1.71.1-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 6d37bd643caa5780e80a51876228bd12175132af89f1fd35dbd55f8c5544afd21c3e844027083d9cd5ba48bd41c3dc8c1427b400c2141dc3e1d128a6f5672ba2 SHA512 ee22b054810c12dbd48e9ac4006d74f2545c5fa090b80f831673e0850e16122569376380d1edea6c6195bf76441c0751ab52c6a143a643e656af0880c12578c5
+DIST rust-1.71.1-s390x-unknown-linux-gnu.tar.xz 195515792 BLAKE2B e8618c69ccc350c7e63461080a3768bf4d7b26f57e75a98a6e62625cb0deed8cf93dc00e485051d01b9996c6b48d3d1a84f88d5194b618d06e926c5543524071 SHA512 7915806421c07b70acf31bab86086981dcabee08e826668c8225db68c4f895fd16ba3e16b710416d2b96de3c30a9dcd137107a04ced21972d3fe52500e56178e
+DIST rust-1.71.1-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 4266dea5182a07d4ea1f28e6a362a2233df684836af9b5d2b78e87aea2626575d3af6716868b1cc10d2f38d77910d845c3997da7bf93fe865d8486d63dbc9e1b SHA512 a70d2d4592021294734ca9e069ce1f22e2531323524e4bc6477efae074026e0685e31c1d06328e2b17eb87a27dd7ec6793804c87280a002733b87a676c374729
+DIST rust-1.71.1-sparc64-unknown-linux-gnu.sam.tar.xz 57363076 BLAKE2B f1332698c8d36a853f11a2a5b7b9ecf6461bf7b505c08c1fbb6da3e851251f1b081969beeedb20eda3214d08054a8fdd544fa084a69d259b6b71b4dc1f4e1721 SHA512 1614523649f8d27569440ea03e9f4ad40eaa6ae826bf89f6616dc1106c99897c197e56017d16843a1b5bead40fa1f16d8603b91f28e41e6bc38ccf7544618ce9
+DIST rust-1.71.1-x86_64-unknown-linux-gnu.tar.xz 161080376 BLAKE2B 40bf80551c032dd62e19bae5a235575c5d8894ea75f77dd34510499b4f4e779e27da0faa98aaeacb57f73e9632ee90ff0f60f167108529ade67198841215d109 SHA512 15c5ff75b02357beefe717a36e7755d2841778ce4e39020d2b920239e4c8d0adfc17ee65de7bf42493d287bdfca194189f3276adc0374ac3d1a6af63270ef954
+DIST rust-1.71.1-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B ce029d9af59f26535a3fa121f20672f7eaad5019934457ac7ddc059dafcb2c3a37e5683923d4bba3f3a735805f11092189cf84d0a6352a5f9f475bd3eb00cdf5 SHA512 0376b16b9c845738c3c291ab2a73a3ecb20cbb8bdd0820568a0683c84b211e639413b3046d756e607a0f1b23695c9dcb351711fcc474e6faa8fe3098b1fefefd
+DIST rust-1.71.1-x86_64-unknown-linux-musl.tar.xz 232096648 BLAKE2B 7f4deafa57baa300f037ce3d9dbd101d5d28cf29368c4b2fc8e51799e59382155076aa0a3c0b6fa0c076693fd43dfaf80ad7685cd44233d7c31037c091a90224 SHA512 55b507a30d62a36aece4a2c2cab985e09d9552ae331c1cab51d949777261600e61d4f05ca1e81fe8b37591fb91939b1cdb55e6930d70e5126eea1a78caa74eb4
+DIST rust-1.71.1-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B d4a9f89274bf4b0004248764c07c7f82f8708f81a826d7509611b75e51d280707a75ff2c9d6b372e79259f7086b3e962afe51c3f0b98dd3fdd4feb683783c9fb SHA512 8be13b63b48740bec80772a826f06a012de58b1294f87374d7b4c844c90f3093ffe86bd3f1d989987696aa095302cc4644e3137fa2c9e1363c9ae8c3e1a05268
+DIST rust-1.73.0-aarch64-unknown-linux-gnu.tar.xz 216033148 BLAKE2B 78bac094c78d68102cd5ca6a7bc9ac8a51ecd3e14cc5c66fefca0a0597b5ba439c22d69a323a6e7cafdfec60cadf0672c91ca5f85065ac8d7913c83437ec0256 SHA512 58198ebecaa4652e0477eed6ad2c29524e7a3e991ed437775281ce526c8485b2a1a49c75ac6fd5bdcc6cb997cee4d1b4d82fba49c03ad38bcafa764f5a9bdfb1
+DIST rust-1.73.0-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B d4b85efab3aef10fd6940630ed3cbf6cca12961228482ce42cdbd4c0c185c55b9ccecb1ca386e7a5c02fa33b77685dc8e2d619ecdec0cb5afc7a01402be5a22e SHA512 b7392e301c00e2ee1be692e6b5a44fdadc4b442979bf8f09fe71f80d82b6f395d0505621ba8eb54fe6145812f7f9c0d2b278e474d6edde51a2318cf27f5080bc
+DIST rust-1.73.0-aarch64-unknown-linux-musl.tar.xz 197525740 BLAKE2B ed84c438426bb0fc9a5a320731ae448f242b70a764d67e46e53a37f0e76262a183886e83fb27166e030740a27e6a79ef1c8f50bfc4a2c9c5d915ee5fa74a251f SHA512 b1a3007217dbb771e459b92a2ce0efca3babb34e9901cd44006d7c8ca92f48f67bdb877d3ec4710c58ad1645da4830a52cc2062b6b5a9827b8d57d508f4029a6
+DIST rust-1.73.0-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 2e2a965b37bdeec12fbe3f605c4bd10bb51adc7dd1c2e2d185b7306e8c75415d678b1bd83eb68e8a05099eb77958a928e867f87b0a4f05b5315b89869f120a64 SHA512 b65b08a68571cd0cf17f4469c1eb95868e00e6244e30ac0d3c30e0ad6abcaed143a7389002c0f90b2ddbd79b9c9c3856d66387f701a8d0eb9f1683ce456e4910
+DIST rust-1.73.0-arm-unknown-linux-gnueabi.tar.xz 180327600 BLAKE2B f28725f19259806f934298d2b6dde6bf59e5f8bc3ee0ad9b1cf0565a5383a31189170f26495b3103bbc9d86d2ac9b83147b3803508a53b96eebd214d2b0aff90 SHA512 27900c5faa9076db40cc85d973274a09ff44a76936312f905a3d9751d0b7480dc260ed3cec91a65bb78382c67208b28978e2079e28a47a25aa6279d09adcc045
+DIST rust-1.73.0-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B 03ad365e06dbaf30d4ca2d8d2d3066d4f956ba5426f2c5b601c3830d9b0741b3655d26eafb3853b41ab01dc377065ca330f9d6fcf89de066c50adb0c9c9fe3bd SHA512 ecef5fe8359d8dbf23337398c1cb90a269ae169a1cd08525361d6f39e0a24dd22c1819c7ee0fe3828431ad492af89d19bf8c3c7b111f7925831362e2050d1040
+DIST rust-1.73.0-arm-unknown-linux-gnueabihf.tar.xz 180870680 BLAKE2B fea49832d8eefa7545b76114874de3d653ed888f753b68cd7636b7a1462bb564e19bbe37a5f3b94cf9a06640bf81f6fcc97f224f0f3e1745eb19f99ae193d3af SHA512 3648672256182cf6c73e31a05af3084b996bf25e1ccad8b96d68501e57a4ae4cf57befdf84db27e3e1a9fa3af051117e94ffcefd14246794e7528020bc26f4d5
+DIST rust-1.73.0-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 7046fad305aabf192a1084328d739754bf76c27fd3f1efcc4be36047ef6c4bf899ef8ae7e3cb359e23578af4c9a25d4e1f453ed8695ba33c630d46351234de69 SHA512 7e046b79d4d0a1bee3c7c5f6b8e3020a342a39e9913a24ef672aa1d197e63905653acc24652b720a4b996029661503e2dfc3b678f297ce15c548281ed772ac23
+DIST rust-1.73.0-armv7-unknown-linux-gnueabihf.tar.xz 184898496 BLAKE2B d0b2ce03ce7ab5e2c843989958a00524fc59000f62dc07f9783f4b9f22c734b67b33e403e3300fe3350322e1ad2b59e64e41b339d5f5c258b29dcdd98dec9c61 SHA512 ca48bb9b683058321b0ae770faf2fd607e03ff5e9291626ccbeba707f5ef8c211c29b9ddf52dfa11958691a127f95dedb742010018bbd6be2fc1d7ddced44190
+DIST rust-1.73.0-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 12e19ff5f586a7f67bf7e4f6ee96d919293500bbfb3bec306b412a423a3dafe94fe63939f371a644e1d3a1575a6a21df78f11ee63a8dbae9af3a2ce6b03d5104 SHA512 9e1f316abb8f7861fe1188aba1880732b957514fe58de3f10e340c430c1ce64e9627feec1a655335d33605cc6f5ee32830159a8215c5a233f25ebff18e2c7bf7
+DIST rust-1.73.0-i686-unknown-linux-gnu.tar.xz 209918920 BLAKE2B 545c48dce0e275228e260669d0f5b93977a9c7a02237d4ae9d84ed69236f5e412c5980e2c5823478949214c2b775c89c836bbd43e25406c20fbdc52cee328240 SHA512 a80742d14acc1d018ac35b77abba4491b5eafe28bc3173527c865b0e930572f2a92d4fc459db51c34600f8288b20b5790346b5f8e6fbdfcb080f1f14f44a2db4
+DIST rust-1.73.0-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 9800a96cf8484b0370f343c2fdda0762bab534fa7551a7716e7665bc90b651207c471ef5e06b2d7acb766959155b5d593b375487b01cf65e980ebc721c3a4042 SHA512 dc0c25c270701ff6509bbff3fd173178ec8aa3e5cf606fe87b803e6f1279dde3571d22cf0c7f28bb0ba5410c08a491f9b9b937d0aa796c0ba30fe43f7e381c1e
+DIST rust-1.73.0-loongarch64-unknown-linux-gnu.tar.xz 161763960 BLAKE2B 1ae7019055a4fb457733826750d2c20708e7d8bfeb8532ac1af5027387bd1f992c2ab1fe08d088b07581b0a81d7ea7ac8e44ff077887297a4d4da2a633089de0 SHA512 9840e1454506e3f0880e8113040eecd1b363bb78371386aa069271e18e70600f81e19358539785a3bd1ada7244b4830362e6f0b466798cda7647ed795072342d
+DIST rust-1.73.0-loongarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B cacbbd7793d6f693cf2c1211529cb4a0c888f3ed4d8674f610e034a7216fcf7f4ecc85331aaeaa89ec02c1412a62fdbda29a3bca6faa64dee0f8d419d055b41d SHA512 64b8594f2f19151927f5b74584822a78b15da97fc8f5e4823dfc222056a203ed68ced70cca915e1694ea6b36fdef5697e5b56062cb761a0d9557e5c08ec8ea07
+DIST rust-1.73.0-powerpc-unknown-linux-gnu.tar.xz 176694620 BLAKE2B e8b43ea4b9ad78ece530985afdeb140e0e960213272857cedcfe4e9262c190c7d26ce77d46fd113d2742cb159442c256a081bb6cf23e6977fa5ca8c6cf21ec30 SHA512 03f889dad45d1bd9ee4af52209af3d763ad5362cf1a617c86b050e0d2fe00c39edc716fc32a83c6e45c118b97d828c32f682ffec5b32f215d6694509a885772f
+DIST rust-1.73.0-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B e63cf87a2fb0584f2fc5c01a98dbb12bd9a7f4aace54a08505a0b4f9e7141705409d8bff1cd3a2d7cf40504ea274f29e11624ba050d56e4ec2a4e794fdf188f1 SHA512 a86db43be2a2fd92638e6355ac4117e707073fbb98631a8b41064e5b01e12bc1d2c594547778d9c99ec3e24c5c4dce6603cbfcb3715b11aef9d2c2758ee8b7d6
+DIST rust-1.73.0-powerpc64-unknown-linux-gnu.tar.xz 176165132 BLAKE2B 3750ef413de00047fa957ecc6c832995e072b58b78f994bdd6b8291583acd0a4ab54634d4e4778456bce6420135c83e9961aef5e615fd62806531686e33a31d8 SHA512 9f1a669f7d532a831df76292916493e1bcd4a56d95d3819c477898eb0510bc8760d008fc1e7d383927f8afbeff826b0598f9bc4067f692f530856c8e444f44df
+DIST rust-1.73.0-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B a1c1db86107b48a554d815811b518f7b28abac90cd08920362643a538670e7859ce43d179de24551b5e4409e0a421029e66b8374b27ddd699ca68fe0f47b8904 SHA512 04604baa0f13693d4bc7a0729df7041a55c0cb9efa11ef511d29d2b5a50c3575867c1ecbb6a23a030dc014876bc9c02e370c8d0eb531249833fbb52dd964f2b4
+DIST rust-1.73.0-powerpc64le-unknown-linux-gnu.tar.xz 187628140 BLAKE2B 1ab716a7d2e536ca3447fc0aa2751d774259ea2e39ee3cc150bfe11967e57bd85b484cf050a39cba717a0552dabe6d1aa79ca7dc24abe4b43d4802fb9cc1bc85 SHA512 d6566978f47067b84715ef39756721ced5f5430d5c92f51b673db39d1e1666a8dd933e998d4fe3ccbc36ec47c62b4fe7e335c4e3b830d27571dcf9e534446d0d
+DIST rust-1.73.0-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 6b3a29cf580d750a17436036d6bdb2457cafde123c289205aa239457afa4de10b4b97c9f3ccc23cd296a1a388802ac4f696c71e45a2ff7c97d15d63f2a04cba3 SHA512 5840b7986e9472a4907ae01eee0c4a40664ce1a29ff159557766bcf50da773d246a74ffed2bc5bc735d255514e0daba55d10bdbf7d8d2c3a6aeebd704f3009b3
+DIST rust-1.73.0-riscv64gc-unknown-linux-gnu.tar.xz 182202208 BLAKE2B 836d89e6ce276d100edce8016f5a466b99e8aff2646be7e58dea2f38678e4fdb9b93fff1126573a112e19cdb32ee5290fa58df0e5cbb1c309e65927ae1439b52 SHA512 c49031996ecde5dfda4b8bf3869b37ecb51c89e3fb8f69d3d43d865bf2ed6dfa928f0239460f0f3c7b7168eedee9b5a957d956f39ad42fc7276fe64a649ee501
+DIST rust-1.73.0-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 119d6cf2b0b4f8950d51aac6eb865619412e513c6c87f31702572cb2120a20cb23133a763036cbac0a9977a20dccfb58a8b034d19d13892ffbde05c01970ec92 SHA512 578c2576f66d0ad344549a94cf83f80551dbec7ecf2ff8616d81cd1eb3a7154b89701a05caf6a21649361ccdd1abfd37b33de935e91dba02dd914945de3930b5
+DIST rust-1.73.0-s390x-unknown-linux-gnu.tar.xz 201224624 BLAKE2B 5f9f28c5f511a3bd119233e4a2b882119b18a42a8c235bafc57f35e365496fe9d6d88c6278e014345f76a98a235ecec31335178a6b047e5b2188d391ba465e70 SHA512 e946192961623be1e3ab4b3e2c86f16f9fd716ee3ccf88137e6ed7ca92b9e8376552a9b46b48c127f6be76a1fc7b240d9b8db568390fd7d81605634ebb431ea4
+DIST rust-1.73.0-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B d05fc43c55e47b3a32e8be8f97b072961e920ed09d368968d1121dfaa0dc36e11ca61a0b03df2f708d0eff31a80367b5d465434b851da4c8ff00ce9ecd577bce SHA512 5950cfd08f49bfd0f1277e2f07e333e7188d65d6a61d738dbe586bde8f3647862ef6d6ca5f52d74f357ae3997f1554a2c7cd0399392cde7ec32b1f2aaf8a4c6b
+DIST rust-1.73.0-sparc64-unknown-linux-gnu.tar.xz 56696716 BLAKE2B 82527d43276edea2e0660172c000b214090ef7b1ee75783fb24e9db864285bdbbd6a364361ecb6fe6af0c32d16d0283a9dde7078f55ff9290ce6859460b8ea42 SHA512 eba763109d84c32c6fb5fb1a8dc9e11a1f83bd48d3779e0a7aa2edf97c3fa4b6353a978395409ae3f1c78910084203763aed67b42000c77b5003f8cf67101dac
+DIST rust-1.73.0-x86_64-unknown-linux-gnu.tar.xz 161588916 BLAKE2B 10c1c57641e2ae076c55826985d8ef43034a3e4b6fd15d109f949e8bc655dfb16d45ce86482992cc2aa3f4000f3432b8be17019f9f5d29a92fb42c37cd7df72e SHA512 b70886b5ecac41a7e6ea85d1b2d1aa557a0395d3f8abe4b8d1ad91f3b32ac9ae73bebfd7a9c48ebef4141be041cf5bdfab8bdb78e1b4969afb439daca203d5a3
+DIST rust-1.73.0-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 22e68ec4e6bfa49c15344675abd20ef9449d928943dafc64bfa1cf78dd36ccbce4802af8d4adb84762194dabc512efa74655a93785c127e6942ebeca8f6e3303 SHA512 56e53a1047a23a7f37250a785de2422ee2a3a72fdedb9a02530b3cc1cd978370cbbfc0e67d75f3d537f48c6c78f91d3de949ac2c9392a79404609b169cedaa40
+DIST rust-1.73.0-x86_64-unknown-linux-musl.tar.xz 236190528 BLAKE2B 062b54b31742bc846bdff63fb38be3a3a1f6d2f061da26cee6a0b089feee995fe3dbea536675495ed75d47d657c3d4bf04e36f6752f59f8308f7eb9a397d6e38 SHA512 abd01e0c98a8aa447d01613e24302ca81a8cce7d41179ed60834a39ed1942de0459add3c498a63f94bb1ee8662a2750b375b49894e3108da45f47d3a643cfdba
+DIST rust-1.73.0-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 9822879d0f14eb5387a623d111ed7a3b1ff038522c071608bd254c4b3479da8a1e9ed78c69c267c1156c45a9cbb2f7db00d123b85f28021a743d392d1cb65c75 SHA512 ff65fd3ca47afeb10f7434d8d4f91b6649739167639c3eadf178aa1339553c5316bd0bb393cd53fcce17c126dcf8db1f1dca6e87044b14762bb20ed8f5a500b7
+DIST rust-1.74.1-aarch64-unknown-linux-gnu.tar.xz 216291888 BLAKE2B 522c2f2b27f9ff81968d7aa536d2f909bca4e4ca6bb341c08227c87e7f25d9808ea6da74ae1bcf3a7bce4165f1d374fef21d352bff37b7241d19d50a624a08e2 SHA512 57486ce7f4ab8fa6f8091817790396df5b9cd31b4c9901b9969fe5407908458fb384423097ee27485c03dbd30d0cb15c3e8f0e5c15ef4ad17662d91685e8caad
+DIST rust-1.74.1-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B a60c4878f4441029f1f23e6a9a29046fa2d62c1aa8bf33c5ae4c0e986d67ea64688a3fd22bfdc01e99635cc567d87a94fc9ccdb8e512cc4dc8f0378d22eabbfc SHA512 3b2c3d1ccbe5d18c4b8bad62337ddec6306bc0ab654fd75962403f79b86f669ede6f8754327f8375cd4a12f74f3f4df4e183a85f8459de015e6543e17ca80767
+DIST rust-1.74.1-aarch64-unknown-linux-musl.tar.xz 196804076 BLAKE2B c866cef7698da867e8389bc6d460f67486e52822bec516256a8170380d8a2693732c18cc18729b980278fbe3c6fd2d21f1470fea449e66458d5481ac00728824 SHA512 54b9574f624dbb1b8399747e855eccca38dee76c2b59d71fbe41bfb05c1a784bc38d383e7aff0ffb0b8c2c5878bd0f8806e03d1a3c2a6bc4a1a9483d711641ce
+DIST rust-1.74.1-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 3be239b8961901836a9431a3084e106651b08da7cada74e3ba8f69ad026e7bd88aff25dab307eaff81c85dc7b5477ce5085a56f2aaaa6fba20d6b3ac5db3829b SHA512 b7e09b1ca04732a04a9f0b63cd24d4cc88e26535c5974d00ed511b76c547fef1fce4f4105fdb3d60cd11dec6a579f55a97fa388085fcb8bb3f51f41d96db666f
+DIST rust-1.74.1-arm-unknown-linux-gnueabi.tar.xz 180529732 BLAKE2B a61ecef80c1541df30b247b95d565d29222afd4915e32c64af67971e966ed1d4af3f28debddb2f21f16524013e20309f3226b3a18414fd1cf2311aaa07447570 SHA512 2f0e0ac1e10224e49cccd636c00463d009f1c99ffb742dd9774e3722e421f90d9ee207b78ae348a0c2f7703b9538c85db3fd2eca160e2098079fe061fb2006e4
+DIST rust-1.74.1-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B 72a01b04050ab3dcd841df10a08c8f9fb7a2c66000b3b035718e4b9cf4ed59ce7c3223f11f9f9ef3dee00260752b0ccae99e70eaa5f3a7e6d2d9457400eb74a3 SHA512 5b399b963c5a3fb0ae0b90523cfc02ea7bb5a5966a48355c937167ecc291c23f4ee8186f09952c913dadab2c9d29f2464e3aeaf077f03aa85964815d1cc27e89
+DIST rust-1.74.1-arm-unknown-linux-gnueabihf.tar.xz 180572504 BLAKE2B 9d94a722a432ddb86276b097fc54926a88b6d9be8e891c84ab43be5c5da0e8b9b9a50c6143959878a479833ec4b85227bddac42bdd391a285ff5c6478345b3f5 SHA512 80882828ebb0d1f609fadcad6e8678ade6dca57dff9c5967ed18b6efb508f4b843b020c83f0fa52f21e506353fbb9eaf7073263662dd75725e85484b9b171804
+DIST rust-1.74.1-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 4536b990d631d2e6874112e9dbba7cf3a618be577037ac37f2a11e0188eaadafcd552a21d8239d8560e0ab3308a5a2bd4d289055cb58a29aa5d11ba08cc7929a SHA512 6166bdc50e94eac125b66ad6b3d44d162515ce851d67fc93d312d0e16b5bd9e924cba35367d6bf89c223589c80bbb5562cd1c4e7c7b7bb5df51297f766f0b6db
+DIST rust-1.74.1-armv7-unknown-linux-gnueabihf.tar.xz 184280672 BLAKE2B d5b409d2d287b95b4e5cff334c9f56a0f357be479d4dbf428b1c631a783eb694b857099f04b3fe7bd73e20372df3d5ea9afa9ec87d56600962fa1c43f822eaa3 SHA512 208c82013ba23716fcf2187cad300c35bdc5ee90a646e6dd2e1c72f3a5722dc21e7e5578f6a56f5644c0641b10fada7f837618e0b1ad68a71ba8efeff8a735bb
+DIST rust-1.74.1-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B ef11fcfd18f023ea32aa48f09bebb967c0f1d738c04d4b407ec2955e67f364ae420899ffab3d177491d97102f28bb37eaa32615942fcb7e0c14a2823affa7538 SHA512 7f2a556b0bd294a4ac826e6d3f7b0fea161b36d9c87eb44270cf024d341ba4dfaa6899bf07a24ce3cb9ee37ad568b3b74d017681d386030c22515645444617b3
+DIST rust-1.74.1-i686-unknown-linux-gnu.tar.xz 211724720 BLAKE2B d48ba506d42406277c2d33cfc8d6c98775b58d7eb1c04cd9597dcf87d58116d1043468ddef3bd05e30fe3ead09df696c2f1d2143b9f0c5a244d51950a1c1c30b SHA512 ac0cd4f60f7f1c526bfc9aff310436764661c15789ba75dc3fd3b9454d357e805cd9fca49af4bb4c16136b72e6bf706d4a3b3957209e667832105adf8b7fa795
+DIST rust-1.74.1-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B a89f1f8b7da7bc5598cb3ca9c257e8660592761ff4ca98221e160a14aa2a4ef55bae03c38c6ba898c432c5b6819045c29a3db41ef8c104694cd7d9e4d0857e10 SHA512 f2e29365922a18bb0a1d6f3664787b26b4950efcd5ca288f6ea3895c4c436c29d870a7aded83b6f6d9ad8603a7f5a1a5e1867df3a34de6c9252c1bbfa20b6034
+DIST rust-1.74.1-loongarch64-unknown-linux-gnu.tar.xz 161665796 BLAKE2B 2675081def9896306644c949c623643d999b3f608ef4745160a8f8c8d9de92c1762e4910dd2da44d07cef6ec9357dcfcf52d1a9291866ce2321c67698f0fc615 SHA512 fe43e4a65d47d1066f4b363b1b3e83029704ec61a13f052fd2f85a5da914c4d76dd2bfc9e58364f3e833a3b966ecc2c3ce3157480555911939497a5ace1e6a75
+DIST rust-1.74.1-loongarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 85aaf2be268183b23b1e7917e062f3699634d4a0aa939951c9863e74b03d3d55ed5d6ef40def86352e82b32a95224009d27a557f8c432665dc299aa6d44bdd7c SHA512 a7633c018385ef65b3ef897e5b55769c3abf4178e1307ac81e3f18ec5dc72837a22635388a436861c5527aacd391da45b87de62f4a6284ed30630f00cc4b615c
+DIST rust-1.74.1-powerpc-unknown-linux-gnu.tar.xz 176968064 BLAKE2B 5cd80269770368ad29b772aa40a34350ff11d3d931df82975506ab52604f8b12d1982ab420f9375d9758c829d89f18713317ae6c0d8a8cb37da1fc941ed20046 SHA512 2443cf5d22bb9bb0f435b3370f9bea2e1322e3f929b0dcf99bb2515a63215015701645e50af67045201256ccdfe3b1f8d0f713475e03c79a3bc5f3001299d382
+DIST rust-1.74.1-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 0dbf00765b035a629cf044e64b5c4819bc1c7eecf919dcfab6db764aeea972a93382308e1815756016c22eeac22a0db75d4f584b7704ec57de9b984c1e52a2a9 SHA512 d1eb882c2faea41255b3d7241a441402f45d3ea177bc8853ad0e7d07a15f00ef0a2dec7390126cf3d24ee6b875aa11a26557368ee0ebcae63c7312761b118c89
+DIST rust-1.74.1-powerpc64-unknown-linux-gnu.tar.xz 176582892 BLAKE2B 21582bfe0011448b43cb7fa88fca9e98cd4a555ae1d147f86f7b33c8f5eb065bf7ed83f0b8bd44bee04c8d58a3116660a2e0edd85fa9af7000c3778365390487 SHA512 d95a2803a5c386c8575c242684688c078557976998c48b13f619f710cd4c29b962a1d257878fe2a1de16cf7002d885fe99fe6787e8a12837355dcd10b3a070a9
+DIST rust-1.74.1-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 7d5a67e75e37d1d0ca47e31fa71128b906bf135056cf775bf04bc9667b1bd92fe1eabe7890fd1328aaee9ba5dd1ea2de06dcccae88a1c8a1aaa3b9c68bc94832 SHA512 72caa7f82862c85561b27079c3c1ed31372ec31f9692474a43a91fd6dd84e1172db0dcf215be95d27569139dffb7207c0dbc2f80a9c7e19dc6aa19d960a7c7d0
+DIST rust-1.74.1-powerpc64le-unknown-linux-gnu.tar.xz 187570092 BLAKE2B 5319e9c159452264f9b1a5982541e3cbed2c3b7279f6942424621f75d1c7cc3e67cb85df1ad0e8d34bb6009cdeb8796879570611ebdee4791b7b269c4735c8a3 SHA512 62f0c8667a2b93a043b87fd455464e476c8c05c4ec693e0d0159fc7b75a14b45fbbd6510f92d4d99dde90d59e0c430f200e8795405849db2caa09de53fabab04
+DIST rust-1.74.1-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 24b84c25550c8920eea2cef557f9980e3a8e18895eb08ee97837e61738f27e1e3d20a4926ee3f614c16c720044a0576da12957c15c7e9a6fb7b0facca62f33a6 SHA512 4cf7398718303920dee59ab43d391c09b81d636b04d760b759890b0231680a5a97d99bcf838b9f26529e5ed1980a94f4c58b2984096d86cdd5bdcb9d48c7a134
+DIST rust-1.74.1-riscv64gc-unknown-linux-gnu.tar.xz 181803248 BLAKE2B cd007830f59175b7e63e13688caf53a12d48aa2df9871dd24f5e412068864440a084baa9e927ee2bb6a008d4c586f19f149db9a9eabd6cfdc1e7ac9ec3ba4316 SHA512 3c05427de5214fd542a45ddef906fa179d487deec68a860776279d90ca644e1182cd98fa639b13df11cc2db495007abafd004a681ff13927bf6a7490c4fe494b
+DIST rust-1.74.1-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B d19edec415037449fa52b80a804fb505767803a805943d0acf1a9216964d7ec7ca108b3b578621f10c23c37cf71decac0a1451c49525d2d7850d52f18e883b95 SHA512 b00a20e466125faec270ffdddd3f96f07133488aa1c9e2e706e0408f3d7ad350812b2b5831226c77657bc5a8d4fc55e5bd13085ea9e33fab88e32b469f9c2179
+DIST rust-1.74.1-s390x-unknown-linux-gnu.tar.xz 200997424 BLAKE2B 31ba7d46ffc5388b5ebd4be9b2c74873ebaf6a8301d5211823a0677492de4e2ed0562971e41a3825dcbfe4311588091ce062fe1432ed441eb736d64c73f5f0c5 SHA512 76bfe267e4b6b59b823f29be175e9c63102f2dc5df060b9b7b5bca2a883c57c113416c531c9fcbf3ceaea0b8955ef864f572e64604b4b816c8e3b3d8d68c7ac1
+DIST rust-1.74.1-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 6ea21dedc092abab913973752e6875f6b5a437ea4107d6245d2104c443c8af0f4af64d06211305968fc14ed15a628cee6a5b86701a1da42fcb2ea5afd166bfa9 SHA512 e155a6e7936f649eba413fbb07516e21216fdf9183f02eaef040002e2ccaaedbb399003b00dded7d7b54507182296a54455eeeee4b0ab48aae77e7939678a233
+DIST rust-1.74.1-sparc64-unknown-linux-gnu.tar.xz 56648912 BLAKE2B ca6b367c1f938e48686880b40eea92edc8e2f22668541de99318bff0812416f6fad02ac381785270bc212e43d578094ae3e34f8c59b648183620e1823de64bbc SHA512 617c1c222f8c2e50c90dfed81a64da8c3bc2079f926ab75d022e3e2fadf7cbda3893ced595ac8235c2e919a98ced5ee7f02163a9d165cff976190749c298e912
+DIST rust-1.74.1-x86_64-unknown-linux-gnu.tar.xz 155438320 BLAKE2B e33ac5c6f913e0eba2f92d46fbac255ef3a06a77324cffb1994b713a1b114f008514fd4ad6d9e7fa2ee860e168d90c574b80769f585a6f1f36e0c57313056e82 SHA512 08fdce8c9b35ab30e67d7ba932a105edf3a8cddb618dc2e7c5928d01afd086018732dcb87d66d1cab4b1468bd6e0a516459e39beb0514f2b78dd418ce530ecaf
+DIST rust-1.74.1-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 5bcfcc084bb7c4e3e95fbd55a8a0d6b64565f50a64e203862b8607eeb6d74cb5d0a6e16b9100a96286b937452b87b56554235a39da2739e7c71933560dcee74f SHA512 e39b200fcef34fc359deb9b0c104853fd33714ca8c417274ff6e2aa5ed76dc98500365455edc4defb4f55172e33912674c2c657eaa40b3d8451e75b7a23b38ba
+DIST rust-1.74.1-x86_64-unknown-linux-musl.tar.xz 235698028 BLAKE2B e392e83b7ccade6cddff9c964162836552f90b8f3fd821348bfc0f72137f99e0c29a82b45c74893d22e0a42861c9413b29b97a85802737bfe363b1e694fd4e81 SHA512 8fb65ea5538c4a0865ac75561bb8df71d3703f1d4ed603f51752844f1bea02a9a52858587f3ee776a5ec27e793762a1b7c9cd845bceedd8a313d7ce2ad476ca1
+DIST rust-1.74.1-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B d410ff0019f43eca1dcf374803905921978e13c3c85a3597792a860056ffdaaad3a9503a0780080fa6ea8044cd542a2fec74b253b3b7838cb72be2385430dbc7 SHA512 68cbaa9828003431341b8d4a0b8451689c5eaac2a97633738c3f0eb957fd985e792b87a3a0d107f05d5bc59be9a08d047854b107cf2d2a23f31cd722251bfc4b
+DIST rust-1.75.0-aarch64-unknown-linux-gnu.tar.xz 215543948 BLAKE2B 6d5de2260e4720275bc8c0ce23865840886e27a3cc539ff90c7b8c3a9c04368f2c2a2955dd7c3fe2fe5471492a7ecdf4c2e5a749789a059ad8178a0d70dc32f1 SHA512 7ccd4d605c97cc5a7dfc443ecaee23b4d7c58b0e9673ebd0f9174a4a123639213eb85ed25f19479ea6a818859190e673e0479ee80235a7e35a2d971a636872be
+DIST rust-1.75.0-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B ee4d716d905f654932ef70d65c3e83c573d9076c447b4e5831d1dd657be407621890d7a9858fee1ca8ab869420edd267f71d73948abc5861315ed4dc0880d18c SHA512 007e9b45b3b3957a8da7d01c45c5cc7d2d49942dac39067038e74b414ff32e810fd902b8dc7f7563b18c565c782b4e701f23f6d1cea397959241d3cdfd6421fd
+DIST rust-1.75.0-aarch64-unknown-linux-musl.tar.xz 195703332 BLAKE2B a662f9402ede618e78c9899c9b01c2138b927286c0269e847ff4fd389a07029eaa4dd5242576457c8ed67b6b46eef26396d079d1dc2749884cb05334676435b9 SHA512 eceececb90e3c2fb19866e58619237b416777399c6212362bc09f784138df83edd9160dd29906ed928a50e0359b2d9471868b594d765d35c1c7d8d22760c4f1e
+DIST rust-1.75.0-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B c37dd733fdd13617f6c4be580631dc78e40684c4f47d1e90f575e8aa1c122b36c1fd7182773944cf8cd873c84299a484c9f50a48ff70c7cf54e4b5becb6355cf SHA512 5c35f04cc4a58cd29c1d6e9a5616937492f584fca29db099ed1d59442e76700b83583b1d41e7ce4815187c7092af2eb6f307a959e8b7a647818c9ebe84cf4c8a
+DIST rust-1.75.0-arm-unknown-linux-gnueabi.tar.xz 179835780 BLAKE2B c532fc00e99c6428947e5335efe73fb979e66fd8d52f60e9cac7040d253ef15543171f74c4841ad740d2d334c0b2305f59925e42420ea0658307ad434186a715 SHA512 9d2b398cf97ccf8b70a82c1d03322c1e432f9bd4885d8a42ec26d0d6d6095b783630d83b8a9287c77d8d57b7bc648410273460ed6339e9d254d1bcb81191a578
+DIST rust-1.75.0-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B 5ab700ba8898ab1211b20bf1d1a89bf3e4223eccad6b0e816b113254f7d44f23a03cb7fa9fe68386b0b18ca57d71f39b28b4328f072037058c301526d760b063 SHA512 12d5791f0c1d092b52862786ba6b80031607ed819568734d904e553bc24677b583c64e93cc0cd05fad2eddc7357b21c5d15ef68d720b0ab037c7787f2a47eea0
+DIST rust-1.75.0-arm-unknown-linux-gnueabihf.tar.xz 179907476 BLAKE2B 6ed49db0214fd8b35e4d184337b38dc8393f8baf2958bb62308125e6f8e2126f0aa19c8d44fed3475b7818b001447d69267504ab3c96136e257c37db5d2c2285 SHA512 61d555d9c33c8e1647338fdfe24fdfbb42e194ce4995939a58bda6c46f4b857a058e344e714b88435a7bdcc5ee4a086bbaa9c670bc01de45249ca8376ec47c80
+DIST rust-1.75.0-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 9d5ae3c83985aafdfd1dda6c1db4bf849b4ebaf91ca71ac7249cc8c89de2b3135e752c21850b20c45c5570bb188db1f8513e1df072ebbdd700c37b3ef5f22051 SHA512 6481cfbf21e108d440c8836963d752496eebdf6018b7439459ea079ca82fa05bfc0bd423594e3537c7b522dce05546e59c125eb0cb24ef4db13ed36413c2c1e3
+DIST rust-1.75.0-armv7-unknown-linux-gnueabihf.tar.xz 184210428 BLAKE2B ef329f05d143590d91cba77e7b9a90a977c316e9ae2d8593e7f0247a5db00ca0115c6d468da5394b36e6ce64b2716a51827f39fdc4a34dc16c9220bf5690f042 SHA512 77bfae1f170cd4b2e85a6cc0e02c6f9d621f386a4c0709a2e99c4383479f8979e067d0e92ee7d267150bbf36bc7134bc053afdff7dc0ad66f289aa182755b1d6
+DIST rust-1.75.0-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B d0a3ebb883641272211478bec1a8089929be0107b05b0f499d71f96515941f7d1e18870c8685f77ef2375251e6f1484f675bd04d5fc0d544854f15ba6402f0e6 SHA512 79e631dd0c44905732ee312486a7c8233440120abeaf40172172e9d5ef0c9687469bac2693ccc2aeb63030590167d88e0fb7d912663dbef655e54ee4cbe9a323
+DIST rust-1.75.0-i686-unknown-linux-gnu.tar.xz 209938900 BLAKE2B 0c9afda24a93f3f35dd779c08d65d6c2366c916a8a3ce6633cd5502bcdbbba537743d95b76daa29d0b4ed3a822915cd5516e864b911bf354e7436745d5a17021 SHA512 242775555d7d38d9aed83018f0d0f8f5f03347c07ee92751de445826c08bc66c24f8601d83eb79729d001d63e81a5b1e27dbb5fac724d80d49e6430685052ba5
+DIST rust-1.75.0-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 9b7d778b75c2d0a6f43f48345cb4735a9d00d457a1b4d868f777eb16db040daf246459620ec478b0632ee0428e6215e5c39d819608ca800dd065b6e95b13a77d SHA512 f307db41c5e380dd023cfa3e91eda98dd1af8004d062fcaa759c4913464ee01abcf168f19a9fdbdda6dec7f718083f4765eb4296614de4c1fb6fa06144116297
+DIST rust-1.75.0-loongarch64-unknown-linux-gnu.tar.xz 160649540 BLAKE2B c96a90d28e6b71e2e5a5bea8f591e6b472f63bbcc59f181800e87d4400e647c8a18110ec50c7d6d10c8f460589386e1fbde6273ccbccea9373813c80f6612a2b SHA512 04b601e96e1fa6a7bc00c7d8463e7ad1fc4fb1bb46383e797189ecb972e23535ff864e5379c56fac400dcaf4c42923b8a5c4fd9aa08adb52bc1db8341f5254f1
+DIST rust-1.75.0-loongarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 9da9a6da9b631e72484a3360d692860e98dc77b74e55cf24d6a6a271e9eaa4787ea2f30c38dba483b18890500704319c1dd34b185adf2cf6aee6730bda8d239f SHA512 d6e20fca261aa2c81c019fffe46c7708b58146f9488041419b84a381761a2cd27606d78fd0f6b5e5e79945e1dd76776d54c335ddb453172deab8bac2c3fdf904
+DIST rust-1.75.0-powerpc-unknown-linux-gnu.tar.xz 174918688 BLAKE2B ff7c03e23f8d21dd8f4e0ebaa958fb97ac7779459ad318304070da0c1d98d832200d20d9331f758a33d6131da387af830392e8b34c33c4d220ae49bc93d7c060 SHA512 7a836a7d2ba883388025693044e59af34b2c41a4ffe93def5ed161bf012fbcba7da81cb521217da142852da05503b18df9a965537ba6ba33ef92f52cada8b7d6
+DIST rust-1.75.0-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B aa30bfeea014f600b1e3c387476a28af619bd8d63f5b6f10801cc15ee42deca5ab34d3470ec4f07fdfe2b8548f580ff6a63a89c74e1c53c7ef8cd73ddfb69272 SHA512 7efb2c4540a4be9f712698e7a9a905462b2fec70ddd65b9a6ffd28119eb595514366451932c888abe1ffbf93aa8b05c33bb0560c47b478f5122bc87be1c3bd96
+DIST rust-1.75.0-powerpc64-unknown-linux-gnu.tar.xz 174640484 BLAKE2B 768ae78a073b1a7614594ec1f6c381d7a4a9b4be14e548cd5031ea011600755c1934c442795e05f95a720a38c155cd18be188cf7e4b6417d924edc9c2a9076aa SHA512 f83ee23aa8eb7a511984b096876cce60415943d729c77ef4b4cdf0b0f9f8088082058d10881d5866d81a0e94c8515b3966de5a41dc8916d75392650715a844c0
+DIST rust-1.75.0-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 2bcdf4419fbf491fedcb32a7b54bf2ceb2aaffe0319d9e15f7eb07997646e11283535c5b2024f2785398bbdcaf586aee0ada7128a47b9b8fbd8ffa9e7d0607b5 SHA512 89a0eb5762d49351cfbadcbe098243095a62d41381ea48ebe8a3bf322998c6a46a59ea30da29c03291738fb3d04cafb3c1f57ad1e9ffedd68b4bc1516fdef66f
+DIST rust-1.75.0-powerpc64le-unknown-linux-gnu.tar.xz 186507032 BLAKE2B 49bfbc50e087874b844a7292fefabc0df5217751e2391c44827baf3e83bc0e6a6ce9b392cca58c5b8df6f7f8503110609667fcd9b34e84122016fd0d8df29058 SHA512 536210c00f9cf4bcdcd5bac308954afa4a1e7145844914a5b614745a9023c04273a58ba4ef83214663d69a0a6fc941cd4011349d54e55d84bc090628a7624874
+DIST rust-1.75.0-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B b7a48197f9159a6c5d46306808d4ebd17b492669745a941b5db380d76d5ca78095f4bf396804caf7b55bdf47d79b5e88fa2f74aad999306f586e62851d7de029 SHA512 27d86a35df7985a626b64ae7ec05b803a7ef5feefad476c3eddc2d89fad44fe4e520ab29bb27cac8be0a0f3aff7da85e45ae8fef15f2afceeed4962933869e0d
+DIST rust-1.75.0-riscv64gc-unknown-linux-gnu.tar.xz 179877936 BLAKE2B 210b84fe6b0729f52c2dde492b4408f33a7661ea9a40daeb1b2b312788f2c4dc80ce54ca72f08098e8575215e7fa7500694142c0448460bf8a82b2761c236290 SHA512 7cc11f07552cc50e78a2e90c0d0da1a62fb0547f56aa6facac4791ef81e7d62a2d66f3cd079cda91e0db1564c2931074ae40c8c142dc9cede1f9c374379fe49c
+DIST rust-1.75.0-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 8230c219c9cc22c93fc25f023729e87bf5e725f0613cc0a1a205a671c24beecc48997f824e128b56e4242369328666e355fb5e630cefa6339b39ddab61ca273f SHA512 75820f06aea67b3731777d5b7a0cb907a829b65dcabb4ce2fd55bff52837f6929239be6f8c6b303b86a352ecab16d38afde3ef9683cf7d5c4b4046231c9988c0
+DIST rust-1.75.0-s390x-unknown-linux-gnu.tar.xz 199359500 BLAKE2B fffc6c690c4ad8a9985ce8d2b3e6518787b474e47cf1d5a634f38b5d9d4017ac8f5f69206a9229298dd504d2ed2648dacd2d09a8512c008678033608231c2d7c SHA512 bae263c19a59347705959bf2d285420d2074836adcb92a74d2ec922be2ce2f8aff6f758509701a2136473301654bf528b7c1c2522fd7388f5669d1ed94324c50
+DIST rust-1.75.0-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 74cca56622367225f8326b60540c3738adb2ab12a5e320bc85b448e1cd2111983a0816188dd8767d2f20db0f9120d5d1bcc5393548f1a18c828a55f99e4c50e6 SHA512 00e0181fbf6ea1ba2035b368f3ea143f270f8a3c5e41e441593cf3cf072c31b3874146de8c2c51e3eef5c8f0ce8594132a39516d3f614d8d5f0863b546dfb746
+DIST rust-1.75.0-sparc64-unknown-linux-gnu.tar.xz 56499524 BLAKE2B f2a801f8f6fbff49f0f344c6c6d9bc3d5d6b98d030ee8c3d2080b24c6dfdf1992e32f91758954b57b34188856c86474a04f38e23bd2c287e5043c1854f59cfdd SHA512 464f55e76db139d43f4f1f22f1591f774fb2063d35410dbf0008fbe51a7d7b65f04a8839eaa869a1c1ffa061df344c29f41ac35777aff85d84d737cd536f162b
+DIST rust-1.75.0-x86_64-unknown-linux-gnu.tar.xz 156249584 BLAKE2B e6ac90854f589c2fb15144bb4db07a9b05b72196febd07c9de223c74c05c2637c832505f1135faceed14fe8c8bcad0a5205005540faa2bdf0f42949d934107c5 SHA512 86d1a5686f826c8f43f876c4cef42e9483785a37b1aaead73dc64a1ff64e7a025a6771d2e642771c6c847d717c25c6bd2560a2b8b59516a55dece589580b2534
+DIST rust-1.75.0-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 6614cb3ef782c917e8f7fdc990c5b82e8fcffa71e075f10f9726f405ff566fd963bec64cde4dd7252d9d78e09a184b8ba22d15cc87662ad987cdd37c881d8288 SHA512 bfaeef4cd7643879991955fd33f4cdc4c34afb1202cb77c0736434fb735bd215d18d1a11c25f04a7f2514640858a36832e5805a5f85e92d8b7076aa18607ffc3
+DIST rust-1.75.0-x86_64-unknown-linux-musl.tar.xz 234151836 BLAKE2B 9461afbdf26dea19e118b35ea7ef1ee60c22f601501ae6a08950658598a74a6b3179cbdfd9dc4748a0c2485af721b371e5fb523f27e7d7d702f94b532a70437f SHA512 7d650a29c5d14023a3d7d606b7bac4be6ef7988a82525f02d7af9cf3895bb88284442b8042d27be69689f4bddaa5c5370ef7609d18849986860eafcdf89d2d69
+DIST rust-1.75.0-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B c222d0989518602c0ecde9d21dbca97e9e60d81083804d1d8b2c6bffc8114af78570fd384eb58e5dba1bf249b99300e7f3f4067c1a66c0cd9fac60443f56f751 SHA512 6f78913e34402cedb37f4a54491c65a8bfe79e535e4e40516f2381bc27783cc7655e9252e7701813578c8ffcaf6b301e61ad32917a475d4388fa472733b21b12
+DIST rust-1.76.0-aarch64-unknown-linux-gnu.tar.xz 217392212 BLAKE2B aa587d69b5acc389a8d1431875f10f6261bbedb259a9009092e663a345fb0ac0cf3ad3459ca549a496853b8d760c7fc56b797ee269bcd15d54bc735cd1100fbf SHA512 ad95566ca7597ef64a03f614cc20b9c8d9b2fe67f33141b817973fa160c2be978511509fee79bdbfc74c50076a607e8543ad5bb4b56723704df27b5573b8d606
+DIST rust-1.76.0-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 86834b999cb0ad9de02a32a79f801d28268c986c830ad3f16274cd4c404a4305267c90b677f7a8637f2de08c766ad3555945f77da181906358e3d51b35e258b1 SHA512 79c1b258267d6feaecba18648a7eb620a570c99fb75e422d0a5b946a66f3a5bf6d2b41dca89b4ae79feed704d498674f36de368e4b228b1e38e3499ac8cd4f21
+DIST rust-1.76.0-aarch64-unknown-linux-musl.tar.xz 197852572 BLAKE2B 93985909e049957f80d4a14842c85dd14e5eec6d74e4e439479f353b44b123947c782856de86555262829d755a344ad01a94c41e8852818e727fba74620e1d68 SHA512 1f36245932d3b9bab0b99604085d886d9fd2e575e896e1c28b1771ae916466c060f4d70486e47200d58947147eb5571b922e175b1a450a36388c3c95e6537655
+DIST rust-1.76.0-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 50326fb881308300aa01f3783ec6856b7ab9ef80e986cc4e64fc5d6d0bcd246add9330ee5459a3ab5c0bd417d75c2b9486bdbdc19edf5a899dfd9e1ecf31028e SHA512 0e775d73bee5cfc70035db1d0fc4506d022d593cf847e01c3f09ddc48a02c4eb24eabd42391c3241cc05ca49b15e38eea0f56786a4f800df724753ee7c557ab4
+DIST rust-1.76.0-arm-unknown-linux-gnueabi.tar.xz 181085440 BLAKE2B 024b82d285208635dda1c6dd66f634d1b921657d3921c402b7adeb7ac9b495628c31b248ed480d4e52e55293815a686f9ee52a84c2407763de5b961962ca9cc4 SHA512 c6840b3368bed511976c32dd3b22a8d1341c002843958a8cc8666c4f19547eb71d8a90946c1c075cf8af50187c1f14fcad2df488d186941d00cfd6b638b27dde
+DIST rust-1.76.0-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B 71f2d3a9de1343eb96a75a7eec3d8d4ca9a02e7ed01a1cd2f4f352855dc6d58cae5ffbd70944d7d1e0c7559c74f8d8a25f3c1c3a14c2f00e5797d0f142b25a12 SHA512 b3dcd4b3e2fb5e5039b7fe654421f7a2f72ec5ebfa841589be715bf0a8ff4ff0a3c46a25d0978b4206678a2f2410c5ca69146f6e3eaa4b02a6231589bb099ed7
+DIST rust-1.76.0-arm-unknown-linux-gnueabihf.tar.xz 181168340 BLAKE2B 8d48ed7c79f87aeb91676c3f90877fbd396341130276e27adf42a0a0e5d3f7ded34a271cca34f1c0fa7f37d5666ba3f2f16eeccd91aa37859adc34077dd2a000 SHA512 6beba28be79a563eab4567ca33dbcaa7cba5f4389fa480ef4e16e528fcdc1ed6a2c7ccce1ee527afbaaa43545bfd80fa47ccd3ca2ea4c38ca2b397bdbee47a3a
+DIST rust-1.76.0-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 534e5f05848e5f6c05f2de69e0c974f5e4860c9ab4501491a651f5d2200aff69c9ece29010aa732d0eac3173b1f148afc3096b5f05146f7be7df14e5d9ecc44f SHA512 fba15a41ffc9202ae27a6c2884bac7367219fc5b1892287a599a1c8d2251bbe763df07da4b9719d73bb6d93fbac3dd1b8c4d8af75acb942200c9d7b1050be009
+DIST rust-1.76.0-armv7-unknown-linux-gnueabihf.tar.xz 184387332 BLAKE2B 7b9b03332f19859d43629d4e65815619fab1845c129a254643f164c025c5d574e71f6001899deec470e93c97fa6ac8c9d71cde5320b6f4cd822c2ab113e4b827 SHA512 3fbb7300e4dbe855207671ad309b71cdbad9cdc41b1c8144734f9de85c904918b137a2fe7284e9046f00526c7fce8b68dcbb40ab8d6543ef31ca0bbbfb396431
+DIST rust-1.76.0-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 050c4eead78d8161d46acd4ae47b69612706d8053bdfb5e4cfc0fe20ccbf4544643c1850f14cf93f7d17602849770857551b64c7f8f8db45594b7dbe267ecb41 SHA512 32e72430c4c9a5970994bcc6034d3be1a2a915adc6aa45a0c1cba403f6c44206af3e024afc42fe39a8501322fe46deea9921c9760f8e1f65422960baa88abafb
+DIST rust-1.76.0-i686-unknown-linux-gnu.tar.xz 211679020 BLAKE2B 06c9e52a1b6c802be3c4b0cb424dcf243f08fd5345e4b3977cca82093839cec885f6f491179e9e1f8e64c971bd7bfdbb6c551e463874b44c8b89ea649e8c9f40 SHA512 64605e0c981df2c805ba8cb31a89fabd00332faeea6d04ac57cb4898b7cedc66e4043ca3eeca799a204ffb93ecfa770150f09b99da3a7dc913d4e97331554e8f
+DIST rust-1.76.0-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 72d87215c5ddf03ed0cab99adb97b6f15fa8048fca68b44bdb77cd0df09cb1784cecb80f6618ad43d1b6f41a5848ddc84126ad576ff1ff08a3928cec9811a4d2 SHA512 a6d52e452a7afabb329b75155db9da91d51f809e913b19cde1c51c4d0f79831e962e698cf8e86079649e31a662d13743da23b13d16df6530427eec3e4269be7a
+DIST rust-1.76.0-loongarch64-unknown-linux-gnu.tar.xz 162940496 BLAKE2B 4c3b66199339262ea93de6785980795e493ce4e7de9d7ddf3e7c9fe38ad404f980abf408e979780905c149bb3de65d26cdc654f8b3ad0823a3d5067809fc4944 SHA512 64fac030d7edf9677757b883d1664b7e06ab9d5007d87a78d449acac359d7d6ba694bf4a6635c8bca51f274f842dad0612377aef655bb430f6290459343aa6e2
+DIST rust-1.76.0-loongarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B f52e951657308df5a944d35e2f9c19278f6f250474c070593f3b2072f372b8f6c32d379d144c8ae5a3ee31f7de21c00ec1da097f2c8c9a54759d9440ec5eb822 SHA512 d5ed37fd844715daa5d9901b388cbf39854fce3408c1d572f18e83d6207a20345e5e2c2b49b9c1523097245c73e1a448df8ecef2ae5b344e57bbe646b1266af6
+DIST rust-1.76.0-powerpc-unknown-linux-gnu.tar.xz 176795548 BLAKE2B 77e102e4d3821557895f3e24059b65847dc46ce3b81ce73f15063e9a6d383ba12f4c905fcbc85b79c39f00e9cb011fd2831737bb3ee9bb53103b4a7361aa312b SHA512 05ccb4294d788e948b69c9e38abf28454604f6b5bdd04704d6dd5231445e2f791cb18ea5149b4324a152ce9ae356b55036d2f74a5d9dc3aaaa05f5c7e4e69e1f
+DIST rust-1.76.0-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 6d2fe65e5840cd7ddbf1b18ef89cd337b16e3424b6e20d21e199b274fbbc4d9fd88406c2a119d5b0bd48fc9e47145dade3f37bbf99faff68905e57bd41937c1a SHA512 a1e45e41f901513e97956d336910927d7357cb8c2362be69989528fa5ae7087da409853adfd86354b4b7faec3e8542e400838df1d195843c030d9c6fffed7557
+DIST rust-1.76.0-powerpc64-unknown-linux-gnu.tar.xz 177409476 BLAKE2B 7c9829c8e8ecf2a162663a2c382bff49739ca2bb02b785ffdbcf632edf55a3ea37ea3be09298b0a0a984512aef290123d3b0ca9ae0d088a2a816f38778aec79b SHA512 1f29f66d8e64d4c191bc90b05d791f08317aeec042ced815fd353beef6a7a4f6d5f91755481114e707728bd9a02ed9094b2a75d91d61ddb12748d9d40b211e17
+DIST rust-1.76.0-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 3087eda9eec862455906510d38f43b81644243ff7afbd5ddf221cfb2c12408b8ac9a0bd2a269a9499776e04b56b3d52c890e056af544aa56cc06b399614f83b5 SHA512 8a90d5acea677a02b2c5eec93157ee2c47bab895e16408123a0e2c3d44b0f9a9d95fe56dfa903fa1cd2fd298f17050110793e94d60510283c8e3cc120770ce9d
+DIST rust-1.76.0-powerpc64le-unknown-linux-gnu.tar.xz 187967776 BLAKE2B 0ffbbb4e4ca44285d8387fa66c58df72971bba6410faa96f6cfd80c223f4996285fac27672104f25ae2a20cb81a0ec6be0bea1d6893d95eab0d017fbae896509 SHA512 eb8be647651b02f1e9287d075d76c288e34e66514305a68ac118ef41dc14a16e5e1a3f2c5cb8512c4565a2eef3e5063dc4eb11272fa91c01d8313a323c20755c
+DIST rust-1.76.0-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 5f41ec8841f4004df7b65b50a451027489e303bb2863ece09a14900a229d3180ba23bbf5c770c2939399eb157e97b4a08ccc0632a66eca5ca5cf4c29a1523186 SHA512 929e415a66d8777e2509c25a780b4963b8991adb905a9841dca19a5412a5f86326fd73c43f79c304a48a2898f863b76024b0144109343933a0c5f3f1fb8ed287
+DIST rust-1.76.0-riscv64gc-unknown-linux-gnu.tar.xz 183161264 BLAKE2B 9a0b579bc076b8cc55414c95456caa2146fd0597091d2332c1033d03ac7495684b7b7989ec6a8a108953c681ed88d4b62a9a7fbb39c0300128189a91b035d2df SHA512 29fe21df7b99b9a9483af6f2370e2b5a403c12aee94a1285bfb2d2efa631f9d284c70caf863247843ab1418bc78a26c6f6d5de4e8606456a9ebd265ea3bb504f
+DIST rust-1.76.0-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 7a380f9d2f2f7083afe7abcd81a15d34df703f076c2c842fee2433c6c40d629bc5b0818fc186b462d653aafeb1fe767de3c01b7a014ec3220d77725bf1074fed SHA512 53e4942d74f42f4a7c35ef4a33833d23a955af157d80588c277f32f30cae63e8543fd4ffb569693ad00a6a20ebdb2d8422ca078ebc85bbf98814815e32791894
+DIST rust-1.76.0-s390x-unknown-linux-gnu.tar.xz 202133724 BLAKE2B d6d68392b9b9b69914cb6986cc1501246e0461a6eb5d18eb0ffe71e0a2a7be20d27e90b117c520723254b4709d08c4fb33d145e5ab559802ba6592dfabf81317 SHA512 fa74e1605eea945445f8ea621a667d50907d8b3ceed700e6b05dbcbf58dc7fec62c1e50247ad9688a5b9c5b78c4a140d93557d494260f8a21b1eb25baa315bec
+DIST rust-1.76.0-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 574df1144e6e79710a73962511fc73215b3a4d1c3b6623190180c7ec13aa8295e13329c4bc66710013f874054dd756e02bfb2c5f6ce1fc8a07ae0717f958b244 SHA512 17938b3f4671127c9c46a5c51703d430938b73b2e30cd497cbc159ed372889af42e651479d1ca69c000974e21d4d34cfb9e3cf28b79ec8e35540ac319e1b8b9d
+DIST rust-1.76.0-sparc64-unknown-linux-gnu.tar.xz 60517788 BLAKE2B 014a5900dba8e1c283089d8df2e7eb90b3438ceb4f93d11fe66a2d58ead0638f47f1af2e3e89785b55c9963acdda2b41aaf6a0231bdd808d6e552c8140624373 SHA512 4c3e2db0e636ea022fad74285090efe0389ceafb7f4e3c4193d9c5f143644b2b06d22209b4361655c72e4a771dc3ba17afc11fa3b39f9954462716d9f3ac3fab
+DIST rust-1.76.0-x86_64-unknown-linux-gnu.tar.xz 159385660 BLAKE2B 0846999358aba95a2bebd2ff35ccc9e1954ff4fca66227d1c8c1985c08e91159f2acaa1357544b81e92065a2f9ddf6aee41a2d9199d71d8de1655f9b16ba2ed3 SHA512 1cf0ffb44aee4da9768e27daf5ab3b20e67fc9e8eba5a1718b700c85ecdb61cdef129cb571633294f9c826b6e7bd2958086eec371922ca31af332266d3632609
+DIST rust-1.76.0-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 88e6b124812b409372ee05e2872cb4dfacbc638f8e3b4fb0d5fa4ea63f4594333a9788732502f8bd41e34b5cbc404d7ac08e7690d095a6c37c80b0043dd2be88 SHA512 f7ddca81da468d5617f48240b6d3e8d7d09336ac58f515acd3a20f2d315468ba1d53508dd3264a088ffc0141cb3fbcd8d3c17379f9628270d39c7d44f7727291
+DIST rust-1.76.0-x86_64-unknown-linux-musl.tar.xz 237333892 BLAKE2B e95b92c68e3c2df49fa0d5d84e35f6575fb80571db290b5969441cc09b6c07dee6b2b887f41a2b1ff1e3c099cda2ce2a4a8c05afbcf9f4dc8acbaed5245b69e4 SHA512 04bbbb9a6891c3bb7a20845010029e6ca979548ff70324c08d3162ebc1fa3a84e8c7e2d453495edd34aba19b7a685f048d5047993103bbf221c88ea36350370c
+DIST rust-1.76.0-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B cd4334fecc17cf03b7333659393004fed4bb895f9b75f93520d1c3e3ee0ce4fcd17d75d748c4a35d31984215c7aec8904ebe3a4ad8bafcd625aef30688a473f7 SHA512 a458372b41c2833bdbd3d6678c35fc23397817b406c409d1ba5e19b4c6246072afff3f938f111382de56f7ff57e660c3eaf3fea0e54871d9af50b52a54f39e41
+DIST rust-1.77.1-aarch64-unknown-linux-gnu.tar.xz 214607592 BLAKE2B 6ebeef47a62eea181808cb2df8d4d01bf1804189bc67e95f1e2091b4c95a7a6d26c4f4c822c312c9e5686e9a15b425f74e345f26e962045b7844b90154a56f53 SHA512 8a3114dbe43744bfec68e24f0f302704e887587b4ff8d22bfc59067f5e952f7ff1984b8f4a663ed8f89001629b82d620fa6b79bc316a6778c968767a12dda592
+DIST rust-1.77.1-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 0d0878a65ac1d2bf84cb614d56ad45e6d18a12ea6ec009839711074e64f9a42825163996ab370456d62005457441b6270c0cf995a0b7f7d32adf718442bff72e SHA512 70f2912c72af705a71d3402e755a8fd2fa8d3a21c2577b8e804a5f35ded57b93520a8c155542acf27022325e2cd7357c0dcf465627934fb23e731c961ca28123
+DIST rust-1.77.1-aarch64-unknown-linux-musl.tar.xz 195295732 BLAKE2B 9a1f0a9de62102dcfe17140cc181f960bfd80f4f84aa6b6f33fe7ec53db20f3819fe27381dbf2cd173db04111a6bee1c062edcfb186ecdddafe4692b5a3e5e63 SHA512 50ebc645127bc3503b97a74343f588bc70c8d24faa553390bd4849570be45dea7f113bbf28da70520bc33ef0be987d4390e6c5eb0955578530cda94c8334cb59
+DIST rust-1.77.1-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 6ad11b9ffbfef668fcc5a3e7536965412e89c1f3051a0410145838813380ebfb475d60d4079ff3acce497e497f4c923fe43d6814473833a6365778860f8318cc SHA512 9cd1617e9f416a70ede723d6809ad6a6afefda5f1cdebfcf62f80b4757c4fe0a90f1977828f707e7d77d0b581d7f170a304cd0a4fa062b5ca78e3a32da03c30c
+DIST rust-1.77.1-arm-unknown-linux-gnueabi.tar.xz 179516112 BLAKE2B b7bf27ee951924461e0d6f98a8d41a2e2ebcbbdfaec5f2c3dd096854c375d68a11eab3fdc1a23a5755138fced76d3d8e2ca53b97e376d93b780bf6e2f21743ac SHA512 5501efe3f2c6bbe5c5955b589244e3a3b12e9537290d8970abedd23336b7ec528e006a4c0951ca80eff83a2da5bdf4238138c72ff421e098a90fb9a473e379e8
+DIST rust-1.77.1-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B e039e3fe7562ef30e45c7402bc356c7a335db6c27f94acf5051ed56fa552edb0e44399988cad183670ba4a5e561a0c5e5fddc5856f0641ce9d685d441ea31958 SHA512 b1250d89e28c5c7abee8f35b733a760decd5e1de910f26d4147eb7472df6d870fe214536560bb58103403b014f3a9402a0095f23bd0529f2ef409bc6f711c8d2
+DIST rust-1.77.1-arm-unknown-linux-gnueabihf.tar.xz 179417532 BLAKE2B 8efd8342a96fb4a284cf65a6f834f7d03f15d4c3ff9fcb80bc12f510bf8a423b723a574086b2e6752aaaf15e15e256530cf560b4f9fd437b3d101b2cacb7c77e SHA512 8fc8703ec59aded64f3dc687686d94749133fb80a8a53b77ffa961826d86cc13e2d18ed34f61dd9f92b9027f8b52882f386e397b6f344ec1f0c3bbbaa01b2818
+DIST rust-1.77.1-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B b7beddcc42687bd1f39cc45c9737ae9403143fdad39d9b9a4cd3594842cdd435547607d24e3ea8f574595d8228974f75772d8d1fabffc22097d3fd1ea0b69bca SHA512 b367086c7a97d672d537e88e185e8af53f11888f674af04dc43eb71d77d482d97b2fe2dda006bc1ed073bfc58a5b8fee19e471b0239c0f41f683c46d6d675b15
+DIST rust-1.77.1-armv7-unknown-linux-gnueabihf.tar.xz 182039096 BLAKE2B cfd58b2abe077e74320742526331c4375aaaf631fd821a461fec9933a163eb8f51132bbbaa872b88efa3ca43355e4d439dcd643d01afb1e5dfa888f2cc6f80fe SHA512 6149118714f8cbd95c55f6e70a9112ec44e73bc51b9d5a0cd646abe04bdd005c901d7a0bd79a79ac2a03fafcd5cdf05fe5f32a297462a434cc33dd24995c2a66
+DIST rust-1.77.1-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B e396676162b17b94a06bf8258662689979f202fefe9ae49d34c33fb58e7b64cfc8034489c05a242193f78c416dabbc134489696e283f75af3592445648b56de5 SHA512 e5570b86cc3c028354cfdda656286471df1b8df244d08549835880706c46b6703c61dafbc761a1e58580b72b215d6d0fde32fbe3c5d001aa5688a6394bf0466c
+DIST rust-1.77.1-i686-unknown-linux-gnu.tar.xz 209041164 BLAKE2B 43f3857319ca1aecee7630358966f8ec96c9806015639190813fe95083a9e49bca0ffea86ba55577b80a72a0e12fd5ddf654f62ed2a8daf7154f753d07d9355d SHA512 807520c014c1923198a2386f4b547cc7718f3b048132462b739c062a19bd7f4cf989bd6245de901fa15bcf71dd7fd0d82c9e25a8f27b244a6ec8cb20f92120d2
+DIST rust-1.77.1-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 42e9770b586134523f377283dc29289786b33b499232110e827f9f091f633f066bc68d3cd56468971766538a4a677b8f8b4c72b0d9e61526047d6d2b0a018a32 SHA512 c2062713dc0f6326d48bfc725aafa596eed7350f1d1ff6ef371394ed10f4e2fa8aae92a3ff3f8e1f3b93a5d36c9d4104c1af19d9923e09ddff74135625217837
+DIST rust-1.77.1-loongarch64-unknown-linux-gnu.tar.xz 161096296 BLAKE2B e7b6d7a4dd579754f0b894d52b579a2dcba9a50cc6107d24abff67c97fdd3b12125a6743f243009b1ce411a4cd8c51bcc68afebad3765e90343695fdd13146f1 SHA512 bbe1a250c475ea7a27ac28c3ba7b75890c1598cf4dc780d32f4363172d1547e3a1d9f8a32c3d0d480c8bd585b663b259a825ea9b9c83910f6889bda497ae4fa6
+DIST rust-1.77.1-loongarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B cc17b68e9361996d1ea57f090aad8e522faa1ce3037353957e46e8d96378c4b049e209928e4585355368e2396dd82923b3942ec719e616c33146f09a3bc27d87 SHA512 aafdce196d69feb10126edb145c45ee27e913ff289d4b72d78b007dac923bb187d3cc65cfe84025982fef438232677f8b7cf26137a00bae6b5accb7afedfc912
+DIST rust-1.77.1-mips-unknown-linux-gnu.tar.xz 68417260 BLAKE2B e011b698ebaf49d1f0ddedc789e3bf185d11b1980876bb01152d8bba18131a0ac6b3851061080ade5d112bd9ee985be837bc8e4576de668c2d72bfd4e54a01ab SHA512 4437ba0a183fcd7e054197a488b0ccac93732d3c170e6e6b23675c3642992a0b3c8188bd439877aa54e07789a7432a1324c6f079a9867faee16f82e9d873b47e
+DIST rust-1.77.1-mips64-unknown-linux-gnuabi64.tar.xz 70368652 BLAKE2B 817338a8101103cfb96f71919a5392c910b9ddd4f8dc47253b3f48e2cd4c2130b7b6507b5ec943b2ea5b52be92f727b7b727722c1b3512c63e0b8c064ed95f4e SHA512 c7966b3152edf1e201926dbe3fc5760342c5fa92ab78dcc9c2ca70a553520b2d249e317d4dc47455468d99ab5ae9617ef44166947610e6733b9a09ddecdf0dea
+DIST rust-1.77.1-mips64el-unknown-linux-gnuabi64.tar.xz 70121872 BLAKE2B b5956d7eda42961e9bf6e1393db737189d672d7104ede410c135884b56e1b7578af2224f22fa857a8c7627e290a1e1008a83202503f1be146c036b2cb41590c3 SHA512 6d14456e11b1c1923c3a1643ff0a15cd93ef2be9282e6e2611235f82b25ad28e1d0e8396fc815052e70373d835a94ee351ebc6d7563676a7d4dcb535cb6dd9ed
+DIST rust-1.77.1-mipsel-unknown-linux-gnu.tar.xz 67429256 BLAKE2B c835aefaabcdac20953b430f4b8e6bba87b7d0073b6f70f6d4e1ff81b6dc88b74c058e55d414d9f67a28b217905552ba2cbe1a91b87dd4d0bed2029f7834cd1a SHA512 dcc37cb47a80bfc6a872c720a801093b43508c6fa65c77473371d9e2e4c2733da65171554a770e58521bdffdb56955a459284e95be07c4b9b0e874a2931c77f5
+DIST rust-1.77.1-powerpc-unknown-linux-gnu.tar.xz 176227252 BLAKE2B 98a7d31aae91114dea653181a708024a7d0ebd2f2baedffb7539d2415da2eeb745f777ae3fc2977d9416444a41b9b676dcb5fb6dfeed894dc512e37c42b612cd SHA512 a509b7ea39d760d5ab7ed5d7f73774e5df40a8d8dda169939c81573ec01ad9c03743e28064797cf2a730718d800d5189b4c9c3af1660794fd0dd48221b24ac5b
+DIST rust-1.77.1-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B c1f2709f17791f5da597df027d5f4104624a002f196b544f1e0fa679e78a019342e74fb13a013439390d0e768a53dba9ce84cfc3753e42c9dddf8f9fe18a8006 SHA512 554080d462a9d414f6d469b861679280abd267217c8e2c08f1b8f774d88cb06129c5aa6308be0cedda0974dd2e5d1204c2285fb097e8a0e1231c2af420e4f6a8
+DIST rust-1.77.1-powerpc64-unknown-linux-gnu.tar.xz 176465264 BLAKE2B 351c7c27e442caef9d71ed2b05d128750ddc179eadb45cb647482215f1573c0903710e5f9930bd916134a9f499c907c087eb784c619f35b0fe2ffd7c8ca5524a SHA512 78370d4cf9a6990da9ac1482439c2b44b7e45704d739fd46bd3623524014fb734d2798bc5903a501dad0de1945f926099e22473db8823ca25d47dd6e7ef3b9be
+DIST rust-1.77.1-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B dd1a1de2274b1f17ff1758df380e26dfb3a8df1fde67a058bb738219e4f33894fde19878e9d230c041016f40a0f2d5d9fd0042dd02e95e7d05cd581b5083f31a SHA512 aaae0135f2a09e9065c27978f26b15f9506c6441fa76ccff50d75f55d5d40f06858f2f1bfb18c3a85fc8dd74659f66b65c60bd0aa23f1f572ca2448d747eec91
+DIST rust-1.77.1-powerpc64le-unknown-linux-gnu.tar.xz 186319612 BLAKE2B def73f2313e3e220b11de9c864512766b5d6cb30f7966307d7671f4ba871515bd6572dc86d8840a9071adae3a28b062ad23e7cff2cfd172800e4c126d9f49f5f SHA512 1b608054eba33ad1d2aad7b17899365b57781e50c7a5283786edad434fa2c36e41ed886cd6ef8926f53cd1b843391fc86d1400a75df924948ce0a8e62eaf8378
+DIST rust-1.77.1-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 092e491e900b0b06dbda931ebf34ceec088b89f9a4663c3d0f2c5d9838cd266deb7d714ca835785db0c2435e7a5572424495e2e9e165c67d83d9b3612924c3bd SHA512 5631fb073ab69bfd7576637417bf2d1cb316407d53dc58228cf1bcfe5111e5db83f6851c07c109aad0c408bc6b00579f6a8f1eb56304055b1faea7fb7b73acfc
+DIST rust-1.77.1-riscv64gc-unknown-linux-gnu.tar.xz 182255808 BLAKE2B 5d23ca6bdb745d991987145d123e206ed21695f3999f78a8bf1d41710a772ab4059ce280a10c275b9c3c6e01729befc2cc3ef977e1a55d1ca356d2c01e0ffd3e SHA512 cdaf9e9d23be2106fb5bc41ce5bf2ad224cb80a1a1377cd580147ffe39f8bd59699af5bbccdf3e4ba174458047f6c62b168c8d5d2375537cde8d02b1fc856920
+DIST rust-1.77.1-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 5326f241da004b358001258ca8a791610fc30a149d053788ff2513a1e470a074b2cf65974391b3f5983ca1a13c08cb5ba3be18ff39c6607d4a71dfbf7d29b044 SHA512 7ba8c061b30d99b535f1e581aa25784ebc97c25491d3648546eb8557b2ad29193e9eb86ed2f0a36b032951b98d7d4a2c7cb39cbb086b28b84038c63bf48fbb3c
+DIST rust-1.77.1-s390x-unknown-linux-gnu.tar.xz 198879112 BLAKE2B 793aef5f0f9b9bda3f928e9eb333334b4e052cfdb1e63f8da31068d79ac7d2244732381198a737fb681dab9e4baa3f03287f7a8835fd069a188bebab68dab3d5 SHA512 20801402fcbad781e0e8adc7871bb21fbc9b2a8e6424616c8a12f70ddc1241b260a7f369fc52b8cb3bd2cda55c6394fd0fbfe5ef377e40e595da854bdeb5be41
+DIST rust-1.77.1-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 058d22ae20cfe466db1c0f684bd16059123d2a440c9c48fae88d2aef34a6996a8025d7a92b1af033f3503cf0de8fbfe20840f544118172117a4ad08bb31ec3e9 SHA512 c55dd529ab66181eecc50efe04a74337a90c50f2c6c27e62cff23d0b874d7cc02e92fa5399145e308e749733b91ebc1a938e576ff9e3d4827473def9b976e17c
+DIST rust-1.77.1-sparc64-unknown-linux-gnu.tar.xz 57708276 BLAKE2B 715c1a42c92e547fa288eedc3ef6994aee4681b59efb718470ba2cf76c224afcfa2018e498ee839207b1fa053734f42b61a61fb18dd8fc082572587a609c8762 SHA512 0af8fa0817dc9b419ee280ed7531f74ba89b424937dc6bfdb66f0499d0d70e86457c5c64111b88d75aee30b40bd61d445aefb1c37f9d6b59e8cf5d05edc2f3e8
+DIST rust-1.77.1-x86_64-unknown-linux-gnu.tar.xz 159040536 BLAKE2B ccfc6a96f1a40efc905d9f8ed59f2d5283be404d433e5242876c62102786c36988a5337b909f288f2289f89e2034643dc88f22f1d895107aceb3b32ef89c8b1d SHA512 60c941aa6f48404409deef014993ea42bc0c3ceb7636cbd84a390f6dbb31ae12c6766324ee3f96739f54b9677bc1e77c20da9d5adb87120236254d3b5898fbd0
+DIST rust-1.77.1-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 1adeaa22c0a80e6b9132fe290272c7713fe03902649fd6a41ccf46fbaa4d6a986540defa7bf34b2b0456bd8eab28a088a30fa23abb82a2cf110d1338aa6a623c SHA512 1d4ad50a386c3f03214439bc8067f2a721c30b9d4aa47a4494f0db32e242293dbf19ae1c5388315eccf377cfa947b2b40084bcba48fbc55a55be673b74074d5d
+DIST rust-1.77.1-x86_64-unknown-linux-musl.tar.xz 234990960 BLAKE2B badccc8785af974d02b63998ff7b4f4b9235cb181cfa44ec35ad682a5c741d3621f4306ad874f11ac14301079558c162088da85414f335b67760f22475d67c2c SHA512 addb62f012787b391403bb25297c0b620c6beb431bd8ef3287a547ba7c31b4e3ccb29decddddf8a34ae849433f64334309b574dcd8743bf8da0efa38feda771f
+DIST rust-1.77.1-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B f1e69cba4d762b98e615b6ddee831193ee915b8a797c48395bff7af3abe13a791267f2fb3b1e1b7df06e6e89497606064dc2fa60ec417bcb67ccc4de7cf5900b SHA512 1aa346a14b8a357b7f747a56d2e718fc15ef3a5095ec6dcaf3381b2d57b170e8b0b604d885d54cd39fad4602928612ddb8754010b4e27060123c67a23def4bd3
+DIST rust-src-1.71.0.tar.xz 2460128 BLAKE2B 3ab6c6cb76a7e18eb0ba085c45f8b1a8bba16e2569962c27187bb415c54d3c5c1032ce4552c52f93bd4ec2512634d8899fd35fbf1a035298a9b621b5af125971 SHA512 fd59a1ced7e950fa14fd7ec9c978043b99e678bda54338f60faaacced36110630385a2bb62af19670ef27db1144810ff60b03dde542273557473b9bb521bcf49
+DIST rust-src-1.71.1.tar.xz 2460244 BLAKE2B e3a5b5bfb808310f96e760aab55310c7a790fa551d248c9c5dbb407e0a80653563d8df73a9e0973aa63d3286aad6c755b78098dd8db2dc1a2ed3cadb926b40e1 SHA512 659cc46e1ece2ddbcf5ab748bae48843bd36353cc633b59e4ac062d843af66919e8d5c39ccb72ebdbf94a0e26a8056ade6bd1c8fe9a936469bd405122a8ae35d
+DIST rust-src-1.73.0.tar.xz 2512888 BLAKE2B 367b68ec0775f49844408d602164634a0bd526dfe1e469b1c8ba9ae5604cbbff2566eb770b7bfb81b2dae892ed1ae16b7441e438726198610ce181c98540955e SHA512 49f493ffd119a0b8b9f7b7f7e049543787eaf96d9beb272d46f2758a35fd648f6523c2edb28864a33fc66337aa07e80a6464ec806307da441a899be4f71bb554
+DIST rust-src-1.74.1.tar.xz 2544036 BLAKE2B d95431b69f102782f51878ff73ce8802cac6dab7909497c3231d1c479b95dc2a618cc6efd8bac9c6bd59a2b10dc6be05199f1e1bd74e45cc640ee52352c29268 SHA512 11467d0936193c5a5be8c2eba1aefe2b7028af48494698863de2c4057d68ce33dcee1fc66dc2d68b1d32f0202ce49e9b906727849de8f8d904dd07930e76d5a4
+DIST rust-src-1.75.0.tar.xz 2570256 BLAKE2B 9db7ccff07ffe6991233e9f530321fd6ba48c561dcf1226537afa70c7d045421d8e83c5300b0866ec6fccfaae96dd67b9f204e9e0e12108c0c766d467cd78909 SHA512 e7565cea2f1658a05237a698e38880df2544319b41b6d8b0805db5f1f94fd3bb4f986967d0440fcdfe3a135e33246f3c747665b964f57ff5942f56133af78cdd
+DIST rust-src-1.76.0.tar.xz 2590884 BLAKE2B d1a6215dab34d7b10c3177d2b248f997d3a846388f3442567572880aa5c5bc51b56398f5d4dc32727cee7c9dbef494430d6534a76b66c4ae5ac4fed07266644d SHA512 39d2fe58fae8c8c5a6cb3fb1ef2a1c7548c018fef6ccea531659fdfecd68a4aa77125299d2cbe5b58e500337b4d074928318fa9ebce358af500d0ef27260e3ca
+DIST rust-src-1.77.1.tar.xz 2618128 BLAKE2B d36f74d3b826a071de8e8a92cfab65348bf1ed7f5fbcabf1994b5e2c99d1fd6d2a936e49aaabb59c44e664a4559cc3c062291cbb381462b9c516fa7ed9d6107d SHA512 a719435636a52b4436afd6dafad7b8112c94b097e2c632fde536155b9977bbffffa8fcb90c6c53675c4d793225917087e5637d36fe250c539e3d7463d90ce28a
diff --git a/dev-lang/rust-bin/metadata.xml b/dev-lang/rust-bin/metadata.xml
index 85a5a106c378..91f4d5850916 100644
--- a/dev-lang/rust-bin/metadata.xml
+++ b/dev-lang/rust-bin/metadata.xml
@@ -1,13 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <email>randy@electronsweatshop.com</email>
+ <name>Randy Barlow</name>
+ </maintainer>
+ <maintainer type="person" proxied="yes">
+ <email>navi@vlhl.dev</email>
+ <name>Anna Figueiredo Gomes</name>
+ </maintainer>
<maintainer type="project">
<email>rust@gentoo.org</email>
<name>Rust Project</name>
</maintainer>
<use>
<flag name="clippy">Install clippy, Rust code linter</flag>
- <flag name="rls">Install rls, Rust Language Server (used with IDEs supporting RLS protocol)</flag>
+ <flag name="profiler">Build the profiler runtime and rust-demangler tool (needed for '-C profile-generate' or '-C instrument-coverage' codegen opts)</flag>
<flag name="rustfmt">Install rustfmt, Rust code formatter</flag>
+ <flag name="rust-analyzer">Install rust-analyzer, A Rust compiler front-end for IDEs (language server)</flag>
+ <flag name="rust-src">Install rust-src, needed by developer tools and for build-std (cross)</flag>
</use>
+ <upstream>
+ <remote-id type="github">rust-lang/rust</remote-id>
+ </upstream>
</pkgmetadata>
diff --git a/dev-lang/rust-bin/rust-bin-1.46.0.ebuild b/dev-lang/rust-bin/rust-bin-1.46.0.ebuild
deleted file mode 100644
index 6f954fe44c5e..000000000000
--- a/dev-lang/rust-bin/rust-bin-1.46.0.ebuild
+++ /dev/null
@@ -1,187 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit bash-completion-r1 rust-toolchain toolchain-funcs multilib-minimal
-
-MY_P="rust-${PV}"
-
-DESCRIPTION="Systems programming language from Mozilla"
-HOMEPAGE="https://www.rust-lang.org/"
-SRC_URI="$(rust_all_arch_uris ${MY_P})"
-
-LICENSE="|| ( MIT Apache-2.0 ) BSD-1 BSD-2 BSD-4 UoI-NCSA"
-SLOT="stable"
-KEYWORDS="amd64 arm arm64 ppc64 x86"
-IUSE="clippy cpu_flags_x86_sse2 doc rls rustfmt"
-
-DEPEND=""
-RDEPEND=">=app-eselect/eselect-rust-20190311"
-
-REQUIRED_USE="x86? ( cpu_flags_x86_sse2 )"
-
-QA_PREBUILT="
- opt/${P}/bin/*-${PV}
- opt/${P}/lib/*.so
- opt/${P}/lib/rustlib/*/bin/*
- opt/${P}/lib/rustlib/*/lib/*.so
- opt/${P}/lib/rustlib/*/lib/*.rlib*
-"
-
-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() {
- default
- mv "${WORKDIR}/${MY_P}-$(rust_abi)" "${S}" || die
-}
-
-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"
- ./install.sh \
- --components="${components}" \
- --disable-verify \
- --prefix="${ED}/opt/${P}" \
- --mandir="${ED}/opt/${P}/man" \
- --disable-ldconfig \
- || die
-
- local rustc=rustc-bin-${PV}
- local rustdoc=rustdoc-bin-${PV}
- local rustgdb=rust-gdb-bin-${PV}
- local rustgdbgui=rust-gdbgui-bin-${PV}
- local rustlldb=rust-lldb-bin-${PV}
-
- mv "${ED}/opt/${P}/bin/rustc" "${ED}/opt/${P}/bin/${rustc}" || die
- mv "${ED}/opt/${P}/bin/rustdoc" "${ED}/opt/${P}/bin/${rustdoc}" || die
- mv "${ED}/opt/${P}/bin/rust-gdb" "${ED}/opt/${P}/bin/${rustgdb}" || die
- mv "${ED}/opt/${P}/bin/rust-gdbgui" "${ED}/opt/${P}/bin/${rustgdbgui}" || die
- mv "${ED}/opt/${P}/bin/rust-lldb" "${ED}/opt/${P}/bin/${rustlldb}" || die
-
- dosym "${rustc}" "/opt/${P}/bin/rustc"
- dosym "${rustdoc}" "/opt/${P}/bin/rustdoc"
- dosym "${rustgdb}" "/opt/${P}/bin/rust-gdb"
- dosym "${rustgdbgui}" "/opt/${P}/bin/rust-gdbgui"
- dosym "${rustlldb}" "/opt/${P}/bin/rust-lldb"
-
- dosym "../../opt/${P}/bin/${rustc}" "/usr/bin/${rustc}"
- dosym "../../opt/${P}/bin/${rustdoc}" "/usr/bin/${rustdoc}"
- dosym "../../opt/${P}/bin/${rustgdb}" "/usr/bin/${rustgdb}"
- dosym "../../opt/${P}/bin/${rustgdbgui}" "/usr/bin/${rustgdbgui}"
- dosym "../../opt/${P}/bin/${rustlldb}" "/usr/bin/${rustlldb}"
-
- local cargo=cargo-bin-${PV}
- mv "${ED}/opt/${P}/bin/cargo" "${ED}/opt/${P}/bin/${cargo}" || die
- dosym "${cargo}" "/opt/${P}/bin/cargo"
- dosym "../../opt/${P}/bin/${cargo}" "/usr/bin/${cargo}"
-
- if use clippy; then
- local clippy_driver=clippy-driver-bin-${PV}
- local cargo_clippy=cargo-clippy-bin-${PV}
- mv "${ED}/opt/${P}/bin/clippy-driver" "${ED}/opt/${P}/bin/${clippy_driver}" || die
- mv "${ED}/opt/${P}/bin/cargo-clippy" "${ED}/opt/${P}/bin/${cargo_clippy}" || die
- dosym "${clippy_driver}" "/opt/${P}/bin/clippy-driver"
- dosym "${cargo_clippy}" "/opt/${P}/bin/cargo-clippy"
- dosym "../../opt/${P}/bin/${clippy_driver}" "/usr/bin/${clippy_driver}"
- dosym "../../opt/${P}/bin/${cargo_clippy}" "/usr/bin/${cargo_clippy}"
- fi
- if use rls; then
- local rls=rls-bin-${PV}
- mv "${ED}/opt/${P}/bin/rls" "${ED}/opt/${P}/bin/${rls}" || die
-
- dosym "${rls}" "/opt/${P}/bin/rls"
- dosym "../../opt/${P}/bin/${rls}" "/usr/bin/${rls}"
- fi
- if use rustfmt; then
- local rustfmt=rustfmt-bin-${PV}
- local cargo_fmt=cargo-fmt-bin-${PV}
- mv "${ED}/opt/${P}/bin/rustfmt" "${ED}/opt/${P}/bin/${rustfmt}" || die
- mv "${ED}/opt/${P}/bin/cargo-fmt" "${ED}/opt/${P}/bin/${cargo_fmt}" || die
- dosym "${rustfmt}" "/opt/${P}/bin/rustfmt"
- dosym "${cargo_fmt}" "/opt/${P}/bin/cargo-fmt"
- dosym "../../opt/${P}/bin/${rustfmt}" "/usr/bin/${rustfmt}"
- dosym "../../opt/${P}/bin/${cargo_fmt}" "/usr/bin/${cargo_fmt}"
- fi
-
- cat <<-EOF > "${T}"/50${P}
- LDPATH="/opt/${P}/lib"
- MANPATH="/opt/${P}/man"
- EOF
- doenvd "${T}"/50${P}
-
- # note: eselect-rust adds EROOT to all paths below
- cat <<-EOF > "${T}/provider-${P}"
- /usr/bin/rustdoc
- /usr/bin/rust-gdb
- /usr/bin/rust-gdbgui
- /usr/bin/rust-lldb
- EOF
- echo /usr/bin/cargo >> "${T}/provider-${P}"
- 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
-}
-
-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
-
- if use elibc_musl; then
- ewarn "${PN} on *-musl targets is configured with crt-static"
- ewarn ""
- ewarn "you will need to set RUSTFLAGS=\"-C target-feature=-crt-static\" in make.conf"
- ewarn "to use it with portage, otherwise you may see failures like"
- ewarn "error: cannot produce proc-macro for serde_derive as the target "
- ewarn "x86_64-unknown-linux-musl does not support these crate types"
- fi
-}
-
-pkg_postrm() {
- eselect rust cleanup
-}
diff --git a/dev-lang/rust-bin/rust-bin-1.47.0-r1.ebuild b/dev-lang/rust-bin/rust-bin-1.47.0-r1.ebuild
deleted file mode 100644
index 1668d61bc952..000000000000
--- a/dev-lang/rust-bin/rust-bin-1.47.0-r1.ebuild
+++ /dev/null
@@ -1,156 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit bash-completion-r1 rust-toolchain toolchain-funcs multilib-minimal
-
-MY_P="rust-${PV}"
-
-DESCRIPTION="Systems programming language from Mozilla"
-HOMEPAGE="https://www.rust-lang.org/"
-SRC_URI="$(rust_all_arch_uris ${MY_P})"
-
-LICENSE="|| ( MIT Apache-2.0 ) BSD-1 BSD-2 BSD-4 UoI-NCSA"
-SLOT="stable"
-KEYWORDS="amd64 ~arm ~arm64 ppc64 x86"
-IUSE="clippy cpu_flags_x86_sse2 doc rls rustfmt"
-
-DEPEND=""
-RDEPEND=">=app-eselect/eselect-rust-20190311"
-
-REQUIRED_USE="x86? ( cpu_flags_x86_sse2 )"
-
-QA_PREBUILT="
- opt/${P}/bin/.*
- opt/${P}/lib/.*.so
- opt/${P}/lib/rustlib/.*/bin/.*
- opt/${P}/lib/rustlib/.*/lib/.*
-"
-
-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() {
- default
- mv "${WORKDIR}/${MY_P}-$(rust_abi)" "${S}" || die
-}
-
-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"
- ./install.sh \
- --components="${components}" \
- --disable-verify \
- --prefix="${ED}/opt/${P}" \
- --mandir="${ED}/opt/${P}/man" \
- --disable-ldconfig \
- || die
-
- 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}"
- mv -v "${ED}/opt/${P}/bin/${i}" "${ED}/opt/${P}/bin/${ver_i}"
- ln -v "${ED}/opt/${P}/bin/${i}-bin-${PV}" "${ED}/opt/${P}/bin/${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}"
-
- cat <<-_EOF_ > "${T}/50${P}"
- LDPATH="${EPREFIX}/usr/lib/rust/lib"
- MANPATH="${EPREFIX}/usr/lib/rust/man"
- $(usex elibc_musl 'CARGO_TARGET_X86_64_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
-}
-
-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-bin/rust-bin-1.48.0.ebuild b/dev-lang/rust-bin/rust-bin-1.48.0.ebuild
deleted file mode 100644
index 6e85b97e8720..000000000000
--- a/dev-lang/rust-bin/rust-bin-1.48.0.ebuild
+++ /dev/null
@@ -1,155 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit bash-completion-r1 rust-toolchain toolchain-funcs multilib-minimal
-
-MY_P="rust-${PV}"
-
-DESCRIPTION="Systems programming language from Mozilla"
-HOMEPAGE="https://www.rust-lang.org/"
-SRC_URI="$(rust_all_arch_uris ${MY_P})"
-
-LICENSE="|| ( MIT Apache-2.0 ) BSD-1 BSD-2 BSD-4 UoI-NCSA"
-SLOT="stable"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
-IUSE="clippy cpu_flags_x86_sse2 doc rls rustfmt"
-
-DEPEND=""
-RDEPEND=">=app-eselect/eselect-rust-20190311"
-
-REQUIRED_USE="x86? ( cpu_flags_x86_sse2 )"
-
-QA_PREBUILT="
- opt/${P}/bin/.*
- opt/${P}/lib/.*.so
- opt/${P}/lib/rustlib/.*/bin/.*
- opt/${P}/lib/rustlib/.*/lib/.*
-"
-
-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() {
- default
- mv "${WORKDIR}/${MY_P}-$(rust_abi)" "${S}" || die
-}
-
-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"
- ./install.sh \
- --components="${components}" \
- --disable-verify \
- --prefix="${ED}/opt/${P}" \
- --mandir="${ED}/opt/${P}/man" \
- --disable-ldconfig \
- || die
-
- 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}"
-
- cat <<-_EOF_ > "${T}/50${P}"
- LDPATH="${EPREFIX}/usr/lib/rust/lib"
- MANPATH="${EPREFIX}/usr/lib/rust/man"
- $(usex elibc_musl 'CARGO_TARGET_X86_64_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
-}
-
-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-bin/rust-bin-1.71.0.ebuild b/dev-lang/rust-bin/rust-bin-1.71.0.ebuild
new file mode 100644
index 000000000000..28c5fc7d0f1c
--- /dev/null
+++ b/dev-lang/rust-bin/rust-bin-1.71.0.ebuild
@@ -0,0 +1,230 @@
+# Copyright 1999-2024 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%/}/2023-07-13/rust-src-${PV}.tar.xz"
+GENTOO_BIN_BASEURI="https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}" # omit leading slash
+
+DESCRIPTION="Language empowering everyone to build reliable and efficient software"
+HOMEPAGE="https://www.rust-lang.org/"
+SRC_URI="$(rust_all_arch_uris ${MY_P})
+ rust-src? ( ${MY_SRC_URI} )
+"
+# Keep this separate to allow easy commenting out if not yet built
+SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/${MY_P}-sparc64-unknown-linux-gnu.tar.xz -> ${MY_P}-sparc64-unknown-linux-gnu.sam.tar.xz ) "
+
+LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4 UoI-NCSA"
+SLOT="stable"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="big-endian clippy cpu_flags_x86_sse2 doc prefix rust-analyzer rust-src rustfmt"
+
+DEPEND=""
+
+RDEPEND="
+ >=app-eselect/eselect-rust-20190311
+ dev-libs/openssl
+ sys-apps/lsb-release
+ sys-devel/gcc:*
+"
+
+BDEPEND="
+ prefix? ( dev-util/patchelf )
+ verify-sig? ( sec-keys/openpgp-keys-rust )
+"
+
+REQUIRED_USE="x86? ( cpu_flags_x86_sse2 )"
+
+# stripping rust may break it (at least on x86_64)
+# https://github.com/rust-lang/rust/issues/112286
+RESTRICT="strip"
+
+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="/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 rustfmt && components="${components},rustfmt-preview"
+ use rust-analyzer && components="${components},rust-analyzer-preview,${analysis}"
+ # 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 rustfmt && symlinks+=( rustfmt cargo-fmt )
+ use rust-analyzer && symlinks+=( rust-analyzer )
+
+ 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}" || die
+ 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}"
+
+ # make all capital underscored variable
+ local CARGO_TRIPLET="$(rust_abi)"
+ CARGO_TRIPLET="${CARGO_TRIPLET//-/_}"
+ CARGO_TRIPLET="${CARGO_TRIPLET^^}"
+ cat <<-_EOF_ > "${T}/50${P}"
+ LDPATH="${EPREFIX}/usr/lib/rust/lib"
+ MANPATH="${EPREFIX}/usr/lib/rust/man"
+ $(usev elibc_musl "CARGO_TARGET_${CARGO_TRIPLET}_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 rustfmt; then
+ echo /usr/bin/rustfmt >> "${T}/provider-${P}"
+ echo /usr/bin/cargo-fmt >> "${T}/provider-${P}"
+ fi
+ if use rust-analyzer; then
+ echo /usr/bin/rust-analyzer >> "${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-bin/rust-bin-1.71.1.ebuild b/dev-lang/rust-bin/rust-bin-1.71.1.ebuild
new file mode 100644
index 000000000000..9a215ca8726c
--- /dev/null
+++ b/dev-lang/rust-bin/rust-bin-1.71.1.ebuild
@@ -0,0 +1,230 @@
+# Copyright 1999-2024 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%/}/2023-08-03/rust-src-${PV}.tar.xz"
+GENTOO_BIN_BASEURI="https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}" # omit leading slash
+
+DESCRIPTION="Language empowering everyone to build reliable and efficient software"
+HOMEPAGE="https://www.rust-lang.org/"
+SRC_URI="$(rust_all_arch_uris ${MY_P})
+ rust-src? ( ${MY_SRC_URI} )
+"
+# Keep this separate to allow easy commenting out if not yet built
+SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/${MY_P}-sparc64-unknown-linux-gnu.tar.xz -> ${MY_P}-sparc64-unknown-linux-gnu.sam.tar.xz ) "
+
+LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4 UoI-NCSA"
+SLOT="stable"
+KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86"
+IUSE="big-endian clippy cpu_flags_x86_sse2 doc prefix rust-analyzer rust-src rustfmt"
+
+DEPEND=""
+
+RDEPEND="
+ >=app-eselect/eselect-rust-20190311
+ dev-libs/openssl
+ sys-apps/lsb-release
+ sys-devel/gcc:*
+"
+
+BDEPEND="
+ prefix? ( dev-util/patchelf )
+ verify-sig? ( sec-keys/openpgp-keys-rust )
+"
+
+REQUIRED_USE="x86? ( cpu_flags_x86_sse2 )"
+
+# stripping rust may break it (at least on x86_64)
+# https://github.com/rust-lang/rust/issues/112286
+RESTRICT="strip"
+
+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="/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 rustfmt && components="${components},rustfmt-preview"
+ use rust-analyzer && components="${components},rust-analyzer-preview,${analysis}"
+ # 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 rustfmt && symlinks+=( rustfmt cargo-fmt )
+ use rust-analyzer && symlinks+=( rust-analyzer )
+
+ 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}" || die
+ 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}"
+
+ # make all capital underscored variable
+ local CARGO_TRIPLET="$(rust_abi)"
+ CARGO_TRIPLET="${CARGO_TRIPLET//-/_}"
+ CARGO_TRIPLET="${CARGO_TRIPLET^^}"
+ cat <<-_EOF_ > "${T}/50${P}"
+ LDPATH="${EPREFIX}/usr/lib/rust/lib"
+ MANPATH="${EPREFIX}/usr/lib/rust/man"
+ $(usev elibc_musl "CARGO_TARGET_${CARGO_TRIPLET}_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 rustfmt; then
+ echo /usr/bin/rustfmt >> "${T}/provider-${P}"
+ echo /usr/bin/cargo-fmt >> "${T}/provider-${P}"
+ fi
+ if use rust-analyzer; then
+ echo /usr/bin/rust-analyzer >> "${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-bin/rust-bin-1.73.0.ebuild b/dev-lang/rust-bin/rust-bin-1.73.0.ebuild
new file mode 100644
index 000000000000..471fb310cfbf
--- /dev/null
+++ b/dev-lang/rust-bin/rust-bin-1.73.0.ebuild
@@ -0,0 +1,240 @@
+# Copyright 1999-2024 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%/}/2023-10-05/rust-src-${PV}.tar.xz"
+GENTOO_BIN_BASEURI="https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}" # omit leading slash
+
+DESCRIPTION="Language empowering everyone to build reliable and efficient software"
+HOMEPAGE="https://www.rust-lang.org/"
+SRC_URI="$(rust_all_arch_uris ${MY_P})
+ rust-src? ( ${MY_SRC_URI} )
+"
+# Keep this separate to allow easy commenting out if not yet built
+SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/${MY_P}-sparc64-unknown-linux-gnu.tar.xz ) "
+#SRC_URI+=" mips? (
+# abi_mips_o32? (
+# big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips-unknown-linux-gnu.tar.xz )
+# !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mipsel-unknown-linux-gnu.tar.xz )
+# )
+# abi_mips_n64? (
+# big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64-unknown-linux-gnuabi64.tar.xz )
+# !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64el-unknown-linux-gnuabi64.tar.xz )
+# )
+#)"
+
+LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4"
+SLOT="stable"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="big-endian clippy cpu_flags_x86_sse2 doc prefix rust-analyzer rust-src rustfmt"
+
+DEPEND=""
+
+RDEPEND="
+ >=app-eselect/eselect-rust-20190311
+ dev-libs/openssl
+ sys-apps/lsb-release
+ sys-devel/gcc:*
+"
+
+BDEPEND="
+ prefix? ( dev-util/patchelf )
+ verify-sig? ( sec-keys/openpgp-keys-rust )
+"
+
+REQUIRED_USE="x86? ( cpu_flags_x86_sse2 )"
+
+# stripping rust may break it (at least on x86_64)
+# https://github.com/rust-lang/rust/issues/112286
+RESTRICT="strip"
+
+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="/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 rustfmt && components="${components},rustfmt-preview"
+ use rust-analyzer && components="${components},rust-analyzer-preview,${analysis}"
+ # 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 rustfmt && symlinks+=( rustfmt cargo-fmt )
+ use rust-analyzer && symlinks+=( rust-analyzer )
+
+ 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}" || die
+ 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}"
+
+ # make all capital underscored variable
+ local CARGO_TRIPLET="$(rust_abi)"
+ CARGO_TRIPLET="${CARGO_TRIPLET//-/_}"
+ CARGO_TRIPLET="${CARGO_TRIPLET^^}"
+ cat <<-_EOF_ > "${T}/50${P}"
+ LDPATH="${EPREFIX}/usr/lib/rust/lib"
+ MANPATH="${EPREFIX}/usr/lib/rust/man"
+ $(usev elibc_musl "CARGO_TARGET_${CARGO_TRIPLET}_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 rustfmt; then
+ echo /usr/bin/rustfmt >> "${T}/provider-${P}"
+ echo /usr/bin/cargo-fmt >> "${T}/provider-${P}"
+ fi
+ if use rust-analyzer; then
+ echo /usr/bin/rust-analyzer >> "${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-bin/rust-bin-1.74.1.ebuild b/dev-lang/rust-bin/rust-bin-1.74.1.ebuild
new file mode 100644
index 000000000000..fa8a5ce43aff
--- /dev/null
+++ b/dev-lang/rust-bin/rust-bin-1.74.1.ebuild
@@ -0,0 +1,240 @@
+# Copyright 1999-2024 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%/}/2023-12-07/rust-src-${PV}.tar.xz"
+GENTOO_BIN_BASEURI="https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}" # omit leading slash
+
+DESCRIPTION="Language empowering everyone to build reliable and efficient software"
+HOMEPAGE="https://www.rust-lang.org/"
+SRC_URI="$(rust_all_arch_uris ${MY_P})
+ rust-src? ( ${MY_SRC_URI} )
+"
+# Keep this separate to allow easy commenting out if not yet built
+SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/${MY_P}-sparc64-unknown-linux-gnu.tar.xz ) "
+#SRC_URI+=" mips? (
+# abi_mips_o32? (
+# big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips-unknown-linux-gnu.tar.xz )
+# !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mipsel-unknown-linux-gnu.tar.xz )
+# )
+# abi_mips_n64? (
+# big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64-unknown-linux-gnuabi64.tar.xz )
+# !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64el-unknown-linux-gnuabi64.tar.xz )
+# )
+#)"
+
+LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4"
+SLOT="stable"
+KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~s390 sparc x86"
+IUSE="big-endian clippy cpu_flags_x86_sse2 doc prefix rust-analyzer rust-src rustfmt"
+
+DEPEND=""
+
+RDEPEND="
+ >=app-eselect/eselect-rust-20190311
+ dev-libs/openssl
+ sys-apps/lsb-release
+ sys-devel/gcc:*
+"
+
+BDEPEND="
+ prefix? ( dev-util/patchelf )
+ verify-sig? ( sec-keys/openpgp-keys-rust )
+"
+
+REQUIRED_USE="x86? ( cpu_flags_x86_sse2 )"
+
+# stripping rust may break it (at least on x86_64)
+# https://github.com/rust-lang/rust/issues/112286
+RESTRICT="strip"
+
+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="/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 rustfmt && components="${components},rustfmt-preview"
+ use rust-analyzer && components="${components},rust-analyzer-preview,${analysis}"
+ # 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 rustfmt && symlinks+=( rustfmt cargo-fmt )
+ use rust-analyzer && symlinks+=( rust-analyzer )
+
+ 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}" || die
+ 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}"
+
+ # make all capital underscored variable
+ local CARGO_TRIPLET="$(rust_abi)"
+ CARGO_TRIPLET="${CARGO_TRIPLET//-/_}"
+ CARGO_TRIPLET="${CARGO_TRIPLET^^}"
+ cat <<-_EOF_ > "${T}/50${P}"
+ LDPATH="${EPREFIX}/usr/lib/rust/lib"
+ MANPATH="${EPREFIX}/usr/lib/rust/man"
+ $(usev elibc_musl "CARGO_TARGET_${CARGO_TRIPLET}_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 rustfmt; then
+ echo /usr/bin/rustfmt >> "${T}/provider-${P}"
+ echo /usr/bin/cargo-fmt >> "${T}/provider-${P}"
+ fi
+ if use rust-analyzer; then
+ echo /usr/bin/rust-analyzer >> "${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-bin/rust-bin-1.75.0.ebuild b/dev-lang/rust-bin/rust-bin-1.75.0.ebuild
new file mode 100644
index 000000000000..30174fe2be2c
--- /dev/null
+++ b/dev-lang/rust-bin/rust-bin-1.75.0.ebuild
@@ -0,0 +1,240 @@
+# Copyright 1999-2024 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%/}/2023-12-28/rust-src-${PV}.tar.xz"
+GENTOO_BIN_BASEURI="https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}" # omit leading slash
+
+DESCRIPTION="Language empowering everyone to build reliable and efficient software"
+HOMEPAGE="https://www.rust-lang.org/"
+SRC_URI="$(rust_all_arch_uris ${MY_P})
+ rust-src? ( ${MY_SRC_URI} )
+"
+# Keep this separate to allow easy commenting out if not yet built
+SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/${MY_P}-sparc64-unknown-linux-gnu.tar.xz ) "
+#SRC_URI+=" mips? (
+# abi_mips_o32? (
+# big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips-unknown-linux-gnu.tar.xz )
+# !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mipsel-unknown-linux-gnu.tar.xz )
+# )
+# abi_mips_n64? (
+# big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64-unknown-linux-gnuabi64.tar.xz )
+# !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64el-unknown-linux-gnuabi64.tar.xz )
+# )
+#)"
+
+LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4"
+SLOT="stable"
+KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~s390 sparc x86"
+IUSE="big-endian clippy cpu_flags_x86_sse2 doc prefix rust-analyzer rust-src rustfmt"
+
+DEPEND=""
+
+RDEPEND="
+ >=app-eselect/eselect-rust-20190311
+ dev-libs/openssl
+ sys-apps/lsb-release
+ sys-devel/gcc:*
+"
+
+BDEPEND="
+ prefix? ( dev-util/patchelf )
+ verify-sig? ( sec-keys/openpgp-keys-rust )
+"
+
+REQUIRED_USE="x86? ( cpu_flags_x86_sse2 )"
+
+# stripping rust may break it (at least on x86_64)
+# https://github.com/rust-lang/rust/issues/112286
+RESTRICT="strip"
+
+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="/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 rustfmt && components="${components},rustfmt-preview"
+ use rust-analyzer && components="${components},rust-analyzer-preview,${analysis}"
+ # 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 rustfmt && symlinks+=( rustfmt cargo-fmt )
+ use rust-analyzer && symlinks+=( rust-analyzer )
+
+ 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}" || die
+ 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}"
+
+ # make all capital underscored variable
+ local CARGO_TRIPLET="$(rust_abi)"
+ CARGO_TRIPLET="${CARGO_TRIPLET//-/_}"
+ CARGO_TRIPLET="${CARGO_TRIPLET^^}"
+ cat <<-_EOF_ > "${T}/50${P}"
+ LDPATH="${EPREFIX}/usr/lib/rust/lib"
+ MANPATH="${EPREFIX}/usr/lib/rust/man"
+ $(usev elibc_musl "CARGO_TARGET_${CARGO_TRIPLET}_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 rustfmt; then
+ echo /usr/bin/rustfmt >> "${T}/provider-${P}"
+ echo /usr/bin/cargo-fmt >> "${T}/provider-${P}"
+ fi
+ if use rust-analyzer; then
+ echo /usr/bin/rust-analyzer >> "${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-bin/rust-bin-1.76.0.ebuild b/dev-lang/rust-bin/rust-bin-1.76.0.ebuild
new file mode 100644
index 000000000000..51d5cfccb56a
--- /dev/null
+++ b/dev-lang/rust-bin/rust-bin-1.76.0.ebuild
@@ -0,0 +1,245 @@
+# Copyright 1999-2024 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%/}/2024-02-08/rust-src-${PV}.tar.xz"
+GENTOO_BIN_BASEURI="https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}" # omit leading slash
+
+DESCRIPTION="Language empowering everyone to build reliable and efficient software"
+HOMEPAGE="https://www.rust-lang.org/"
+SRC_URI="$(rust_all_arch_uris ${MY_P})
+ rust-src? ( ${MY_SRC_URI} )
+"
+# Keep this separate to allow easy commenting out if not yet built
+SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/${MY_P}-sparc64-unknown-linux-gnu.tar.xz ) "
+#SRC_URI+=" mips? (
+# abi_mips_o32? (
+# big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips-unknown-linux-gnu.tar.xz )
+# !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mipsel-unknown-linux-gnu.tar.xz )
+# )
+# abi_mips_n64? (
+# big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64-unknown-linux-gnuabi64.tar.xz )
+# !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64el-unknown-linux-gnuabi64.tar.xz )
+# )
+#)"
+
+LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4"
+SLOT="stable"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="big-endian clippy cpu_flags_x86_sse2 doc prefix profiler rust-analyzer rust-src rustfmt"
+
+DEPEND=""
+
+RDEPEND="
+ >=app-eselect/eselect-rust-20190311
+ dev-libs/openssl
+ sys-apps/lsb-release
+ sys-devel/gcc:*
+"
+
+BDEPEND="
+ prefix? ( dev-util/patchelf )
+ verify-sig? ( sec-keys/openpgp-keys-rust )
+"
+
+REQUIRED_USE="x86? ( cpu_flags_x86_sse2 )"
+
+# stripping rust may break it (at least on x86_64)
+# https://github.com/rust-lang/rust/issues/112286
+RESTRICT="strip"
+
+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="/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 profiler && components="${components},rust-demangler-preview"
+ use rustfmt && components="${components},rustfmt-preview"
+ use rust-analyzer && components="${components},rust-analyzer-preview,${analysis}"
+ # 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 profiler && symlinks+=( rust-demangler )
+ use rustfmt && symlinks+=( rustfmt cargo-fmt )
+ use rust-analyzer && symlinks+=( rust-analyzer )
+
+ 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}" || die
+ 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}"
+
+ # make all capital underscored variable
+ local CARGO_TRIPLET="$(rust_abi)"
+ CARGO_TRIPLET="${CARGO_TRIPLET//-/_}"
+ CARGO_TRIPLET="${CARGO_TRIPLET^^}"
+ cat <<-_EOF_ > "${T}/50${P}"
+ LDPATH="${EPREFIX}/usr/lib/rust/lib"
+ MANPATH="${EPREFIX}/usr/lib/rust/man"
+ $(usev elibc_musl "CARGO_TARGET_${CARGO_TRIPLET}_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 profiler; then
+ echo /usr/bin/rust-demangler >> "${T}/provider-${P}"
+ fi
+ if use rustfmt; then
+ echo /usr/bin/rustfmt >> "${T}/provider-${P}"
+ echo /usr/bin/cargo-fmt >> "${T}/provider-${P}"
+ fi
+ if use rust-analyzer; then
+ echo /usr/bin/rust-analyzer >> "${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-bin/rust-bin-1.77.1.ebuild b/dev-lang/rust-bin/rust-bin-1.77.1.ebuild
new file mode 100644
index 000000000000..3849d0136667
--- /dev/null
+++ b/dev-lang/rust-bin/rust-bin-1.77.1.ebuild
@@ -0,0 +1,245 @@
+# Copyright 1999-2024 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%/}/2024-03-28/rust-src-${PV}.tar.xz"
+GENTOO_BIN_BASEURI="https://dev.gentoo.org/~arthurzam/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} )
+"
+# Keep this separate to allow easy commenting out if not yet built
+SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/${MY_P}-sparc64-unknown-linux-gnu.tar.xz ) "
+SRC_URI+=" mips? (
+ abi_mips_o32? (
+ big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips-unknown-linux-gnu.tar.xz )
+ !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mipsel-unknown-linux-gnu.tar.xz )
+ )
+ abi_mips_n64? (
+ big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64-unknown-linux-gnuabi64.tar.xz )
+ !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64el-unknown-linux-gnuabi64.tar.xz )
+ )
+)"
+
+LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4"
+SLOT="stable"
+KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86"
+IUSE="big-endian clippy cpu_flags_x86_sse2 doc prefix profiler rust-analyzer rust-src rustfmt"
+
+DEPEND=""
+
+RDEPEND="
+ >=app-eselect/eselect-rust-20190311
+ dev-libs/openssl
+ sys-apps/lsb-release
+ sys-devel/gcc:*
+"
+
+BDEPEND="
+ prefix? ( dev-util/patchelf )
+ verify-sig? ( sec-keys/openpgp-keys-rust )
+"
+
+REQUIRED_USE="x86? ( cpu_flags_x86_sse2 )"
+
+# stripping rust may break it (at least on x86_64)
+# https://github.com/rust-lang/rust/issues/112286
+RESTRICT="strip"
+
+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="/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 profiler && components="${components},rust-demangler-preview"
+ use rustfmt && components="${components},rustfmt-preview"
+ use rust-analyzer && components="${components},rust-analyzer-preview,${analysis}"
+ # 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 profiler && symlinks+=( rust-demangler )
+ use rustfmt && symlinks+=( rustfmt cargo-fmt )
+ use rust-analyzer && symlinks+=( rust-analyzer )
+
+ 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}" || die
+ 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}"
+
+ # make all capital underscored variable
+ local CARGO_TRIPLET="$(rust_abi)"
+ CARGO_TRIPLET="${CARGO_TRIPLET//-/_}"
+ CARGO_TRIPLET="${CARGO_TRIPLET^^}"
+ cat <<-_EOF_ > "${T}/50${P}"
+ LDPATH="${EPREFIX}/usr/lib/rust/lib"
+ MANPATH="${EPREFIX}/usr/lib/rust/man"
+ $(usev elibc_musl "CARGO_TARGET_${CARGO_TRIPLET}_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 profiler; then
+ echo /usr/bin/rust-demangler >> "${T}/provider-${P}"
+ fi
+ if use rustfmt; then
+ echo /usr/bin/rustfmt >> "${T}/provider-${P}"
+ echo /usr/bin/cargo-fmt >> "${T}/provider-${P}"
+ fi
+ if use rust-analyzer; then
+ echo /usr/bin/rust-analyzer >> "${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 baa93077e9d3..1d9c9d33d4a6 100644
--- a/dev-lang/rust/Manifest
+++ b/dev-lang/rust/Manifest
@@ -1,45 +1,188 @@
-DIST rust-1.45.1-aarch64-unknown-linux-gnu.tar.xz 110598096 BLAKE2B a3defd33d2c223012c9eb7b094c77f338ae9beb8661412966a62b4bc868175cf91489f4328a8dc7d0b84b892dad713d2c4f4d180c55dbcd2ffd58c3920585e84 SHA512 fd64aaa3d8137d62c838f0ef554ff159c84263a4734556c0e4ef911d3f87921f846d70d76983fe8ebe9679477915255ceea69c8a9769797893827d5d67e97b0b
-DIST rust-1.45.1-arm-unknown-linux-gnueabi.tar.xz 115140648 BLAKE2B 537fe3874c0b09b8cad304c09ca36824cd77916508e7527b9b53a3a8a37ddeab3e760bb1f40c185a91a1eeba7953d7d9d2687e1d341b0833e2a129994e4a9014 SHA512 a3c36dee2f7cda77dd307ad61065c7ce20a433689a3396d8c286b07f0f2aea666881dd4089e2332a0793a51a72189928919a477e72e7f44a64b41101c65cf9ed
-DIST rust-1.45.1-arm-unknown-linux-gnueabihf.tar.xz 113215036 BLAKE2B 36cabfcf77dd533b7f5f89dd5b94244d148cc4c6e19c76a9d677c01a4daffd8075f6842b98314f5ab37c66b223901cfe8a16e7637f3f805f5e75c705979fe8e4 SHA512 770fa7b73fc08979da63f83155cd424b0b7a543a5e6c47a2cb20aeb4f3470360622b70adc9d527a9316bc6b388a696d60c9de9119fe9be448d26cd48871b533d
-DIST rust-1.45.1-armv7-unknown-linux-gnueabihf.tar.xz 116371752 BLAKE2B 3feecd7c1917294bd2384c36a9bfc371df1fa551f04c509e13d21ad3f95bdc06d2f0aac97edef10a87eef65b41b95bc34acae3741fd9648996f4ed43d4a54db7 SHA512 6dec92d112c0bbbe0434162d10df630505ba179b99fb51800140204fb2e52215d387162d97dadd3aff2324c81a4bbc944e45f4d39e55bf85e244d741e556a391
-DIST rust-1.45.1-i686-unknown-linux-gnu.tar.xz 131991636 BLAKE2B 2c012695d39e3665fc35fe5f66d4f0dcbbbd5525d1c8a8e26de2edc2edeee3985df1e5aa39e3122ac723f4dad1d9792be215748d80157d6f717584cbed656a98 SHA512 80f3bb328666766e177587c11cac4fb0db515ea16fc0462a29816a8474669f49c69461d2939919833337f3a95fbd1da09a55307f3f1936220bc2065f760a2345
-DIST rust-1.45.1-mips-unknown-linux-gnu.tar.xz 101183232 BLAKE2B f04ff7601935aad83e00ee062823b289d7bad8b591cd7d2ddb7c0d77be1b987621484ae829e56fd24971ac92c4dcce93d35d7313476d937b67da88cd4353aa2f SHA512 e70efa6c04f9ac4e4ef23d80457abee2219f04e81a743e67aa5305022265f0fac7db4998cae3d5587c38c17ae8f6d8e8d7052897a08c6939bce882bb6186bb2c
-DIST rust-1.45.1-mips64-unknown-linux-gnuabi64.tar.xz 107235492 BLAKE2B 425dca5246a6c4648fa061c73a09b38650a838e86760d55ab51cb655385f3066c29bb520d5c12271b4d04e4b961d948782b9a27078a849fafc867882720d0505 SHA512 f1ccc296c8f5e806795630aa8939ca3025cde76bf7fb0285e656b1bbf0d0e29b70f3ef7e6598a8146250d0d743d41b372018777aecde8bbde015e276d365db6c
-DIST rust-1.45.1-mipsel-unknown-linux-gnu.tar.xz 104260264 BLAKE2B b39b3305a1624daf0023ff5564dea21933999c2e488e6ca0da32a52be9891e4e9e3836e7509e8b7de8d3f2fab58b1360f21c2519da7bd1be8ed539f901973997 SHA512 de4e294e45d07e1544bb20e1fde78dcdf183e291f643f119959f61d075b691bff1290b3060c365a469dec7ae9bbf516e0b613b7b2b707b4fe23c37f972f40861
-DIST rust-1.45.1-powerpc-unknown-linux-gnu.tar.xz 106026300 BLAKE2B 73456028e79893ddb252a010ec0fa03443be874f5fd3b82f64ce221bd5685aea94acf29551ea3493155dc7caa7087b6db6df760b59dafc344f3040dd5e145ea6 SHA512 bbd6fdd879a8a7125f818946851e59f869c17997e58c90119370f4066c20db9d83f1250d59dccfc560d8b23cab45ce5c2d7edaef131f89ef7e2ce1ad903f2768
-DIST rust-1.45.1-powerpc64-unknown-linux-gnu.tar.xz 116528188 BLAKE2B 56a9d1a8d967b67b160aba248b50731744d21df4bb80f509a3008dbb6f2ed1c0271c9bcb621786354ece55c2f0aba63e9baad8ffdf30627b7e3167de645f9165 SHA512 12413ebf48a369ab869c4c7d40f6dcbe9cf53e094983eefbf142149759ce74a3f961dc8b68dfe4607b17c2ca34e5a97a38e0ccb2c14dea157fe93eccfd511bd5
-DIST rust-1.45.1-powerpc64le-unknown-linux-gnu.tar.xz 119234164 BLAKE2B 4148957ff2f95a8c440609e66956bfaed983e689dbcb5ae041e8ca092ef5da366324806d4c6075d0a73af6110c1f16d2bde09b369166b6fe47e42c104a5f2df5 SHA512 5222d1baa2836138ea65646a8ced3f186486bf7cf3b988f93280e2153371aa593c0ba660be9830ff4dd6cfdbe6cda32ead27a824a2e71c51d23749ea4a20c39d
-DIST rust-1.45.1-s390x-unknown-linux-gnu.tar.xz 124758156 BLAKE2B ff62e14d5ae9f7213ebc24d694317ff292cb0d7d2a67f0ca284cddd2b9f594547b01a6c647780d47989d4405072f377d37fc03933431a3df804e37bc1248e803 SHA512 278411c6308eaa4d732ff4c0f448d808a5ee74dae5f3eaf04773ccf65c9bc5963153f62346d30de0f577dd6da89c55bed280c2fb0e50d2075e3c30a3649fc4e8
-DIST rust-1.45.1-x86_64-unknown-linux-gnu.tar.xz 117764080 BLAKE2B cafe6e4f7c28112879089d75703a1b1ce7c0cf9b5ab5beeb4ddf343f7bc93e8704bc105ba0bd95f1df6d62439f206d8f4ae9090330af857ec0a249540eb63122 SHA512 13ee5ff7cae29440e32fb140404ff01414d66f0ea8d79777fb1586541de1ee6ef8e12f9249c35374501460a2352f7d0f6035b5bdc2f0daa91d772a157657ec0b
-DIST rust-1.45.1-x86_64-unknown-linux-musl.tar.xz 123820216 BLAKE2B 1afe48589e5eec15d8fdb31d52b2ada49688e78a311298d421a8b2d4c0cc6a708223e5976518d66506584dc2adc63651b62b8c1fc3c3ccfaff80e2ef7ade5078 SHA512 39875878acfeb05d7b72bab2dea51063a523fa7ad136d582ba28603df7f8b1c3360e5838e5f9b08f396969e52bb1fc672fa4c08cf5f8ffc39128af129b6b17a6
-DIST rust-1.46.0-aarch64-unknown-linux-gnu.tar.xz 127384736 BLAKE2B a1efd25cf429a309a454ef5db38c68d642920e859ef6effbe88ace7f3c4050ae7e9cf10d2f5b70405475ffcbbbc80338e3a5e4b3cb632c555e31a0ebc1b76cd4 SHA512 53e5d8afadaa9505286dce4acbb911126d17bc7bf45ea4685070ff07be7f6c7860e543a7686eeac695e7e3e127ca38ba2f09b73467fbf5f92d0b2195467c51f2
-DIST rust-1.46.0-arm-unknown-linux-gnueabi.tar.xz 121741008 BLAKE2B d277cb19c9f9641f216eba9ddb8bdb0a1bf70b7376e82798dad3116ff6d976c6ec8f6442831ae6a3c64cfdb46c59cf47b482df5200af49ba5eeccb663538084b SHA512 74cc1c8f56c88bdb669d52edca69c8aed7500e51498e8bf4099b2edbf85a2beab1e6d447029eb24e12fdfcbf2272f5d8b741eb4aa48fe83dac44759478429284
-DIST rust-1.46.0-arm-unknown-linux-gnueabihf.tar.xz 120726564 BLAKE2B 5ef9c319d4744016e336a8d8bde99b2b9183dd13fc6873d4f0e239a52a86e054d42ee48ca1a84ac42d140b1bbe234f4eeaf90717f14959ad6966681429eef233 SHA512 89972cc03c05dd5bc003f6cf16e062b935b3fda288ae0c3d32a3d08ccdcbf7699c306aa3c017a13e76f13f8dca7a951ec98f23507de978ae87cffb6d6907af5c
-DIST rust-1.46.0-armv7-unknown-linux-gnueabihf.tar.xz 123912836 BLAKE2B 97cdb2e8d643826f7dd1554096e14c58c35b38cc2eebb49c478343bf8bc157995a9f1099c014800701d34edbf0f0798ac29babbd2a5bf261d1956bc731b0a99c SHA512 c7e320fd5169c99bf8a12fb5bf1c5fb19a05d14f75ce655e4b64cad3456594ef09be1da7ac34a09b5d84da0c857d1a6e5a0695b5ff04cda491ea92fea15d28dc
-DIST rust-1.46.0-i686-unknown-linux-gnu.tar.xz 141319800 BLAKE2B 712227e42b8597ee1c645cb344042e79ca40aef0e22d783c4a0c042bd07f686aafd9b80bebe0dfe69b4b012056509bfe510fffa8ba5357656d459fe5885fe0fe SHA512 b01e9b06c9de50e43bc6b5e1a5e6cc49dab1cf28b9cf0a8b974d2630c7ed4c6a5df6f321c872e11eb622c42f1d8cfaec77c1b67254a84365464fe3415acfa07f
-DIST rust-1.46.0-mips-unknown-linux-gnu.tar.xz 110175584 BLAKE2B 23e38e81d281d0df23795ff60e4a7503f63d443d966bc6d5068edc50fc0dd90e2fe45eb90b901a1fb3f8f813375533eaa142d625b661f5d76d2097b0cf572606 SHA512 0635060dd15f548834e5c946ec8deea10bf234f550f6a01d4d491f45e0d5f16e957f99caba14c91225d100e7c59e909869b816dfffe9f8681c09e9e5b6ca2bdd
-DIST rust-1.46.0-mips64-unknown-linux-gnuabi64.tar.xz 117357812 BLAKE2B c3118a0b710ceaffda8523840551306d4bbc7c78fc26016fc1ac0037c2a7cd68f56c11999f7e3bc435f93e0dbebf348fdc52255cc5978bdffb2d55dc9d56e23e SHA512 5dc6de40429e72ecad9546390f1f5e626d388938c7bc50a56fb258787b45e8d7363170d8d1a2bff56fbd8bef22060b6cb0c50fb016ccc7d4fb767ba6b7e80c2d
-DIST rust-1.46.0-mipsel-unknown-linux-gnu.tar.xz 111804692 BLAKE2B 4779d5602f2107321d5c6042dce1baaf6eec2f60cf2ba4330bf72fda0868d7e8294cf573b3ffab3654a0689d11599f2fc37430005686e91439abc7ae6fefb977 SHA512 3c9d17fa89636d37e125d7665883abc9912330d4a1f5291d44771fd1cbb17d604deccc07685cb567f1b141dde3668d5ef55f3661b04e4506d5337d69acc6738c
-DIST rust-1.46.0-powerpc-unknown-linux-gnu.tar.xz 111495200 BLAKE2B d618c61a05507abe13d1294594187a4552896cb61396c2f8bd6e506a71ab4bb5cd26ae3b2b573d1d5a4ea79fb4dd2238a2ae34059357ef397264beb0b67cbc34 SHA512 38df2204bd4bfe7371365266651a84da218ba909c3ae107432f6fef892e71488d193b8f54fe6738edd91aa0ca029038d864806b25289254711bd10f736bcc2d7
-DIST rust-1.46.0-powerpc64-unknown-linux-gnu.tar.xz 124882812 BLAKE2B 2362e25d39cfd2039ce18db08f43bceaaccd208ec113c16f6718803eadda964bb254a6afc606765a00026adc93cf366495d3546d6aac8a7444088f519d421c9b SHA512 40f9423d838cab74b9920372e728c4ca7057005d83af587387dd2b164a0bf93de65cebc035320bce25f80914c63ce65b84218b9a776b0b905428e4cba0821b8b
-DIST rust-1.46.0-powerpc64le-unknown-linux-gnu.tar.xz 130200900 BLAKE2B d38a7f131983aee27e6af59ab03999e7420745a0f9256b2623e71f36dd6f12605025dbdc510bd5ffb73e0d31a5c7e56a791bdf718b2eba629d08e2f75221b1c8 SHA512 986f0bf7995f35836b73fb7045cf43ae5efe0c2543c75c66cdcc0f8c1dd3513def3c291e021241e328142deaca690ce113526ffc870c4412a7841f244258a43e
-DIST rust-1.46.0-s390x-unknown-linux-gnu.tar.xz 134521076 BLAKE2B d3efd71dd7db812736680929185ad5f58a2dbf7d1b8a6f851834dd7b41713fc171dbcdf2472bedc13751bfeed58070d919d2a1138765ab75c0f4bdf817cb6418 SHA512 b6146695225ff6d0516e7bb6bc4620599356bb89b14f429a09d9d7f8715a94e8e218402346d5c9a10eeb54c0bdc40fb179289216b0cb4edd5bdf886f6b69aab4
-DIST rust-1.46.0-x86_64-unknown-linux-gnu.tar.xz 127200200 BLAKE2B 7d755e0622cda99d111490197b21ff4aaeb7b13292804566bc677b7b1d833eaa644b7a801863a1a01e3aa34be28a80344cae69edc57f8c8788884c78e037b750 SHA512 95f5adc2d2137010c7e5ac8a0fc70485250b4f9a909cb8b164b35fffff76ab88e9b09d305bfac37324ed080c5fc7643001d2abec5454ca911dc3513f1af52c88
-DIST rust-1.46.0-x86_64-unknown-linux-musl.tar.xz 142372372 BLAKE2B 7d3672234b61b772e2311127db569b37296bf3a9bf86841fb78c6d20da6a6abfc6c866ba4aa7cc44c12eebb0744fbeb401b491314db9eb481b926792cadcca22 SHA512 e2599c4c10fe9725e63524d89c0be869d43347620b0f6ff1a93cee5e7219f5560c6171d8eda99e5624eba60b9d488bfe0942c23eacdbac2ba42e4cd63f14b7c9
-DIST rust-1.47.0-aarch64-unknown-linux-gnu.tar.xz 136486128 BLAKE2B 872226c232141e25466413d9a998bb021a6f4955dd8ccb5d68f8cca70ea8f7056a6f7b4125134b48a3106331dd3db2e77b32a0083fca3c66a348b77699c49e7a SHA512 7df7045df341f03508f1ad795a9117b39c1f4c4cc778c7fd9d78c42e7da662ce244d018084ac9e80d9409cf8b3b5d1ccc25ef4cb71a2b8727398d30a4e962e19
-DIST rust-1.47.0-arm-unknown-linux-gnueabi.tar.xz 133989400 BLAKE2B 301c17d6f9c048f43d460898ca352e189f7770539431721d178239d5cd64e9e62c05a63482049c18d6fe3fbaa463616d64cf6d82f2bd846576dedc6fc19bd3bd SHA512 db9caa96f142145c3f515730a1aee2fb24c9990f7b9b56e277997975409786904c6490609dfb29712acd9bba077acf36103e4d612bc6c2a74581b40fb50d12ad
-DIST rust-1.47.0-arm-unknown-linux-gnueabihf.tar.xz 133431024 BLAKE2B ab94ee2961ac3060154834d21a47384dd09a55213f1a7082911e0976ab9e572b5b234e175ad068cee0fa9355ef2d85acd7ebfff109565be013f14c32e61a71ff SHA512 fa0643c4b2eb36c2bcf4c786517d27fee4428114b79565e0da3b5626700275e9368ce6a68e93b4eae9881265ecca474cced25d63f352ffe3c8617a725185cd28
-DIST rust-1.47.0-armv7-unknown-linux-gnueabihf.tar.xz 137060904 BLAKE2B 8e6cbd665cdffcdd059dc4278dfb1647d046a96619f784dfe45299a0c29f1af51de4511b87cb8c0d0d166ba76b484f4249819e22275e2c1775c53b2ee5b1ffb5 SHA512 b207ab7c478dce6db4018527888f539938c8e77b5ceccb460b9d52ffee13a2329d225d03a605b60729cae6254129245bdd69730aebb6ec91dd0c83005cf25253
-DIST rust-1.47.0-i686-unknown-linux-gnu.tar.xz 154793612 BLAKE2B a8063a9241fb9fa8b7f9c430d65fd2353d3a1014e51148c9cd1b5686338ccf5170fbde78cb6f95a9d4db5441392ad4e7bf14e5a39418208937cda4019cf4e2e2 SHA512 551204b4edfc1500aa83108c88b845997bb6befba0dd3401e9ae5294ab27960421f1b3130159946b996171c1d46f7532afa0c3ae767a9318985db0bb7c88dba0
-DIST rust-1.47.0-mips-unknown-linux-gnu.tar.xz 122428884 BLAKE2B 10778716e282f9b74ef1a3daeec70ed1bb4f4dcc4a31baeed90c26f398bbe313df58b62469595ced95c73df9aad4739210add4eb3c6f0f94b5fa3dc937967394 SHA512 0e39ef2cd814474c33adc38658cbc2e84879f0208fbb37c1a4bf3719d3cace071606e7b03fd8464ba80f6328cc0a0bd38ec8e7772cc460b5a2d2d8b704042c49
-DIST rust-1.47.0-mips64-unknown-linux-gnuabi64.tar.xz 125553888 BLAKE2B 27c9f5d860025ceff4acb1e40ecfa0ec4c053ac694e4bec3bab41e2a193492afb8b4ac22ca471d3170ebe5c3e0fce628d0bf8060b5831af10bd99d614caaceb6 SHA512 186324da11997a65586930e5f2422c687a6ad817e3e0a5766caadbd51153cd29dd1e0d472586117c654d5db20e0ea2bd4073e05a94f3197bed2403dc325b31d5
-DIST rust-1.47.0-mipsel-unknown-linux-gnu.tar.xz 122801616 BLAKE2B 667712f3441ce63bcfc245801dd580ba8a9a06e0695b9f9a713baa55d8f9b8ca208a02f043918814490166a4c3dd2cb6ffa0d669b9533845f9c241063ee9b9c1 SHA512 8cd441739a25af20298ed25d877f8da4b81969e6f591d45527b94187808b7ce04ef6106785fc050d1318f71fccd00c295f60cdbf8fb79288aac80d92be9e57c4
-DIST rust-1.47.0-powerpc-unknown-linux-gnu.tar.xz 125781632 BLAKE2B 00e966a5ba83702ee36fc2dadd9d058f655d4ea8b3b0072b61d221508ccddb82efae0f5028768a4744b6c439e0f7080db5f727e9f2f7facd7d57964bc332b5a3 SHA512 8a20462ed79f22b868a3e64ba147b32c32eb0b0a149a7a571cc91ffe1ae9fe2d71a244c910817f3c151464f6c417550923a4f02e9dc433670b38502684bf349f
-DIST rust-1.47.0-powerpc64-unknown-linux-gnu.tar.xz 134272040 BLAKE2B c7b4256df6c7a031a53e022ba00999706674e273c041534b75743fee1d366567dcd86fb805ec9997737cff3902641e21269f2a95fef651227cac5da34c947091 SHA512 46fa1c042aebb06db4185fed6ef3bc7772f2a13f2290a20f5499757aae2a05dc984026315be7b5813aac172f52f50565e56aa074d32f6271858590a9ceb9e1c7
-DIST rust-1.47.0-powerpc64le-unknown-linux-gnu.tar.xz 141965604 BLAKE2B b4b7ce862b2201526e6a96249e509faa7bce2d841e571b6dd241c9a82bd9011c92e0918df649ffcce7f3c6c93aa47aa8f66b99e6529b1b3cecbe16622b08e0b2 SHA512 d5c6580861786545f0540cc9591884fb9f2036061bdd451d17cf8bfb427008d365cacd14e5054028c72b83d1d5eb347ab74478a882cbbd7fcc75a7421657561c
-DIST rust-1.47.0-s390x-unknown-linux-gnu.tar.xz 146987276 BLAKE2B 1810e7bfbd235613563677449376167700c33960eb57b100e65058f6a00692316db518f2f4b79b39e414f3892c62bb1ec09b0866ff2221641c4a3056659a1668 SHA512 dd5877b6ff5c310ca6aa23c1cc621e6b0675d4c46f5a06b2a0b107641b604a1a2101109ba8e286267bab1158768c601d5d9a922a8da72486c91755ef465720c0
-DIST rust-1.47.0-x86_64-unknown-linux-gnu.tar.xz 150891572 BLAKE2B 45ff02465ba82ae96de25dd616fa08abb2396be21236d2f66f831effb349f39b047a380b38cb83254f27e56cecdbea8478f4de8ccc0aa23b11de2f11a28f501b SHA512 f695986ab8e67636b0e92ca7ea223984121e3c22788434a6f1062690e7932f6b30c0c302160fef96831f821acedaf8a909bd3d00a9aa873c7200d2b8fa39013f
-DIST rust-1.47.0-x86_64-unknown-linux-musl.tar.xz 166456672 BLAKE2B d6ccfc574a81ae3e9e6a96805e6863009970b5c480f35ee0d582a204b782fe513b9c6c7094d1adea509de1a3097a8a0524ac00c2186b968f70f390615904eb5a SHA512 f71b162635955ecd8a6ec322818be69c788c18d4e923d84d901916648f2eb58573b1f97b460209294ee64198e76566b78e472f9cbca8665c59444adfc5ae603c
-DIST rustc-1.46.0-src.tar.xz 101868452 BLAKE2B da9798596b124a10d79c236a871228f05e5f571d22c2259328e7026c91e088c85f5de9c0536a16531e0cb10477bfcd16d3ac11467979f5561cb6199442b877ef SHA512 099857f1d295043587a4e2a65ef3e6a90e12c8b6958e98535a1656c113c553f9a9b621aba8a19cf21bd8d2c79d27cbfa4b8e6fabbcb3cbfee23b545be7b450b4
-DIST rustc-1.47.0-src.tar.xz 104143736 BLAKE2B 0454094dde35275488046826da87655e51bf0795481d6d08fd70d644bfc12481bca8641166106ef32f20494906025244715b16ff21a1c023f4bd2818aab42521 SHA512 6ba83c0158f8130ddeae7e070417a2121d8a548c8fe97e28bce116d84048636c75aaee78e0c92cd43a50f5679a1223fc226cc8c5ba9bbd1465e84c5c6034d5c9
-DIST rustc-1.48.0-src.tar.xz 105951736 BLAKE2B 42468fc5ac5e80c4793cfe0913cbb8e43a8def28cc8cf5ed25ab989561e2bf33e155c83e180183362535cbc9008f341eb1273087a2364672b1a4032ac2d6ca45 SHA512 4e12baa6893238a8d336ec9ebe891477d18676f271b32763474fa7a6a8b58fb3187dd4e2aa95bce482989b692cc2e1360221669d6811eec71b326f22a1756c23
+DIST rust-1.70.0-aarch64-unknown-linux-gnu.tar.xz 212261108 BLAKE2B 56e15d01ea0e84c51ca3d4fc292c124536472e9c3e6d9ae13ab524e520865117b36621eca5072b961831ee6ad3077abd84afa9e092483095234b7ab2ddcae769 SHA512 d64eb19417a03452f591bb779042b2b3ff16d2ac48a9a74d293bc7265980280801784f92cdd0ae0dbc21743433388149557da7642871c72f3bb4b3061cf7eeba
+DIST rust-1.70.0-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 435383da02632d404ce95ecfc0b0690f18447f22cd82e67cd08e6e8aab072539b33a49c2712bdc35f34a811f8e66bda6bcf9505b41dcdaf4cc66e358df9d7f02 SHA512 634c35b52d85c524a954d0663b6f1507c5aec826768c1a51394bf72bae585afadd3d3af985a9d165a65d178e04813fd592a78d058ed1400bb0fc43b0a1614a27
+DIST rust-1.70.0-aarch64-unknown-linux-musl.tar.xz 195626092 BLAKE2B df5ca11b64513c86dbcab93bbc5eee37a1f2c6307ca479c07ef62d683ec1b1f56bd596284b11695d80c8483ba5ffaacb0bf060d7618f5e79f3957bfe8bae042b SHA512 5bcc47e2e791603b419c2d1f3503a60cc9a4a7351d3e8a61e6f3823c53195f58795cfcdc56c0c2011ae40a21ec7819d7dad32f5f9981f3d39e5f28ba85083d07
+DIST rust-1.70.0-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 06e279acca2308599b367cfcc105e9a1a9b129c1ce8d70e9c64f34f471fb9f28ba0b3ffc71ba389a8268d7f35fbaeadafb3275be29e7db8e8167ce1a828a3fbc SHA512 945a1679eea5fc89debe6c840b95314fd7be3f5ded9897965584cb53c3571b9ad18b1894fe4f8f82cd2373ee473c002c290ff943466f7d467357a6d56b62ce2b
+DIST rust-1.70.0-arm-unknown-linux-gnueabi.tar.xz 175940376 BLAKE2B 101b06523554df9f115f33dbace6a045fdad5ede100c7ed70a50da8a522e271708223f2cd5600fc4c2d5aa920e8179c9d60c24649dd234afc3fffe20d06935f8 SHA512 b1c3bd1c80437fda5e605aebbedc3f03f13223ab7fb37cf5808c8ccad00f015dd4656979e6f47ae65ef42dd158ffe18e9fa74aa17e80de76e73a8065efdf0760
+DIST rust-1.70.0-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B 1e901439a083b6da2e62df19829c76a3cd2486115f855407f329b9cae0dff7a0c24b31dc48c13b28c17975cbc7f3c8d6073d7cc5629e78182f891d01e93d09a1 SHA512 c32b7f12c1c5cb5263444f6ccc5facf69e78a63816915babfe68e81be33bbf8a922618fc47fe2ec7142f8f04127fac89504b332cab5e0b29e028011ec5d2927c
+DIST rust-1.70.0-arm-unknown-linux-gnueabihf.tar.xz 176229396 BLAKE2B 4c3be748a110a0db483b5cc8baff433ef7b67af0c21be41a68a72b4307ac8dfa9717e066db3768204b03550484ebb4d7e6d45345f33ba797844132e1dbdb16dd SHA512 847602b101fe68e639598fd15592e60c8b4b2482077aad62b60918fd09c1928f1ed251197bbbbe3fbc5578a0e1e2abcdfe838e9c54cacba30e3ef2fa3d6e9557
+DIST rust-1.70.0-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B f8d920f2f3c1021ac207b1e3c0004e07bedaa207d463a60c9f2556d057a8e80eeec00565fc61ec9fae67e435bbfd902c4b54d2df0a710fd9f63594e7852498dd SHA512 0b7983572502d918241510abbe23ff913e5757f9a7d64e00701b23666a188a2324d70fd1840cb2b604fec813ce1883e1aa30bb421e1648497f3b165b9ccf4e89
+DIST rust-1.70.0-armv7-unknown-linux-gnueabihf.tar.xz 180820156 BLAKE2B dcaf472e5bce185f56a8ecd509ca0b829afe8203c5f3154c8065b0e3d9848f9f2cb6f6ee30568a52deebb21bec9aa8d05f7f2c2f42d584833a4f998ade707c94 SHA512 adb7d0fbabf14fc654e020bc8f7a2071d3aec7cdc64edb82739e78f0bd6f02d3d0cbcd18a648be24947a80008a1f45a1e35b9ad098b7cd31272ef985a502e25a
+DIST rust-1.70.0-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 3f42c11e20e1e86b0f934954c7d59b7b09af1613f0f10ff3295a3105c4f90554ff67c5c300f4d8bc1e113cd7631f10a4a1b9bc4f18049c97d6a3a66e6f1d0790 SHA512 981df55ff730f20ec415dd86f9fe035cbdb280d4cf742734db0270311f800db28e0688115937f7a9e525a8ee15adb61787a91d0a89bdefe950cd7489a7a09258
+DIST rust-1.70.0-i686-unknown-linux-gnu.tar.xz 204795680 BLAKE2B 9cf9b73b388145589fab8580bb6efb60cf731ae2dc98eec50abe819771778c9c27277bd62f89c4fc89c70089f499b7c0d02e4e4ba60bbdc31f48a3d534a4ef52 SHA512 a8001d2df7384f29783b4811896a3634d4daa5310d2b3b881e347c9dd727a621417e6e59ac30c6556e123850d1bfe557f8fc57955f4e8ea7b541cf2dde4735b2
+DIST rust-1.70.0-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 002ee6ebeb71b5178ce6e88d5a95db6e176b4262ffde775383187ce705d3a6bf3c756ccf975d8642efc71ab9c90c8540cf6cd20501f6d2b668d91943d5a6cd06 SHA512 ccd6b486a000ccbf4f78ba0863e926c621d06214452a2730da8d05c70972d84bbcb3f49005b23a9acf82e31cec32ea1672fda8c091c04cb70224cdb5740d7bfa
+DIST rust-1.70.0-mips-unknown-linux-gnu.tar.xz 155096952 BLAKE2B c19219093ae7ea268b847b5fe0f20343d16e035c7666a545420473214fca6e5a43201421de693deec721ecf94c8d0ca44148ff7359184f5d07f94fadcddfa8b2 SHA512 8c5178fd56ca57af90ad4efc1dc2265b185858d6fed1e7494bfbd054c4849337af08c0b4d8e99eb126b9c8551800ab5986764faa4fd782abb56ae85b5a6169b5
+DIST rust-1.70.0-mips-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 49e8717adc826756bd7439cb8b8a5d62d7aaaba7ef5ace3f8cf1766d04cf8831a69345ba10a9804abb179fc23a6cd9b2f88fe3277de603ba2e9ebbb7e2c919ba SHA512 02c33b2d80c2b40f013b4a44553e6e8bd84b9df748718ac3cf7b2d6a0b33a1723cac2e142ba80c38195533cbc907b621c4b89cb7790612a175f2cccfd3d508cd
+DIST rust-1.70.0-mips64-unknown-linux-gnuabi64.tar.xz 152952764 BLAKE2B a65bab1e6284cb81d2e6c03d82ca103a6b7984925f85d45caef0cf2735eb8156f9bbff31e9265b7a94827f5098895f7a09e05360e808013779fbe34ebb4de32b SHA512 4ecd8a3155ad2734bb996473d03b346dc8022b89943e1accf8a81348eaa1965fe9d289c5431196c7fc387a945a9fa89c9c2d9ca244723970b6dacdc2b978c453
+DIST rust-1.70.0-mips64-unknown-linux-gnuabi64.tar.xz.asc 801 BLAKE2B aef454db1e0952174c78d0341aa8fc3d1aa3f4bb16019151589d0c377443d61929a03d8b5891133cc4a29d93b6ca5195a0adead6ced96af6a0eeee88dddd8e91 SHA512 6f50a9f0b32e3f6d14039b3f1a2bd13a912d45cb1c297a8af8836c4be6dc9a5590f3f09c2f30132e7aaf9b0e2ea5d356c180462c6054888f6e6ec58b0e99f20f
+DIST rust-1.70.0-mips64el-unknown-linux-gnuabi64.tar.xz 156871924 BLAKE2B 254910113b718725dde06d4350a366aef669662c7a52c3c1f13d2bb8cbb59a6d03bd04def02c9f3e6bcfa0119aa994e708ab8a808e6f4abdfe444af3cea6d5c3 SHA512 333dca6baf1bf580fe028cb5a2c261beebbb906a027142e36a9e93b7eb0728f01320c8a143473829e412524a6d958659775cf0972f40b87ebe3c664e44ef38a8
+DIST rust-1.70.0-mips64el-unknown-linux-gnuabi64.tar.xz.asc 801 BLAKE2B 2ad85a65706830973b380eebf6807092853f4916e44d265b5822f286541981895519ddf863221bcfd7c5789737ea8e553c50dc83ec3e8b43cb8d04d4fcbe574f SHA512 cbc2d658d041d5437db9e8b564fd5e6d8f7ef130157f79aa4a92000f562b40dfd40cbc350553554f5e6bbeac347c9704f72a75ab06cd1f1f3a7031ab64764f9f
+DIST rust-1.70.0-mipsel-unknown-linux-gnu.tar.xz 158491280 BLAKE2B 299065eb46c14e5243450b5a4bd4d6bd18a3cd80331001bbccc563b4d2a52dd051d1791b5bb564c648b0fe4df4fdccf472d43805bd71c3e7cbc1bd424a857758 SHA512 0adbb98062cac36bf3a59218b892a3e85917a230ff07fe371069e1eca0a62169874655e53f607ae100ed998f6c91579faa1cf36f5944ccc5d1b28fa2ad456b54
+DIST rust-1.70.0-mipsel-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 9774d50e76700cae25ee51ad9d1a3b718dab9a4be04d0006ff55dafd9918f07cfe2fe5a83b45ee4934a7e0f0b661c4d3838331738a9e69cc77e6331d1b3e489a SHA512 586f3e7e09226d9e5bff379261b107a4ce75614aa53e196cbbb68b7828b25eb9a1743c4e667c4f57b6269f93074394c97acac88854fe89f545a5acd6a233128f
+DIST rust-1.70.0-powerpc-unknown-linux-gnu.tar.xz 174738376 BLAKE2B acac25164e9b5bd7335dfb0249588abb54ff02b012539f540392cac3ddbfd064e9ab000a8790c1d7f980cbf7a9a38e19574aa83297448a48fe42ee1aeaaecd8f SHA512 1a369e3a63e658a86588c6565f36740069417b0e2a207584da5b32994c801362eda463d8a7de9676adf42a8476a5def4c7363150eea7d1a09fd6f3c298279c1a
+DIST rust-1.70.0-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B ee5c4079fc9493e78713c54540e69047a05f41246f9f88d3da422216fb04d3e876b25ec61f19b7de02f1cbb5dc3aeb7e5c5cd03a5c1d7ff9717d7e49f660b245 SHA512 1b7cb72919453ef5c272ef62c8b76937362dd56a70e292439da1f28f6803ecd3794bdca3c433ce3155823d524ac70a9873c0aa5b7fe8b59f06abc67935cd8450
+DIST rust-1.70.0-powerpc64-unknown-linux-gnu.tar.xz 172874164 BLAKE2B d0c718cfcd533b5aca653144831c50aabd6d292e7cdb8b53be768fd946de91f3274eb07e9c741145fb9a5f632d626629b6d4989f9cef203e240382fdac3ed8f2 SHA512 645c39d447e92c18705be0db6e5e53449fdac6fd0cd2262b8c33dc9fedb596ad3fb3f2a172ca5de019fbaa6d48acdc98c6c742e925c23859a58f27094db82179
+DIST rust-1.70.0-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B fc97b83827d351e0ddb95e3f844bdb8458232c374d23fa656ae6ca35a8db34b54b8ec47d18cb316410698970d63caf4bc028d9ea68825f83349320b28a7b1270 SHA512 a21553e7c4b28575f15cc28536d5af6bbc0be6992fbd7c6cf086b5318fd87de60181bc019ad264dca1dc3e59d1091ea0df233db83d69a267a91db9e22847a4ea
+DIST rust-1.70.0-powerpc64le-unknown-linux-gnu.tar.xz 182570028 BLAKE2B 2ae544c9006a850d457ebe240fbdca58905c86cb26be3edeaa95aea02a3201c94852936cf3e91c052f2bfb5960cf923f3bb4ae6d6d92493733f4acf9e70c71b4 SHA512 89cd4d1118ff8f5fec5e148f41ac9cd7dcb76b21b67b1733679c8fd9ed6f726239a22fcb45faf2ba45bb16e04f679bda9e29fdc8d3da3a6ec03f7a6ec85b1927
+DIST rust-1.70.0-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 234a2051888eeccf772d9b7f41ac6757453c29cd736a2abf1b3d1fe22dd45fa9929efbc501ad429b6e44de13fccfa17d64ce4beb86879498c157b0856bb3eae6 SHA512 48ccff718902cb4d78663b69efdd16925b4df21b735c373db25eccd8baaff3c6dcc5c49ae37d583cdd22f44df91244e34e8463e65db69f8ee6ee96fba90f1cf0
+DIST rust-1.70.0-riscv64gc-unknown-linux-gnu.tar.xz 167304092 BLAKE2B 977fdd1fd305d4cb405d18a21719e37928c5ad0934a62c53ef395c067afa75eb7bf6fba5c9c7004d1413cfb78496809d1425fea9f38fc33916fa7571cc9f687f SHA512 2b19f66ce4702a19f7ebb8329569031c4a5e2deaacd161ba231114780a565fd8f1ae0b3970e021da6b7b0a23b1f41ffe3296f2f2b1dadd5de3f533308ab02d95
+DIST rust-1.70.0-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 26af74d00f9f7c53a15f9c39acef5364a1cbc7df2380ebf43cab3b02240b8fe446c200ef4652ea8684f0470035d8352accf5e0ab5b34dd9632b471458aad2516 SHA512 93ffd6214db7e04e2692f4e05bccb7140c81378da039317f2e04587f1403935abd57b8b9bd5e12b1befc5dec10898c06a508b1ebf83b845564b9b8a42d7041ac
+DIST rust-1.70.0-s390x-unknown-linux-gnu.tar.xz 197741656 BLAKE2B 7d31b09ad69eba9ad1a2b7196679a439907ee80fa3ddee9014f0c78505ee9e1c93514e7f44f83b0ac5ad442c6e7f05568b0ea928a89c5a69601a1a935d2d253b SHA512 3fa31674a3ba33d41c7db2b33e176edac1bd67713b7b52dc51eca73d4ed1821a2a4ecfd2545734fecb57271828ae0bcc7e1c4d0883821b650bff99544484db07
+DIST rust-1.70.0-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 9dac941acb317914f4eac12df601b442e9d9c74f13048dd8120d23c3297e7f5bc77618fa8eb29d4401b141acd59d20e87e1b198f9997041d4113de9ad39b59cf SHA512 64b8658b275a53b52986aa967535ade73009e833fdc89c4e225f3139262fedbeef902702e8e71b18380a0826afbe7dfb1afdd5800bd5f810e66f2193c4de6501
+DIST rust-1.70.0-x86_64-unknown-linux-gnu.tar.xz 163456784 BLAKE2B 49a8397a7129aa70f5ab3876613c9c3f25abe2a48fcdfaeec0bf030529f558dd6ee221bef18ab135b95b2e8bdd61349e3357674a794bd08e4539c0fbbf51bb3e SHA512 8950c85f03f2e7af23c18e9be0ca1cdf7074b9be8d8c7b26102277c150c598bb7d5f1f74400bd70efcd42b38f68c96c7701239719f320311e8b131191ee77512
+DIST rust-1.70.0-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B e5fae8b3c87f54b39d922fe0c7694e0ba115ae34a668cc873390fc9e4638baaff5b6d1b4c67228c6bfc57b4da9bf77d6a452ca12bf6653d5610895b8ba19d64d SHA512 352749df741287107b966fd603113c51e82a426a7151e224e3a8d1cc7bd4658ef86147f6fce62caccd7b5779d9961be72cbb618db79a2850e8a8c4b0bc229ad3
+DIST rust-1.70.0-x86_64-unknown-linux-musl.tar.xz 233692884 BLAKE2B 295e815bbee6dc135ad17dd78801999afa7880a7a8f5ad4932a7580f1b03d50b850bcc3eb68e9d679e0a2d68392d446423ea752e47bb22d64823bf3222e0b377 SHA512 5e42224e109d525a321c107005660059ddcb0414392abc660b80fb09a55c936c79215989646be0aff6b0427b2f5d82a2a19ec3bd3235883a2037575808aeb69b
+DIST rust-1.70.0-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 7c5be81109607f191f339cfef87c736e2d35d4a045511036ee6e9bd68f22fbaae825ad5c463b0a5bf29606a8b9cf488172d1338aa4d034767b0f59243613c250 SHA512 241863164ee1a0d702080c9967e2ec5bb7af9222236316c8857b89b517fcbdc362b26ff3e362c4be7fd2989d3fd2aad0a0476feacecd2604855dfa53f5f1af27
+DIST rust-1.72.0-aarch64-unknown-linux-gnu.tar.xz 212153292 BLAKE2B 2896fb7c195bfb0b1b8313c390458c86e18986e2c1fcd973380e26ed78ea955c20c37475c9788fe9b23435020393fd8408566091c2974ba439b86f3b34676100 SHA512 7843b39ac259267c276834c66bb139f0548e5ee2dd1bf9e3830b07cf687e15f4b27f343dc13ff155bd86c8f0580f7f16576bb6731b782447fd0f0511f8c75e95
+DIST rust-1.72.0-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B aa8b2eac07010a0e564d6681831f99e3379ab5a2520c3fc29cc67803afdcb8952b596b653d8bd8e15305f1ce5b9c97ec611a3d3e8f4f3ab2dd2dd066c0401218 SHA512 308f82d5acdd18469b751d97d89617502ba554e6dfe72cc38cbcda0abb5705dc667f0c18a69aa1260143cfb4a93ce7c77726a917ab2060f7cd7d4a071387fc28
+DIST rust-1.72.0-aarch64-unknown-linux-musl.tar.xz 195414824 BLAKE2B 0bcd33b23ab927c36d2fe4eeca98edf421824d1ac9d88593bfd29476c8faec6fd7deddf0e6efad38faa0000986b234c7f5aed8d15eab9ca37569a434ddfddbf3 SHA512 7ab0adfabe9e5e3226add9fcc34445fecf9bea270cacf5e87c13edfa240c2b26f34cf035386ccd9b8c1edcbd74285d903d3dd7a96f6f1a928f4f60c6e619324d
+DIST rust-1.72.0-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 243c5108f2f56f742d589a3d510758c7377e5ff2625e1414f6cf5340c111780ad6397305fb01d28af50a9484662777c70328f9b2f490f3e2e3f934a4ff133604 SHA512 49289ccbc79f022d23eaa9d4d9e551365be6cd348e23f01ac099e103cc6cd2508b30494057e181a8246d7c9fe1d7fefb6ff473608e3d8835d098ad6c00dc02a5
+DIST rust-1.72.0-arm-unknown-linux-gnueabi.tar.xz 175875544 BLAKE2B 20dc09b8e2cc48a7a52f184baac30c523cd180524b178a91a72c6b7bc91e8ce0fe3e4d2605b1f9b5aa1535daf29a8e92328bd919a9f5913002086726f5e6d8b7 SHA512 2b8da66ec7575fe4e77d34247cbd91b376f5f00039c02855964883fe0e3610c47f087ff3486b36181ab7724dcecec78762636c9c9fd17a2e9410bee5f7efc84f
+DIST rust-1.72.0-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B 8a5cbed0df91a723f3c96b612c2eeb2580073fc895467a051b714b8d29956caee3199422686ebdeec6f38c8b0b05e5ef7a79f4a5ba92d77ed500ffcc4e3532f9 SHA512 a3259d475ad2722319a15ebcdc5c5c7a74b38813d7ee2de5d1d69e7ddcb9cd2bd3144655df73e1f5736262de5166d444a4aa9ec638ab4e2228de0e5b91fc46e0
+DIST rust-1.72.0-arm-unknown-linux-gnueabihf.tar.xz 176030324 BLAKE2B 8285f86700cd5dfb7ad2bdd70fc58a5222e64d7bb70aa51984001ce379b4fc7117e90faba1c3465357a27691231aab1c601f9b603418fb2004a4b2a8ed74a083 SHA512 9f810fd926b7d425c14ae40f8e47f59609fb18618ff4b16f26cc42904f9797a9633852a6747c2a7ecc130adada08ded4c99565a53d563b17ad04350d15145666
+DIST rust-1.72.0-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 6465556de7829ac1c02fc8cf6f9f394d87d8af9326710c100f24de5cdca62c3a6dcb831177d98d9b060a6e4338985513072f3430418e4378c1988509d8f10528 SHA512 3a85a1a7111fc86a5974700de196f716c6cef0436a7bbf791be7ec5eed3252ae654d48f60c5056e5d5000196b34d7cd32d821670677363aa9a94200ff269d6d7
+DIST rust-1.72.0-armv7-unknown-linux-gnueabihf.tar.xz 180272644 BLAKE2B e3c1d8cfdb4a3ed8e445ea1814d62f1d072de67f0c217908c7cdbffb30614cabcf8582e393a62ac43624e0d131bde1c51426ca04d9dfbbec265887b674863b83 SHA512 36f7d44e52668e4e67700834d0614d7f37f3b7219eecd1008ff9660f79226a011bac75402ecd43ae12ef5479d2e2187b10691057c188fc5046cb79138bf6e521
+DIST rust-1.72.0-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 09ed6107a45ffc61a80dd2ef21a286d184f0a2c8c57a8c0e41fa1eca786941cef06b66b5035eefade29781912118ff1da11a7f7fbb3ab3b4873d8cd2249e3f03 SHA512 7735c460247df0a6536561967090eeb5784a44d1a1cabbefd6d57a0afd74bbaeec96f65e206388f7958b32568997ecadaf83c9e75451986e70fb05167584bae4
+DIST rust-1.72.0-i686-unknown-linux-gnu.tar.xz 203434692 BLAKE2B 2affd5b42c664939ea0c15837baf51c9f315aa456c41e916300b45a3eb06c26995394d292380470442f0fd4b187fb58a1730ecbe9a4928837a7ccc0d59d8ed2b SHA512 fc8ed251d6c9888894b168506e5980cb9802b43485de5c9145d128257b1b60d363612115149f39cc13a9e18929422deb8285dd999abdcdb089d2318dec8ec606
+DIST rust-1.72.0-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 16048265dcb012b67fe9de44c11353a2506b314c45482721648358ee84dd500d13c30ab55e14f0cbc6837761924904355f02a0001a042819201c096965c8bc74 SHA512 5f16000c95372d9799787c3bb0f4d948cca18ab806e368ccee17d4bddb20352492906d54cd56fa3d50545374a70e42a893c37463baaccd1e612358a7c809a9e6
+DIST rust-1.72.0-loongarch64-unknown-linux-gnu.tar.xz 160819080 BLAKE2B 66b5f34f9dbbc633fc240a240d5b0555ac55c5cfddbadeb22168ab90be83410a75a9fbb154fd1aeec2ba8447ff76ed2984966c7352b46afb52fdb2eae82b02a1 SHA512 fdebcca89a65d5cfa6c9d65f89a34989af0b8c5c1396dc182ff6d4ce320111ae6b23c2e06786ebefd8dc40dc391342d38fed38a193daf0b42b6dac64cd79d36e
+DIST rust-1.72.0-loongarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B d7e483773ee6c105829d7b711904dd14194c9e69d6ad1271c45ff826d78cd23da3e8f5dfea688adb157a9c2697d3c36b1e88e7ee2789d571bc90e41701e46540 SHA512 0644e4d76dda08cd95bc45c5797252b26318841844f4d0baa49212c1121c773b64d2a4ea993c83d412e33433e604b1cbdb86ff60f8328cad2f5c741ebfc24a42
+DIST rust-1.72.0-powerpc-unknown-linux-gnu.tar.xz 175099316 BLAKE2B 7eaa2dc7816f63a9a4288d852b2ba7b3e13c5155f5f9a8a6ebb4a2d20f03e900b52054689958a07e7f52918835536ce92a117f8ffa014196040c3bf340d33b78 SHA512 f2e87a12a2d5146011fd9df5532df06b7a936c2ee4866b95d0d484099240df9aa13597877d8f1ef56537928b196dfb89d2b2084784ff9b2f86eb37407661bc4a
+DIST rust-1.72.0-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 681fae9a730a7f8006e30d05378ca518abd8514edbf69d82e6485f11a8a98f14c819f63618412fbb4c525a4b60367498d79c0b935f6be5c7b8a59f4e60775bfd SHA512 c4f5020297ff35043c1985e04ef5322b18283d1ee24a84cc29fef3f3e48e87612bece6ea5e86a5573b86133fb1cda7402aae98c897062b18d3ab71da48e3b68b
+DIST rust-1.72.0-powerpc64-unknown-linux-gnu.tar.xz 174927468 BLAKE2B 2b7c0d3b22a6b6b80f2f9771a6a6ef678575d94c2dd0dffcde0ab572507a09b663a5a4106f72865b57da37c9e710f75d38882fa0345a73f6f1498566a77e52de SHA512 c7b7f9c2b525c8ea1ec9f9c0090a8a4c098f5680b22b04b30ac86da29586b04d2a901498035ffdb94793b2732ee985c71137c63c1f7b938496568ce8b82d678f
+DIST rust-1.72.0-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 5b9a6805c0ca7af4931d47c9950358b896689b452b898f0ae5d21a4c4027c20c321ce6cb2b150ac3b2508ccf0a3a430124a44974cb011572a126594374e9c182 SHA512 239bb2ae442d2b7d970bcbab4bfca77e09ae17d2caf4a2cdcc231d1c9f1aceb4b98a050eb3f3fae3184c2b6f451d32cafdd0d1e11c2714e180f3e3769b9a1b42
+DIST rust-1.72.0-powerpc64le-unknown-linux-gnu.tar.xz 185829712 BLAKE2B 305af3179f7a66e6fd7b8886e9f86e4fd4d2d71654658f0804182bf7ba1a5da6c71903fd89e899eebb74ccae366ada580a7b4a33436b3b82af928ff5d081fce9 SHA512 2401d3490c1e3ec32d185f7f5886c355384ba2cf28c5d14ace0d2b8d14eb5c5cdf4c507c67c104849decc23bdeb7223a151214e11b67c2276dc8f795878c76cb
+DIST rust-1.72.0-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 10bd90f3e07d892adcc04d9ca43454a78a5e260dc0e90978ebd50d48aaab488466584180324970f790eb181165f2d3961c515225c95efa55ee3d53d4a8f831a8 SHA512 e72d4482171090bd1e801a94b7ddf7002555e37aea9e9543e3d7f263df938ff223c0980dbae4b56665ea42e2c352e94f0f18c418fad02cd68d3b6d7f087f4e7a
+DIST rust-1.72.0-riscv64gc-unknown-linux-gnu.tar.xz 167275368 BLAKE2B 0e77dadf640c0fae29f720458caffb3dfe1d9a6514526676e1da333098341eba20d2df9b191005e5d66e6396b9e12c25520692f862ad84c1fc91eb1a6a71c470 SHA512 157da3684962c3145206910627bebc9fc5f01fc8d7e56477bae2796bc8fafdcc504dcb77cbdcc96cb2288b0cb019452116df7740fae3a87b5274d103da7f3a41
+DIST rust-1.72.0-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B e660968bd401882034d63884e60ddf0e50a42c1e17a517aaf153731a0d319d9de5c074381fd1e56b535e1a870afe2b17b7dbfbbef33463a6bf4ac0a78226abdd SHA512 87bb2b30710a4159d1b2b87dffd45be772dfaf58218459109c8279da21440ce423cf5ee28fee0281c3b2b9eb433880c0f63177b0b775027b15095c9b6ea99bd0
+DIST rust-1.72.0-s390x-unknown-linux-gnu.tar.xz 197718192 BLAKE2B 465815892d2c4c76978fb3f14fae021f95007f17e3b6937ac64f22432aed808e77eda6081f0918d7fd48e00364099ea147e21dd80ffe93600088d7d1b39ae9fb SHA512 5ba7b7fe39fdf9a542040807283ded3271e37a8576e387c7d5333936623f688192902686027e491a6c5405906102afc0dfd465fd4093956b88942d54e5974e45
+DIST rust-1.72.0-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B cdf0ee76397801ac561e39cddd1eb1ee94454ff52df8e117a35aec010d4534b1ec024e1e1981579924bd976a1a48bc1217c990adb307a2c4fdf618c85801cd0e SHA512 a333a1ecd37aedb9f32365396dcf69e235a3c084bdb34b656929ce38ad78b5a26092ece2b81380efb32544ba578a657615132c02c7f4491855c9ca90d77fb863
+DIST rust-1.72.0-x86_64-unknown-linux-gnu.tar.xz 163402880 BLAKE2B 0f498510f8bbaba4b36e9e1cdc8e1e0482b4f26bc7f42a600b3e3f2294490f230a87d955c4f79c53ce277163660752a39889456d743c74adb2659cde536e09bc SHA512 f02fc82181fe2665aa66ca4948b66abf031c9ca273bb11ba69d1e99bf5bd1707010c4baaa04d8c83e9e97e7bb60440e3562380077903a459f689ef5dbac3ff40
+DIST rust-1.72.0-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 51083330fef8b0e9f4fafe71e3a08891bec9be8e1c2e64ef37cba463e99c13f44639981c8aae6c86d50c6a23c4846a4f056535dbcbf39a2d9096615862feff87 SHA512 284b74f87e192451ba95cc423089d64334f43da8c221f45acb683a088e7dfd783c488c7ed3fe68619aff4c245271cdcf4b1b8c5f0bef1f8c3d3af0ca13d394c4
+DIST rust-1.72.0-x86_64-unknown-linux-musl.tar.xz 234831716 BLAKE2B 3ee1a5727ad120bcf173dcee3770e342f107777984b06782f5ae588a58e5da94ad4550b00c168ddbe84350605100558bc01e139763b5734cdea32545ee6ee41e SHA512 62d5967669164ce7e8b6815298d79380ca96cce5a6c8a67db84cd3d5fdb6825ba9d2a91d59c2185a93b1c26030ef017c63942dc7a363e742d0abf356bca6f1f5
+DIST rust-1.72.0-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B e04731dd5edfe93d17cb032d772917d49bd46f195738cefe2e685f42b9ba5148d120e8d71c627cae46a665235f14ac0b35aff58498ff92da7edfdc5d6e562773 SHA512 2ed245aa779c594f8d9cbcbf63e7c68165d600408a25288163ceebf78946210a36958a3df80c50b2006e11930e09ecec0eee233ff659a9d2ffc78c1b55d3b0fc
+DIST rust-1.73.0-aarch64-unknown-linux-gnu.tar.xz 216033148 BLAKE2B 78bac094c78d68102cd5ca6a7bc9ac8a51ecd3e14cc5c66fefca0a0597b5ba439c22d69a323a6e7cafdfec60cadf0672c91ca5f85065ac8d7913c83437ec0256 SHA512 58198ebecaa4652e0477eed6ad2c29524e7a3e991ed437775281ce526c8485b2a1a49c75ac6fd5bdcc6cb997cee4d1b4d82fba49c03ad38bcafa764f5a9bdfb1
+DIST rust-1.73.0-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B d4b85efab3aef10fd6940630ed3cbf6cca12961228482ce42cdbd4c0c185c55b9ccecb1ca386e7a5c02fa33b77685dc8e2d619ecdec0cb5afc7a01402be5a22e SHA512 b7392e301c00e2ee1be692e6b5a44fdadc4b442979bf8f09fe71f80d82b6f395d0505621ba8eb54fe6145812f7f9c0d2b278e474d6edde51a2318cf27f5080bc
+DIST rust-1.73.0-aarch64-unknown-linux-musl.tar.xz 197525740 BLAKE2B ed84c438426bb0fc9a5a320731ae448f242b70a764d67e46e53a37f0e76262a183886e83fb27166e030740a27e6a79ef1c8f50bfc4a2c9c5d915ee5fa74a251f SHA512 b1a3007217dbb771e459b92a2ce0efca3babb34e9901cd44006d7c8ca92f48f67bdb877d3ec4710c58ad1645da4830a52cc2062b6b5a9827b8d57d508f4029a6
+DIST rust-1.73.0-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 2e2a965b37bdeec12fbe3f605c4bd10bb51adc7dd1c2e2d185b7306e8c75415d678b1bd83eb68e8a05099eb77958a928e867f87b0a4f05b5315b89869f120a64 SHA512 b65b08a68571cd0cf17f4469c1eb95868e00e6244e30ac0d3c30e0ad6abcaed143a7389002c0f90b2ddbd79b9c9c3856d66387f701a8d0eb9f1683ce456e4910
+DIST rust-1.73.0-arm-unknown-linux-gnueabi.tar.xz 180327600 BLAKE2B f28725f19259806f934298d2b6dde6bf59e5f8bc3ee0ad9b1cf0565a5383a31189170f26495b3103bbc9d86d2ac9b83147b3803508a53b96eebd214d2b0aff90 SHA512 27900c5faa9076db40cc85d973274a09ff44a76936312f905a3d9751d0b7480dc260ed3cec91a65bb78382c67208b28978e2079e28a47a25aa6279d09adcc045
+DIST rust-1.73.0-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B 03ad365e06dbaf30d4ca2d8d2d3066d4f956ba5426f2c5b601c3830d9b0741b3655d26eafb3853b41ab01dc377065ca330f9d6fcf89de066c50adb0c9c9fe3bd SHA512 ecef5fe8359d8dbf23337398c1cb90a269ae169a1cd08525361d6f39e0a24dd22c1819c7ee0fe3828431ad492af89d19bf8c3c7b111f7925831362e2050d1040
+DIST rust-1.73.0-arm-unknown-linux-gnueabihf.tar.xz 180870680 BLAKE2B fea49832d8eefa7545b76114874de3d653ed888f753b68cd7636b7a1462bb564e19bbe37a5f3b94cf9a06640bf81f6fcc97f224f0f3e1745eb19f99ae193d3af SHA512 3648672256182cf6c73e31a05af3084b996bf25e1ccad8b96d68501e57a4ae4cf57befdf84db27e3e1a9fa3af051117e94ffcefd14246794e7528020bc26f4d5
+DIST rust-1.73.0-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 7046fad305aabf192a1084328d739754bf76c27fd3f1efcc4be36047ef6c4bf899ef8ae7e3cb359e23578af4c9a25d4e1f453ed8695ba33c630d46351234de69 SHA512 7e046b79d4d0a1bee3c7c5f6b8e3020a342a39e9913a24ef672aa1d197e63905653acc24652b720a4b996029661503e2dfc3b678f297ce15c548281ed772ac23
+DIST rust-1.73.0-armv7-unknown-linux-gnueabihf.tar.xz 184898496 BLAKE2B d0b2ce03ce7ab5e2c843989958a00524fc59000f62dc07f9783f4b9f22c734b67b33e403e3300fe3350322e1ad2b59e64e41b339d5f5c258b29dcdd98dec9c61 SHA512 ca48bb9b683058321b0ae770faf2fd607e03ff5e9291626ccbeba707f5ef8c211c29b9ddf52dfa11958691a127f95dedb742010018bbd6be2fc1d7ddced44190
+DIST rust-1.73.0-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 12e19ff5f586a7f67bf7e4f6ee96d919293500bbfb3bec306b412a423a3dafe94fe63939f371a644e1d3a1575a6a21df78f11ee63a8dbae9af3a2ce6b03d5104 SHA512 9e1f316abb8f7861fe1188aba1880732b957514fe58de3f10e340c430c1ce64e9627feec1a655335d33605cc6f5ee32830159a8215c5a233f25ebff18e2c7bf7
+DIST rust-1.73.0-i686-unknown-linux-gnu.tar.xz 209918920 BLAKE2B 545c48dce0e275228e260669d0f5b93977a9c7a02237d4ae9d84ed69236f5e412c5980e2c5823478949214c2b775c89c836bbd43e25406c20fbdc52cee328240 SHA512 a80742d14acc1d018ac35b77abba4491b5eafe28bc3173527c865b0e930572f2a92d4fc459db51c34600f8288b20b5790346b5f8e6fbdfcb080f1f14f44a2db4
+DIST rust-1.73.0-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 9800a96cf8484b0370f343c2fdda0762bab534fa7551a7716e7665bc90b651207c471ef5e06b2d7acb766959155b5d593b375487b01cf65e980ebc721c3a4042 SHA512 dc0c25c270701ff6509bbff3fd173178ec8aa3e5cf606fe87b803e6f1279dde3571d22cf0c7f28bb0ba5410c08a491f9b9b937d0aa796c0ba30fe43f7e381c1e
+DIST rust-1.73.0-loongarch64-unknown-linux-gnu.tar.xz 161763960 BLAKE2B 1ae7019055a4fb457733826750d2c20708e7d8bfeb8532ac1af5027387bd1f992c2ab1fe08d088b07581b0a81d7ea7ac8e44ff077887297a4d4da2a633089de0 SHA512 9840e1454506e3f0880e8113040eecd1b363bb78371386aa069271e18e70600f81e19358539785a3bd1ada7244b4830362e6f0b466798cda7647ed795072342d
+DIST rust-1.73.0-loongarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B cacbbd7793d6f693cf2c1211529cb4a0c888f3ed4d8674f610e034a7216fcf7f4ecc85331aaeaa89ec02c1412a62fdbda29a3bca6faa64dee0f8d419d055b41d SHA512 64b8594f2f19151927f5b74584822a78b15da97fc8f5e4823dfc222056a203ed68ced70cca915e1694ea6b36fdef5697e5b56062cb761a0d9557e5c08ec8ea07
+DIST rust-1.73.0-powerpc-unknown-linux-gnu.tar.xz 176694620 BLAKE2B e8b43ea4b9ad78ece530985afdeb140e0e960213272857cedcfe4e9262c190c7d26ce77d46fd113d2742cb159442c256a081bb6cf23e6977fa5ca8c6cf21ec30 SHA512 03f889dad45d1bd9ee4af52209af3d763ad5362cf1a617c86b050e0d2fe00c39edc716fc32a83c6e45c118b97d828c32f682ffec5b32f215d6694509a885772f
+DIST rust-1.73.0-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B e63cf87a2fb0584f2fc5c01a98dbb12bd9a7f4aace54a08505a0b4f9e7141705409d8bff1cd3a2d7cf40504ea274f29e11624ba050d56e4ec2a4e794fdf188f1 SHA512 a86db43be2a2fd92638e6355ac4117e707073fbb98631a8b41064e5b01e12bc1d2c594547778d9c99ec3e24c5c4dce6603cbfcb3715b11aef9d2c2758ee8b7d6
+DIST rust-1.73.0-powerpc64-unknown-linux-gnu.tar.xz 176165132 BLAKE2B 3750ef413de00047fa957ecc6c832995e072b58b78f994bdd6b8291583acd0a4ab54634d4e4778456bce6420135c83e9961aef5e615fd62806531686e33a31d8 SHA512 9f1a669f7d532a831df76292916493e1bcd4a56d95d3819c477898eb0510bc8760d008fc1e7d383927f8afbeff826b0598f9bc4067f692f530856c8e444f44df
+DIST rust-1.73.0-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B a1c1db86107b48a554d815811b518f7b28abac90cd08920362643a538670e7859ce43d179de24551b5e4409e0a421029e66b8374b27ddd699ca68fe0f47b8904 SHA512 04604baa0f13693d4bc7a0729df7041a55c0cb9efa11ef511d29d2b5a50c3575867c1ecbb6a23a030dc014876bc9c02e370c8d0eb531249833fbb52dd964f2b4
+DIST rust-1.73.0-powerpc64le-unknown-linux-gnu.tar.xz 187628140 BLAKE2B 1ab716a7d2e536ca3447fc0aa2751d774259ea2e39ee3cc150bfe11967e57bd85b484cf050a39cba717a0552dabe6d1aa79ca7dc24abe4b43d4802fb9cc1bc85 SHA512 d6566978f47067b84715ef39756721ced5f5430d5c92f51b673db39d1e1666a8dd933e998d4fe3ccbc36ec47c62b4fe7e335c4e3b830d27571dcf9e534446d0d
+DIST rust-1.73.0-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 6b3a29cf580d750a17436036d6bdb2457cafde123c289205aa239457afa4de10b4b97c9f3ccc23cd296a1a388802ac4f696c71e45a2ff7c97d15d63f2a04cba3 SHA512 5840b7986e9472a4907ae01eee0c4a40664ce1a29ff159557766bcf50da773d246a74ffed2bc5bc735d255514e0daba55d10bdbf7d8d2c3a6aeebd704f3009b3
+DIST rust-1.73.0-riscv64gc-unknown-linux-gnu.tar.xz 182202208 BLAKE2B 836d89e6ce276d100edce8016f5a466b99e8aff2646be7e58dea2f38678e4fdb9b93fff1126573a112e19cdb32ee5290fa58df0e5cbb1c309e65927ae1439b52 SHA512 c49031996ecde5dfda4b8bf3869b37ecb51c89e3fb8f69d3d43d865bf2ed6dfa928f0239460f0f3c7b7168eedee9b5a957d956f39ad42fc7276fe64a649ee501
+DIST rust-1.73.0-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 119d6cf2b0b4f8950d51aac6eb865619412e513c6c87f31702572cb2120a20cb23133a763036cbac0a9977a20dccfb58a8b034d19d13892ffbde05c01970ec92 SHA512 578c2576f66d0ad344549a94cf83f80551dbec7ecf2ff8616d81cd1eb3a7154b89701a05caf6a21649361ccdd1abfd37b33de935e91dba02dd914945de3930b5
+DIST rust-1.73.0-s390x-unknown-linux-gnu.tar.xz 201224624 BLAKE2B 5f9f28c5f511a3bd119233e4a2b882119b18a42a8c235bafc57f35e365496fe9d6d88c6278e014345f76a98a235ecec31335178a6b047e5b2188d391ba465e70 SHA512 e946192961623be1e3ab4b3e2c86f16f9fd716ee3ccf88137e6ed7ca92b9e8376552a9b46b48c127f6be76a1fc7b240d9b8db568390fd7d81605634ebb431ea4
+DIST rust-1.73.0-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B d05fc43c55e47b3a32e8be8f97b072961e920ed09d368968d1121dfaa0dc36e11ca61a0b03df2f708d0eff31a80367b5d465434b851da4c8ff00ce9ecd577bce SHA512 5950cfd08f49bfd0f1277e2f07e333e7188d65d6a61d738dbe586bde8f3647862ef6d6ca5f52d74f357ae3997f1554a2c7cd0399392cde7ec32b1f2aaf8a4c6b
+DIST rust-1.73.0-x86_64-unknown-linux-gnu.tar.xz 161588916 BLAKE2B 10c1c57641e2ae076c55826985d8ef43034a3e4b6fd15d109f949e8bc655dfb16d45ce86482992cc2aa3f4000f3432b8be17019f9f5d29a92fb42c37cd7df72e SHA512 b70886b5ecac41a7e6ea85d1b2d1aa557a0395d3f8abe4b8d1ad91f3b32ac9ae73bebfd7a9c48ebef4141be041cf5bdfab8bdb78e1b4969afb439daca203d5a3
+DIST rust-1.73.0-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 22e68ec4e6bfa49c15344675abd20ef9449d928943dafc64bfa1cf78dd36ccbce4802af8d4adb84762194dabc512efa74655a93785c127e6942ebeca8f6e3303 SHA512 56e53a1047a23a7f37250a785de2422ee2a3a72fdedb9a02530b3cc1cd978370cbbfc0e67d75f3d537f48c6c78f91d3de949ac2c9392a79404609b169cedaa40
+DIST rust-1.73.0-x86_64-unknown-linux-musl.tar.xz 236190528 BLAKE2B 062b54b31742bc846bdff63fb38be3a3a1f6d2f061da26cee6a0b089feee995fe3dbea536675495ed75d47d657c3d4bf04e36f6752f59f8308f7eb9a397d6e38 SHA512 abd01e0c98a8aa447d01613e24302ca81a8cce7d41179ed60834a39ed1942de0459add3c498a63f94bb1ee8662a2750b375b49894e3108da45f47d3a643cfdba
+DIST rust-1.73.0-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 9822879d0f14eb5387a623d111ed7a3b1ff038522c071608bd254c4b3479da8a1e9ed78c69c267c1156c45a9cbb2f7db00d123b85f28021a743d392d1cb65c75 SHA512 ff65fd3ca47afeb10f7434d8d4f91b6649739167639c3eadf178aa1339553c5316bd0bb393cd53fcce17c126dcf8db1f1dca6e87044b14762bb20ed8f5a500b7
+DIST rust-1.74.0-aarch64-unknown-linux-gnu.tar.xz 216169516 BLAKE2B 830b97f710a3249c4d1df6b37dc9c429cd8d8c8edb0a77de8d04460bc2132ababa6777dc92b82b8a3b3839256f2dc522128d31a81c8b5ae9820a483368292cc2 SHA512 40a98f9238af1a60a0506e3e1b88e1d61ce68ed6380c78c77b638b1fccbc8cd0e39d7c042a70dcde454a3fe95b6c49950820f728b847dda218fdd91fef7066de
+DIST rust-1.74.0-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 6b15fd93514659cc64759b7c7c3e26781b87f58022d91bbeacc64906c681ed37b825031e9fd78051671b35c5abbf4d76c11e320742d5b482f36e98ed9d8691e7 SHA512 2480367abacb766e015c3287568cc2ea2f186b48cafe709595641e40471b4da1e29b5e41d2a3b5eb7d9f9329725e46e4110800952e554e84212e3a1ad36f06c5
+DIST rust-1.74.0-aarch64-unknown-linux-musl.tar.xz 196821888 BLAKE2B aa8444b243a670ce5130a0436bbe100b75912a03bf8b3f99f5dbef9b3459fbb3b6e0d0fae6e9d9ec368e95b20f563a8821ed7698cf699b169887dbc63a7a71f4 SHA512 22255c52052977b272dc740853359c15e2764164b38afd473830dd69830d4897d60dc037f0e6190df8a31ee22f80d69f60d7dad968a41b91f23368328e11eef5
+DIST rust-1.74.0-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B f3ab9235640f5314de7a01564fa60563f123d7d4d8755b4263a687fb22b4d874cbaaf9184436e62c8e65d23c64685d33333f3585dcc518fa90229d1a045186e8 SHA512 2ba35243e3d626347a442bb9b798e698e654d65d81d3d2391b791f33636a74e51b2c5f6270d37abe641f6e243dc70169e990e9fe1ed0392936f272b65216bd08
+DIST rust-1.74.0-arm-unknown-linux-gnueabi.tar.xz 180475660 BLAKE2B 33ac40eec4641d71ed03226dcc0cef62fb4b108835ca8532110237c41c5c1eaf5f2a78ae3b97fd69043898439816702df6d1ce8bbfea36622736b62db1de7d7c SHA512 4f90237267516870a9d236add52b70c4e3ffe2b12ce0280faea4f740aa81b0ab8fdbb0e6e58425c8e33a0795a4bd18cf766d222b9d6f8ec9e972d4ce10ac0640
+DIST rust-1.74.0-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B cb1c623548cd2dad04ba2130883fe6ca70466ad8e8d10a0bcbe42ecbf7f3e10c5f62eeccb5300d133458e26c9b340ea9f5aeb3b3bd35420e39ca4c2a751946d9 SHA512 eccee9e6ec905d4b30b620236bb2c3648f4c5e00518c2e1b0ad5d009865d56abfc866f1a100acc8c7ef559590052cd858cd247bd091d31821b27bfef00b9487f
+DIST rust-1.74.0-arm-unknown-linux-gnueabihf.tar.xz 180651920 BLAKE2B 34be0e8e7621bae3a7ae0c0c5fb94df55b42035d4a6219d773e109cf8e17082c81e0b8e831421f702bf269e095b0fd6bb798a8ccd78f12b099e5cfa638458572 SHA512 c6f7f9aa592985206a3af47f8d61e094e0fe3c714deb6c569a8a0bef8f5dd897f8f27ab33dd184eb28a9267c877f21527dd421baa312bbdf08994cb69aeb6ba0
+DIST rust-1.74.0-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 81703b2035f44dd3272cce97671205d6f838f1ef09dc22e25316567119da12ecae6c38d5cd54a82f70253a65357c60cac3d2c6c91ceb90614baedb5fb3707306 SHA512 aa7d6320d868f4b05274a964570f6d1e5bb4b0f72da0875d43356ff2a48a4d1a2605dce1097e88fdb3cae502c05373540799175bf205676088654a0288718995
+DIST rust-1.74.0-armv7-unknown-linux-gnueabihf.tar.xz 184856340 BLAKE2B 5002309dbc31916ff4984637c646136c0be0ff682d105f579f3e66dc3aac51feffd9fe70e1e4020bf554155bab88fceafd0a223ff6f2d8d3c885233b4592303e SHA512 8beb260a0f07b11b91a21ff7a6bc863d412006a4b7a582c769ac6991ef8d93ccbdf3b3e9921ba16fd2d3c4354aec706298fce182c910c26e4fcc61575e6f6213
+DIST rust-1.74.0-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 6945a1ad0917f5cca07e1d8e292644054a613ccbc7d6d8d8b4bbe1d0e580bd1e7e40c62383fd9ec3a465d9af1db02f28eacb98bfcd5bd9f4c4431f74824f1a7e SHA512 c3652f8a7336e5ba4c45a31a089d99fd9e36bf8f7b593a3bcbb728a24d3d76f81ac908b0ae97905b27ec0697364ce01ef6adcc1853756da300989b4ab4bc6d15
+DIST rust-1.74.0-i686-unknown-linux-gnu.tar.xz 211708688 BLAKE2B ef83549b86e4da0c8ea61d14dc302dd10459798fccabaafaec7e8f24ff2a4695e4378706c48092b8afd3dffac7d995e53100bf0d5f3caf73dcdfda764cd3e656 SHA512 b97e1ee46d8ea20af6a61ee933c66b5314f55c3c3879bd8101943a769dda3ded7c91899fb7eb26ecdbe1f01f35e9784398cb85d494b03bf0673d2c1c8ed27f9a
+DIST rust-1.74.0-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 9a0916d77499972812edda89c04563d41e899a68f73fc8867d878e938ef6b37057e97e7209b033d6624674f472b9e8441fd89bc0a82a9ec17c85381b07809367 SHA512 562931b7a78a92ae6f07e502fb044c1ed45ffca94690cf8316c55c85ed37ce426ec72b526a10c4da8bbe947f1b253e618338028ea064eab8bc446ffb291b5aa6
+DIST rust-1.74.0-loongarch64-unknown-linux-gnu.tar.xz 161629420 BLAKE2B da3b11b1c8ce2d3e1f30885279e4524f795bb8680f0f076fc154c7ffcf067d5933f2a89c2c5dc142859adebeda9eebd9559193a5829a114bc670262872069fa1 SHA512 a3d75491371d74d14d5ea3e1578040b1baf67166c899e0c590599d1a5efe5d6fa11c6efa9f2525ef2011650cf62d7e1384f71f9bd33357296915a9564b2f0c3a
+DIST rust-1.74.0-loongarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 58d483bd3f21344f3a2da5ee4a88b2a536baab0503d0fa52f7c97ac7f6cee308401246cedc5b2c38d7d6ecf57290e2e0f48f8a84c72cfd5aca7e2d2310723963 SHA512 28fc0773a95b0822b262dbd48f37b637ec95cfe7694b2b2c9d5b18e0492c802d29dbb0013382fadf2037250faf9b3019cd38882102f864136be1e64623c89882
+DIST rust-1.74.0-powerpc-unknown-linux-gnu.tar.xz 174911076 BLAKE2B 3539adb3fdcdaf6163a58aeaa2d5f1a7ca5e13119d19a559b328d2e994ea5c0147ffc410391c6a7d2714f814b4254d847791a3737596e4fdc97defc7e3838000 SHA512 95b76ca4f0667ed63e76b99ef7b3667d88e13592de941a6cdb85e970ac766667c2d1f7161e20e1d8d63d5968fd5c82f2c0bce5d84f11d59b438b0ef16679faf6
+DIST rust-1.74.0-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 58262a22b6a589bebf51a494e4bf0217b58cdf214c2eb0bbfa9d9fea20f0a21ab0ce76271772c452fc2d5a0b049bf09c84b342eced0995b9456e68747aaf4c63 SHA512 3c694d9ec22c03d07cbd64dde1bf5f532beafdf3d974e77e5fc09adc1484bb1572625d62fd1e0d13613c4b63c2efd82f58ec9e4a2a8ff87b2527b2da7896e703
+DIST rust-1.74.0-powerpc64-unknown-linux-gnu.tar.xz 176265620 BLAKE2B 2885cb229d612e702e47e7fcbb18a60c9b5aefaacbf14ae146b3078b53e3e64d05273268d4e2e0c61dac1f7f1a5238f82c0ab7e0a05aca25478e661e6f5c7600 SHA512 ce6c5eab3de7ce6800137aa02c19a9c1513738af140c9cb1cf1c89f33f71de50d022a6af92eaadb26898422c7beebb6d6870f2d766e3eb4e363afcffe75a2627
+DIST rust-1.74.0-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B e3c29be027c55bd51b1520c9d573b2e3c6b8c094568d57b940db9b895532405717676cfbbb7486b78fed6d3c79453a760132ffe2b2b86bfbf67a7872809cc5ff SHA512 baed4414207068429bf5c4bf445650936bd1ace3bde19f8fdede269a4204e37964c6b172d2d347fa93e472128fbe7ae5696be82d5ef873aa6a3c588a1621f1e2
+DIST rust-1.74.0-powerpc64le-unknown-linux-gnu.tar.xz 187255560 BLAKE2B 29fd06bd7a3f0229b0c1513045932a7786ce10501469f46ffaa9d747d7badb63c69a0d1f13ece3b09ee811b492e1214ad4bf2b875269caf829e5a6eea449f0f1 SHA512 96a18b9938f8e7c6772a7215d866f6bbbb28d379ebfe4f0fe0e32fcb4fdc5f3b7441edbdce3b04fa30ef91f8d5c2a2c1fe75ad0cce1ce1f2ed75cbbeceb1e64e
+DIST rust-1.74.0-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 0cd802412a19cb27510c91831f953ece98b0ac65c8ad6f91e1b136694403b71b1fd29aa8eccf45384eb59ed72e7a6e4218226826e243d1bd232444c277f8f0e2 SHA512 a73c22b8b0a319c3b0997e463f4cafbae8ce3fd5e66d42db07aa60b6e366a92afe640ac36b0a941879df3510d9341b3cb3c895e2c864c0ebd4b2bab7c5426dd9
+DIST rust-1.74.0-riscv64gc-unknown-linux-gnu.tar.xz 181305504 BLAKE2B 708e30456c32d7fd6d8d07e18bfcc73d339e5c6f5ea92fb3958b538c8a3bc4b79d02c79e2de9a5e2480ec7ae6cab6a36d345cb183a811d738aef0536fd143701 SHA512 050ac10adbed179c646c6348fa43a1bcfa18084de444032d8c064b5f1a7b059aeadbf9e06a75079b2dd9170e1cb078205c2a675e0c39fa694c813f2da2d616dd
+DIST rust-1.74.0-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B a3be1f47f23d62f46b6c2b1dae6d07243c90690f3d097b24b4f7b2a22471d39160593e2703b5baf6a3c701f167d8941241511bca5c78ba79a25da37387ea1cf0 SHA512 a9c4c3e22bafb1c53c71d9836873e84c6a1b3adffeb361394d584b829b5239df39cfacfbddb96c93f4ecf48c4ea98421da3c46245f32659aed49961198db18de
+DIST rust-1.74.0-s390x-unknown-linux-gnu.tar.xz 201169576 BLAKE2B c8d5b9d621fe3a1f3ffe28a09cc0660636d33c6aba5463a99570d4061d736847b95cbb7bb3cd0c2d6a007aa8c4b08364867a5b6d4d12b7f34887327ecfdf041a SHA512 96c00ceb9bea19637d92151ff8ac289e0bc62f05e08a4ebe0221d08271a4e80e0fd628ef2c59240796dd289b6d16efa6d6191aafad1adb11f2d8fff92df3084d
+DIST rust-1.74.0-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 779fef510b53e24a6b20d868a3dcb349ececfb35f5e7059ccb0ef125d24361a8732e8459051a8b1e4da2ad1c6de342f15f857d4973ac4a1b9c19236cb66c4040 SHA512 bd266f3b6c09c73d400541a436890c85fd7d7b82241ed9952ab41481a1f19df8b477228a54ea4c215f0313aa7515d6b659e8ebc78f6186ac2b9fb2ec04cfa902
+DIST rust-1.74.0-x86_64-unknown-linux-gnu.tar.xz 155920616 BLAKE2B 6213da724e5052fd72aa35816aeded0136c873bdac5536b8d6efd8e830d1db6b909313f58462b5ebeeab148ded4d29a36f2dd5439ac6c1d1c68f73d137928376 SHA512 27dace338e78e437d5b8214778f75e79dec604ca54023ac6046c6761ad02db4790f3df902589a934ef2ec7e162ae201f9a5f6b0bb2e688d5c1eca90462cd75b1
+DIST rust-1.74.0-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 9d81f9c2861963a34b0bf9bb15a584db502d388b15f73ce98f78cae6bea0357403d9bd0e6f8ea427a9f4db5946ba7dbb4242e7fb4400b561b7431235f0dbe2d5 SHA512 e1e5e3850715379d30c557791a4eeba2bea090ac85e09a982579a703b2582eddfbc060e21420f418cb492e8d4abe87d5bd81b5acf6ee8bd17b80bb6e0f65b721
+DIST rust-1.74.0-x86_64-unknown-linux-musl.tar.xz 235589268 BLAKE2B d695695ebbb3bf0dea28b9d337f82d5828e6ee70cf7220c849a6008b32f2b590ff57ee35efd58d9a38cd17e0f77ac1187765e8fd6470e0ee2c6cf75f3e3f1489 SHA512 3a8d4cb87d1295b07f0ed48f6e01e69801be3c93744948ef0145217b0cb17581c11c618a07b72edb0945c2ffbe85c59ec1cfd99ef6a60c2e96486f9d5d04d38a
+DIST rust-1.74.0-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 0ba1390f67b88fc694df26df22c99ae40f56ccdffb479d9228a17a153de965f8c31dfb4d2c65dad4819d42a0b66b96ff9d3e2c404848dd91141220fdce40710f SHA512 efc779bd0e6fb41297a67efdf731abe3857dace889be284d8ac1e6c239a35749185ad5ac3b82c3b2e55edab3f0e51754c8e53e07d207cf8b4b68ede20cdb8591
+DIST rust-1.75.0-aarch64-unknown-linux-gnu.tar.xz 215543948 BLAKE2B 6d5de2260e4720275bc8c0ce23865840886e27a3cc539ff90c7b8c3a9c04368f2c2a2955dd7c3fe2fe5471492a7ecdf4c2e5a749789a059ad8178a0d70dc32f1 SHA512 7ccd4d605c97cc5a7dfc443ecaee23b4d7c58b0e9673ebd0f9174a4a123639213eb85ed25f19479ea6a818859190e673e0479ee80235a7e35a2d971a636872be
+DIST rust-1.75.0-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B ee4d716d905f654932ef70d65c3e83c573d9076c447b4e5831d1dd657be407621890d7a9858fee1ca8ab869420edd267f71d73948abc5861315ed4dc0880d18c SHA512 007e9b45b3b3957a8da7d01c45c5cc7d2d49942dac39067038e74b414ff32e810fd902b8dc7f7563b18c565c782b4e701f23f6d1cea397959241d3cdfd6421fd
+DIST rust-1.75.0-aarch64-unknown-linux-musl.tar.xz 195703332 BLAKE2B a662f9402ede618e78c9899c9b01c2138b927286c0269e847ff4fd389a07029eaa4dd5242576457c8ed67b6b46eef26396d079d1dc2749884cb05334676435b9 SHA512 eceececb90e3c2fb19866e58619237b416777399c6212362bc09f784138df83edd9160dd29906ed928a50e0359b2d9471868b594d765d35c1c7d8d22760c4f1e
+DIST rust-1.75.0-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B c37dd733fdd13617f6c4be580631dc78e40684c4f47d1e90f575e8aa1c122b36c1fd7182773944cf8cd873c84299a484c9f50a48ff70c7cf54e4b5becb6355cf SHA512 5c35f04cc4a58cd29c1d6e9a5616937492f584fca29db099ed1d59442e76700b83583b1d41e7ce4815187c7092af2eb6f307a959e8b7a647818c9ebe84cf4c8a
+DIST rust-1.75.0-arm-unknown-linux-gnueabi.tar.xz 179835780 BLAKE2B c532fc00e99c6428947e5335efe73fb979e66fd8d52f60e9cac7040d253ef15543171f74c4841ad740d2d334c0b2305f59925e42420ea0658307ad434186a715 SHA512 9d2b398cf97ccf8b70a82c1d03322c1e432f9bd4885d8a42ec26d0d6d6095b783630d83b8a9287c77d8d57b7bc648410273460ed6339e9d254d1bcb81191a578
+DIST rust-1.75.0-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B 5ab700ba8898ab1211b20bf1d1a89bf3e4223eccad6b0e816b113254f7d44f23a03cb7fa9fe68386b0b18ca57d71f39b28b4328f072037058c301526d760b063 SHA512 12d5791f0c1d092b52862786ba6b80031607ed819568734d904e553bc24677b583c64e93cc0cd05fad2eddc7357b21c5d15ef68d720b0ab037c7787f2a47eea0
+DIST rust-1.75.0-arm-unknown-linux-gnueabihf.tar.xz 179907476 BLAKE2B 6ed49db0214fd8b35e4d184337b38dc8393f8baf2958bb62308125e6f8e2126f0aa19c8d44fed3475b7818b001447d69267504ab3c96136e257c37db5d2c2285 SHA512 61d555d9c33c8e1647338fdfe24fdfbb42e194ce4995939a58bda6c46f4b857a058e344e714b88435a7bdcc5ee4a086bbaa9c670bc01de45249ca8376ec47c80
+DIST rust-1.75.0-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 9d5ae3c83985aafdfd1dda6c1db4bf849b4ebaf91ca71ac7249cc8c89de2b3135e752c21850b20c45c5570bb188db1f8513e1df072ebbdd700c37b3ef5f22051 SHA512 6481cfbf21e108d440c8836963d752496eebdf6018b7439459ea079ca82fa05bfc0bd423594e3537c7b522dce05546e59c125eb0cb24ef4db13ed36413c2c1e3
+DIST rust-1.75.0-armv7-unknown-linux-gnueabihf.tar.xz 184210428 BLAKE2B ef329f05d143590d91cba77e7b9a90a977c316e9ae2d8593e7f0247a5db00ca0115c6d468da5394b36e6ce64b2716a51827f39fdc4a34dc16c9220bf5690f042 SHA512 77bfae1f170cd4b2e85a6cc0e02c6f9d621f386a4c0709a2e99c4383479f8979e067d0e92ee7d267150bbf36bc7134bc053afdff7dc0ad66f289aa182755b1d6
+DIST rust-1.75.0-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B d0a3ebb883641272211478bec1a8089929be0107b05b0f499d71f96515941f7d1e18870c8685f77ef2375251e6f1484f675bd04d5fc0d544854f15ba6402f0e6 SHA512 79e631dd0c44905732ee312486a7c8233440120abeaf40172172e9d5ef0c9687469bac2693ccc2aeb63030590167d88e0fb7d912663dbef655e54ee4cbe9a323
+DIST rust-1.75.0-i686-unknown-linux-gnu.tar.xz 209938900 BLAKE2B 0c9afda24a93f3f35dd779c08d65d6c2366c916a8a3ce6633cd5502bcdbbba537743d95b76daa29d0b4ed3a822915cd5516e864b911bf354e7436745d5a17021 SHA512 242775555d7d38d9aed83018f0d0f8f5f03347c07ee92751de445826c08bc66c24f8601d83eb79729d001d63e81a5b1e27dbb5fac724d80d49e6430685052ba5
+DIST rust-1.75.0-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 9b7d778b75c2d0a6f43f48345cb4735a9d00d457a1b4d868f777eb16db040daf246459620ec478b0632ee0428e6215e5c39d819608ca800dd065b6e95b13a77d SHA512 f307db41c5e380dd023cfa3e91eda98dd1af8004d062fcaa759c4913464ee01abcf168f19a9fdbdda6dec7f718083f4765eb4296614de4c1fb6fa06144116297
+DIST rust-1.75.0-loongarch64-unknown-linux-gnu.tar.xz 160649540 BLAKE2B c96a90d28e6b71e2e5a5bea8f591e6b472f63bbcc59f181800e87d4400e647c8a18110ec50c7d6d10c8f460589386e1fbde6273ccbccea9373813c80f6612a2b SHA512 04b601e96e1fa6a7bc00c7d8463e7ad1fc4fb1bb46383e797189ecb972e23535ff864e5379c56fac400dcaf4c42923b8a5c4fd9aa08adb52bc1db8341f5254f1
+DIST rust-1.75.0-loongarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 9da9a6da9b631e72484a3360d692860e98dc77b74e55cf24d6a6a271e9eaa4787ea2f30c38dba483b18890500704319c1dd34b185adf2cf6aee6730bda8d239f SHA512 d6e20fca261aa2c81c019fffe46c7708b58146f9488041419b84a381761a2cd27606d78fd0f6b5e5e79945e1dd76776d54c335ddb453172deab8bac2c3fdf904
+DIST rust-1.75.0-powerpc-unknown-linux-gnu.tar.xz 174918688 BLAKE2B ff7c03e23f8d21dd8f4e0ebaa958fb97ac7779459ad318304070da0c1d98d832200d20d9331f758a33d6131da387af830392e8b34c33c4d220ae49bc93d7c060 SHA512 7a836a7d2ba883388025693044e59af34b2c41a4ffe93def5ed161bf012fbcba7da81cb521217da142852da05503b18df9a965537ba6ba33ef92f52cada8b7d6
+DIST rust-1.75.0-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B aa30bfeea014f600b1e3c387476a28af619bd8d63f5b6f10801cc15ee42deca5ab34d3470ec4f07fdfe2b8548f580ff6a63a89c74e1c53c7ef8cd73ddfb69272 SHA512 7efb2c4540a4be9f712698e7a9a905462b2fec70ddd65b9a6ffd28119eb595514366451932c888abe1ffbf93aa8b05c33bb0560c47b478f5122bc87be1c3bd96
+DIST rust-1.75.0-powerpc64-unknown-linux-gnu.tar.xz 174640484 BLAKE2B 768ae78a073b1a7614594ec1f6c381d7a4a9b4be14e548cd5031ea011600755c1934c442795e05f95a720a38c155cd18be188cf7e4b6417d924edc9c2a9076aa SHA512 f83ee23aa8eb7a511984b096876cce60415943d729c77ef4b4cdf0b0f9f8088082058d10881d5866d81a0e94c8515b3966de5a41dc8916d75392650715a844c0
+DIST rust-1.75.0-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 2bcdf4419fbf491fedcb32a7b54bf2ceb2aaffe0319d9e15f7eb07997646e11283535c5b2024f2785398bbdcaf586aee0ada7128a47b9b8fbd8ffa9e7d0607b5 SHA512 89a0eb5762d49351cfbadcbe098243095a62d41381ea48ebe8a3bf322998c6a46a59ea30da29c03291738fb3d04cafb3c1f57ad1e9ffedd68b4bc1516fdef66f
+DIST rust-1.75.0-powerpc64le-unknown-linux-gnu.tar.xz 186507032 BLAKE2B 49bfbc50e087874b844a7292fefabc0df5217751e2391c44827baf3e83bc0e6a6ce9b392cca58c5b8df6f7f8503110609667fcd9b34e84122016fd0d8df29058 SHA512 536210c00f9cf4bcdcd5bac308954afa4a1e7145844914a5b614745a9023c04273a58ba4ef83214663d69a0a6fc941cd4011349d54e55d84bc090628a7624874
+DIST rust-1.75.0-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B b7a48197f9159a6c5d46306808d4ebd17b492669745a941b5db380d76d5ca78095f4bf396804caf7b55bdf47d79b5e88fa2f74aad999306f586e62851d7de029 SHA512 27d86a35df7985a626b64ae7ec05b803a7ef5feefad476c3eddc2d89fad44fe4e520ab29bb27cac8be0a0f3aff7da85e45ae8fef15f2afceeed4962933869e0d
+DIST rust-1.75.0-riscv64gc-unknown-linux-gnu.tar.xz 179877936 BLAKE2B 210b84fe6b0729f52c2dde492b4408f33a7661ea9a40daeb1b2b312788f2c4dc80ce54ca72f08098e8575215e7fa7500694142c0448460bf8a82b2761c236290 SHA512 7cc11f07552cc50e78a2e90c0d0da1a62fb0547f56aa6facac4791ef81e7d62a2d66f3cd079cda91e0db1564c2931074ae40c8c142dc9cede1f9c374379fe49c
+DIST rust-1.75.0-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 8230c219c9cc22c93fc25f023729e87bf5e725f0613cc0a1a205a671c24beecc48997f824e128b56e4242369328666e355fb5e630cefa6339b39ddab61ca273f SHA512 75820f06aea67b3731777d5b7a0cb907a829b65dcabb4ce2fd55bff52837f6929239be6f8c6b303b86a352ecab16d38afde3ef9683cf7d5c4b4046231c9988c0
+DIST rust-1.75.0-s390x-unknown-linux-gnu.tar.xz 199359500 BLAKE2B fffc6c690c4ad8a9985ce8d2b3e6518787b474e47cf1d5a634f38b5d9d4017ac8f5f69206a9229298dd504d2ed2648dacd2d09a8512c008678033608231c2d7c SHA512 bae263c19a59347705959bf2d285420d2074836adcb92a74d2ec922be2ce2f8aff6f758509701a2136473301654bf528b7c1c2522fd7388f5669d1ed94324c50
+DIST rust-1.75.0-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 74cca56622367225f8326b60540c3738adb2ab12a5e320bc85b448e1cd2111983a0816188dd8767d2f20db0f9120d5d1bcc5393548f1a18c828a55f99e4c50e6 SHA512 00e0181fbf6ea1ba2035b368f3ea143f270f8a3c5e41e441593cf3cf072c31b3874146de8c2c51e3eef5c8f0ce8594132a39516d3f614d8d5f0863b546dfb746
+DIST rust-1.75.0-x86_64-unknown-linux-gnu.tar.xz 156249584 BLAKE2B e6ac90854f589c2fb15144bb4db07a9b05b72196febd07c9de223c74c05c2637c832505f1135faceed14fe8c8bcad0a5205005540faa2bdf0f42949d934107c5 SHA512 86d1a5686f826c8f43f876c4cef42e9483785a37b1aaead73dc64a1ff64e7a025a6771d2e642771c6c847d717c25c6bd2560a2b8b59516a55dece589580b2534
+DIST rust-1.75.0-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 6614cb3ef782c917e8f7fdc990c5b82e8fcffa71e075f10f9726f405ff566fd963bec64cde4dd7252d9d78e09a184b8ba22d15cc87662ad987cdd37c881d8288 SHA512 bfaeef4cd7643879991955fd33f4cdc4c34afb1202cb77c0736434fb735bd215d18d1a11c25f04a7f2514640858a36832e5805a5f85e92d8b7076aa18607ffc3
+DIST rust-1.75.0-x86_64-unknown-linux-musl.tar.xz 234151836 BLAKE2B 9461afbdf26dea19e118b35ea7ef1ee60c22f601501ae6a08950658598a74a6b3179cbdfd9dc4748a0c2485af721b371e5fb523f27e7d7d702f94b532a70437f SHA512 7d650a29c5d14023a3d7d606b7bac4be6ef7988a82525f02d7af9cf3895bb88284442b8042d27be69689f4bddaa5c5370ef7609d18849986860eafcdf89d2d69
+DIST rust-1.75.0-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B c222d0989518602c0ecde9d21dbca97e9e60d81083804d1d8b2c6bffc8114af78570fd384eb58e5dba1bf249b99300e7f3f4067c1a66c0cd9fac60443f56f751 SHA512 6f78913e34402cedb37f4a54491c65a8bfe79e535e4e40516f2381bc27783cc7655e9252e7701813578c8ffcaf6b301e61ad32917a475d4388fa472733b21b12
+DIST rust-1.76.0-aarch64-unknown-linux-gnu.tar.xz 217392212 BLAKE2B aa587d69b5acc389a8d1431875f10f6261bbedb259a9009092e663a345fb0ac0cf3ad3459ca549a496853b8d760c7fc56b797ee269bcd15d54bc735cd1100fbf SHA512 ad95566ca7597ef64a03f614cc20b9c8d9b2fe67f33141b817973fa160c2be978511509fee79bdbfc74c50076a607e8543ad5bb4b56723704df27b5573b8d606
+DIST rust-1.76.0-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 86834b999cb0ad9de02a32a79f801d28268c986c830ad3f16274cd4c404a4305267c90b677f7a8637f2de08c766ad3555945f77da181906358e3d51b35e258b1 SHA512 79c1b258267d6feaecba18648a7eb620a570c99fb75e422d0a5b946a66f3a5bf6d2b41dca89b4ae79feed704d498674f36de368e4b228b1e38e3499ac8cd4f21
+DIST rust-1.76.0-aarch64-unknown-linux-musl.tar.xz 197852572 BLAKE2B 93985909e049957f80d4a14842c85dd14e5eec6d74e4e439479f353b44b123947c782856de86555262829d755a344ad01a94c41e8852818e727fba74620e1d68 SHA512 1f36245932d3b9bab0b99604085d886d9fd2e575e896e1c28b1771ae916466c060f4d70486e47200d58947147eb5571b922e175b1a450a36388c3c95e6537655
+DIST rust-1.76.0-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 50326fb881308300aa01f3783ec6856b7ab9ef80e986cc4e64fc5d6d0bcd246add9330ee5459a3ab5c0bd417d75c2b9486bdbdc19edf5a899dfd9e1ecf31028e SHA512 0e775d73bee5cfc70035db1d0fc4506d022d593cf847e01c3f09ddc48a02c4eb24eabd42391c3241cc05ca49b15e38eea0f56786a4f800df724753ee7c557ab4
+DIST rust-1.76.0-arm-unknown-linux-gnueabi.tar.xz 181085440 BLAKE2B 024b82d285208635dda1c6dd66f634d1b921657d3921c402b7adeb7ac9b495628c31b248ed480d4e52e55293815a686f9ee52a84c2407763de5b961962ca9cc4 SHA512 c6840b3368bed511976c32dd3b22a8d1341c002843958a8cc8666c4f19547eb71d8a90946c1c075cf8af50187c1f14fcad2df488d186941d00cfd6b638b27dde
+DIST rust-1.76.0-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B 71f2d3a9de1343eb96a75a7eec3d8d4ca9a02e7ed01a1cd2f4f352855dc6d58cae5ffbd70944d7d1e0c7559c74f8d8a25f3c1c3a14c2f00e5797d0f142b25a12 SHA512 b3dcd4b3e2fb5e5039b7fe654421f7a2f72ec5ebfa841589be715bf0a8ff4ff0a3c46a25d0978b4206678a2f2410c5ca69146f6e3eaa4b02a6231589bb099ed7
+DIST rust-1.76.0-arm-unknown-linux-gnueabihf.tar.xz 181168340 BLAKE2B 8d48ed7c79f87aeb91676c3f90877fbd396341130276e27adf42a0a0e5d3f7ded34a271cca34f1c0fa7f37d5666ba3f2f16eeccd91aa37859adc34077dd2a000 SHA512 6beba28be79a563eab4567ca33dbcaa7cba5f4389fa480ef4e16e528fcdc1ed6a2c7ccce1ee527afbaaa43545bfd80fa47ccd3ca2ea4c38ca2b397bdbee47a3a
+DIST rust-1.76.0-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 534e5f05848e5f6c05f2de69e0c974f5e4860c9ab4501491a651f5d2200aff69c9ece29010aa732d0eac3173b1f148afc3096b5f05146f7be7df14e5d9ecc44f SHA512 fba15a41ffc9202ae27a6c2884bac7367219fc5b1892287a599a1c8d2251bbe763df07da4b9719d73bb6d93fbac3dd1b8c4d8af75acb942200c9d7b1050be009
+DIST rust-1.76.0-armv7-unknown-linux-gnueabihf.tar.xz 184387332 BLAKE2B 7b9b03332f19859d43629d4e65815619fab1845c129a254643f164c025c5d574e71f6001899deec470e93c97fa6ac8c9d71cde5320b6f4cd822c2ab113e4b827 SHA512 3fbb7300e4dbe855207671ad309b71cdbad9cdc41b1c8144734f9de85c904918b137a2fe7284e9046f00526c7fce8b68dcbb40ab8d6543ef31ca0bbbfb396431
+DIST rust-1.76.0-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 050c4eead78d8161d46acd4ae47b69612706d8053bdfb5e4cfc0fe20ccbf4544643c1850f14cf93f7d17602849770857551b64c7f8f8db45594b7dbe267ecb41 SHA512 32e72430c4c9a5970994bcc6034d3be1a2a915adc6aa45a0c1cba403f6c44206af3e024afc42fe39a8501322fe46deea9921c9760f8e1f65422960baa88abafb
+DIST rust-1.76.0-i686-unknown-linux-gnu.tar.xz 211679020 BLAKE2B 06c9e52a1b6c802be3c4b0cb424dcf243f08fd5345e4b3977cca82093839cec885f6f491179e9e1f8e64c971bd7bfdbb6c551e463874b44c8b89ea649e8c9f40 SHA512 64605e0c981df2c805ba8cb31a89fabd00332faeea6d04ac57cb4898b7cedc66e4043ca3eeca799a204ffb93ecfa770150f09b99da3a7dc913d4e97331554e8f
+DIST rust-1.76.0-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 72d87215c5ddf03ed0cab99adb97b6f15fa8048fca68b44bdb77cd0df09cb1784cecb80f6618ad43d1b6f41a5848ddc84126ad576ff1ff08a3928cec9811a4d2 SHA512 a6d52e452a7afabb329b75155db9da91d51f809e913b19cde1c51c4d0f79831e962e698cf8e86079649e31a662d13743da23b13d16df6530427eec3e4269be7a
+DIST rust-1.76.0-loongarch64-unknown-linux-gnu.tar.xz 162940496 BLAKE2B 4c3b66199339262ea93de6785980795e493ce4e7de9d7ddf3e7c9fe38ad404f980abf408e979780905c149bb3de65d26cdc654f8b3ad0823a3d5067809fc4944 SHA512 64fac030d7edf9677757b883d1664b7e06ab9d5007d87a78d449acac359d7d6ba694bf4a6635c8bca51f274f842dad0612377aef655bb430f6290459343aa6e2
+DIST rust-1.76.0-loongarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B f52e951657308df5a944d35e2f9c19278f6f250474c070593f3b2072f372b8f6c32d379d144c8ae5a3ee31f7de21c00ec1da097f2c8c9a54759d9440ec5eb822 SHA512 d5ed37fd844715daa5d9901b388cbf39854fce3408c1d572f18e83d6207a20345e5e2c2b49b9c1523097245c73e1a448df8ecef2ae5b344e57bbe646b1266af6
+DIST rust-1.76.0-powerpc-unknown-linux-gnu.tar.xz 176795548 BLAKE2B 77e102e4d3821557895f3e24059b65847dc46ce3b81ce73f15063e9a6d383ba12f4c905fcbc85b79c39f00e9cb011fd2831737bb3ee9bb53103b4a7361aa312b SHA512 05ccb4294d788e948b69c9e38abf28454604f6b5bdd04704d6dd5231445e2f791cb18ea5149b4324a152ce9ae356b55036d2f74a5d9dc3aaaa05f5c7e4e69e1f
+DIST rust-1.76.0-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 6d2fe65e5840cd7ddbf1b18ef89cd337b16e3424b6e20d21e199b274fbbc4d9fd88406c2a119d5b0bd48fc9e47145dade3f37bbf99faff68905e57bd41937c1a SHA512 a1e45e41f901513e97956d336910927d7357cb8c2362be69989528fa5ae7087da409853adfd86354b4b7faec3e8542e400838df1d195843c030d9c6fffed7557
+DIST rust-1.76.0-powerpc64-unknown-linux-gnu.tar.xz 177409476 BLAKE2B 7c9829c8e8ecf2a162663a2c382bff49739ca2bb02b785ffdbcf632edf55a3ea37ea3be09298b0a0a984512aef290123d3b0ca9ae0d088a2a816f38778aec79b SHA512 1f29f66d8e64d4c191bc90b05d791f08317aeec042ced815fd353beef6a7a4f6d5f91755481114e707728bd9a02ed9094b2a75d91d61ddb12748d9d40b211e17
+DIST rust-1.76.0-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 3087eda9eec862455906510d38f43b81644243ff7afbd5ddf221cfb2c12408b8ac9a0bd2a269a9499776e04b56b3d52c890e056af544aa56cc06b399614f83b5 SHA512 8a90d5acea677a02b2c5eec93157ee2c47bab895e16408123a0e2c3d44b0f9a9d95fe56dfa903fa1cd2fd298f17050110793e94d60510283c8e3cc120770ce9d
+DIST rust-1.76.0-powerpc64le-unknown-linux-gnu.tar.xz 187967776 BLAKE2B 0ffbbb4e4ca44285d8387fa66c58df72971bba6410faa96f6cfd80c223f4996285fac27672104f25ae2a20cb81a0ec6be0bea1d6893d95eab0d017fbae896509 SHA512 eb8be647651b02f1e9287d075d76c288e34e66514305a68ac118ef41dc14a16e5e1a3f2c5cb8512c4565a2eef3e5063dc4eb11272fa91c01d8313a323c20755c
+DIST rust-1.76.0-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 5f41ec8841f4004df7b65b50a451027489e303bb2863ece09a14900a229d3180ba23bbf5c770c2939399eb157e97b4a08ccc0632a66eca5ca5cf4c29a1523186 SHA512 929e415a66d8777e2509c25a780b4963b8991adb905a9841dca19a5412a5f86326fd73c43f79c304a48a2898f863b76024b0144109343933a0c5f3f1fb8ed287
+DIST rust-1.76.0-riscv64gc-unknown-linux-gnu.tar.xz 183161264 BLAKE2B 9a0b579bc076b8cc55414c95456caa2146fd0597091d2332c1033d03ac7495684b7b7989ec6a8a108953c681ed88d4b62a9a7fbb39c0300128189a91b035d2df SHA512 29fe21df7b99b9a9483af6f2370e2b5a403c12aee94a1285bfb2d2efa631f9d284c70caf863247843ab1418bc78a26c6f6d5de4e8606456a9ebd265ea3bb504f
+DIST rust-1.76.0-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 7a380f9d2f2f7083afe7abcd81a15d34df703f076c2c842fee2433c6c40d629bc5b0818fc186b462d653aafeb1fe767de3c01b7a014ec3220d77725bf1074fed SHA512 53e4942d74f42f4a7c35ef4a33833d23a955af157d80588c277f32f30cae63e8543fd4ffb569693ad00a6a20ebdb2d8422ca078ebc85bbf98814815e32791894
+DIST rust-1.76.0-s390x-unknown-linux-gnu.tar.xz 202133724 BLAKE2B d6d68392b9b9b69914cb6986cc1501246e0461a6eb5d18eb0ffe71e0a2a7be20d27e90b117c520723254b4709d08c4fb33d145e5ab559802ba6592dfabf81317 SHA512 fa74e1605eea945445f8ea621a667d50907d8b3ceed700e6b05dbcbf58dc7fec62c1e50247ad9688a5b9c5b78c4a140d93557d494260f8a21b1eb25baa315bec
+DIST rust-1.76.0-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 574df1144e6e79710a73962511fc73215b3a4d1c3b6623190180c7ec13aa8295e13329c4bc66710013f874054dd756e02bfb2c5f6ce1fc8a07ae0717f958b244 SHA512 17938b3f4671127c9c46a5c51703d430938b73b2e30cd497cbc159ed372889af42e651479d1ca69c000974e21d4d34cfb9e3cf28b79ec8e35540ac319e1b8b9d
+DIST rust-1.76.0-x86_64-unknown-linux-gnu.tar.xz 159385660 BLAKE2B 0846999358aba95a2bebd2ff35ccc9e1954ff4fca66227d1c8c1985c08e91159f2acaa1357544b81e92065a2f9ddf6aee41a2d9199d71d8de1655f9b16ba2ed3 SHA512 1cf0ffb44aee4da9768e27daf5ab3b20e67fc9e8eba5a1718b700c85ecdb61cdef129cb571633294f9c826b6e7bd2958086eec371922ca31af332266d3632609
+DIST rust-1.76.0-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 88e6b124812b409372ee05e2872cb4dfacbc638f8e3b4fb0d5fa4ea63f4594333a9788732502f8bd41e34b5cbc404d7ac08e7690d095a6c37c80b0043dd2be88 SHA512 f7ddca81da468d5617f48240b6d3e8d7d09336ac58f515acd3a20f2d315468ba1d53508dd3264a088ffc0141cb3fbcd8d3c17379f9628270d39c7d44f7727291
+DIST rust-1.76.0-x86_64-unknown-linux-musl.tar.xz 237333892 BLAKE2B e95b92c68e3c2df49fa0d5d84e35f6575fb80571db290b5969441cc09b6c07dee6b2b887f41a2b1ff1e3c099cda2ce2a4a8c05afbcf9f4dc8acbaed5245b69e4 SHA512 04bbbb9a6891c3bb7a20845010029e6ca979548ff70324c08d3162ebc1fa3a84e8c7e2d453495edd34aba19b7a685f048d5047993103bbf221c88ea36350370c
+DIST rust-1.76.0-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B cd4334fecc17cf03b7333659393004fed4bb895f9b75f93520d1c3e3ee0ce4fcd17d75d748c4a35d31984215c7aec8904ebe3a4ad8bafcd625aef30688a473f7 SHA512 a458372b41c2833bdbd3d6678c35fc23397817b406c409d1ba5e19b4c6246072afff3f938f111382de56f7ff57e660c3eaf3fea0e54871d9af50b52a54f39e41
+DIST rustc-1.71.0-src.tar.xz 151962928 BLAKE2B da8d83cd6621947816630ae487efe7d087266c1352949cedbbd441ba7c7f7c7beb13b9470e66e2f3359c37a050d0e44d22481c418532d3ebb339a456ab092648 SHA512 2c93bafdd248563765a285add48ca77c1e4bad4d5431675ae6a5cdee4cfe7a41e6bcc880a489ca1069a307fd9a005f2d5f8e230dfc95b4a69152b4f9ca49ac44
+DIST rustc-1.71.0-src.tar.xz.asc 801 BLAKE2B e5ddc4b18a6caeeb63c5aed5b5d15989d086f408787d2e603e50e7b8548dc078683062627280fd2a0393bec01c314eb1cc59f9b0e3146abf07b8365a0b44c640 SHA512 cb1b208c8b2bfccf02c73c4246fb238edb0dd10e292c1ef781920964e54e40add3089d988769982c0ce06b719014685b1c37daa2d08b513d86ad73808f4ce3ac
+DIST rustc-1.71.1-src.tar.xz 151983068 BLAKE2B 3dfdbc246feb84a79ae94c2de978c5585ee06cf6b683d2245869b62e28f7c79f89cc589f5431537713bf088236a0b824acefc1b68e418e9eb72e1eea98054e3f SHA512 fd0e5a16bdbeb539184513583089e55f681cb772810df357b6b1464853f7022ac02edab3dd155b2262ed0047e2a25dea3808dd078dcdfce9d399384465009db4
+DIST rustc-1.71.1-src.tar.xz.asc 801 BLAKE2B a88c073a70552d73e2d7695eceabdaa478f34501b7271fabf7f4a09f3efa545181f34353e45776b05918e6aeba88adb02f9731454f7085a7abf1602fc6589983 SHA512 9dd0406cf22f1daa7fcfd015fc1c6f8d36586aa99bf14c1491ee464c1f892ab759feb83e8b55b64713170fb777fdbe038fb5fd01a59c911b6599223baaba0677
+DIST rustc-1.73.0-src.tar.xz 154319536 BLAKE2B 077bdedb36fdbc30db3c6331ac6014615eb79393ad42e38488d037ba38eaa6542467d39b2a14228d0bf6717110f915bf6fdcf0074c6293f413720cc748316eff SHA512 75c59680a82cb9d076b9434744a1c65908524ef769293952f5d9c5779d9a9c6fa4d9aa0c7e7d6b7566a21a50a27cd6ae452b5283a4d4606b2fa1acc24dfd8e0c
+DIST rustc-1.73.0-src.tar.xz.asc 801 BLAKE2B fac2f8652e9a103e8a678b30222e1a505671253827d1d092c4964230a535a85e21cedf00b70f108ac5cb2db961b50e482223e8eaa5b0d585777dd43d80c5931e SHA512 e80ef6280c50522a575f040610184fcf5f45444db2534c6a334e66a69f3338b43d8b34cf035685f28d0e8f006427bbe413611c49fe028c9f72810d74ccfab15e
+DIST rustc-1.74.1-src.tar.xz 155968724 BLAKE2B e05f2379ac94b286f85791a138e1928e5b5b5a7749f0981d82c40c2a12860f55bf96bb2f0e924e35a0f8b2447b13052d38adea909aaa3199105787bb5a4861b3 SHA512 14c7e7ed2f38ab60299d8c7d41d78f042b6b57ef822d577b5138e60bdde31cf141eccd4332a25bc5da3d58eb5313d63c1448b5dfe9e11b8055bb8ea133a9038d
+DIST rustc-1.74.1-src.tar.xz.asc 801 BLAKE2B ddf73175b164233babf31ca3a381b03e20c0f36d017c1d5f85d6ab11f0986d861ab23b11c061e6b2444ced70c3d6a494cc3de4ec86f0deb221a805491bd75420 SHA512 9a96ff9ba9a4e2af4e267b2ec126fc0675c78d0eb767703daa2f28491c3d85c2ab00fbd8584390bf658812ec6c4ab6c57e43b386db59fd505bd3134a8873a09e
+DIST rustc-1.75.0-src.tar.xz 159624388 BLAKE2B 8937b80585eddaa3e1f1ef948899d14a170308518c6fef9fe569560cdd870053776956743f796055f2119399b9ca6c0df12fedd789ae46324d071e5126c4e495 SHA512 7b0f25d91b1b5c317980fc88e059200bd43b56a70b445fbc72fb9b96e09775bfd3a98e9bd9d662af80f0ce3aef527c777ee82777e96ca876f47a972d63da8606
+DIST rustc-1.75.0-src.tar.xz.asc 801 BLAKE2B 434da96b1dc93a5aeed07f4961b087fdd15870e407283ecc00df08dbc1e9f6c65fe459b3a25d39ee55900d53ee583207098ecf3d63f5d6ea114ef0b8398b6a63 SHA512 a0e948553af77ca6e2daa82c69d79079ef7d4ec61957bdff99efd73748200d6c7caa9282daeb3fe3ef849d81a48e66a25336df4c7b6f62f975266aa8b9b93d3a
+DIST rustc-1.76.0-src.tar.xz 162267908 BLAKE2B 0cf726841a837d9906d82a6216e65edad1e3e4a798ccd1ca3824c2098d0c45473854b8bf183c6e9ca70ba095752e77c4f5ef575d98c07243d609857214175f5e SHA512 92e16cfdeb91bde341fe6c2774d92868275b07aa1d46d870ddc9291eadfe4ea9af93e06586fa7d6b8d60534903945cbbe706d354c90272712989c58d2bf174bf
+DIST rustc-1.76.0-src.tar.xz.asc 801 BLAKE2B eadb2f54fceb9c1ac60af72407a2957e37e1ba134a696675a1e9dcf23a2958b41d7f5aa1f75156e4843cefc387cdc9c909e364c3bfcabecc6bfbe262d9c6e8af SHA512 d35c010a5a129580746bcec5c0dad1b0bc1b7864a69505c7c0ccfad436fdfbdf33f87518965a09de187d6a70fb8867dc6a20037c648861031a17501577855120
+DIST rustc-1.77.1-src.tar.xz 162796048 BLAKE2B 18a9fd095808ba78bf50ec94f7fd4087a1033ec79750aa593bacf64219c77ef90c030d41a7d8bc43f7ec8eb30b316c225024be4aeb517100ff6723487f8bb282 SHA512 e057ae638e4c3e54fdb367d48f4b85458121cee0d0ee1ed72f346940b8acad2f16cd9cc8abc16fcf4a17bf244b3300bb56a7e7be3bd0c23b034692c983b84fe8
+DIST rustc-1.77.1-src.tar.xz.asc 801 BLAKE2B 175a551abdb970295d37a0797cf262ac43055a3cb75b23845dbb8696d04b7705b7a2908b82fcbce7cd7dec2e05c382d06622013b9d4aa19fab7f651f7e00bb73 SHA512 eb24976ae97d2980d4c547bcf27d815f4b98b8aa45441a7201a849ee37e0ef15671732c9916d33964b8e802a87ede758daaadf84901bd569527c8b6c48efff23
diff --git a/dev-lang/rust/files/0012-Ignore-broken-and-non-applicable-tests.patch b/dev-lang/rust/files/0012-Ignore-broken-and-non-applicable-tests.patch
deleted file mode 100644
index 45fda8aeaf8f..000000000000
--- a/dev-lang/rust/files/0012-Ignore-broken-and-non-applicable-tests.patch
+++ /dev/null
@@ -1,89 +0,0 @@
-From 1879d1d1a284bf51c752e47db284ce22701ed5d0 Mon Sep 17 00:00:00 2001
-From: Samuel Holland <samuel@sholland.org>
-Date: Sun, 16 Sep 2018 16:38:48 +0000
-Subject: [PATCH 12/15] Ignore broken and non-applicable tests
-
-c-link-to-rust-va-list-fn: unstable feature, broken on aarch64, #56475
-env-funky-keys: can't handle LD_PRELOAD (e.g. sandbox)
-long-linker-command-lines: takes >10 minutes to run (but still passes)
-simd-intrinsic-generic-bitmask.rs: broken on BE, #59356
-sparc-struct-abi: no sparc target
-sysroot-crates-are-unstable: can't run rustc without RPATH
----
- src/test/codegen/sparc-struct-abi.rs | 1 +
- src/test/run-make-fulldeps/c-link-to-rust-va-list-fn/Makefile | 2 ++
- src/test/run-make-fulldeps/long-linker-command-lines/Makefile | 2 ++
- src/test/run-make-fulldeps/sysroot-crates-are-unstable/Makefile | 2 ++
- src/test/ui/env-funky-keys.rs | 1 +
- src/test/ui/simd/simd-intrinsic-generic-bitmask.rs | 2 ++
- 6 files changed, 10 insertions(+)
-
-diff --git a/src/test/codegen/sparc-struct-abi.rs b/src/test/codegen/sparc-struct-abi.rs
-index 78e5b14a212..6f93e93286b 100644
---- a/src/test/codegen/sparc-struct-abi.rs
-+++ b/src/test/codegen/sparc-struct-abi.rs
-@@ -4,6 +4,7 @@
-
- // only-sparc64
- // compile-flags: -O --target=sparc64-unknown-linux-gnu --crate-type=rlib
-+// ignore-test
- #![feature(no_core, lang_items)]
- #![no_core]
-
-diff --git a/src/test/run-make-fulldeps/c-link-to-rust-va-list-fn/Makefile b/src/test/run-make-fulldeps/c-link-to-rust-va-list-fn/Makefile
-index f124ca2ab61..363b18f0985 100644
---- a/src/test/run-make-fulldeps/c-link-to-rust-va-list-fn/Makefile
-+++ b/src/test/run-make-fulldeps/c-link-to-rust-va-list-fn/Makefile
-@@ -1,3 +1,5 @@
-+# ignore-aarch64
-+
- -include ../tools.mk
-
- all:
-diff --git a/src/test/run-make-fulldeps/long-linker-command-lines/Makefile b/src/test/run-make-fulldeps/long-linker-command-lines/Makefile
-index 5876fbc94bc..5f167ece1a2 100644
---- a/src/test/run-make-fulldeps/long-linker-command-lines/Makefile
-+++ b/src/test/run-make-fulldeps/long-linker-command-lines/Makefile
-@@ -1,3 +1,5 @@
-+# ignore-test
-+
- -include ../tools.mk
-
- all:
-diff --git a/src/test/run-make-fulldeps/sysroot-crates-are-unstable/Makefile b/src/test/run-make-fulldeps/sysroot-crates-are-unstable/Makefile
-index 9e770706857..6d92ec5cec8 100644
---- a/src/test/run-make-fulldeps/sysroot-crates-are-unstable/Makefile
-+++ b/src/test/run-make-fulldeps/sysroot-crates-are-unstable/Makefile
-@@ -1,1 +1,3 @@
-+# ignore-test
-+
- all:
- python2.7 test.py
-diff --git a/src/test/ui/env-funky-keys.rs b/src/test/ui/env-funky-keys.rs
-index c5c824ac58d..f3fe047a79c 100644
---- a/src/test/ui/env-funky-keys.rs
-+++ b/src/test/ui/env-funky-keys.rs
-@@ -1,6 +1,7 @@
- // run-pass
- // Ignore this test on Android, because it segfaults there.
-
-+// ignore-test
- // ignore-android
- // ignore-windows
- // ignore-cloudabi no execve
-diff --git a/src/test/ui/simd/simd-intrinsic-generic-bitmask.rs b/src/test/ui/simd/simd-intrinsic-generic-bitmask.rs
-index b28f742a92e..3ee4ccce731 100644
---- a/src/test/ui/simd/simd-intrinsic-generic-bitmask.rs
-+++ b/src/test/ui/simd/simd-intrinsic-generic-bitmask.rs
-@@ -2,6 +2,8 @@
- #![allow(non_camel_case_types)]
-
- // ignore-emscripten
-+// ignore-powerpc
-+// ignore-powerpc64
-
- // Test that the simd_bitmask intrinsic produces correct results.
-
---
-2.24.1
-
diff --git a/dev-lang/rust/files/1.44.0-libressl.patch b/dev-lang/rust/files/1.44.0-libressl.patch
deleted file mode 100644
index 3bbae36e0161..000000000000
--- a/dev-lang/rust/files/1.44.0-libressl.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 3d1be8d8981a0f847e935312a78bd2ba5129f90e Mon Sep 17 00:00:00 2001
-From: Stefan Strogin <steils@gentoo.org>
-Date: Fri, 5 Jun 2020 06:37:06 +0300
-Subject: [PATCH] Support LibreSSL 3.2.x
-
-Signed-off-by: Stefan Strogin <steils@gentoo.org>
----
- vendor/openssl-sys/.cargo-checksum.json | 2 +-
- vendor/openssl-sys/build/main.rs | 5 ++++-
- 2 files changed, 5 insertions(+), 2 deletions(-)
-
-diff --git a/vendor/openssl-sys/.cargo-checksum.json b/vendor/openssl-sys/.cargo-checksum.json
-index 7f63bae3d..76025fe7f 100644
---- a/vendor/openssl-sys/.cargo-checksum.json
-+++ b/vendor/openssl-sys/.cargo-checksum.json
-@@ -1 +1 @@
--{"files":{"CHANGELOG.md":"ffd4bbaeec2740afbcab5a6828f9e65523aaff8638e3d5d13c93a3241fb8ed2f","Cargo.toml":"3eb2f65dda1aa74c8b47814878b56bf4999b4d01bc5864fc9f3c0ece9a5694a7","LICENSE-MIT":"378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397","README.md":"949fb3913ec7f94229242978dfeee5e19261b6d7506fc91dcd153bb0d2a84895","build/cfgs.rs":"56cee620b082d87b1c9cdeba7c6c022e6aa7d3a99e2b66ec18a534ceaf2e2bb7","build/expando.c":"c4fa8a4424b2321f1857edfc5ce1ac1f03eda54440367d3142310c0eb5553004","build/find_normal.rs":"0a2dc417eace7fc72c27b9046ebaf53c75e418b27baa877434925a81fe6c23ed","build/find_vendored.rs":"7bf0e59c5646d72ee5a4392ad970fdf5c20288ddaf54dd86a8caff49583b38f5","build/main.rs":"6e800f4dc5c2cbbd54d1b1b995a2915ff941e17e11300d7091858210d3ce788d","src/aes.rs":"822bf666db351fe6ef9607c918081d6ad378fc1cedb05290bb746f86980c6088","src/asn1.rs":"254025cb408dbeff73bee6d06325acba9042cb11db30bdad04eedfb789be84b3","src/bio.rs":"1f38a3ec4029511fecd7a51548965a265f3e7772891b5514e22bfb1d061b3a90","src/bn.rs":"c71b9c79f704a94a889d27bf75e7e5b1f9f10b0df0aeb485aef509cf05d7467f","src/cms.rs":"f21a403fea95e7b7efe0539a429831cfa51c8818adb79c7ebf73ae2a6f2dc87e","src/conf.rs":"511e008c18039f54d856d70b80009426fc7f4ce34fe4304e2c58ebf465031de0","src/crypto.rs":"a1279719ade9704be3d9af55ff679abbe918d525f332ca15810146d45e9080cf","src/dh.rs":"7cc334e86d16b3eae165dfa3a6c8e488bc0fe590c17beda38893d2e9d784d5a6","src/dsa.rs":"ae79baf231681900ea76304285b3ffacf5298c90b8c04d371269cf4adbb5b9fa","src/dtls1.rs":"45e1dbf94a42d587fd948d553dc30187aa6aa2b5b82d554cf725ff36df768aa0","src/ec.rs":"81372dfe497db2fc90457a470a3b8ccb249828b3ce2bf4fd2da8ec42afd6a6b3","src/err.rs":"f6641be5df397086a9db80667e191fb1d92972c29151e617df86672c1a16d3ad","src/evp.rs":"5afdfc0ab87259b13a55375c178ae3af934b3281240aa24ca27afac7acccea42","src/hmac.rs":"fa3976d94a1383f300bdec228270afb8b47c97bb019d727c7d59ba783be3c42e","src/lib.rs":"c464eca1beb33844718044946f6ffb1bc27356d65b5b70ebcd2d4082520e7235","src/macros.rs":"638fb9098f6024e82b331eeee50c64cefdb58456dba28ee42560be655a0c2bf6","src/obj_mac.rs":"7203d356f7654c5805600b823eccf8e1d9d9cbce9a01859938612a3f0aae4cdc","src/object.rs":"7539eb2164c3fe2162a339ef5b45f1c835010a1522307803815779a01825eed7","src/ocsp.rs":"1db59566d2f072f7ae981f0c07e1604fcdf60e66845afe0689d588f8e4272115","src/ossl_typ.rs":"13bf789702e37dc4b9f74f3a0e61ae6e5602e4dedf45c05d884c41257b32d76c","src/pem.rs":"4427060f543ae9e6745d9a8f7f76cb72acfb06afacaf396b011afff6a221714b","src/pkcs12.rs":"93aab2820008ad90dc346a7dcc02f9201d94bff0bb7d1d71031c097850287c50","src/pkcs7.rs":"5370c8d4bfbf1502fa33aff635cb730e7c87814580f1df9bdb1412a492377813","src/rand.rs":"469601b4fbb56d4dbf5cf5d7bb8483e3bde411edea18601e7d1ed6ef27180fd3","src/rsa.rs":"0e8c1f0bc37620a9208175542143bfd411ae88188974d2d5b37a2b8b77d0e2c8","src/safestack.rs":"6c39e28565d34efad707d77561d4caa99e3f028fcac3a2ef6fd403a78de1190c","src/sha.rs":"1a6b028a63654d2419417a9a8af790cd22409a4643682a0686ecdb9441264eba","src/srtp.rs":"306047f3f31828fe7d15de154b375f071ae07012a94c0b5c909f5fe57962a11b","src/ssl.rs":"34ad7d5413d77f9052815cfd7344d5a21868b5ae0d38dadd6f4ed3b5c4b33760","src/ssl3.rs":"9336c816e00847d552dea22587d4ac72ff3cbd469fa5ff750423a19ea11e68eb","src/stack.rs":"1a509907283e5a2bf88cf193ce607f49ce7d2d95547c2ce2abc0fd4567aad334","src/tls1.rs":"60ca3dea1bbfda645bde563b4a878dac129c3f760e3ad572381000fc7a8ef522","src/x509.rs":"20e221731587221aab00aef21b4e4bebb7635603d265d424f3dd3c60d4c511e2","src/x509_vfy.rs":"5609f6300ab37a4d4755c81f7af1e6bb93a2f1a6f333c6e42f1e73ebf83ddc05","src/x509v3.rs":"30c58ce7d80670cc597d041e0f59862c1100e38743fc9dde2aec6dc811a4a558"},"package":"1024c0a59774200a555087a6da3f253a9095a5f344e353b212ac4c8b8e450986"}
-\ No newline at end of file
-+{"files":{"CHANGELOG.md":"ffd4bbaeec2740afbcab5a6828f9e65523aaff8638e3d5d13c93a3241fb8ed2f","Cargo.toml":"3eb2f65dda1aa74c8b47814878b56bf4999b4d01bc5864fc9f3c0ece9a5694a7","LICENSE-MIT":"378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397","README.md":"949fb3913ec7f94229242978dfeee5e19261b6d7506fc91dcd153bb0d2a84895","build/cfgs.rs":"56cee620b082d87b1c9cdeba7c6c022e6aa7d3a99e2b66ec18a534ceaf2e2bb7","build/expando.c":"c4fa8a4424b2321f1857edfc5ce1ac1f03eda54440367d3142310c0eb5553004","build/find_normal.rs":"0a2dc417eace7fc72c27b9046ebaf53c75e418b27baa877434925a81fe6c23ed","build/find_vendored.rs":"7bf0e59c5646d72ee5a4392ad970fdf5c20288ddaf54dd86a8caff49583b38f5","build/main.rs":"049f7020b6a1f8bb831cb750054fbc0f408e048e34c0817644696ec9d0cfb06e","src/aes.rs":"822bf666db351fe6ef9607c918081d6ad378fc1cedb05290bb746f86980c6088","src/asn1.rs":"254025cb408dbeff73bee6d06325acba9042cb11db30bdad04eedfb789be84b3","src/bio.rs":"1f38a3ec4029511fecd7a51548965a265f3e7772891b5514e22bfb1d061b3a90","src/bn.rs":"c71b9c79f704a94a889d27bf75e7e5b1f9f10b0df0aeb485aef509cf05d7467f","src/cms.rs":"f21a403fea95e7b7efe0539a429831cfa51c8818adb79c7ebf73ae2a6f2dc87e","src/conf.rs":"511e008c18039f54d856d70b80009426fc7f4ce34fe4304e2c58ebf465031de0","src/crypto.rs":"a1279719ade9704be3d9af55ff679abbe918d525f332ca15810146d45e9080cf","src/dh.rs":"7cc334e86d16b3eae165dfa3a6c8e488bc0fe590c17beda38893d2e9d784d5a6","src/dsa.rs":"ae79baf231681900ea76304285b3ffacf5298c90b8c04d371269cf4adbb5b9fa","src/dtls1.rs":"45e1dbf94a42d587fd948d553dc30187aa6aa2b5b82d554cf725ff36df768aa0","src/ec.rs":"81372dfe497db2fc90457a470a3b8ccb249828b3ce2bf4fd2da8ec42afd6a6b3","src/err.rs":"f6641be5df397086a9db80667e191fb1d92972c29151e617df86672c1a16d3ad","src/evp.rs":"5afdfc0ab87259b13a55375c178ae3af934b3281240aa24ca27afac7acccea42","src/hmac.rs":"fa3976d94a1383f300bdec228270afb8b47c97bb019d727c7d59ba783be3c42e","src/lib.rs":"c464eca1beb33844718044946f6ffb1bc27356d65b5b70ebcd2d4082520e7235","src/macros.rs":"638fb9098f6024e82b331eeee50c64cefdb58456dba28ee42560be655a0c2bf6","src/obj_mac.rs":"7203d356f7654c5805600b823eccf8e1d9d9cbce9a01859938612a3f0aae4cdc","src/object.rs":"7539eb2164c3fe2162a339ef5b45f1c835010a1522307803815779a01825eed7","src/ocsp.rs":"1db59566d2f072f7ae981f0c07e1604fcdf60e66845afe0689d588f8e4272115","src/ossl_typ.rs":"13bf789702e37dc4b9f74f3a0e61ae6e5602e4dedf45c05d884c41257b32d76c","src/pem.rs":"4427060f543ae9e6745d9a8f7f76cb72acfb06afacaf396b011afff6a221714b","src/pkcs12.rs":"93aab2820008ad90dc346a7dcc02f9201d94bff0bb7d1d71031c097850287c50","src/pkcs7.rs":"5370c8d4bfbf1502fa33aff635cb730e7c87814580f1df9bdb1412a492377813","src/rand.rs":"469601b4fbb56d4dbf5cf5d7bb8483e3bde411edea18601e7d1ed6ef27180fd3","src/rsa.rs":"0e8c1f0bc37620a9208175542143bfd411ae88188974d2d5b37a2b8b77d0e2c8","src/safestack.rs":"6c39e28565d34efad707d77561d4caa99e3f028fcac3a2ef6fd403a78de1190c","src/sha.rs":"1a6b028a63654d2419417a9a8af790cd22409a4643682a0686ecdb9441264eba","src/srtp.rs":"306047f3f31828fe7d15de154b375f071ae07012a94c0b5c909f5fe57962a11b","src/ssl.rs":"34ad7d5413d77f9052815cfd7344d5a21868b5ae0d38dadd6f4ed3b5c4b33760","src/ssl3.rs":"9336c816e00847d552dea22587d4ac72ff3cbd469fa5ff750423a19ea11e68eb","src/stack.rs":"1a509907283e5a2bf88cf193ce607f49ce7d2d95547c2ce2abc0fd4567aad334","src/tls1.rs":"60ca3dea1bbfda645bde563b4a878dac129c3f760e3ad572381000fc7a8ef522","src/x509.rs":"20e221731587221aab00aef21b4e4bebb7635603d265d424f3dd3c60d4c511e2","src/x509_vfy.rs":"5609f6300ab37a4d4755c81f7af1e6bb93a2f1a6f333c6e42f1e73ebf83ddc05","src/x509v3.rs":"30c58ce7d80670cc597d041e0f59862c1100e38743fc9dde2aec6dc811a4a558"},"package":"1024c0a59774200a555087a6da3f253a9095a5f344e353b212ac4c8b8e450986"}
-diff --git a/vendor/openssl-sys/build/main.rs b/vendor/openssl-sys/build/main.rs
-index 162e11a66..6754ddeef 100644
---- a/vendor/openssl-sys/build/main.rs
-+++ b/vendor/openssl-sys/build/main.rs
-@@ -204,6 +204,9 @@ See rust-openssl README for more information:
- (3, 0, 0) => ('3', '0', '0'),
- (3, 0, 1) => ('3', '0', '1'),
- (3, 0, _) => ('3', '0', 'x'),
-+ (3, 1, 0) => ('3', '1', '0'),
-+ (3, 1, _) => ('3', '1', 'x'),
-+ (3, 2, _) => ('3', '2', 'x'),
- _ => version_error(),
- };
-
-@@ -244,7 +247,7 @@ fn version_error() -> ! {
- "
-
- This crate is only compatible with OpenSSL 1.0.1 through 1.1.1, or LibreSSL 2.5
--through 3.0.x, but a different version of OpenSSL was found. The build is now aborting
-+through 3.2.x, but a different version of OpenSSL was found. The build is now aborting
- due to this version mismatch.
-
- "
---
-2.27.0
-
diff --git a/dev-lang/rust/files/1.46.0-don-t-create-prefix-at-time-of-check.patch b/dev-lang/rust/files/1.46.0-don-t-create-prefix-at-time-of-check.patch
deleted file mode 100644
index 9064a52ac2d3..000000000000
--- a/dev-lang/rust/files/1.46.0-don-t-create-prefix-at-time-of-check.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 6b31232a9d32529e30765108f30365ac48587ce6 Mon Sep 17 00:00:00 2001
-From: Georgy Yakovlev <gyakovlev@gentoo.org>
-Date: Thu, 8 Oct 2020 15:48:33 -0700
-Subject: [PATCH] don't create prefix at time of check
-
----
- src/bootstrap/install.rs | 8 ++------
- 1 file changed, 2 insertions(+), 6 deletions(-)
-
-diff --git a/src/bootstrap/install.rs b/src/bootstrap/install.rs
-index d9ee3bc..c5da9ce 100644
---- a/src/bootstrap/install.rs
-+++ b/src/bootstrap/install.rs
-@@ -73,12 +73,8 @@ fn install_sh(
- let docdir_default = datadir_default.join("doc/rust");
- let libdir_default = PathBuf::from("lib");
- let mandir_default = datadir_default.join("man");
-- let prefix = builder.config.prefix.as_ref().map_or(prefix_default, |p| {
-- fs::create_dir_all(p)
-- .unwrap_or_else(|err| panic!("could not create {}: {}", p.display(), err));
-- fs::canonicalize(p)
-- .unwrap_or_else(|err| panic!("could not canonicalize {}: {}", p.display(), err))
-- });
-+
-+ let prefix = builder.config.prefix.as_ref().unwrap_or(&prefix_default);
- let sysconfdir = builder.config.sysconfdir.as_ref().unwrap_or(&sysconfdir_default);
- let datadir = builder.config.datadir.as_ref().unwrap_or(&datadir_default);
- let docdir = builder.config.docdir.as_ref().unwrap_or(&docdir_default);
---
-2.28.0
-
diff --git a/dev-lang/rust/files/1.47.0-ignore-broken-and-non-applicable-tests.patch b/dev-lang/rust/files/1.47.0-ignore-broken-and-non-applicable-tests.patch
deleted file mode 100644
index ff1707f4b8a4..000000000000
--- a/dev-lang/rust/files/1.47.0-ignore-broken-and-non-applicable-tests.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-From 1879d1d1a284bf51c752e47db284ce22701ed5d0 Mon Sep 17 00:00:00 2001
-From: Samuel Holland <samuel@sholland.org>
-Date: Sun, 16 Sep 2018 16:38:48 +0000
-Subject: [PATCH 12/15] Ignore broken and non-applicable tests
-
-c-link-to-rust-va-list-fn: unstable feature, broken on aarch64, #56475
-env-funky-keys: can't handle LD_PRELOAD (e.g. sandbox)
-long-linker-command-lines: takes >10 minutes to run (but still passes)
-simd-intrinsic-generic-bitmask.rs: broken on BE, #59356
-sparc-struct-abi: no sparc target
-sysroot-crates-are-unstable: can't run rustc without RPATH
----
- src/test/codegen/sparc-struct-abi.rs | 1 +
- src/test/run-make-fulldeps/c-link-to-rust-va-list-fn/Makefile | 2 ++
- src/test/run-make-fulldeps/long-linker-command-lines/Makefile | 2 ++
- src/test/run-make-fulldeps/sysroot-crates-are-unstable/Makefile | 2 ++
- src/test/ui/env-funky-keys.rs | 1 +
- 6 files changed, 10 insertions(+)
-
-diff --git a/src/test/codegen/sparc-struct-abi.rs b/src/test/codegen/sparc-struct-abi.rs
-index 78e5b14a212..6f93e93286b 100644
---- a/src/test/codegen/sparc-struct-abi.rs
-+++ b/src/test/codegen/sparc-struct-abi.rs
-@@ -4,6 +4,7 @@
-
- // only-sparc64
- // compile-flags: -O --target=sparc64-unknown-linux-gnu --crate-type=rlib
-+// ignore-test
- #![feature(no_core, lang_items)]
- #![no_core]
-
-diff --git a/src/test/run-make-fulldeps/c-link-to-rust-va-list-fn/Makefile b/src/test/run-make-fulldeps/c-link-to-rust-va-list-fn/Makefile
-index f124ca2ab61..363b18f0985 100644
---- a/src/test/run-make-fulldeps/c-link-to-rust-va-list-fn/Makefile
-+++ b/src/test/run-make-fulldeps/c-link-to-rust-va-list-fn/Makefile
-@@ -1,3 +1,5 @@
-+# ignore-aarch64
-+
- -include ../tools.mk
-
- all:
-diff --git a/src/test/run-make-fulldeps/long-linker-command-lines/Makefile b/src/test/run-make-fulldeps/long-linker-command-lines/Makefile
-index 5876fbc94bc..5f167ece1a2 100644
---- a/src/test/run-make-fulldeps/long-linker-command-lines/Makefile
-+++ b/src/test/run-make-fulldeps/long-linker-command-lines/Makefile
-@@ -1,3 +1,5 @@
-+# ignore-test
-+
- -include ../tools.mk
-
- all:
-diff --git a/src/test/run-make-fulldeps/sysroot-crates-are-unstable/Makefile b/src/test/run-make-fulldeps/sysroot-crates-are-unstable/Makefile
-index 9e770706857..6d92ec5cec8 100644
---- a/src/test/run-make-fulldeps/sysroot-crates-are-unstable/Makefile
-+++ b/src/test/run-make-fulldeps/sysroot-crates-are-unstable/Makefile
-@@ -1,1 +1,3 @@
-+# ignore-test
-+
- all:
- python2.7 test.py
-diff --git a/src/test/ui/env-funky-keys.rs b/src/test/ui/env-funky-keys.rs
-index c5c824ac58d..f3fe047a79c 100644
---- a/src/test/ui/env-funky-keys.rs
-+++ b/src/test/ui/env-funky-keys.rs
-@@ -1,6 +1,7 @@
- // run-pass
- // Ignore this test on Android, because it segfaults there.
-
-+// ignore-test
- // ignore-android
- // ignore-windows
- // ignore-cloudabi no execve
---
-2.24.1
-
diff --git a/dev-lang/rust/files/1.47.0-libressl.patch b/dev-lang/rust/files/1.47.0-libressl.patch
deleted file mode 100644
index 8e9bf9997a7b..000000000000
--- a/dev-lang/rust/files/1.47.0-libressl.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 208145c7598d4b8fb93c22d42931b6f9f4fe9c40 Mon Sep 17 00:00:00 2001
-From: Stefan Strogin <steils@gentoo.org>
-Date: Sun, 6 Dec 2020 16:32:05 +0200
-Subject: [PATCH] Support LibreSSL 3.{2,3}.x
-
-Signed-off-by: Stefan Strogin <steils@gentoo.org>
----
- vendor/openssl-sys/.cargo-checksum.json | 2 +-
- vendor/openssl-sys/build/main.rs | 4 +++-
- 2 files changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/vendor/openssl-sys/.cargo-checksum.json b/vendor/openssl-sys/.cargo-checksum.json
-index 4c079f564..367a18830 100644
---- a/vendor/openssl-sys/.cargo-checksum.json
-+++ b/vendor/openssl-sys/.cargo-checksum.json
-@@ -1 +1 @@
--{"files":{"CHANGELOG.md":"17531e8bd93e3bd9ada0d3b4e4d07508d316985a2cbe4df73186ba70d5971923","Cargo.toml":"b71de20a64dc4704f77b8cc8ea9f63e47f2d39f06696900077eefd93a17d16ec","LICENSE-MIT":"378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397","README.md":"949fb3913ec7f94229242978dfeee5e19261b6d7506fc91dcd153bb0d2a84895","build/cfgs.rs":"2b49fbdb045c40bd46bf7e7adfde8c45508e4b51af0080fb934eb1131863d75a","build/expando.c":"c4fa8a4424b2321f1857edfc5ce1ac1f03eda54440367d3142310c0eb5553004","build/find_normal.rs":"0742487bd3faa681232e812c5c96f0e5b83b485ba236a4efda1cd8f5a260b5eb","build/find_vendored.rs":"7bf0e59c5646d72ee5a4392ad970fdf5c20288ddaf54dd86a8caff49583b38f5","build/main.rs":"0d8b960ab71be4e2a08e3ff7e9615a17f7dddcd601b7fdd885bb6f6c5a6fe5f5","src/aes.rs":"822bf666db351fe6ef9607c918081d6ad378fc1cedb05290bb746f86980c6088","src/asn1.rs":"254025cb408dbeff73bee6d06325acba9042cb11db30bdad04eedfb789be84b3","src/bio.rs":"1f38a3ec4029511fecd7a51548965a265f3e7772891b5514e22bfb1d061b3a90","src/bn.rs":"c71b9c79f704a94a889d27bf75e7e5b1f9f10b0df0aeb485aef509cf05d7467f","src/cms.rs":"f21a403fea95e7b7efe0539a429831cfa51c8818adb79c7ebf73ae2a6f2dc87e","src/conf.rs":"511e008c18039f54d856d70b80009426fc7f4ce34fe4304e2c58ebf465031de0","src/crypto.rs":"a1279719ade9704be3d9af55ff679abbe918d525f332ca15810146d45e9080cf","src/dh.rs":"7cc334e86d16b3eae165dfa3a6c8e488bc0fe590c17beda38893d2e9d784d5a6","src/dsa.rs":"ae79baf231681900ea76304285b3ffacf5298c90b8c04d371269cf4adbb5b9fa","src/dtls1.rs":"45e1dbf94a42d587fd948d553dc30187aa6aa2b5b82d554cf725ff36df768aa0","src/ec.rs":"81372dfe497db2fc90457a470a3b8ccb249828b3ce2bf4fd2da8ec42afd6a6b3","src/err.rs":"3edf1379b3277df32e047a52553d243d4a4001111a277cf4b12f7297f2fe2bf0","src/evp.rs":"ae748b7d7a0f74eb21c2750bf571c09f99bb835f23436c247493a66c28fb5c6b","src/hmac.rs":"fa3976d94a1383f300bdec228270afb8b47c97bb019d727c7d59ba783be3c42e","src/lib.rs":"846f03332238caace3dade00a6c15b5ed1773edd601cc72dca2f1339d58b2b7f","src/macros.rs":"638fb9098f6024e82b331eeee50c64cefdb58456dba28ee42560be655a0c2bf6","src/obj_mac.rs":"7203d356f7654c5805600b823eccf8e1d9d9cbce9a01859938612a3f0aae4cdc","src/object.rs":"3e45fb025ccbd6a556aae9738ef8a3b11cc2655ffa9d8422be21699b2e45d6c4","src/ocsp.rs":"1db59566d2f072f7ae981f0c07e1604fcdf60e66845afe0689d588f8e4272115","src/ossl_typ.rs":"f00c3f88f7947f5d13698a2fc796c68eb1bd65b2686f661d29482021170db71f","src/pem.rs":"d3ae2748c53597c91aa1896f18844ccd9ce2dca1627662b8974330e5f1b3f36c","src/pkcs12.rs":"93aab2820008ad90dc346a7dcc02f9201d94bff0bb7d1d71031c097850287c50","src/pkcs7.rs":"5370c8d4bfbf1502fa33aff635cb730e7c87814580f1df9bdb1412a492377813","src/rand.rs":"469601b4fbb56d4dbf5cf5d7bb8483e3bde411edea18601e7d1ed6ef27180fd3","src/rsa.rs":"0e8c1f0bc37620a9208175542143bfd411ae88188974d2d5b37a2b8b77d0e2c8","src/safestack.rs":"6c39e28565d34efad707d77561d4caa99e3f028fcac3a2ef6fd403a78de1190c","src/sha.rs":"1a6b028a63654d2419417a9a8af790cd22409a4643682a0686ecdb9441264eba","src/srtp.rs":"306047f3f31828fe7d15de154b375f071ae07012a94c0b5c909f5fe57962a11b","src/ssl.rs":"bb9bcb4a3b96ce6919236f48dfc5e0ad66f1cef1dce7d989c778d6f28ee6403b","src/ssl3.rs":"9336c816e00847d552dea22587d4ac72ff3cbd469fa5ff750423a19ea11e68eb","src/stack.rs":"1a509907283e5a2bf88cf193ce607f49ce7d2d95547c2ce2abc0fd4567aad334","src/tls1.rs":"60ca3dea1bbfda645bde563b4a878dac129c3f760e3ad572381000fc7a8ef522","src/x509.rs":"31ad553ece8fbb1fda6d8cf43ea0895863f961b6e1171ed05063134d3892f5cc","src/x509_vfy.rs":"5609f6300ab37a4d4755c81f7af1e6bb93a2f1a6f333c6e42f1e73ebf83ddc05","src/x509v3.rs":"30c58ce7d80670cc597d041e0f59862c1100e38743fc9dde2aec6dc811a4a558"},"package":"a842db4709b604f0fe5d1170ae3565899be2ad3d9cbc72dedc789ac0511f78de"}
-\ No newline at end of file
-+{"files":{"CHANGELOG.md":"17531e8bd93e3bd9ada0d3b4e4d07508d316985a2cbe4df73186ba70d5971923","Cargo.toml":"b71de20a64dc4704f77b8cc8ea9f63e47f2d39f06696900077eefd93a17d16ec","LICENSE-MIT":"378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397","README.md":"949fb3913ec7f94229242978dfeee5e19261b6d7506fc91dcd153bb0d2a84895","build/cfgs.rs":"2b49fbdb045c40bd46bf7e7adfde8c45508e4b51af0080fb934eb1131863d75a","build/expando.c":"c4fa8a4424b2321f1857edfc5ce1ac1f03eda54440367d3142310c0eb5553004","build/find_normal.rs":"0742487bd3faa681232e812c5c96f0e5b83b485ba236a4efda1cd8f5a260b5eb","build/find_vendored.rs":"7bf0e59c5646d72ee5a4392ad970fdf5c20288ddaf54dd86a8caff49583b38f5","build/main.rs":"630c6697a821e6f10058d58966e86253310b6b59b52cea159d2ed819b277b6b0","src/aes.rs":"822bf666db351fe6ef9607c918081d6ad378fc1cedb05290bb746f86980c6088","src/asn1.rs":"254025cb408dbeff73bee6d06325acba9042cb11db30bdad04eedfb789be84b3","src/bio.rs":"1f38a3ec4029511fecd7a51548965a265f3e7772891b5514e22bfb1d061b3a90","src/bn.rs":"c71b9c79f704a94a889d27bf75e7e5b1f9f10b0df0aeb485aef509cf05d7467f","src/cms.rs":"f21a403fea95e7b7efe0539a429831cfa51c8818adb79c7ebf73ae2a6f2dc87e","src/conf.rs":"511e008c18039f54d856d70b80009426fc7f4ce34fe4304e2c58ebf465031de0","src/crypto.rs":"a1279719ade9704be3d9af55ff679abbe918d525f332ca15810146d45e9080cf","src/dh.rs":"7cc334e86d16b3eae165dfa3a6c8e488bc0fe590c17beda38893d2e9d784d5a6","src/dsa.rs":"ae79baf231681900ea76304285b3ffacf5298c90b8c04d371269cf4adbb5b9fa","src/dtls1.rs":"45e1dbf94a42d587fd948d553dc30187aa6aa2b5b82d554cf725ff36df768aa0","src/ec.rs":"81372dfe497db2fc90457a470a3b8ccb249828b3ce2bf4fd2da8ec42afd6a6b3","src/err.rs":"3edf1379b3277df32e047a52553d243d4a4001111a277cf4b12f7297f2fe2bf0","src/evp.rs":"ae748b7d7a0f74eb21c2750bf571c09f99bb835f23436c247493a66c28fb5c6b","src/hmac.rs":"fa3976d94a1383f300bdec228270afb8b47c97bb019d727c7d59ba783be3c42e","src/lib.rs":"846f03332238caace3dade00a6c15b5ed1773edd601cc72dca2f1339d58b2b7f","src/macros.rs":"638fb9098f6024e82b331eeee50c64cefdb58456dba28ee42560be655a0c2bf6","src/obj_mac.rs":"7203d356f7654c5805600b823eccf8e1d9d9cbce9a01859938612a3f0aae4cdc","src/object.rs":"3e45fb025ccbd6a556aae9738ef8a3b11cc2655ffa9d8422be21699b2e45d6c4","src/ocsp.rs":"1db59566d2f072f7ae981f0c07e1604fcdf60e66845afe0689d588f8e4272115","src/ossl_typ.rs":"f00c3f88f7947f5d13698a2fc796c68eb1bd65b2686f661d29482021170db71f","src/pem.rs":"d3ae2748c53597c91aa1896f18844ccd9ce2dca1627662b8974330e5f1b3f36c","src/pkcs12.rs":"93aab2820008ad90dc346a7dcc02f9201d94bff0bb7d1d71031c097850287c50","src/pkcs7.rs":"5370c8d4bfbf1502fa33aff635cb730e7c87814580f1df9bdb1412a492377813","src/rand.rs":"469601b4fbb56d4dbf5cf5d7bb8483e3bde411edea18601e7d1ed6ef27180fd3","src/rsa.rs":"0e8c1f0bc37620a9208175542143bfd411ae88188974d2d5b37a2b8b77d0e2c8","src/safestack.rs":"6c39e28565d34efad707d77561d4caa99e3f028fcac3a2ef6fd403a78de1190c","src/sha.rs":"1a6b028a63654d2419417a9a8af790cd22409a4643682a0686ecdb9441264eba","src/srtp.rs":"306047f3f31828fe7d15de154b375f071ae07012a94c0b5c909f5fe57962a11b","src/ssl.rs":"bb9bcb4a3b96ce6919236f48dfc5e0ad66f1cef1dce7d989c778d6f28ee6403b","src/ssl3.rs":"9336c816e00847d552dea22587d4ac72ff3cbd469fa5ff750423a19ea11e68eb","src/stack.rs":"1a509907283e5a2bf88cf193ce607f49ce7d2d95547c2ce2abc0fd4567aad334","src/tls1.rs":"60ca3dea1bbfda645bde563b4a878dac129c3f760e3ad572381000fc7a8ef522","src/x509.rs":"31ad553ece8fbb1fda6d8cf43ea0895863f961b6e1171ed05063134d3892f5cc","src/x509_vfy.rs":"5609f6300ab37a4d4755c81f7af1e6bb93a2f1a6f333c6e42f1e73ebf83ddc05","src/x509v3.rs":"30c58ce7d80670cc597d041e0f59862c1100e38743fc9dde2aec6dc811a4a558"},"package":"a842db4709b604f0fe5d1170ae3565899be2ad3d9cbc72dedc789ac0511f78de"}
-diff --git a/vendor/openssl-sys/build/main.rs b/vendor/openssl-sys/build/main.rs
-index 49f26d2b7..361e06cf9 100644
---- a/vendor/openssl-sys/build/main.rs
-+++ b/vendor/openssl-sys/build/main.rs
-@@ -221,6 +221,8 @@ See rust-openssl README for more information:
- (3, 1, 0) => ('3', '1', '0'),
- (3, 1, _) => ('3', '1', 'x'),
- (3, 2, 0) => ('3', '2', '0'),
-+ (3, 2, _) => ('3', '2', 'x'),
-+ (3, 3, _) => ('3', '3', 'x'),
- _ => version_error(),
- };
-
-@@ -261,7 +263,7 @@ fn version_error() -> ! {
- "
-
- This crate is only compatible with OpenSSL 1.0.1 through 1.1.1, or LibreSSL 2.5
--through 3.2.0, but a different version of OpenSSL was found. The build is now aborting
-+through 3.3.x, but a different version of OpenSSL was found. The build is now aborting
- due to this version mismatch.
-
- "
---
-2.29.2
-
diff --git a/dev-lang/rust/files/1.47.0-llvm-tensorflow-fix.patch b/dev-lang/rust/files/1.47.0-llvm-tensorflow-fix.patch
deleted file mode 100644
index 5b12c15ff40e..000000000000
--- a/dev-lang/rust/files/1.47.0-llvm-tensorflow-fix.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From 8dcb88f7705fb3927938dd9bd103efcabafcefb0 Mon Sep 17 00:00:00 2001
-From: Georgy Yakovlev <gyakovlev@gentoo.org>
-Date: Tue, 27 Oct 2020 18:20:56 -0700
-Subject: [PATCH] backport D88371, guard `find_library(tensorflow_c_api ...)`
-
-Differential Revision: https://reviews.llvm.org/D88371
-Signed-off-by: Georgy Yakovlev <gyakovlev@gentoo.org>
----
- src/llvm-project/llvm/CMakeLists.txt | 15 +++++++--------
- 1 file changed, 7 insertions(+), 8 deletions(-)
-
-diff --git a/src/llvm-project/llvm/CMakeLists.txt b/src/llvm-project/llvm/CMakeLists.txt
-index 1f137f0..4112def 100644
---- a/src/llvm-project/llvm/CMakeLists.txt
-+++ b/src/llvm-project/llvm/CMakeLists.txt
-@@ -832,6 +832,11 @@ configure_file(
- ${LLVM_INCLUDE_DIR}/llvm/Config/Targets.def
- )
-
-+# They are not referenced. See set_output_directory().
-+set( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${LLVM_BINARY_DIR}/bin )
-+set( CMAKE_LIBRARY_OUTPUT_DIRECTORY ${LLVM_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX} )
-+set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${LLVM_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX} )
-+
- # For up-to-date instructions for installing the Tensorflow dependency, refer to
- # the bot setup script: https://github.com/google/ml-compiler-opt/blob/master/buildbot/buildbot_init.sh
- # In this case, the latest C API library is available for download from
-@@ -840,9 +845,9 @@ configure_file(
- # LLVM_HAVE_TF_API, through llvm-config.h, so that a user of the LLVM library may
- # also leverage the dependency.
- set(TENSORFLOW_C_LIB_PATH "" CACHE PATH "Path to TensorFlow C library install")
--find_library(tensorflow_c_api tensorflow PATHS ${TENSORFLOW_C_LIB_PATH}/lib)
-
--if (tensorflow_c_api)
-+if (TENSORFLOW_C_LIB_PATH)
-+ find_library(tensorflow_c_api tensorflow PATHS ${TENSORFLOW_C_LIB_PATH}/lib NO_DEFAULT_PATH REQUIRED)
- set(LLVM_HAVE_TF_API "ON" CACHE BOOL "Full Tensorflow API available")
- include_directories(${TENSORFLOW_C_LIB_PATH}/include)
- endif()
-@@ -877,12 +882,6 @@ add_custom_target(srpm
- COMMAND rpmbuild -bs --define '_topdir ${LLVM_SRPM_DIR}' ${LLVM_SRPM_BINARY_SPECFILE})
- set_target_properties(srpm PROPERTIES FOLDER "Misc")
-
--
--# They are not referenced. See set_output_directory().
--set( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${LLVM_BINARY_DIR}/bin )
--set( CMAKE_LIBRARY_OUTPUT_DIRECTORY ${LLVM_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX} )
--set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${LLVM_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX} )
--
- if(APPLE AND DARWIN_LTO_LIBRARY)
- set(CMAKE_EXE_LINKER_FLAGS
- "${CMAKE_EXE_LINKER_FLAGS} -Wl,-lto_library -Wl,${DARWIN_LTO_LIBRARY}")
---
-2.26.2
-
diff --git a/dev-lang/rust/files/1.48.0-gentoo-musl-target-specs.patch b/dev-lang/rust/files/1.48.0-gentoo-musl-target-specs.patch
deleted file mode 100644
index 850257f932ea..000000000000
--- a/dev-lang/rust/files/1.48.0-gentoo-musl-target-specs.patch
+++ /dev/null
@@ -1,164 +0,0 @@
-From 671ef2d1c228aed031b4232b8bea96f17b825263 Mon Sep 17 00:00:00 2001
-From: Georgy Yakovlev <gyakovlev@gentoo.org>
-Date: Mon, 23 Nov 2020 14:52:04 -0800
-Subject: [PATCH] add gentoo musl target specs
-
----
- .../src/spec/aarch64_gentoo_linux_musl.rs | 11 +++++++++++
- .../src/spec/armv7_gentoo_linux_musleabihf.rs | 11 +++++++++++
- .../rustc_target/src/spec/i686_gentoo_linux_musl.rs | 11 +++++++++++
- compiler/rustc_target/src/spec/mod.rs | 8 ++++++++
- .../src/spec/powerpc64_gentoo_linux_musl.rs | 11 +++++++++++
- .../src/spec/powerpc64le_gentoo_linux_musl.rs | 11 +++++++++++
- .../src/spec/powerpc_gentoo_linux_musl.rs | 11 +++++++++++
- .../rustc_target/src/spec/x86_64_gentoo_linux_musl.rs | 11 +++++++++++
- 8 files changed, 85 insertions(+)
- create mode 100644 compiler/rustc_target/src/spec/aarch64_gentoo_linux_musl.rs
- create mode 100644 compiler/rustc_target/src/spec/armv7_gentoo_linux_musleabihf.rs
- create mode 100644 compiler/rustc_target/src/spec/i686_gentoo_linux_musl.rs
- create mode 100644 compiler/rustc_target/src/spec/powerpc64_gentoo_linux_musl.rs
- create mode 100644 compiler/rustc_target/src/spec/powerpc64le_gentoo_linux_musl.rs
- create mode 100644 compiler/rustc_target/src/spec/powerpc_gentoo_linux_musl.rs
- create mode 100644 compiler/rustc_target/src/spec/x86_64_gentoo_linux_musl.rs
-
-diff --git a/compiler/rustc_target/src/spec/aarch64_gentoo_linux_musl.rs b/compiler/rustc_target/src/spec/aarch64_gentoo_linux_musl.rs
-new file mode 100644
-index 0000000..420fe7c
---- /dev/null
-+++ b/compiler/rustc_target/src/spec/aarch64_gentoo_linux_musl.rs
-@@ -0,0 +1,11 @@
-+use crate::spec::TargetResult;
-+
-+pub fn target() -> TargetResult {
-+ let mut base = super::aarch64_unknown_linux_musl::target()?;
-+
-+ base.llvm_target = "aarch64-gentoo-linux-musl".to_string();
-+ base.target_vendor = "gentoo".to_string();
-+ base.options.crt_static_default = false;
-+
-+ Ok(base)
-+}
-diff --git a/compiler/rustc_target/src/spec/armv7_gentoo_linux_musleabihf.rs b/compiler/rustc_target/src/spec/armv7_gentoo_linux_musleabihf.rs
-new file mode 100644
-index 0000000..067e2d6
---- /dev/null
-+++ b/compiler/rustc_target/src/spec/armv7_gentoo_linux_musleabihf.rs
-@@ -0,0 +1,11 @@
-+use crate::spec::TargetResult;
-+
-+pub fn target() -> TargetResult {
-+ let mut base = super::armv7_unknown_linux_musleabihf::target()?;
-+
-+ base.llvm_target = "armv7-gentoo-linux-musleabihf".to_string();
-+ base.target_vendor = "gentoo".to_string();
-+ base.options.crt_static_default = false;
-+
-+ Ok(base)
-+}
-diff --git a/compiler/rustc_target/src/spec/i686_gentoo_linux_musl.rs b/compiler/rustc_target/src/spec/i686_gentoo_linux_musl.rs
-new file mode 100644
-index 0000000..1cd39cd
---- /dev/null
-+++ b/compiler/rustc_target/src/spec/i686_gentoo_linux_musl.rs
-@@ -0,0 +1,11 @@
-+use crate::spec::TargetResult;
-+
-+pub fn target() -> TargetResult {
-+ let mut base = super::i686_unknown_linux_musl::target()?;
-+
-+ base.llvm_target = "i686-gentoo-linux-musl".to_string();
-+ base.target_vendor = "gentoo".to_string();
-+ base.options.crt_static_default = false;
-+
-+ Ok(base)
-+}
-diff --git a/compiler/rustc_target/src/spec/mod.rs b/compiler/rustc_target/src/spec/mod.rs
-index f1e8330..d8c0ba0 100644
---- a/compiler/rustc_target/src/spec/mod.rs
-+++ b/compiler/rustc_target/src/spec/mod.rs
-@@ -490,6 +490,14 @@ macro_rules! supported_targets {
- }
-
- supported_targets! {
-+ ("aarch64-gentoo-linux-musl", aarch64_gentoo_linux_musl),
-+ ("armv7-gentoo-linux-musleabihf", armv7_gentoo_linux_musleabihf),
-+ ("i686-gentoo-linux-musl", i686_gentoo_linux_musl),
-+ ("powerpc-gentoo-linux-musl", powerpc_gentoo_linux_musl),
-+ ("powerpc64-gentoo-linux-musl", powerpc64_gentoo_linux_musl),
-+ ("powerpc64le-gentoo-linux-musl", powerpc64le_gentoo_linux_musl),
-+ ("x86_64-gentoo-linux-musl", x86_64_gentoo_linux_musl),
-+
- ("x86_64-unknown-linux-gnu", x86_64_unknown_linux_gnu),
- ("x86_64-unknown-linux-gnux32", x86_64_unknown_linux_gnux32),
- ("i686-unknown-linux-gnu", i686_unknown_linux_gnu),
-diff --git a/compiler/rustc_target/src/spec/powerpc64_gentoo_linux_musl.rs b/compiler/rustc_target/src/spec/powerpc64_gentoo_linux_musl.rs
-new file mode 100644
-index 0000000..e840bb2
---- /dev/null
-+++ b/compiler/rustc_target/src/spec/powerpc64_gentoo_linux_musl.rs
-@@ -0,0 +1,11 @@
-+use crate::spec::TargetResult;
-+
-+pub fn target() -> TargetResult {
-+ let mut base = super::powerpc64_unknown_linux_musl::target()?;
-+
-+ base.llvm_target = "powerpc64-gentoo-linux-musl".to_string();
-+ base.target_vendor = "gentoo".to_string();
-+ base.options.crt_static_default = false;
-+
-+ Ok(base)
-+}
-diff --git a/compiler/rustc_target/src/spec/powerpc64le_gentoo_linux_musl.rs b/compiler/rustc_target/src/spec/powerpc64le_gentoo_linux_musl.rs
-new file mode 100644
-index 0000000..1037d82
---- /dev/null
-+++ b/compiler/rustc_target/src/spec/powerpc64le_gentoo_linux_musl.rs
-@@ -0,0 +1,11 @@
-+use crate::spec::TargetResult;
-+
-+pub fn target() -> TargetResult {
-+ let mut base = super::powerpc64le_unknown_linux_musl::target()?;
-+
-+ base.llvm_target = "powerpc64le-gentoo-linux-musl".to_string();
-+ base.target_vendor = "gentoo".to_string();
-+ base.options.crt_static_default = false;
-+
-+ Ok(base)
-+}
-diff --git a/compiler/rustc_target/src/spec/powerpc_gentoo_linux_musl.rs b/compiler/rustc_target/src/spec/powerpc_gentoo_linux_musl.rs
-new file mode 100644
-index 0000000..a623ffe
---- /dev/null
-+++ b/compiler/rustc_target/src/spec/powerpc_gentoo_linux_musl.rs
-@@ -0,0 +1,11 @@
-+use crate::spec::TargetResult;
-+
-+pub fn target() -> TargetResult {
-+ let mut base = super::powerpc_unknown_linux_musl::target()?;
-+
-+ base.llvm_target = "powerpc-gentoo-linux-musl".to_string();
-+ base.target_vendor = "gentoo".to_string();
-+ base.options.crt_static_default = false;
-+
-+ Ok(base)
-+}
-diff --git a/compiler/rustc_target/src/spec/x86_64_gentoo_linux_musl.rs b/compiler/rustc_target/src/spec/x86_64_gentoo_linux_musl.rs
-new file mode 100644
-index 0000000..f330473
---- /dev/null
-+++ b/compiler/rustc_target/src/spec/x86_64_gentoo_linux_musl.rs
-@@ -0,0 +1,11 @@
-+use crate::spec::TargetResult;
-+
-+pub fn target() -> TargetResult {
-+ let mut base = super::x86_64_unknown_linux_musl::target()?;
-+
-+ base.llvm_target = "x86_64-gentoo-linux-musl".to_string();
-+ base.target_vendor = "gentoo".to_string();
-+ base.options.crt_static_default = false;
-+
-+ Ok(base)
-+}
---
-2.29.2
-
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..fd56396d127e
--- /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
diff --git a/dev-lang/rust/files/1.67.0-doc-wasm.patch b/dev-lang/rust/files/1.67.0-doc-wasm.patch
new file mode 100644
index 000000000000..06011deb795b
--- /dev/null
+++ b/dev-lang/rust/files/1.67.0-doc-wasm.patch
@@ -0,0 +1,34 @@
+From 92aa5f6b272bcdc020a34f8d90f9ef851b5b4504 Mon Sep 17 00:00:00 2001
+From: John Millikin <john@john-millikin.com>
+Date: Mon, 9 Jan 2023 13:54:21 +0900
+Subject: [PATCH] Disable `linux_ext` in wasm32 and fortanix rustdoc builds.
+
+The `std::os::unix` module is stubbed out when building docs for these
+target platforms. The introduction of Linux-specific extension traits
+caused `std::os::net` to depend on sub-modules of `std::os::unix`,
+which broke rustdoc for the `wasm32-unknown-unknown` target.
+
+Adding an additional `#[cfg]` guard solves that rustdoc failure by
+not declaring `linux_ext` on targets with a stubbed `std::os::unix`.
+---
+ library/std/src/os/net/mod.rs | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+diff --git a/library/std/src/os/net/mod.rs b/library/std/src/os/net/mod.rs
+index 5ec267c41e97c..b7046dd7c598c 100644
+--- a/library/std/src/os/net/mod.rs
++++ b/library/std/src/os/net/mod.rs
+@@ -1,4 +1,13 @@
+ //! OS-specific networking functionality.
+
++// See cfg macros in `library/std/src/os/mod.rs` for why these platforms must
++// be special-cased during rustdoc generation.
++#[cfg(not(all(
++ doc,
++ any(
++ all(target_arch = "wasm32", not(target_os = "wasi")),
++ all(target_vendor = "fortanix", target_env = "sgx")
++ )
++)))]
+ #[cfg(any(target_os = "linux", target_os = "android", doc))]
+ pub(super) mod linux_ext;
diff --git a/dev-lang/rust/files/1.70.0-ignore-broken-and-non-applicable-tests.patch b/dev-lang/rust/files/1.70.0-ignore-broken-and-non-applicable-tests.patch
new file mode 100644
index 000000000000..2e12c7820550
--- /dev/null
+++ b/dev-lang/rust/files/1.70.0-ignore-broken-and-non-applicable-tests.patch
@@ -0,0 +1,30 @@
+From 1879d1d1a284bf51c752e47db284ce22701ed5d0 Mon Sep 17 00:00:00 2001
+From: Samuel Holland <samuel@sholland.org>
+Date: Sun, 16 Sep 2018 16:38:48 +0000
+Subject: [PATCH 12/15] Ignore broken and non-applicable tests
+
+c-link-to-rust-va-list-fn: unstable feature, broken on aarch64, #56475
+env-funky-keys: can't handle LD_PRELOAD (e.g. sandbox)
+long-linker-command-lines: takes >10 minutes to run (but still passes)
+simd-intrinsic-generic-bitmask.rs: broken on BE, #59356
+sparc-struct-abi: no sparc target
+sysroot-crates-are-unstable: can't run rustc without RPATH
+---
+ test/ui/env-funky-keys.rs | 1 +
+ 6 files changed, 10 insertions(+)
+
+diff --git a/tests/ui/env-funky-keys.rs b/tests/ui/env-funky-keys.rs
+index c5c824ac58d..f3fe047a79c 100644
+--- a/tests/ui/env-funky-keys.rs
++++ b/tests/ui/env-funky-keys.rs
+@@ -1,6 +1,7 @@
+ // run-pass
+ // Ignore this test on Android, because it segfaults there.
+
++// ignore-test
+ // ignore-android
+ // ignore-windows
+ // ignore-cloudabi no execve
+--
+2.24.1
+
diff --git a/dev-lang/rust/files/1.71.0-fix-bashcomp-installation.patch b/dev-lang/rust/files/1.71.0-fix-bashcomp-installation.patch
new file mode 100644
index 000000000000..14efbfc63f8c
--- /dev/null
+++ b/dev-lang/rust/files/1.71.0-fix-bashcomp-installation.patch
@@ -0,0 +1,23 @@
+https://github.com/rust-lang/rust/pull/113579 which reverts the broken
+https://github.com/rust-lang/rust/pull/110906.
+From: ekusiadadus <ekusiadadus@gmail.com>
+Date: Wed, 12 Jul 2023 00:54:27 +0900
+Subject: [PATCH] Revert "fix: :bug: etc/bash_complettion -> src/etc/... to
+ avoid copy error"
+
+This reverts commit 08ce68b6a6bad360e9c3611ad60cf6598401f878.
+--- a/src/bootstrap/dist.rs
++++ b/src/bootstrap/dist.rs
+@@ -1074,11 +1074,7 @@ impl Step for Cargo {
+
+ tarball.add_file(&cargo, "bin", 0o755);
+ tarball.add_file(etc.join("_cargo"), "share/zsh/site-functions", 0o644);
+- tarball.add_renamed_file(
+- etc.join("cargo.bashcomp.sh"),
+- "src/etc/bash_completion.d",
+- "cargo",
+- );
++ tarball.add_renamed_file(etc.join("cargo.bashcomp.sh"), "etc/bash_completion.d", "cargo");
+ tarball.add_dir(etc.join("man"), "share/man/man1");
+ tarball.add_legal_and_readme_to("share/doc/cargo");
+
diff --git a/dev-lang/rust/files/1.71.0-lint-docs-libpath.patch b/dev-lang/rust/files/1.71.0-lint-docs-libpath.patch
new file mode 100644
index 000000000000..27c673835c7b
--- /dev/null
+++ b/dev-lang/rust/files/1.71.0-lint-docs-libpath.patch
@@ -0,0 +1,39 @@
+https://bugs.gentoo.org/910595
+https://github.com/rust-lang/rust/issues/113678
+
+https://github.com/rust-lang/rust/commit/67b5990472e3cac643d8cf90f45fe42201ddec3c
+From: jyn <github@jyn.dev>
+Date: Mon, 10 Jul 2023 15:59:30 -0500
+Subject: [PATCH] Revert "Fix `x test lint-docs` when download-rustc is
+ enabled"
+
+This was not the correct fix. The problem was two-fold:
+- `download-rustc` didn't respect `llvm.assertions`
+- `rust-dev` was missing a bump to `download-ci-llvm-stamp`
+
+The first is fixed in this PR and the latter was fixed a while ago. Revert this change to avoid breaking `rpath = false`.
+--- a/src/tools/lint-docs/src/groups.rs
++++ b/src/tools/lint-docs/src/groups.rs
+@@ -39,7 +39,6 @@ impl<'a> LintExtractor<'a> {
+ fn collect_groups(&self) -> Result<LintGroups, Box<dyn Error>> {
+ let mut result = BTreeMap::new();
+ let mut cmd = Command::new(self.rustc_path);
+- cmd.env_remove("LD_LIBRARY_PATH");
+ cmd.arg("-Whelp");
+ let output = cmd.output().map_err(|e| format!("failed to run command {:?}\n{}", cmd, e))?;
+ if !output.status.success() {
+--- a/src/tools/lint-docs/src/lib.rs
++++ b/src/tools/lint-docs/src/lib.rs
+@@ -403,12 +403,6 @@ impl<'a> LintExtractor<'a> {
+ fs::write(&tempfile, source)
+ .map_err(|e| format!("failed to write {}: {}", tempfile.display(), e))?;
+ let mut cmd = Command::new(self.rustc_path);
+- // NOTE: bootstrap sets `LD_LIBRARY_PATH` for building lint-docs itself.
+- // Unfortunately, lint-docs is a bootstrap tool while rustc is built from source,
+- // and sometimes the paths conflict. In particular, when using `download-rustc`,
+- // the LLVM versions can differ between `ci-llvm` and `ci-rustc-sysroot`.
+- // Unset LD_LIBRARY_PATH here so it doesn't interfere with running the compiler.
+- cmd.env_remove("LD_LIBRARY_PATH");
+ if options.contains(&"edition2015") {
+ cmd.arg("--edition=2015");
+ } else {
diff --git a/dev-lang/rust/files/1.71.1-fix-bootstrap-version-comparison.patch b/dev-lang/rust/files/1.71.1-fix-bootstrap-version-comparison.patch
new file mode 100644
index 000000000000..8857c4b76580
--- /dev/null
+++ b/dev-lang/rust/files/1.71.1-fix-bootstrap-version-comparison.patch
@@ -0,0 +1,26 @@
+https://github.com/rust-lang/rust/pull/114440
+From: Ariadne Conill <ariadne@dereferenced.org>
+Date: Thu, 3 Aug 2023 15:05:40 -0700
+Subject: [PATCH] bootstrap: config: fix version comparison bug
+
+Rust requires a previous version of Rust to build, such as the current version, or the
+previous version. However, the version comparison logic did not take patch releases
+into consideration when doing the version comparison for the current branch, e.g.
+Rust 1.71.1 could not be built by Rust 1.71.0 because it is neither an exact version
+match, or the previous version.
+
+Adjust the version comparison logic to tolerate mismatches in the patch version.
+
+Signed-off-by: Ariadne Conill <ariadne@dereferenced.org>
+--- a/src/bootstrap/config.rs
++++ b/src/bootstrap/config.rs
+@@ -2004,7 +2004,8 @@ impl Config {
+ .unwrap();
+ if !(source_version == rustc_version
+ || (source_version.major == rustc_version.major
+- && source_version.minor == rustc_version.minor + 1))
++ && (source_version.minor == rustc_version.minor
++ || source_version.minor == rustc_version.minor + 1)))
+ {
+ let prev_version = format!("{}.{}.x", source_version.major, source_version.minor - 1);
+ eprintln!(
diff --git a/dev-lang/rust/files/1.72.0-bump-libc-deps-to-0.2.146.patch b/dev-lang/rust/files/1.72.0-bump-libc-deps-to-0.2.146.patch
new file mode 100644
index 000000000000..bd1c4b589ada
--- /dev/null
+++ b/dev-lang/rust/files/1.72.0-bump-libc-deps-to-0.2.146.patch
@@ -0,0 +1,156 @@
+This patch bumps all libc dependencies and checksums to 0.2.146, which includes the fix for musl 1.2.4.
+
+--- a/vendor/addr2line-0.20.0/Cargo.lock
++++ b/vendor/addr2line-0.20.0/Cargo.lock
+@@ -246,9 +246,9 @@ checksum = "e2abad23fbc42b3700f2f279844d
+
+ [[package]]
+ name = "libc"
+-version = "0.2.141"
++version = "0.2.146"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "3304a64d199bb964be99741b7a14d26972741915b3649639149b2479bb46f4b5"
++checksum = "f92be4933c13fd498862a9e02a3055f8a8d9c039ce33db97306fd5a6caa7f29b"
+
+ [[package]]
+ name = "libtest-mimic"
+--- a/vendor/backtrace-0.3.67/Cargo.lock
++++ b/vendor/backtrace-0.3.67/Cargo.lock
+@@ -64,9 +64,9 @@ checksum = "dec7af912d60cdbd3677c1af9352
+
+ [[package]]
+ name = "libc"
+-version = "0.2.138"
++version = "0.2.146"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "db6d7e329c562c5dfab7a46a2afabc8b987ab9a4834c9d1ca04dc54c1546cef8"
++checksum = "f92be4933c13fd498862a9e02a3055f8a8d9c039ce33db97306fd5a6caa7f29b"
+
+ [[package]]
+ name = "libloading"
+--- a/vendor/bstr/Cargo.lock
++++ b/vendor/bstr/Cargo.lock
+@@ -34,9 +34,9 @@ dependencies = [
+
+ [[package]]
+ name = "libc"
+-version = "0.2.138"
++version = "0.2.146"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "db6d7e329c562c5dfab7a46a2afabc8b987ab9a4834c9d1ca04dc54c1546cef8"
++checksum = "f92be4933c13fd498862a9e02a3055f8a8d9c039ce33db97306fd5a6caa7f29b"
+
+ [[package]]
+ name = "memchr"
+--- a/vendor/cranelift-jit/Cargo.lock
++++ b/vendor/cranelift-jit/Cargo.lock
+@@ -224,9 +224,9 @@ dependencies = [
+
+ [[package]]
+ name = "libc"
+-version = "0.2.141"
++version = "0.2.146"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "3304a64d199bb964be99741b7a14d26972741915b3649639149b2479bb46f4b5"
++checksum = "f92be4933c13fd498862a9e02a3055f8a8d9c039ce33db97306fd5a6caa7f29b"
+
+ [[package]]
+ name = "log"
+--- a/vendor/crossbeam-channel/Cargo.lock
++++ b/vendor/crossbeam-channel/Cargo.lock
+@@ -50,9 +50,9 @@ dependencies = [
+
+ [[package]]
+ name = "libc"
+-version = "0.2.141"
++version = "0.2.146"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "3304a64d199bb964be99741b7a14d26972741915b3649639149b2479bb46f4b5"
++checksum = "f92be4933c13fd498862a9e02a3055f8a8d9c039ce33db97306fd5a6caa7f29b"
+
+ [[package]]
+ name = "num_cpus"
+--- a/vendor/elasticlunr-rs/Cargo.lock
++++ b/vendor/elasticlunr-rs/Cargo.lock
+@@ -555,9 +555,9 @@ checksum = "e2abad23fbc42b3700f2f279844d
+
+ [[package]]
+ name = "libc"
+-version = "0.2.140"
++version = "0.2.146"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "99227334921fae1a979cf0bfdfcc6b3e5ce376ef57e16fb6fb3ea2ed6095f80c"
++checksum = "f92be4933c13fd498862a9e02a3055f8a8d9c039ce33db97306fd5a6caa7f29b"
+
+ [[package]]
+ name = "lindera"
+--- a/vendor/handlebars/Cargo.lock
++++ b/vendor/handlebars/Cargo.lock
+@@ -550,9 +550,9 @@ checksum = "e2abad23fbc42b3700f2f279844d
+
+ [[package]]
+ name = "libc"
+-version = "0.2.140"
++version = "0.2.146"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "99227334921fae1a979cf0bfdfcc6b3e5ce376ef57e16fb6fb3ea2ed6095f80c"
++checksum = "f92be4933c13fd498862a9e02a3055f8a8d9c039ce33db97306fd5a6caa7f29b"
+
+ [[package]]
+ name = "lock_api"
+--- a/vendor/icu_locid/Cargo.lock
++++ b/vendor/icu_locid/Cargo.lock
+@@ -318,9 +318,9 @@ checksum = "e2abad23fbc42b3700f2f279844d
+
+ [[package]]
+ name = "libc"
+-version = "0.2.141"
++version = "0.2.146"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "3304a64d199bb964be99741b7a14d26972741915b3649639149b2479bb46f4b5"
++checksum = "f92be4933c13fd498862a9e02a3055f8a8d9c039ce33db97306fd5a6caa7f29b"
+
+ [[package]]
+ name = "litemap"
+--- a/vendor/libffi/Cargo.lock
++++ b/vendor/libffi/Cargo.lock
+@@ -10,9 +10,9 @@ checksum = "50d30906286121d95be3d479533b
+
+ [[package]]
+ name = "libc"
+-version = "0.2.140"
++version = "0.2.146"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "99227334921fae1a979cf0bfdfcc6b3e5ce376ef57e16fb6fb3ea2ed6095f80c"
++checksum = "f92be4933c13fd498862a9e02a3055f8a8d9c039ce33db97306fd5a6caa7f29b"
+
+ [[package]]
+ name = "libffi"
+--- a/vendor/terminal_size/Cargo.lock
++++ b/vendor/terminal_size/Cargo.lock
+@@ -47,9 +47,9 @@ dependencies = [
+
+ [[package]]
+ name = "libc"
+-version = "0.2.140"
++version = "0.2.146"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "99227334921fae1a979cf0bfdfcc6b3e5ce376ef57e16fb6fb3ea2ed6095f80c"
++checksum = "f92be4933c13fd498862a9e02a3055f8a8d9c039ce33db97306fd5a6caa7f29b"
+
+ [[package]]
+ name = "linux-raw-sys"
+--- a/vendor/tracing-tree/Cargo.lock
++++ b/vendor/tracing-tree/Cargo.lock
+@@ -100,9 +100,9 @@ checksum = "e2abad23fbc42b3700f2f279844d
+
+ [[package]]
+ name = "libc"
+-version = "0.2.141"
++version = "0.2.146"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "3304a64d199bb964be99741b7a14d26972741915b3649639149b2479bb46f4b5"
++checksum = "f92be4933c13fd498862a9e02a3055f8a8d9c039ce33db97306fd5a6caa7f29b"
+
+ [[package]]
+ name = "log"
diff --git a/dev-lang/rust/files/1.74.1-cross-compile-libz.patch b/dev-lang/rust/files/1.74.1-cross-compile-libz.patch
new file mode 100644
index 000000000000..f2a881b46134
--- /dev/null
+++ b/dev-lang/rust/files/1.74.1-cross-compile-libz.patch
@@ -0,0 +1,19 @@
+https://paste.sr.ht/~kchibisov/682321e0fd4a3ece4a4b7b71591896f5cd3cdb22
+https://github.com/gentoo/gentoo/pull/35246#discussion_r1484525497
+
+diff --git a/compiler/rustc_llvm/build.rs b/compiler/rustc_llvm/build.rs
+index f606fa483ca..8a2e1c40e8b 100644
+--- a/compiler/rustc_llvm/build.rs
++++ b/compiler/rustc_llvm/build.rs
+@@ -237,10 +237,7 @@ fn main() {
+ // of llvm-config, not the target that we're attempting to link.
+ let mut cmd = Command::new(&llvm_config);
+ cmd.arg(llvm_link_arg).arg("--libs");
+-
+- if !is_crossed {
+- cmd.arg("--system-libs");
+- }
++ cmd.arg("--system-libs");
+
+ if (target.starts_with("arm") && !target.contains("freebsd"))
+ || target.starts_with("mips-")
diff --git a/dev-lang/rust/files/1.75.0-handle-vendored-sources.patch b/dev-lang/rust/files/1.75.0-handle-vendored-sources.patch
new file mode 100644
index 000000000000..c68ceba15e82
--- /dev/null
+++ b/dev-lang/rust/files/1.75.0-handle-vendored-sources.patch
@@ -0,0 +1,45 @@
+From 4b7e0a0b56aa2446e670dfd6558380a1039a86aa Mon Sep 17 00:00:00 2001
+From: Arlo Siemsen <arsiem@microsoft.com>
+Date: Thu, 4 Jan 2024 11:40:56 -0600
+Subject: [PATCH] Handle vendored sources when remapping paths
+
+Signed-off-by: Randy Barlow <randy@electronsweatshop.com>
+---
+ src/bootstrap/src/core/builder.rs | 19 ++++++++++++-------
+ 1 file changed, 12 insertions(+), 7 deletions(-)
+
+diff --git a/src/bootstrap/src/core/builder.rs b/src/bootstrap/src/core/builder.rs
+index 4e20babc55a..3770d0687b2 100644
+--- a/src/bootstrap/src/core/builder.rs
++++ b/src/bootstrap/src/core/builder.rs
+@@ -1799,15 +1799,20 @@ pub fn cargo(
+ }
+
+ if self.config.rust_remap_debuginfo {
+- // FIXME: handle vendored sources
+- let registry_src = t!(home::cargo_home()).join("registry").join("src");
+ let mut env_var = OsString::new();
+- for entry in t!(std::fs::read_dir(registry_src)) {
+- if !env_var.is_empty() {
+- env_var.push("\t");
+- }
+- env_var.push(t!(entry).path());
++ if self.config.vendor {
++ let vendor = self.build.src.join("vendor");
++ env_var.push(vendor);
+ env_var.push("=/rust/deps");
++ } else {
++ let registry_src = t!(home::cargo_home()).join("registry").join("src");
++ for entry in t!(std::fs::read_dir(registry_src)) {
++ if !env_var.is_empty() {
++ env_var.push("\t");
++ }
++ env_var.push(t!(entry).path());
++ env_var.push("=/rust/deps");
++ }
+ }
+ cargo.env("RUSTC_CARGO_REGISTRY_SRC_TO_REMAP", env_var);
+ }
+--
+2.43.0
+
diff --git a/dev-lang/rust/files/1.75.0-musl-dynamic-linking.patch b/dev-lang/rust/files/1.75.0-musl-dynamic-linking.patch
new file mode 100644
index 000000000000..7dc34f8ad6b8
--- /dev/null
+++ b/dev-lang/rust/files/1.75.0-musl-dynamic-linking.patch
@@ -0,0 +1,19 @@
+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>
+--- a/compiler/rustc_target/src/spec/base/linux_musl.rs
++++ b/compiler/rustc_target/src/spec/base/linux_musl.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
diff --git a/dev-lang/rust/files/1.76.0-loong-code-model.patch b/dev-lang/rust/files/1.76.0-loong-code-model.patch
new file mode 100644
index 000000000000..02bfeca55b1d
--- /dev/null
+++ b/dev-lang/rust/files/1.76.0-loong-code-model.patch
@@ -0,0 +1,73 @@
+https://github.com/rust-lang/rust/pull/120661
+From: WANG Xuerui <xen0n@gentoo.org>
+Date: Mon, 5 Feb 2024 13:18:32 +0800
+Subject: [PATCH] target: default to the medium code model on LoongArch targets
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The Rust LoongArch targets have been using the default LLVM code model
+so far, which is "small" in LLVM-speak and "normal" in LoongArch-speak.
+As described in the "Code Model" section of LoongArch ELF psABI spec
+v20231219 [1], one can only make function calls as far as ±128MiB with
+the "normal" code model; this is insufficient for very large software
+containing Rust components that needs to be linked into the big text
+section, such as Chromium.
+
+Because:
+
+* we do not want to ask users to recompile std if they are to build
+ such software,
+* objects compiled with larger code models can be linked with those
+ with smaller code models without problems, and
+* the "medium" code model is comparable to the "small"/"normal" one
+ performance-wise (same data access pattern; each function call
+ becomes 2-insn long and indirect, but this may be relaxed back into
+ the direct 1-insn form in a future LLVM version), but is able to
+ perform function calls within ±128GiB,
+
+it is better to just switch the targets to the "medium" code model,
+which is also "medium" in LLVM-speak.
+
+[1]: https://github.com/loongson/la-abi-specs/blob/v2.30/laelf.adoc#code-models
+--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_gnu.rs
++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_gnu.rs
+@@ -1,4 +1,4 @@
+-use crate::spec::{base, Target, TargetOptions};
++use crate::spec::{base, CodeModel, Target, TargetOptions};
+
+ pub fn target() -> Target {
+ Target {
+@@ -7,6 +7,7 @@ pub fn target() -> Target {
+ data_layout: "e-m:e-p:64:64-i64:64-i128:128-n64-S128".into(),
+ arch: "loongarch64".into(),
+ options: TargetOptions {
++ code_model: Some(CodeModel::Medium),
+ cpu: "generic".into(),
+ features: "+f,+d".into(),
+ llvm_abiname: "lp64d".into(),
+--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none.rs
++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none.rs
+@@ -16,7 +16,7 @@ pub fn target() -> Target {
+ max_atomic_width: Some(64),
+ relocation_model: RelocModel::Static,
+ panic_strategy: PanicStrategy::Abort,
+- code_model: Some(CodeModel::Small),
++ code_model: Some(CodeModel::Medium),
+ ..Default::default()
+ },
+ }
+--- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none_softfloat.rs
++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_none_softfloat.rs
+@@ -17,7 +17,7 @@ pub fn target() -> Target {
+ max_atomic_width: Some(64),
+ relocation_model: RelocModel::Static,
+ panic_strategy: PanicStrategy::Abort,
+- code_model: Some(CodeModel::Small),
++ code_model: Some(CodeModel::Medium),
+ ..Default::default()
+ },
+ }
+--
+2.43.0
+
diff --git a/dev-lang/rust/files/gentoo-musl-target-specs.patch b/dev-lang/rust/files/gentoo-musl-target-specs.patch
deleted file mode 100644
index 0661a26841b7..000000000000
--- a/dev-lang/rust/files/gentoo-musl-target-specs.patch
+++ /dev/null
@@ -1,168 +0,0 @@
-From 9fb44efd4a6270443ca2a06a098c83cf9820cc8b Mon Sep 17 00:00:00 2001
-From: Georgy Yakovlev <gyakovlev@gentoo.org>
-Date: Thu, 8 Oct 2020 22:38:54 -0700
-Subject: [PATCH] add gentoo musl target specs
-
-Directly based on patch by Samuel Holland <samuel@sholland.org>
-Found at: https://github.com/smaeul/portage-overlay/blob/master/dev-lang/rust/files/
-
-Signed-off-by: Georgy Yakovlev <gyakovlev@gentoo.org>
----
- src/librustc_target/spec/aarch64_gentoo_linux_musl.rs | 11 +++++++++++
- .../spec/armv7_gentoo_linux_musleabihf.rs | 11 +++++++++++
- src/librustc_target/spec/i686_gentoo_linux_musl.rs | 11 +++++++++++
- src/librustc_target/spec/mod.rs | 8 ++++++++
- .../spec/powerpc64_gentoo_linux_musl.rs | 11 +++++++++++
- .../spec/powerpc64le_gentoo_linux_musl.rs | 11 +++++++++++
- src/librustc_target/spec/powerpc_gentoo_linux_musl.rs | 11 +++++++++++
- src/librustc_target/spec/x86_64_gentoo_linux_musl.rs | 11 +++++++++++
- 8 files changed, 85 insertions(+)
- create mode 100644 src/librustc_target/spec/aarch64_gentoo_linux_musl.rs
- create mode 100644 src/librustc_target/spec/armv7_gentoo_linux_musleabihf.rs
- create mode 100644 src/librustc_target/spec/i686_gentoo_linux_musl.rs
- create mode 100644 src/librustc_target/spec/powerpc64_gentoo_linux_musl.rs
- create mode 100644 src/librustc_target/spec/powerpc64le_gentoo_linux_musl.rs
- create mode 100644 src/librustc_target/spec/powerpc_gentoo_linux_musl.rs
- create mode 100644 src/librustc_target/spec/x86_64_gentoo_linux_musl.rs
-
-diff --git a/src/librustc_target/spec/aarch64_gentoo_linux_musl.rs b/src/librustc_target/spec/aarch64_gentoo_linux_musl.rs
-new file mode 100644
-index 0000000..420fe7c
---- /dev/null
-+++ b/src/librustc_target/spec/aarch64_gentoo_linux_musl.rs
-@@ -0,0 +1,11 @@
-+use crate::spec::TargetResult;
-+
-+pub fn target() -> TargetResult {
-+ let mut base = super::aarch64_unknown_linux_musl::target()?;
-+
-+ base.llvm_target = "aarch64-gentoo-linux-musl".to_string();
-+ base.target_vendor = "gentoo".to_string();
-+ base.options.crt_static_default = false;
-+
-+ Ok(base)
-+}
-diff --git a/src/librustc_target/spec/armv7_gentoo_linux_musleabihf.rs b/src/librustc_target/spec/armv7_gentoo_linux_musleabihf.rs
-new file mode 100644
-index 0000000..067e2d6
---- /dev/null
-+++ b/src/librustc_target/spec/armv7_gentoo_linux_musleabihf.rs
-@@ -0,0 +1,11 @@
-+use crate::spec::TargetResult;
-+
-+pub fn target() -> TargetResult {
-+ let mut base = super::armv7_unknown_linux_musleabihf::target()?;
-+
-+ base.llvm_target = "armv7-gentoo-linux-musleabihf".to_string();
-+ base.target_vendor = "gentoo".to_string();
-+ base.options.crt_static_default = false;
-+
-+ Ok(base)
-+}
-diff --git a/src/librustc_target/spec/i686_gentoo_linux_musl.rs b/src/librustc_target/spec/i686_gentoo_linux_musl.rs
-new file mode 100644
-index 0000000..1cd39cd
---- /dev/null
-+++ b/src/librustc_target/spec/i686_gentoo_linux_musl.rs
-@@ -0,0 +1,11 @@
-+use crate::spec::TargetResult;
-+
-+pub fn target() -> TargetResult {
-+ let mut base = super::i686_unknown_linux_musl::target()?;
-+
-+ base.llvm_target = "i686-gentoo-linux-musl".to_string();
-+ base.target_vendor = "gentoo".to_string();
-+ base.options.crt_static_default = false;
-+
-+ Ok(base)
-+}
-diff --git a/src/librustc_target/spec/mod.rs b/src/librustc_target/spec/mod.rs
-index fa29ff3..a685600 100644
---- a/src/librustc_target/spec/mod.rs
-+++ b/src/librustc_target/spec/mod.rs
-@@ -490,6 +490,14 @@ macro_rules! supported_targets {
- }
-
- supported_targets! {
-+ ("aarch64-gentoo-linux-musl", aarch64_gentoo_linux_musl),
-+ ("armv7-gentoo-linux-musleabihf", armv7_gentoo_linux_musleabihf),
-+ ("i686-gentoo-linux-musl", i686_gentoo_linux_musl),
-+ ("powerpc-gentoo-linux-musl", powerpc_gentoo_linux_musl),
-+ ("powerpc64-gentoo-linux-musl", powerpc64_gentoo_linux_musl),
-+ ("powerpc64le-gentoo-linux-musl", powerpc64le_gentoo_linux_musl),
-+ ("x86_64-gentoo-linux-musl", x86_64_gentoo_linux_musl),
-+
- ("x86_64-unknown-linux-gnu", x86_64_unknown_linux_gnu),
- ("x86_64-unknown-linux-gnux32", x86_64_unknown_linux_gnux32),
- ("i686-unknown-linux-gnu", i686_unknown_linux_gnu),
-diff --git a/src/librustc_target/spec/powerpc64_gentoo_linux_musl.rs b/src/librustc_target/spec/powerpc64_gentoo_linux_musl.rs
-new file mode 100644
-index 0000000..e840bb2
---- /dev/null
-+++ b/src/librustc_target/spec/powerpc64_gentoo_linux_musl.rs
-@@ -0,0 +1,11 @@
-+use crate::spec::TargetResult;
-+
-+pub fn target() -> TargetResult {
-+ let mut base = super::powerpc64_unknown_linux_musl::target()?;
-+
-+ base.llvm_target = "powerpc64-gentoo-linux-musl".to_string();
-+ base.target_vendor = "gentoo".to_string();
-+ base.options.crt_static_default = false;
-+
-+ Ok(base)
-+}
-diff --git a/src/librustc_target/spec/powerpc64le_gentoo_linux_musl.rs b/src/librustc_target/spec/powerpc64le_gentoo_linux_musl.rs
-new file mode 100644
-index 0000000..1037d82
---- /dev/null
-+++ b/src/librustc_target/spec/powerpc64le_gentoo_linux_musl.rs
-@@ -0,0 +1,11 @@
-+use crate::spec::TargetResult;
-+
-+pub fn target() -> TargetResult {
-+ let mut base = super::powerpc64le_unknown_linux_musl::target()?;
-+
-+ base.llvm_target = "powerpc64le-gentoo-linux-musl".to_string();
-+ base.target_vendor = "gentoo".to_string();
-+ base.options.crt_static_default = false;
-+
-+ Ok(base)
-+}
-diff --git a/src/librustc_target/spec/powerpc_gentoo_linux_musl.rs b/src/librustc_target/spec/powerpc_gentoo_linux_musl.rs
-new file mode 100644
-index 0000000..a623ffe
---- /dev/null
-+++ b/src/librustc_target/spec/powerpc_gentoo_linux_musl.rs
-@@ -0,0 +1,11 @@
-+use crate::spec::TargetResult;
-+
-+pub fn target() -> TargetResult {
-+ let mut base = super::powerpc_unknown_linux_musl::target()?;
-+
-+ base.llvm_target = "powerpc-gentoo-linux-musl".to_string();
-+ base.target_vendor = "gentoo".to_string();
-+ base.options.crt_static_default = false;
-+
-+ Ok(base)
-+}
-diff --git a/src/librustc_target/spec/x86_64_gentoo_linux_musl.rs b/src/librustc_target/spec/x86_64_gentoo_linux_musl.rs
-new file mode 100644
-index 0000000..f330473
---- /dev/null
-+++ b/src/librustc_target/spec/x86_64_gentoo_linux_musl.rs
-@@ -0,0 +1,11 @@
-+use crate::spec::TargetResult;
-+
-+pub fn target() -> TargetResult {
-+ let mut base = super::x86_64_unknown_linux_musl::target()?;
-+
-+ base.llvm_target = "x86_64-gentoo-linux-musl".to_string();
-+ base.target_vendor = "gentoo".to_string();
-+ base.options.crt_static_default = false;
-+
-+ Ok(base)
-+}
---
-2.28.0
-
diff --git a/dev-lang/rust/metadata.xml b/dev-lang/rust/metadata.xml
index 1e4ffdc29a14..1cf83c8ea80f 100644
--- a/dev-lang/rust/metadata.xml
+++ b/dev-lang/rust/metadata.xml
@@ -1,9 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="person">
- <email>gyakovlev@gentoo.org</email>
- <name>Georgy Yakovlev</name>
+ <maintainer type="person" proxied="yes">
+ <email>randy@electronsweatshop.com</email>
+ <name>Randy Barlow</name>
+ </maintainer>
+ <maintainer type="person" proxied="yes">
+ <email>navi@vlhl.dev</email>
+ <name>Anna Figueiredo Gomes</name>
</maintainer>
<maintainer type="project">
<email>rust@gentoo.org</email>
@@ -11,13 +15,19 @@
</maintainer>
<use>
<flag name="clippy">Install clippy, Rust code linter</flag>
- <flag name="miri">Install miri, an interpreter for Rust's mid-level intermediate representation (requires USE=nightly)</flag>
- <flag name="nightly">Enable nightly (UNSTABLE) features</flag>
- <flag name="parallel-compiler">Build a multi-threaded rustc</flag>
- <flag name="rls">Install rls, Rust Language Server (used with IDEs supporting RLS protocol)</flag>
+ <flag name="dist">Install dist tarballs (used for bootstrapping)</flag>
+ <flag name="miri">Install miri, an interpreter for Rust's mid-level intermediate representation (requires USE=nightly, sometimes is broken)</flag>
+ <flag name="nightly">Enable nightly (UNSTABLE) features (NOTE: it does not install nightly version, just enables features marked as nightly at time of release)</flag>
+ <flag name="parallel-compiler">Build a multi-threaded rustc (experimental, not tested by upstream)</flag>
+ <flag name="profiler">Build the profiler runtime and rust-demangler tool (needed for '-C profile-generate' or '-C instrument-coverage' codegen opts)</flag>
<flag name="rustfmt">Install rustfmt, Rust code formatter</flag>
+ <flag name="rust-analyzer">Install rust-analyzer, A Rust compiler front-end for IDEs (language server)</flag>
+ <flag name="rust-src">Install rust-src, needed by developer tools and for build-std (cross)</flag>
<flag name="system-bootstrap">Bootstrap using installed rust compiler</flag>
- <flag name="system-llvm">Use the system LLVM install</flag>
+ <flag name="system-llvm">Use the system LLVM installation</flag>
<flag name="wasm">Build support for the wasm32-unknown-unknown target</flag>
</use>
+ <upstream>
+ <remote-id type="github">rust-lang/rust</remote-id>
+ </upstream>
</pkgmetadata>
diff --git a/dev-lang/rust/rust-1.46.0.ebuild b/dev-lang/rust/rust-1.46.0.ebuild
deleted file mode 100644
index 3be34e81fda6..000000000000
--- a/dev-lang/rust/rust-1.46.0.ebuild
+++ /dev/null
@@ -1,586 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_{6..9} )
-
-inherit bash-completion-r1 check-reqs estack flag-o-matic llvm multiprocessing multilib-build python-any-r1 rust-toolchain toolchain-funcs
-
-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 x86"
-fi
-
-RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).1"
-
-DESCRIPTION="Systems programming language from Mozilla"
-HOMEPAGE="https://www.rust-lang.org/"
-
-SRC_URI="
- https://static.rust-lang.org/dist/${SRC}
- !system-bootstrap? ( $(rust_all_arch_uris rust-${RUST_STAGE0_VERSION}) )
-"
-
-ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM 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 doc libressl miri nightly parallel-compiler rls rustfmt system-bootstrap system-llvm 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:
-# 1. List all the working slots (with min versions) in ||, newest first.
-# 2. Update the := to specify *max* version, e.g. < 11.
-# 3. Specify LLVM_MAX_SLOT, e.g. 10.
-LLVM_DEPEND="
- || (
- sys-devel/llvm:10[${LLVM_TARGET_USEDEPS// /,}]
- sys-devel/llvm:9[${LLVM_TARGET_USEDEPS// /,}]
- )
- <sys-devel/llvm-11:=
- wasm? ( sys-devel/lld )
-"
-LLVM_MAX_SLOT=10
-
-BOOTSTRAP_DEPEND="|| ( >=dev-lang/rust-1.$(($(ver_cut 2) - 1)) >=dev-lang/rust-bin-1.$(($(ver_cut 2) - 1)) )"
-
-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
- dev-util/ninja
- )
-"
-
-# libgit2 should be at least same as bundled into libgit-sys #707746
-DEPEND="
- >=dev-libs/libgit2-0.99:=
- net-libs/libssh2:=
- net-libs/http-parser:=
- net-misc/curl:=[http2,ssl]
- sys-libs/zlib:=
- !libressl? ( dev-libs/openssl:0= )
- libressl? ( dev-libs/libressl:0= )
- elibc_musl? ( sys-libs/libunwind )
- system-llvm? (
- ${LLVM_DEPEND}
- )
-"
-
-RDEPEND="${DEPEND}
- app-eselect/eselect-rust
-"
-
-REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} )
- miri? ( nightly )
- parallel-compiler? ( nightly )
- wasm? ( llvm_targets_WebAssembly )
- x86? ( cpu_flags_x86_sse2 )
-"
-
-# we don't use cmake.eclass, but can get a warnin -l
-CMAKE_WARN_UNUSED_CLI=no
-
-QA_FLAGS_IGNORED="
- usr/bin/.*-${PV}
- usr/lib.*/${P}/lib.*.so.*
- usr/lib.*/${P}/rustlib/.*/bin/.*
- usr/lib.*/${P}/rustlib/.*/lib/lib.*.so.*
-"
-
-QA_SONAME="
- usr/lib.*/${P}/lib.*.so.*
- usr/lib.*/${P}/rustlib/.*/lib/lib.*.so.*
-"
-
-# still disabled, almost ready to enable
-RESTRICT="test"
-
-PATCHES=(
- "${FILESDIR}"/0012-Ignore-broken-and-non-applicable-tests.patch
- "${FILESDIR}"/1.44.0-libressl.patch
-)
-
-S="${WORKDIR}/${MY_P}-src"
-
-toml_usex() {
- usex "$1" true false
-}
-
-boostrap_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_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 rustc version!"
-
- 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
- else
- einfo "Using rust ${rustc_version} to build"
- fi
-}
-
-pre_build_checks() {
- local M=6144
- M=$(( $(usex clippy 128 0) + ${M} ))
- M=$(( $(usex miri 128 0) + ${M} ))
- M=$(( $(usex rls 512 0) + ${M} ))
- M=$(( $(usex rustfmt 256 0) + ${M} ))
- M=$(( $(usex system-llvm 0 2048) + ${M} ))
- M=$(( $(usex wasm 256 0) + ${M} ))
- M=$(( $(usex debug 15 10) * ${M} / 10 ))
- 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}
-}
-
-pkg_pretend() {
- pre_build_checks
-}
-
-pkg_setup() {
- pre_build_checks
- python-any-r1_pkg_setup
- use system-bootstrap && boostrap_rust_version_check
-
- # required to link agains system libs, otherwise
- # crates use bundled sources and compile own static version
- export LIBGIT2_SYS_USE_PKG_CONFIG=1
- export LIBSSH2_SYS_USE_PKG_CONFIG=1
- export PKG_CONFIG_ALLOW_CROSS=1
-
- 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 \
- --destdir="${rust_stage0_root}" --prefix=/ || die
- fi
-
- default
-}
-
-src_configure() {
- local rust_target="" rust_targets="" arch_cflags
-
- # 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/' src/librustc_target/spec/wasm32_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 rls; then
- tools="\"rls\",\"analysis\",\"src\",$tools"
- fi
- if use rustfmt; then
- tools="\"rustfmt\",$tools"
- fi
-
- local rust_stage0_root
- if use system-bootstrap; then
- rust_stage0_root="$(rustc --print sysroot)"
- else
- rust_stage0_root="${WORKDIR}"/rust-stage0
- fi
-
- rust_target="$(rust_abi)"
-
- cat <<- EOF > "${S}"/config.toml
- [llvm]
- 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)
- [build]
- build = "${rust_target}"
- host = ["${rust_target}"]
- target = [${rust_targets}]
- cargo = "${rust_stage0_root}/bin/cargo"
- rustc = "${rust_stage0_root}/bin/rustc"
- docs = $(toml_usex doc)
- compiler-docs = $(toml_usex doc)
- submodules = false
- python = "${EPYTHON}"
- locked-deps = true
- vendor = true
- extended = true
- tools = [${tools}]
- verbose = 2
- sanitizers = false
- profiler = false
- cargo-native-static = false
- [install]
- prefix = "${EPREFIX}/usr"
- libdir = "$(get_libdir)/${P}"
- docdir = "share/doc/${PF}"
- mandir = "share/${P}/man"
- [rust]
- optimize = true
- debug = $(toml_usex debug)
- debug-assertions = $(toml_usex debug)
- debuginfo-level-rustc = 0
- backtrace = true
- incremental = false
- default-linker = "$(tc-getCC)"
- parallel-compiler = $(toml_usex parallel-compiler)
- channel = "$(usex nightly nightly stable)"
- 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))
- backtrace-on-ice = true
- jemalloc = false
- [dist]
- src-tarball = false
- 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}]
- cc = "$(tc-getBUILD_CC)"
- cxx = "$(tc-getBUILD_CXX)"
- linker = "$(tc-getCC)"
- ar = "$(tc-getAR)"
- 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)"
- 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}]
- cc = "${cross_toolchain}-gcc"
- cxx = "${cross_toolchain}-g++"
- linker = "${cross_toolchain}-gcc"
- ar = "${cross_toolchain}-ar"
- EOF
- if use system-llvm; then
- cat <<- EOF >> "${S}"/config.toml
- llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
- 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 settings:"
- cat "${S}"/config.toml || die
-}
-
-src_compile() {
- 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.
- # use system-llvm || tests+=( assembly )
-
- # fragile/expensive/less important tests
- # or tests that require extra build time
- # 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 ! nonfatal 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() {
- env $(cat "${S}"/config.env) DESTDIR="${D}" \
- "${EPYTHON}" ./x.py install -vv --config="${S}"/config.toml || die
-
- # bug #689562, #689160
- rm "${D}/etc/bash_completion.d/cargo" || die
- rmdir "${D}"/etc{/bash_completion.d,} || die
- dobashcomp build/tmp/dist/cargo-image/etc/bash_completion.d/cargo
-
- mv "${ED}/usr/bin/rustc" "${ED}/usr/bin/rustc-${PV}" || die
- mv "${ED}/usr/bin/rustdoc" "${ED}/usr/bin/rustdoc-${PV}" || die
- mv "${ED}/usr/bin/rust-gdb" "${ED}/usr/bin/rust-gdb-${PV}" || die
- mv "${ED}/usr/bin/rust-gdbgui" "${ED}/usr/bin/rust-gdbgui-${PV}" || die
- mv "${ED}/usr/bin/rust-lldb" "${ED}/usr/bin/rust-lldb-${PV}" || die
- mv "${ED}/usr/bin/cargo" "${ED}/usr/bin/cargo-${PV}" || die
- if use clippy; then
- mv "${ED}/usr/bin/clippy-driver" "${ED}/usr/bin/clippy-driver-${PV}" || die
- mv "${ED}/usr/bin/cargo-clippy" "${ED}/usr/bin/cargo-clippy-${PV}" || die
- fi
- if use miri; then
- mv "${ED}/usr/bin/miri" "${ED}/usr/bin/miri-${PV}" || die
- mv "${ED}/usr/bin/cargo-miri" "${ED}/usr/bin/cargo-miri-${PV}" || die
- fi
- if use rls; then
- mv "${ED}/usr/bin/rls" "${ED}/usr/bin/rls-${PV}" || die
- fi
- if use rustfmt; then
- mv "${ED}/usr/bin/rustfmt" "${ED}/usr/bin/rustfmt-${PV}" || die
- mv "${ED}/usr/bin/cargo-fmt" "${ED}/usr/bin/cargo-fmt-${PV}" || die
- fi
-
- # Copy shared library versions of standard libraries for all targets
- # into the system's abi-dependent lib directories because the rust
- # installer only does so for the native ABI.
-
- local abi_libdir rust_target
- for v in $(multilib_get_enabled_abi_pairs); do
- if [ ${v##*.} = ${DEFAULT_ABI} ]; then
- continue
- fi
- abi_libdir=$(get_abi_LIBDIR ${v##*.})
- rust_target=$(rust_abi $(get_abi_CHOST ${v##*.}))
- mkdir -p "${ED}/usr/${abi_libdir}/${P}"
- cp "${ED}/usr/$(get_libdir)/${P}/rustlib/${rust_target}/lib"/*.so \
- "${ED}/usr/${abi_libdir}/${P}" || die
- done
-
- # versioned libdir/mandir support
- newenvd - "50${P}" <<-_EOF_
- LDPATH="${EPREFIX}/usr/$(get_libdir)/${P}"
- MANPATH="${EPREFIX}/usr/share/${P}/man"
- _EOF_
-
- dodoc COPYRIGHT
- rm -rf "${ED}/usr/$(get_libdir)/${P}"/*.old || die
- rm "${ED}/usr/share/doc/${P}"/*.old || die
- rm "${ED}/usr/share/doc/${P}/LICENSE-APACHE" || die
- rm "${ED}/usr/share/doc/${P}/LICENSE-MIT" || 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
- 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 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}"
-}
-
-pkg_postinst() {
- eselect rust update
-
- 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}."
-
- 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
-
- if use elibc_musl; then
- ewarn "${PN} on *-musl targets is configured with crt-static"
- ewarn ""
- ewarn "you will need to set RUSTFLAGS=\"-C target-feature=-crt-static\" in make.conf"
- ewarn "to use it with portage, otherwise you may see failures like"
- ewarn "error: cannot produce proc-macro for serde_derive v1.0.98 as the target "
- ewarn "x86_64-unknown-linux-musl does not support these crate types"
- fi
-}
-
-pkg_postrm() {
- eselect rust cleanup
-}
diff --git a/dev-lang/rust/rust-1.48.0.ebuild b/dev-lang/rust/rust-1.71.0.ebuild
index 779372ba4e66..15142ee80ec7 100644
--- a/dev-lang/rust/rust-1.48.0.ebuild
+++ b/dev-lang/rust/rust-1.71.0.ebuild
@@ -1,11 +1,12 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-PYTHON_COMPAT=( python3_{6..9} )
+PYTHON_COMPAT=( python3_{10..12} )
-inherit bash-completion-r1 check-reqs estack flag-o-matic llvm multiprocessing multilib-build python-any-r1 rust-toolchain toolchain-funcs
+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}
@@ -18,57 +19,69 @@ else
SLOT="stable/${ABI_VER}"
MY_P="rustc-${PV}"
SRC="${MY_P}-src.tar.xz"
- KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
+ KEYWORDS="~amd64 ~arm ~arm64 ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
fi
RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).0"
-DESCRIPTION="Systems programming language from Mozilla"
+DESCRIPTION="Language empowering everyone to build reliable and efficient software"
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=( AArch64 AMDGPU ARM AVR BPF Hexagon Lanai LoongArch Mips MSP430
+ NVPTX PowerPC RISCV Sparc SystemZ VE WebAssembly X86 XCore )
ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" )
-LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/?}
+LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?}
-LICENSE="|| ( MIT Apache-2.0 ) BSD-1 BSD-2 BSD-4 UoI-NCSA"
+LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4 UoI-NCSA"
-IUSE="clippy cpu_flags_x86_sse2 debug doc libressl miri nightly parallel-compiler rls rustfmt system-bootstrap system-llvm test wasm ${ALL_LLVM_TARGETS[*]}"
+IUSE="big-endian clippy cpu_flags_x86_sse2 debug dist doc llvm-libunwind +lto miri nightly parallel-compiler profiler rustfmt rust-analyzer 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:
-# 1. List all the working slots (with min versions) in ||, newest first.
-# 2. Update the := to specify *max* version, e.g. < 12.
-# 3. Specify LLVM_MAX_SLOT, e.g. 11.
-LLVM_DEPEND="
- || (
- sys-devel/llvm:11[${LLVM_TARGET_USEDEPS// /,}]
- )
- <sys-devel/llvm-12:=
- wasm? ( sys-devel/lld )
+# List all the working slots in LLVM_VALID_SLOTS, newest first.
+LLVM_VALID_SLOTS=( 16 )
+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}(-)] )
+ wasm? ( sys-devel/lld:${_s} )"
+ done
+ LLVM_DEPEND+=" )"
+done
+unset _s _x
+LLVM_DEPEND+=" )
+ <sys-devel/llvm-$(( LLVM_MAX_SLOT + 1 )):=
"
-LLVM_MAX_SLOT=11
# 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
+# https://github.com/rust-lang/rust/blob/${PV}/src/stage0.json
+RUST_DEP_PREV="$(ver_cut 1).$(($(ver_cut 2) - 1))*"
+RUST_DEP_CURR="$(ver_cut 1).$(ver_cut 2)*"
BOOTSTRAP_DEPEND="||
(
- =dev-lang/rust-$(ver_cut 1).$(($(ver_cut 2) - 1))*
- =dev-lang/rust-bin-$(ver_cut 1).$(($(ver_cut 2) - 1))*
- =dev-lang/rust-$(ver_cut 1).$(ver_cut 2)*
- =dev-lang/rust-bin-$(ver_cut 1).$(ver_cut 2)*
+ =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}"
)
"
@@ -80,43 +93,49 @@ BDEPEND="${PYTHON_DEPS}
)
system-bootstrap? ( ${BOOTSTRAP_DEPEND} )
!system-llvm? (
- dev-util/cmake
- dev-util/ninja
+ >=dev-build/cmake-3.13.4
+ app-alternatives/ninja
)
+ test? ( dev-debug/gdb )
+ verify-sig? ( sec-keys/openpgp-keys-rust )
"
DEPEND="
>=app-arch/xz-utils-5.2
net-misc/curl:=[http2,ssl]
sys-libs/zlib:=
- !libressl? ( dev-libs/openssl:0= )
- libressl? ( dev-libs/libressl:0= )
- elibc_musl? ( sys-libs/libunwind:= )
+ dev-libs/openssl:0=
system-llvm? (
${LLVM_DEPEND}
+ llvm-libunwind? ( sys-libs/llvm-libunwind:= )
+ )
+ !system-llvm? (
+ !llvm-libunwind? (
+ elibc_musl? ( sys-libs/libunwind:= )
+ )
)
"
-# we need to block older versions due to layout changes.
RDEPEND="${DEPEND}
app-eselect/eselect-rust
- !<dev-lang/rust-1.47.0-r1
- !<dev-lang/rust-bin-1.47.0-r1
+ sys-apps/lsb-release
"
REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} )
miri? ( nightly )
parallel-compiler? ( nightly )
+ rust-analyzer? ( 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 warnings
+# 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
@@ -127,15 +146,27 @@ QA_SONAME="
usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/lib.*.so
"
+QA_PRESTRIPPED="
+ usr/lib/${PN}/${PV}/lib/rustlib/.*/bin/rust-llvm-dwp
+ usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/self-contained/crtn.o
+"
+
+# 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=/usr/share/openpgp-keys/rust.asc
+
PATCHES=(
- "${FILESDIR}"/1.47.0-libressl.patch
- "${FILESDIR}"/1.46.0-don-t-create-prefix-at-time-of-check.patch
- "${FILESDIR}"/1.47.0-ignore-broken-and-non-applicable-tests.patch
- "${FILESDIR}"/1.47.0-llvm-tensorflow-fix.patch
- "${FILESDIR}"/1.48.0-gentoo-musl-target-specs.patch
+ "${FILESDIR}"/1.71.0-fix-bashcomp-installation.patch
+ "${FILESDIR}"/1.71.0-lint-docs-libpath.patch
+ "${FILESDIR}"/1.70.0-ignore-broken-and-non-applicable-tests.patch
+ "${FILESDIR}"/1.62.1-musl-dynamic-linking.patch
+ "${FILESDIR}"/1.67.0-doc-wasm.patch
)
S="${WORKDIR}/${MY_P}-src"
@@ -144,7 +175,7 @@ toml_usex() {
usex "${1}" true false
}
-boostrap_rust_version_check() {
+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))"
@@ -169,14 +200,24 @@ boostrap_rust_version_check() {
}
pre_build_checks() {
- local M=6144
+ 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} ))
- M=$(( $(usex system-llvm 0 2048) + ${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 15 10) * ${M} / 10 ))
+ M=$(( $(usex debug 2 1) * ${M} ))
eshopts_push -s extglob
if is-flagq '-g?(gdb)?([1-9])'; then
M=$(( 15 * ${M} / 10 ))
@@ -187,6 +228,21 @@ pre_build_checks() {
CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE}
}
+llvm_check_deps() {
+ has_version -r "sys-devel/llvm:${LLVM_SLOT}[${LLVM_TARGET_USEDEPS// /,}]"
+}
+
+# Is LLVM being linked against libc++?
+is_libcxx_linked() {
+ local code='#include <ciso646>
+#if defined(_LIBCPP_VERSION)
+ HAVE_LIBCXX
+#endif
+'
+ local out=$($(tc-getCXX) ${CXXFLAGS} ${CPPFLAGS} -x c++ -E -P - <<<"${code}") || return 1
+ [[ ${out} == *HAVE_LIBCXX* ]]
+}
+
pkg_pretend() {
pre_build_checks
}
@@ -197,71 +253,95 @@ pkg_setup() {
export LIBGIT2_NO_PKG_CONFIG=1 #749381
- use system-bootstrap && boostrap_rust_version_check
+ 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"
+ 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
}
+esetup_unwind_hack() {
+ # https://bugs.gentoo.org/870280
+ # this is a hack needed to bootstrap with libgcc_s linked tarball on llvm-libunwind system.
+ # it should trigger for internal bootstrap or system-bootstrap with rust-bin.
+ # the whole idea is for stage0 to bootstrap with fake libgcc_s.
+ # final stage will receive -L${T}/lib but not -lgcc_s args, producing clean compiler.
+ local fakelib="${T}/fakelib"
+ mkdir -p "${fakelib}" || die
+ # we need both symlinks, one for cargo runtime, other for linker.
+ ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so.1" || die
+ ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so" || die
+ export LD_LIBRARY_PATH="${fakelib}"
+ export RUSTFLAGS+=" -L${fakelib}"
+ # this is a literally magic variable that gets through cargo cache, without it some
+ # crates ignore RUSTFLAGS.
+ # this variable can not contain leading space.
+ export MAGIC_EXTRA_RUSTFLAGS+="${MAGIC_EXTRA_RUSTFLAGS:+ }-L${fakelib}"
+}
+
src_prepare() {
if ! use system-bootstrap; then
+ has_version sys-devel/gcc || esetup_unwind_hack
local rust_stage0_root="${WORKDIR}"/rust-stage0
local rust_stage0="rust-${RUST_STAGE0_VERSION}-$(rust_abi)"
"${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig \
- --destdir="${rust_stage0_root}" --prefix=/ || die
+ --without=rust-docs-json-preview,rust-docs --destdir="${rust_stage0_root}" --prefix=/ || die
fi
default
}
src_configure() {
+ filter-lto # https://bugs.gentoo.org/862109 https://bugs.gentoo.org/866231
+
local rust_target="" rust_targets="" arch_cflags
# 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##*.}))\""
+ rust_targets+=",\"$(rust_abi $(get_abi_CHOST ${v##*.}))\""
done
if use wasm; then
- rust_targets="${rust_targets},\"wasm32-unknown-unknown\""
+ 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/wasm32_base.rs || die
+ 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 rls; then
- tools="\"rls\",\"analysis\",\"src\",$tools"
- fi
- if use rustfmt; then
- tools="\"rustfmt\",$tools"
- fi
+ # cargo and rustdoc are mandatory and should always be included
+ local tools='"cargo","rustdoc"'
+ use clippy && tools+=',"clippy"'
+ use miri && tools+=',"miri"'
+ use profiler && tools+=',"rust-demangler"'
+ use rustfmt && tools+=',"rustfmt"'
+ use rust-analyzer && tools+=',"rust-analyzer"'
+ use rust-src && tools+=',"src"'
local rust_stage0_root
if use system-bootstrap; then
- rust_stage0_root="$(rustc --print sysroot)"
+ 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)"
+ 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)
@@ -269,14 +349,41 @@ src_configure() {
targets = "${LLVM_TARGETS// /;}"
experimental-targets = ""
link-shared = $(toml_usex system-llvm)
+ $(if is_libcxx_linked; then
+ # https://bugs.gentoo.org/732632
+ 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)
+ enable-warnings = false
+ [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
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 = $(toml_usex doc)
+ compiler-docs = false
submodules = false
python = "${EPYTHON}"
locked-deps = true
@@ -285,7 +392,7 @@ src_configure() {
tools = [${tools}]
verbose = 2
sanitizers = false
- profiler = false
+ profiler = $(toml_usex profiler)
cargo-native-static = false
[install]
prefix = "${EPREFIX}/usr/lib/${PN}/${PV}"
@@ -300,12 +407,18 @@ src_configure() {
optimize = true
debug = $(toml_usex debug)
debug-assertions = $(toml_usex debug)
- debuginfo-level-rustc = 0
+ 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)
@@ -313,36 +426,44 @@ src_configure() {
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
+ lto = "$(usex lto fat off)"
[dist]
src-tarball = false
+ compression-formats = ["xz"]
+ compression-profile = "balanced"
_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_
+ export CFLAGS_${rust_target//-/_}="${arch_cflags}"
cat <<- _EOF_ >> "${S}"/config.toml
[target.${rust_target}]
- cc = "$(tc-getBUILD_CC)"
- cxx = "$(tc-getBUILD_CXX)"
- linker = "$(tc-getCC)"
ar = "$(tc-getAR)"
+ cc = "$(tc-getCC)"
+ cxx = "$(tc-getCXX)"
+ linker = "$(tc-getCC)"
+ ranlib = "$(tc-getRANLIB)"
+ llvm-libunwind = "$(usex llvm-libunwind $(usex system-llvm system in-tree) no)"
_EOF_
- # librustc_target/spec/linux_musl_base.rs sets base.crt_static_default = true;
- if use elibc_musl; then
+ if use system-llvm; then
cat <<- _EOF_ >> "${S}"/config.toml
- crt-static = false
+ llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
_EOF_
fi
- if use system-llvm; then
+ # by default librustc_target/spec/linux_musl_base.rs sets base.crt_static_default = true;
+ # but we patch it and set to false here as well
+ if use elibc_musl; then
cat <<- _EOF_ >> "${S}"/config.toml
- llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
+ crt-static = false
_EOF_
fi
done
@@ -350,6 +471,8 @@ src_configure() {
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
@@ -395,16 +518,22 @@ src_configure() {
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"
- ar = "${cross_toolchain}-ar"
+ 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"]'
@@ -430,17 +559,22 @@ src_configure() {
done
fi # I_KNOW_WHAT_I_AM_DOING_CROSS
- einfo "Rust configured with the following settings:"
+ einfo "Rust configured with the following flags:"
+ echo
+ echo RUSTFLAGS="\"${RUSTFLAGS}\""
+ echo RUSTFLAGS_BOOTSTRAP="\"${RUSTFLAGS_BOOTSTRAP}\""
+ echo RUSTFLAGS_NOT_BOOTSTRAP="\"${RUSTFLAGS_NOT_BOOTSTRAP}\""
+ echo MAGIC_EXTRA_RUSTFLAGS="\"${MAGIC_EXTRA_RUSTFLAGS}\""
+ env | grep "CARGO_TARGET_.*_RUSTFLAGS="
+ env | grep "CFLAGS_.*"
+ 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 dist -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die
- )
+ RUST_BACKTRACE=1 "${EPYTHON}" ./x.py build -vvv --config="${S}"/config.toml -j$(makeopts_jobs) || die
}
src_test() {
@@ -481,12 +615,8 @@ 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 \
+ if ! 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"
@@ -500,19 +630,12 @@ src_test() {
}
src_install() {
- # https://github.com/rust-lang/rust/issues/77721
- # also 1.46.0-don-t-create-prefix-at-time-of-check.patch
- dodir "/usr/lib/${PN}/${PV}"
- (
- IFS=$'\n'
- env $(cat "${S}"/config.env) DESTDIR="${D}" \
- "${EPYTHON}" ./x.py install -vv --config="${S}"/config.toml || die
- )
+ 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
- dobashcomp build/tmp/dist/cargo-image/etc/bash_completion.d/cargo
+ newbashcomp src/tools/cargo/src/etc/cargo.bashcomp.sh cargo
local symlinks=(
cargo
@@ -525,8 +648,9 @@ src_install() {
use clippy && symlinks+=( clippy-driver cargo-clippy )
use miri && symlinks+=( miri cargo-miri )
- use rls && symlinks+=( rls )
+ use profiler && symlinks+=( rust-demangler )
use rustfmt && symlinks+=( rustfmt cargo-fmt )
+ use rust-analyzer && symlinks+=( rust-analyzer )
einfo "installing eselect-rust symlinks and paths: ${symlinks[@]}"
local i
@@ -547,6 +671,7 @@ src_install() {
# 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}"
@@ -554,7 +679,6 @@ src_install() {
newenvd - "50${P}" <<-_EOF_
LDPATH="${EPREFIX}/usr/lib/rust/lib"
MANPATH="${EPREFIX}/usr/lib/rust/man"
- $(usex elibc_musl 'CARGO_TARGET_X86_64_UNKNOWN_LINUX_MUSL_RUSTFLAGS="-C target-feature=-crt-static"' '')
_EOF_
rm -rf "${ED}/usr/lib/${PN}/${PV}"/*.old || die
@@ -569,6 +693,7 @@ src_install() {
/usr/bin/rust-lldb
/usr/lib/rustlib
/usr/lib/rust/lib
+ /usr/lib/rust/libexec
/usr/lib/rust/man
/usr/share/doc/rust
_EOF_
@@ -581,22 +706,30 @@ src_install() {
echo /usr/bin/miri >> "${T}/provider-${P}"
echo /usr/bin/cargo-miri >> "${T}/provider-${P}"
fi
- if use rls; then
- echo /usr/bin/rls >> "${T}/provider-${P}"
+ if use profiler; then
+ echo /usr/bin/rust-demangler >> "${T}/provider-${P}"
fi
if use rustfmt; then
echo /usr/bin/rustfmt >> "${T}/provider-${P}"
echo /usr/bin/cargo-fmt >> "${T}/provider-${P}"
fi
+ if use rust-analyzer; then
+ echo /usr/bin/rust-analyzer >> "${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
+ if has_version dev-debug/gdb || has_version dev-debug/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
diff --git a/dev-lang/rust/rust-1.47.0-r2.ebuild b/dev-lang/rust/rust-1.71.1.ebuild
index 841365e2bef7..97c920a7799f 100644
--- a/dev-lang/rust/rust-1.47.0-r2.ebuild
+++ b/dev-lang/rust/rust-1.71.1.ebuild
@@ -1,11 +1,12 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-PYTHON_COMPAT=( python3_{6..9} )
+PYTHON_COMPAT=( python3_{10..12} )
-inherit bash-completion-r1 check-reqs estack flag-o-matic llvm multiprocessing multilib-build python-any-r1 rust-toolchain toolchain-funcs
+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}
@@ -18,57 +19,69 @@ else
SLOT="stable/${ABI_VER}"
MY_P="rustc-${PV}"
SRC="${MY_P}-src.tar.xz"
- KEYWORDS="amd64 ~arm ~arm64 ppc64 x86"
+ KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv sparc x86"
fi
RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).0"
-DESCRIPTION="Systems programming language from Mozilla"
+DESCRIPTION="Language empowering everyone to build reliable and efficient software"
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=( AArch64 AMDGPU ARM AVR BPF Hexagon Lanai LoongArch Mips MSP430
+ NVPTX PowerPC RISCV Sparc SystemZ VE WebAssembly X86 XCore )
ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" )
-LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/?}
+LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?}
-LICENSE="|| ( MIT Apache-2.0 ) BSD-1 BSD-2 BSD-4 UoI-NCSA"
+LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4 UoI-NCSA"
-IUSE="clippy cpu_flags_x86_sse2 debug doc libressl miri nightly parallel-compiler rls rustfmt system-bootstrap system-llvm test wasm ${ALL_LLVM_TARGETS[*]}"
+IUSE="big-endian clippy cpu_flags_x86_sse2 debug dist doc llvm-libunwind +lto miri nightly parallel-compiler profiler rustfmt rust-analyzer 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:
-# 1. List all the working slots (with min versions) in ||, newest first.
-# 2. Update the := to specify *max* version, e.g. < 12.
-# 3. Specify LLVM_MAX_SLOT, e.g. 11.
-LLVM_DEPEND="
- || (
- sys-devel/llvm:11[${LLVM_TARGET_USEDEPS// /,}]
- )
- <sys-devel/llvm-12:=
- wasm? ( sys-devel/lld )
+# List all the working slots in LLVM_VALID_SLOTS, newest first.
+LLVM_VALID_SLOTS=( 16 )
+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}(-)] )
+ wasm? ( sys-devel/lld:${_s} )"
+ done
+ LLVM_DEPEND+=" )"
+done
+unset _s _x
+LLVM_DEPEND+=" )
+ <sys-devel/llvm-$(( LLVM_MAX_SLOT + 1 )):=
"
-LLVM_MAX_SLOT=11
# 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
+# https://github.com/rust-lang/rust/blob/${PV}/src/stage0.json
+RUST_DEP_PREV="$(ver_cut 1).$(($(ver_cut 2) - 1))*"
+RUST_DEP_CURR="$(ver_cut 1).$(ver_cut 2)*"
BOOTSTRAP_DEPEND="||
(
- =dev-lang/rust-$(ver_cut 1).$(($(ver_cut 2) - 1))*
- =dev-lang/rust-bin-$(ver_cut 1).$(($(ver_cut 2) - 1))*
- =dev-lang/rust-$(ver_cut 1).$(ver_cut 2)*
- =dev-lang/rust-bin-$(ver_cut 1).$(ver_cut 2)*
+ =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}"
)
"
@@ -80,43 +93,49 @@ BDEPEND="${PYTHON_DEPS}
)
system-bootstrap? ( ${BOOTSTRAP_DEPEND} )
!system-llvm? (
- dev-util/cmake
- dev-util/ninja
+ >=dev-build/cmake-3.13.4
+ app-alternatives/ninja
)
+ test? ( dev-debug/gdb )
+ verify-sig? ( sec-keys/openpgp-keys-rust )
"
DEPEND="
>=app-arch/xz-utils-5.2
net-misc/curl:=[http2,ssl]
sys-libs/zlib:=
- !libressl? ( dev-libs/openssl:0= )
- libressl? ( dev-libs/libressl:0= )
- elibc_musl? ( sys-libs/libunwind:= )
+ dev-libs/openssl:0=
system-llvm? (
${LLVM_DEPEND}
+ llvm-libunwind? ( sys-libs/llvm-libunwind:= )
+ )
+ !system-llvm? (
+ !llvm-libunwind? (
+ elibc_musl? ( sys-libs/libunwind:= )
+ )
)
"
-# we need to block older versions due to layout changes.
RDEPEND="${DEPEND}
app-eselect/eselect-rust
- !<dev-lang/rust-1.46.0
- !<dev-lang/rust-bin-1.46.0
+ sys-apps/lsb-release
"
REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} )
miri? ( nightly )
parallel-compiler? ( nightly )
+ rust-analyzer? ( 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 warnings
+# 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
@@ -127,15 +146,26 @@ QA_SONAME="
usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/lib.*.so
"
+QA_PRESTRIPPED="
+ usr/lib/${PN}/${PV}/lib/rustlib/.*/bin/rust-llvm-dwp
+ usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/self-contained/crtn.o
+"
+
+# 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=/usr/share/openpgp-keys/rust.asc
+
PATCHES=(
- "${FILESDIR}"/1.47.0-libressl.patch
- "${FILESDIR}"/1.46.0-don-t-create-prefix-at-time-of-check.patch
- "${FILESDIR}"/1.47.0-ignore-broken-and-non-applicable-tests.patch
- "${FILESDIR}"/1.47.0-llvm-tensorflow-fix.patch
- "${FILESDIR}"/gentoo-musl-target-specs.patch
+ "${FILESDIR}"/1.71.1-fix-bootstrap-version-comparison.patch
+ "${FILESDIR}"/1.70.0-ignore-broken-and-non-applicable-tests.patch
+ "${FILESDIR}"/1.62.1-musl-dynamic-linking.patch
+ "${FILESDIR}"/1.67.0-doc-wasm.patch
)
S="${WORKDIR}/${MY_P}-src"
@@ -144,7 +174,7 @@ toml_usex() {
usex "${1}" true false
}
-boostrap_rust_version_check() {
+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))"
@@ -169,51 +199,47 @@ boostrap_rust_version_check() {
}
pre_build_checks() {
- # minimal useflags with system-llvm and system-bootstrap
- local M=7680
-
- # approximate component sizes
- M=$(( $(usex clippy 256 0) + ${M} ))
- M=$(( $(usex miri 256 0) + ${M} ))
- M=$(( $(usex rls 512 0) + ${M} ))
- M=$(( $(usex rustfmt 512 0) + ${M} ))
- M=$(( $(usex wasm 512 0) + ${M} ))
-
- # multiply by 1.5 if debug enabled
- M=$(( $(usex debug 15 10) * ${M} / 10 ))
-
- # multiply by 1.5 if target-cpu in rustflags
- case "${RUSTFLAGS}" in
- *target-cpu=*)
- M=$(( 15 * ${M} / 10 ))
- ;;
- esac
-
- # count all enabled llvm targets
+ 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 rustfmt 256 0) + ${M} ))
+ # add 2G if we compile llvm and 256M per llvm_target
if ! use system-llvm; then
- # base requirement is about 2G and 0.5 per llvm target
M=$(( 2048 + ${M} ))
- local llvm_target
- for llvm_target in ${ALL_LLVM_TARGETS}; do
- use "${llvm_target}" && M=$(( 512 + ${M} ))
+ local ltarget
+ for ltarget in ${ALL_LLVM_TARGETS[@]}; do
+ M=$(( $(usex ${ltarget} 256 0) + ${M} ))
done
fi
-
- # multiply by 1.5 if debugging *flags found
+ 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}
+}
- # account for bootstrap compiler
- # on ppc64 we unpack both BE and LE archive, so double that.
- M=$(( $(usex system-bootstrap 0 $(usex ppc64 2048 1024) ) + ${M} ))
-
- # docs appended last as those usually don't depend on flags
- M=$(( $(usex doc 512 0) + ${M} ))
+llvm_check_deps() {
+ has_version -r "sys-devel/llvm:${LLVM_SLOT}[${LLVM_TARGET_USEDEPS// /,}]"
+}
- CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE}
+# Is LLVM being linked against libc++?
+is_libcxx_linked() {
+ local code='#include <ciso646>
+#if defined(_LIBCPP_VERSION)
+ HAVE_LIBCXX
+#endif
+'
+ local out=$($(tc-getCXX) ${CXXFLAGS} ${CPPFLAGS} -x c++ -E -P - <<<"${code}") || return 1
+ [[ ${out} == *HAVE_LIBCXX* ]]
}
pkg_pretend() {
@@ -226,71 +252,95 @@ pkg_setup() {
export LIBGIT2_NO_PKG_CONFIG=1 #749381
- use system-bootstrap && boostrap_rust_version_check
+ 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"
+ 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
}
+esetup_unwind_hack() {
+ # https://bugs.gentoo.org/870280
+ # this is a hack needed to bootstrap with libgcc_s linked tarball on llvm-libunwind system.
+ # it should trigger for internal bootstrap or system-bootstrap with rust-bin.
+ # the whole idea is for stage0 to bootstrap with fake libgcc_s.
+ # final stage will receive -L${T}/lib but not -lgcc_s args, producing clean compiler.
+ local fakelib="${T}/fakelib"
+ mkdir -p "${fakelib}" || die
+ # we need both symlinks, one for cargo runtime, other for linker.
+ ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so.1" || die
+ ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so" || die
+ export LD_LIBRARY_PATH="${fakelib}"
+ export RUSTFLAGS+=" -L${fakelib}"
+ # this is a literally magic variable that gets through cargo cache, without it some
+ # crates ignore RUSTFLAGS.
+ # this variable can not contain leading space.
+ export MAGIC_EXTRA_RUSTFLAGS+="${MAGIC_EXTRA_RUSTFLAGS:+ }-L${fakelib}"
+}
+
src_prepare() {
if ! use system-bootstrap; then
+ has_version sys-devel/gcc || esetup_unwind_hack
local rust_stage0_root="${WORKDIR}"/rust-stage0
local rust_stage0="rust-${RUST_STAGE0_VERSION}-$(rust_abi)"
"${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig \
- --destdir="${rust_stage0_root}" --prefix=/ || die
+ --without=rust-docs-json-preview,rust-docs --destdir="${rust_stage0_root}" --prefix=/ || die
fi
default
}
src_configure() {
+ filter-lto # https://bugs.gentoo.org/862109 https://bugs.gentoo.org/866231
+
local rust_target="" rust_targets="" arch_cflags
# 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##*.}))\""
+ rust_targets+=",\"$(rust_abi $(get_abi_CHOST ${v##*.}))\""
done
if use wasm; then
- rust_targets="${rust_targets},\"wasm32-unknown-unknown\""
+ 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/' src/librustc_target/spec/wasm32_base.rs || die
+ 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 rls; then
- tools="\"rls\",\"analysis\",\"src\",$tools"
- fi
- if use rustfmt; then
- tools="\"rustfmt\",$tools"
- fi
+ # cargo and rustdoc are mandatory and should always be included
+ local tools='"cargo","rustdoc"'
+ use clippy && tools+=',"clippy"'
+ use miri && tools+=',"miri"'
+ use profiler && tools+=',"rust-demangler"'
+ use rustfmt && tools+=',"rustfmt"'
+ use rust-analyzer && tools+=',"rust-analyzer"'
+ use rust-src && tools+=',"src"'
local rust_stage0_root
if use system-bootstrap; then
- rust_stage0_root="$(rustc --print sysroot)"
+ 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)"
+ 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)
@@ -298,14 +348,41 @@ src_configure() {
targets = "${LLVM_TARGETS// /;}"
experimental-targets = ""
link-shared = $(toml_usex system-llvm)
+ $(if is_libcxx_linked; then
+ # https://bugs.gentoo.org/732632
+ 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)
+ enable-warnings = false
+ [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
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 = $(toml_usex doc)
+ compiler-docs = false
submodules = false
python = "${EPYTHON}"
locked-deps = true
@@ -314,7 +391,7 @@ src_configure() {
tools = [${tools}]
verbose = 2
sanitizers = false
- profiler = false
+ profiler = $(toml_usex profiler)
cargo-native-static = false
[install]
prefix = "${EPREFIX}/usr/lib/${PN}/${PV}"
@@ -329,12 +406,18 @@ src_configure() {
optimize = true
debug = $(toml_usex debug)
debug-assertions = $(toml_usex debug)
- debuginfo-level-rustc = 0
+ 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)
@@ -342,36 +425,44 @@ src_configure() {
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
+ lto = "$(usex lto fat off)"
[dist]
src-tarball = false
+ compression-formats = ["xz"]
+ compression-profile = "balanced"
_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_
+ export CFLAGS_${rust_target//-/_}="${arch_cflags}"
cat <<- _EOF_ >> "${S}"/config.toml
[target.${rust_target}]
- cc = "$(tc-getBUILD_CC)"
- cxx = "$(tc-getBUILD_CXX)"
- linker = "$(tc-getCC)"
ar = "$(tc-getAR)"
+ cc = "$(tc-getCC)"
+ cxx = "$(tc-getCXX)"
+ linker = "$(tc-getCC)"
+ ranlib = "$(tc-getRANLIB)"
+ llvm-libunwind = "$(usex llvm-libunwind $(usex system-llvm system in-tree) no)"
_EOF_
- # librustc_target/spec/linux_musl_base.rs sets base.crt_static_default = true;
- if use elibc_musl; then
+ if use system-llvm; then
cat <<- _EOF_ >> "${S}"/config.toml
- crt-static = false
+ llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
_EOF_
fi
- if use system-llvm; then
+ # by default librustc_target/spec/linux_musl_base.rs sets base.crt_static_default = true;
+ # but we patch it and set to false here as well
+ if use elibc_musl; then
cat <<- _EOF_ >> "${S}"/config.toml
- llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
+ crt-static = false
_EOF_
fi
done
@@ -379,6 +470,8 @@ src_configure() {
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
@@ -424,16 +517,22 @@ src_configure() {
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"
- ar = "${cross_toolchain}-ar"
+ 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"]'
@@ -459,17 +558,22 @@ src_configure() {
done
fi # I_KNOW_WHAT_I_AM_DOING_CROSS
- einfo "Rust configured with the following settings:"
+ einfo "Rust configured with the following flags:"
+ echo
+ echo RUSTFLAGS="\"${RUSTFLAGS}\""
+ echo RUSTFLAGS_BOOTSTRAP="\"${RUSTFLAGS_BOOTSTRAP}\""
+ echo RUSTFLAGS_NOT_BOOTSTRAP="\"${RUSTFLAGS_NOT_BOOTSTRAP}\""
+ echo MAGIC_EXTRA_RUSTFLAGS="\"${MAGIC_EXTRA_RUSTFLAGS}\""
+ env | grep "CARGO_TARGET_.*_RUSTFLAGS="
+ env | grep "CFLAGS_.*"
+ 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 dist -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die
- )
+ RUST_BACKTRACE=1 "${EPYTHON}" ./x.py build -vvv --config="${S}"/config.toml -j$(makeopts_jobs) || die
}
src_test() {
@@ -510,12 +614,8 @@ 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 \
+ if ! 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"
@@ -529,19 +629,12 @@ src_test() {
}
src_install() {
- # https://github.com/rust-lang/rust/issues/77721
- # also 1.46.0-don-t-create-prefix-at-time-of-check.patch
- dodir "/usr/lib/${PN}/${PV}"
- (
- IFS=$'\n'
- env $(cat "${S}"/config.env) DESTDIR="${D}" \
- "${EPYTHON}" ./x.py install -vv --config="${S}"/config.toml || die
- )
+ DESTDIR="${D}" "${EPYTHON}" ./x.py install -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die
# bug #689562, #689160
- rm -v "${D}/usr/lib/${PN}/${PV}/etc/bash_completion.d/cargo" || die
- rmdir -v "${D}/usr/lib/${PN}/${PV}"/etc{/bash_completion.d,} || die
- dobashcomp build/tmp/dist/cargo-image/etc/bash_completion.d/cargo
+ 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
@@ -554,8 +647,9 @@ src_install() {
use clippy && symlinks+=( clippy-driver cargo-clippy )
use miri && symlinks+=( miri cargo-miri )
- use rls && symlinks+=( rls )
+ use profiler && symlinks+=( rust-demangler )
use rustfmt && symlinks+=( rustfmt cargo-fmt )
+ use rust-analyzer && symlinks+=( rust-analyzer )
einfo "installing eselect-rust symlinks and paths: ${symlinks[@]}"
local i
@@ -576,6 +670,7 @@ src_install() {
# 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}"
@@ -583,10 +678,10 @@ src_install() {
newenvd - "50${P}" <<-_EOF_
LDPATH="${EPREFIX}/usr/lib/rust/lib"
MANPATH="${EPREFIX}/usr/lib/rust/man"
- $(usex elibc_musl 'CARGO_TARGET_X86_64_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}/bin"/*.old || die
rm -rf "${ED}/usr/lib/${PN}/${PV}/doc"/*.old || die
# note: eselect-rust adds EROOT to all paths below
@@ -598,6 +693,7 @@ src_install() {
/usr/bin/rust-lldb
/usr/lib/rustlib
/usr/lib/rust/lib
+ /usr/lib/rust/libexec
/usr/lib/rust/man
/usr/share/doc/rust
_EOF_
@@ -610,22 +706,30 @@ src_install() {
echo /usr/bin/miri >> "${T}/provider-${P}"
echo /usr/bin/cargo-miri >> "${T}/provider-${P}"
fi
- if use rls; then
- echo /usr/bin/rls >> "${T}/provider-${P}"
+ if use profiler; then
+ echo /usr/bin/rust-demangler >> "${T}/provider-${P}"
fi
if use rustfmt; then
echo /usr/bin/rustfmt >> "${T}/provider-${P}"
echo /usr/bin/cargo-fmt >> "${T}/provider-${P}"
fi
+ if use rust-analyzer; then
+ echo /usr/bin/rust-analyzer >> "${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
+ if has_version dev-debug/gdb || has_version dev-debug/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
diff --git a/dev-lang/rust/rust-1.73.0.ebuild b/dev-lang/rust/rust-1.73.0.ebuild
new file mode 100644
index 000000000000..1e990608a39c
--- /dev/null
+++ b/dev-lang/rust/rust-1.73.0.ebuild
@@ -0,0 +1,759 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..12} )
+
+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 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+fi
+
+RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).0"
+
+DESCRIPTION="Language empowering everyone to build reliable and efficient software"
+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 ARC ARM AVR BPF CSKY DirectX Hexagon Lanai
+ LoongArch M68k Mips MSP430 NVPTX PowerPC RISCV Sparc SPIRV SystemZ VE
+ WebAssembly X86 XCore Xtensa )
+ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" )
+LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?}
+
+LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4"
+
+IUSE="big-endian clippy cpu_flags_x86_sse2 debug dist doc llvm-libunwind +lto miri nightly parallel-compiler profiler rustfmt rust-analyzer 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=( 17 )
+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}(-)] )
+ wasm? ( sys-devel/lld:${_s} )"
+ done
+ LLVM_DEPEND+=" )"
+done
+unset _s _x
+LLVM_DEPEND+=" )
+ <sys-devel/llvm-$(( LLVM_MAX_SLOT + 1 )):=
+"
+
+# 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.json
+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-build/cmake-3.13.4
+ app-alternatives/ninja
+ )
+ test? ( dev-debug/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=
+ system-llvm? (
+ ${LLVM_DEPEND}
+ llvm-libunwind? ( sys-libs/llvm-libunwind:= )
+ )
+ !system-llvm? (
+ !llvm-libunwind? (
+ elibc_musl? ( sys-libs/libunwind:= )
+ )
+ )
+"
+
+RDEPEND="${DEPEND}
+ app-eselect/eselect-rust
+ sys-apps/lsb-release
+"
+
+REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} )
+ miri? ( nightly )
+ parallel-compiler? ( nightly )
+ rust-analyzer? ( 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
+ usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/self-contained/crtn.o
+"
+
+# 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=/usr/share/openpgp-keys/rust.asc
+
+PATCHES=(
+ "${FILESDIR}"/1.72.0-bump-libc-deps-to-0.2.146.patch
+ "${FILESDIR}"/1.70.0-ignore-broken-and-non-applicable-tests.patch
+ "${FILESDIR}"/1.62.1-musl-dynamic-linking.patch
+ "${FILESDIR}"/1.67.0-doc-wasm.patch
+)
+
+S="${WORKDIR}/${MY_P}-src"
+
+clear_vendor_checksums() {
+ sed -i 's/\("files":{\)[^}]*/\1/' "vendor/${1}/.cargo-checksum.json" || die
+}
+
+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 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// /,}]"
+}
+
+# Is LLVM being linked against libc++?
+is_libcxx_linked() {
+ local code='#include <ciso646>
+#if defined(_LIBCPP_VERSION)
+ HAVE_LIBCXX
+#endif
+'
+ local out=$($(tc-getCXX) ${CXXFLAGS} ${CPPFLAGS} -x c++ -E -P - <<<"${code}") || return 1
+ [[ ${out} == *HAVE_LIBCXX* ]]
+}
+
+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
+}
+
+esetup_unwind_hack() {
+ # https://bugs.gentoo.org/870280
+ # this is a hack needed to bootstrap with libgcc_s linked tarball on llvm-libunwind system.
+ # it should trigger for internal bootstrap or system-bootstrap with rust-bin.
+ # the whole idea is for stage0 to bootstrap with fake libgcc_s.
+ # final stage will receive -L${T}/lib but not -lgcc_s args, producing clean compiler.
+ local fakelib="${T}/fakelib"
+ mkdir -p "${fakelib}" || die
+ # we need both symlinks, one for cargo runtime, other for linker.
+ ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so.1" || die
+ ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so" || die
+ export LD_LIBRARY_PATH="${fakelib}"
+ export RUSTFLAGS+=" -L${fakelib}"
+ # this is a literally magic variable that gets through cargo cache, without it some
+ # crates ignore RUSTFLAGS.
+ # this variable can not contain leading space.
+ export MAGIC_EXTRA_RUSTFLAGS+="${MAGIC_EXTRA_RUSTFLAGS:+ }-L${fakelib}"
+}
+
+src_prepare() {
+ # Clear vendor checksums for crates that we patched to bump libc.
+ for i in addr2line-0.20.0 bstr cranelift-jit crossbeam-channel elasticlunr-rs handlebars icu_locid libffi \
+ terminal_size tracing-tree; do
+ clear_vendor_checksums "${i}"
+ done
+
+ if ! use system-bootstrap; then
+ has_version sys-devel/gcc || esetup_unwind_hack
+ 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-json-preview,rust-docs --destdir="${rust_stage0_root}" --prefix=/ || die
+ fi
+
+ default
+}
+
+src_configure() {
+ filter-lto # https://bugs.gentoo.org/862109 https://bugs.gentoo.org/866231
+
+ local rust_target="" rust_targets="" arch_cflags
+
+ # Collect rust target names to compile standard libs for all ABIs.
+ for v in $(multilib_get_enabled_abi_pairs); do
+ rust_targets+=",\"$(rust_abi $(get_abi_CHOST ${v##*.}))\""
+ done
+ if use wasm; then
+ 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#,}"
+
+ # cargo and rustdoc are mandatory and should always be included
+ local tools='"cargo","rustdoc"'
+ use clippy && tools+=',"clippy"'
+ use miri && tools+=',"miri"'
+ use profiler && tools+=',"rust-demangler"'
+ use rustfmt && tools+=',"rustfmt"'
+ use rust-analyzer && tools+=',"rust-analyzer"'
+ use rust-src && tools+=',"src"'
+
+ 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)"
+
+ 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 is_libcxx_linked; then
+ # https://bugs.gentoo.org/732632
+ 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)
+ enable-warnings = false
+ [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
+ 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
+ lto = "$(usex lto fat off)"
+ [dist]
+ src-tarball = false
+ compression-formats = ["xz"]
+ compression-profile = "balanced"
+ _EOF_
+
+ for v in $(multilib_get_enabled_abi_pairs); do
+ rust_target=$(rust_abi $(get_abi_CHOST ${v##*.}))
+ arch_cflags="$(get_abi_CFLAGS ${v##*.})"
+
+ export CFLAGS_${rust_target//-/_}="${arch_cflags}"
+
+ cat <<- _EOF_ >> "${S}"/config.toml
+ [target.${rust_target}]
+ ar = "$(tc-getAR)"
+ cc = "$(tc-getCC)"
+ cxx = "$(tc-getCXX)"
+ linker = "$(tc-getCC)"
+ ranlib = "$(tc-getRANLIB)"
+ llvm-libunwind = "$(usex llvm-libunwind $(usex system-llvm system in-tree) no)"
+ _EOF_
+ if use system-llvm; then
+ cat <<- _EOF_ >> "${S}"/config.toml
+ llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
+ _EOF_
+ fi
+ # by default librustc_target/spec/linux_musl_base.rs sets base.crt_static_default = true;
+ # but we patch it and set to false here as well
+ if use elibc_musl; then
+ cat <<- _EOF_ >> "${S}"/config.toml
+ crt-static = false
+ _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}\""
+ echo MAGIC_EXTRA_RUSTFLAGS="\"${MAGIC_EXTRA_RUSTFLAGS}\""
+ env | grep "CARGO_TARGET_.*_RUSTFLAGS="
+ env | grep "CFLAGS_.*"
+ echo
+ einfo "config.toml contents:"
+ cat "${S}"/config.toml || die
+ echo
+}
+
+src_compile() {
+ RUST_BACKTRACE=1 "${EPYTHON}" ./x.py build -vvv --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 ! 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() {
+ 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 rustfmt && symlinks+=( rustfmt cargo-fmt )
+ use rust-analyzer && symlinks+=( rust-analyzer )
+
+ 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"
+ _EOF_
+
+ rm -rf "${ED}/usr/lib/${PN}/${PV}"/*.old || die
+ rm -rf "${ED}/usr/lib/${PN}/${PV}/bin"/*.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 rustfmt; then
+ echo /usr/bin/rustfmt >> "${T}/provider-${P}"
+ echo /usr/bin/cargo-fmt >> "${T}/provider-${P}"
+ fi
+ if use rust-analyzer; then
+ echo /usr/bin/rust-analyzer >> "${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 dev-debug/gdb || has_version dev-debug/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/rust/rust-1.74.1.ebuild b/dev-lang/rust/rust-1.74.1.ebuild
new file mode 100644
index 000000000000..a01e857d2535
--- /dev/null
+++ b/dev-lang/rust/rust-1.74.1.ebuild
@@ -0,0 +1,784 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..12} )
+
+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 ~loong ~mips ppc ppc64 ~riscv sparc x86"
+fi
+
+RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).0"
+
+DESCRIPTION="Language empowering everyone to build reliable and efficient software"
+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 ARC ARM AVR BPF CSKY DirectX Hexagon Lanai
+ LoongArch M68k Mips MSP430 NVPTX PowerPC RISCV Sparc SPIRV SystemZ VE
+ WebAssembly X86 XCore Xtensa )
+ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" )
+LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?}
+
+LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4"
+
+IUSE="big-endian clippy cpu_flags_x86_sse2 debug dist doc llvm-libunwind +lto miri nightly parallel-compiler profiler rustfmt rust-analyzer 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=( 17 )
+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}(-)] )
+ wasm? ( sys-devel/lld:${_s} )"
+ done
+ LLVM_DEPEND+=" )"
+done
+unset _s _x
+LLVM_DEPEND+=" )
+ <sys-devel/llvm-$(( LLVM_MAX_SLOT + 1 )):=
+"
+
+# 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.json
+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-build/cmake-3.13.4
+ app-alternatives/ninja
+ )
+ test? ( dev-debug/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=
+ system-llvm? (
+ ${LLVM_DEPEND}
+ llvm-libunwind? ( sys-libs/llvm-libunwind:= )
+ )
+ !system-llvm? (
+ !llvm-libunwind? (
+ elibc_musl? ( sys-libs/libunwind:= )
+ )
+ )
+"
+
+RDEPEND="${DEPEND}
+ app-eselect/eselect-rust
+ sys-apps/lsb-release
+"
+
+REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} )
+ miri? ( nightly )
+ parallel-compiler? ( nightly )
+ rust-analyzer? ( 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
+ usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/self-contained/crtn.o
+"
+
+# 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=/usr/share/openpgp-keys/rust.asc
+
+PATCHES=(
+ "${FILESDIR}"/1.74.1-cross-compile-libz.patch
+ #"${FILESDIR}"/1.72.0-bump-libc-deps-to-0.2.146.patch # pending refresh
+ "${FILESDIR}"/1.70.0-ignore-broken-and-non-applicable-tests.patch
+ "${FILESDIR}"/1.62.1-musl-dynamic-linking.patch
+ "${FILESDIR}"/1.67.0-doc-wasm.patch
+)
+
+S="${WORKDIR}/${MY_P}-src"
+
+clear_vendor_checksums() {
+ sed -i 's/\("files":{\)[^}]*/\1/' "vendor/${1}/.cargo-checksum.json" || die
+}
+
+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 --root="${BROOT}" 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 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// /,}]"
+}
+
+# Is LLVM being linked against libc++?
+is_libcxx_linked() {
+ local code='#include <ciso646>
+#if defined(_LIBCPP_VERSION)
+ HAVE_LIBCXX
+#endif
+'
+ local out=$($(tc-getCXX) ${CXXFLAGS} ${CPPFLAGS} -x c++ -E -P - <<<"${code}") || return 1
+ [[ ${out} == *HAVE_LIBCXX* ]]
+}
+
+pkg_pretend() {
+ pre_build_checks
+}
+
+pkg_setup() {
+ pre_build_checks
+ python-any-r1_pkg_setup
+
+ export LIBGIT2_NO_PKG_CONFIG=1 #749381
+ if tc-is-cross-compiler; then
+ export PKG_CONFIG_ALLOW_CROSS=1
+ export PKG_CONFIG_PATH="${ROOT}/usr/$(get_libdir)/pkgconfig"
+ export OPENSSL_INCLUDE_DIR="${ROOT}/usr/include"
+ export OPENSSL_LIB_DIR="${ROOT}/usr/$(get_libdir)"
+
+ use system-bootstrap || die "USE=system-bootstrap is required when cross-compiling"
+ use system-llvm && die "USE=system-llvm not allowed when cross-compiling"
+ local cross_llvm_target="$(llvm_tuple_to_target "${CBUILD}")"
+ use "llvm_targets_${cross_llvm_target}" || \
+ die "Must enable LLVM_TARGETS=${cross_llvm_target} matching CBUILD=${CBUILD} when cross-compiling"
+ fi
+
+ 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
+}
+
+esetup_unwind_hack() {
+ # https://bugs.gentoo.org/870280
+ # this is a hack needed to bootstrap with libgcc_s linked tarball on llvm-libunwind system.
+ # it should trigger for internal bootstrap or system-bootstrap with rust-bin.
+ # the whole idea is for stage0 to bootstrap with fake libgcc_s.
+ # final stage will receive -L${T}/lib but not -lgcc_s args, producing clean compiler.
+ local fakelib="${T}/fakelib"
+ mkdir -p "${fakelib}" || die
+ # we need both symlinks, one for cargo runtime, other for linker.
+ ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so.1" || die
+ ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so" || die
+ export LD_LIBRARY_PATH="${fakelib}"
+ export RUSTFLAGS+=" -L${fakelib}"
+ # this is a literally magic variable that gets through cargo cache, without it some
+ # crates ignore RUSTFLAGS.
+ # this variable can not contain leading space.
+ export MAGIC_EXTRA_RUSTFLAGS+="${MAGIC_EXTRA_RUSTFLAGS:+ }-L${fakelib}"
+}
+
+src_prepare() {
+ # Clear vendor checksums for crates that we patched to bump libc.
+ # NOTE: refresh this on each bump.
+ #for i in addr2line-0.20.0 bstr cranelift-jit crossbeam-channel elasticlunr-rs handlebars icu_locid libffi \
+ # terminal_size tracing-tree; do
+ # clear_vendor_checksums "${i}"
+ #done
+
+ if ! use system-bootstrap; then
+ has_version sys-devel/gcc || esetup_unwind_hack
+ local rust_stage0_root="${WORKDIR}"/rust-stage0
+ local rust_stage0="rust-${RUST_STAGE0_VERSION}-$(rust_abi "${CBUILD}")"
+
+ "${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig \
+ --without=rust-docs-json-preview,rust-docs --destdir="${rust_stage0_root}" --prefix=/ || die
+ fi
+
+ default
+}
+
+src_configure() {
+ filter-lto # https://bugs.gentoo.org/862109 https://bugs.gentoo.org/866231
+
+ local rust_target="" rust_targets="" arch_cflags
+
+ # Collect rust target names to compile standard libs for all ABIs.
+ for v in $(multilib_get_enabled_abi_pairs); do
+ rust_targets+=",\"$(rust_abi $(get_abi_CHOST ${v##*.}))\""
+ done
+ if use wasm; then
+ 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#,}"
+
+ # cargo and rustdoc are mandatory and should always be included
+ local tools='"cargo","rustdoc"'
+ use clippy && tools+=',"clippy"'
+ use miri && tools+=',"miri"'
+ use profiler && tools+=',"rust-demangler"'
+ use rustfmt && tools+=',"rustfmt"'
+ use rust-analyzer && tools+=',"rust-analyzer"'
+ use rust-src && tools+=',"src"'
+
+ 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)"
+ rust_build="$(rust_abi "${CBUILD}")"
+ rust_host="$(rust_abi "${CHOST}")"
+
+ 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 is_libcxx_linked; then
+ # https://bugs.gentoo.org/732632
+ 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)
+ enable-warnings = false
+ [llvm.build-config]
+ CMAKE_VERBOSE_MAKEFILE = "ON"
+ $(if ! tc-is-cross-compiler; then
+ # When cross-compiling, LLVM is compiled twice, once for host and
+ # once for target. Unfortunately, this build configuration applies
+ # to both, which means any flags applicable to one target but not
+ # the other will break. Conditionally disable respecting user
+ # flags when cross-compiling.
+ echo "CMAKE_C_FLAGS_${cm_btype} = \"${CFLAGS}\""
+ echo "CMAKE_CXX_FLAGS_${cm_btype} = \"${CXXFLAGS}\""
+ echo "CMAKE_EXE_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\""
+ echo "CMAKE_MODULE_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\""
+ echo "CMAKE_SHARED_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\""
+ echo "CMAKE_STATIC_LINKER_FLAGS_${cm_btype} = \"${ARFLAGS}\""
+ fi)
+ [build]
+ build-stage = 2
+ test-stage = 2
+ build = "${rust_build}"
+ host = ["${rust_host}"]
+ 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
+ $(if ! tc-is-cross-compiler; then
+ echo "default-linker = \"$(tc-getCC)\""
+ fi)
+ 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
+ lto = "$(usex lto fat off)"
+ [dist]
+ src-tarball = false
+ compression-formats = ["xz"]
+ compression-profile = "balanced"
+ _EOF_
+
+ for v in $(multilib_get_enabled_abi_pairs); do
+ rust_target=$(rust_abi $(get_abi_CHOST ${v##*.}))
+ arch_cflags="$(get_abi_CFLAGS ${v##*.})"
+
+ export CFLAGS_${rust_target//-/_}="${arch_cflags}"
+
+ cat <<- _EOF_ >> "${S}"/config.toml
+ [target.${rust_target}]
+ ar = "$(tc-getAR)"
+ cc = "$(tc-getCC)"
+ cxx = "$(tc-getCXX)"
+ linker = "$(tc-getCC)"
+ ranlib = "$(tc-getRANLIB)"
+ llvm-libunwind = "$(usex llvm-libunwind $(usex system-llvm system in-tree) no)"
+ _EOF_
+ if use system-llvm; then
+ cat <<- _EOF_ >> "${S}"/config.toml
+ llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
+ _EOF_
+ fi
+ # by default librustc_target/spec/linux_musl_base.rs sets base.crt_static_default = true;
+ # but we patch it and set to false here as well
+ if use elibc_musl; then
+ cat <<- _EOF_ >> "${S}"/config.toml
+ crt-static = false
+ _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}\""
+ echo MAGIC_EXTRA_RUSTFLAGS="\"${MAGIC_EXTRA_RUSTFLAGS}\""
+ env | grep "CARGO_TARGET_.*_RUSTFLAGS="
+ env | grep "CFLAGS_.*"
+ echo
+ einfo "config.toml contents:"
+ cat "${S}"/config.toml || die
+ echo
+}
+
+src_compile() {
+ RUST_BACKTRACE=1 "${EPYTHON}" ./x.py build -vvv --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 ! 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() {
+ 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 rustfmt && symlinks+=( rustfmt cargo-fmt )
+ use rust-analyzer && symlinks+=( rust-analyzer )
+
+ 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"
+ _EOF_
+
+ rm -rf "${ED}/usr/lib/${PN}/${PV}"/*.old || die
+ rm -rf "${ED}/usr/lib/${PN}/${PV}/bin"/*.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 rustfmt; then
+ echo /usr/bin/rustfmt >> "${T}/provider-${P}"
+ echo /usr/bin/cargo-fmt >> "${T}/provider-${P}"
+ fi
+ if use rust-analyzer; then
+ echo /usr/bin/rust-analyzer >> "${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 dev-debug/gdb || has_version dev-debug/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/rust/rust-1.75.0-r1.ebuild b/dev-lang/rust/rust-1.75.0-r1.ebuild
new file mode 100644
index 000000000000..0edae23c64ed
--- /dev/null
+++ b/dev-lang/rust/rust-1.75.0-r1.ebuild
@@ -0,0 +1,787 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..12} )
+
+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 ~loong ~mips ppc ppc64 ~riscv sparc x86"
+fi
+
+RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).0"
+
+DESCRIPTION="Language empowering everyone to build reliable and efficient software"
+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 ARC ARM AVR BPF CSKY DirectX Hexagon Lanai
+ LoongArch M68k Mips MSP430 NVPTX PowerPC RISCV Sparc SPIRV SystemZ VE
+ WebAssembly X86 XCore Xtensa )
+ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" )
+LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?}
+
+LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4"
+
+IUSE="big-endian clippy cpu_flags_x86_sse2 debug dist doc llvm-libunwind +lto miri nightly parallel-compiler profiler rustfmt rust-analyzer 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=( 17 )
+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}(-)] )
+ wasm? ( sys-devel/lld:${_s} )"
+ done
+ LLVM_DEPEND+=" )"
+done
+unset _s _x
+LLVM_DEPEND+=" )
+ <sys-devel/llvm-$(( LLVM_MAX_SLOT + 1 )):=
+"
+
+# 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.json
+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-build/cmake-3.13.4
+ app-alternatives/ninja
+ )
+ test? ( dev-debug/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=
+ system-llvm? (
+ ${LLVM_DEPEND}
+ llvm-libunwind? ( sys-libs/llvm-libunwind:= )
+ )
+ !system-llvm? (
+ !llvm-libunwind? (
+ elibc_musl? ( sys-libs/libunwind:= )
+ )
+ )
+"
+
+RDEPEND="${DEPEND}
+ app-eselect/eselect-rust
+ sys-apps/lsb-release
+"
+
+REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} )
+ miri? ( nightly )
+ parallel-compiler? ( nightly )
+ rust-analyzer? ( 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
+ usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/self-contained/crtn.o
+"
+
+# 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=/usr/share/openpgp-keys/rust.asc
+
+PATCHES=(
+ "${FILESDIR}"/1.75.0-musl-dynamic-linking.patch
+ "${FILESDIR}"/1.74.1-cross-compile-libz.patch
+ #"${FILESDIR}"/1.72.0-bump-libc-deps-to-0.2.146.patch # pending refresh
+ "${FILESDIR}"/1.70.0-ignore-broken-and-non-applicable-tests.patch
+ "${FILESDIR}"/1.67.0-doc-wasm.patch
+ # This patch shouldn't be necessary for later versions of Rust because its
+ # code was backported from master.
+ "${FILESDIR}"/1.75.0-handle-vendored-sources.patch
+)
+
+S="${WORKDIR}/${MY_P}-src"
+
+clear_vendor_checksums() {
+ sed -i 's/\("files":{\)[^}]*/\1/' "vendor/${1}/.cargo-checksum.json" || die
+}
+
+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 --root="${BROOT}" 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 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// /,}]"
+}
+
+# Is LLVM being linked against libc++?
+is_libcxx_linked() {
+ local code='#include <ciso646>
+#if defined(_LIBCPP_VERSION)
+ HAVE_LIBCXX
+#endif
+'
+ local out=$($(tc-getCXX) ${CXXFLAGS} ${CPPFLAGS} -x c++ -E -P - <<<"${code}") || return 1
+ [[ ${out} == *HAVE_LIBCXX* ]]
+}
+
+pkg_pretend() {
+ pre_build_checks
+}
+
+pkg_setup() {
+ pre_build_checks
+ python-any-r1_pkg_setup
+
+ export LIBGIT2_NO_PKG_CONFIG=1 #749381
+ if tc-is-cross-compiler; then
+ export PKG_CONFIG_ALLOW_CROSS=1
+ export PKG_CONFIG_PATH="${ROOT}/usr/$(get_libdir)/pkgconfig"
+ export OPENSSL_INCLUDE_DIR="${ROOT}/usr/include"
+ export OPENSSL_LIB_DIR="${ROOT}/usr/$(get_libdir)"
+
+ use system-bootstrap || die "USE=system-bootstrap is required when cross-compiling"
+ use system-llvm && die "USE=system-llvm not allowed when cross-compiling"
+ local cross_llvm_target="$(llvm_tuple_to_target "${CBUILD}")"
+ use "llvm_targets_${cross_llvm_target}" || \
+ die "Must enable LLVM_TARGETS=${cross_llvm_target} matching CBUILD=${CBUILD} when cross-compiling"
+ fi
+
+ 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
+}
+
+esetup_unwind_hack() {
+ # https://bugs.gentoo.org/870280
+ # this is a hack needed to bootstrap with libgcc_s linked tarball on llvm-libunwind system.
+ # it should trigger for internal bootstrap or system-bootstrap with rust-bin.
+ # the whole idea is for stage0 to bootstrap with fake libgcc_s.
+ # final stage will receive -L${T}/lib but not -lgcc_s args, producing clean compiler.
+ local fakelib="${T}/fakelib"
+ mkdir -p "${fakelib}" || die
+ # we need both symlinks, one for cargo runtime, other for linker.
+ ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so.1" || die
+ ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so" || die
+ export LD_LIBRARY_PATH="${fakelib}"
+ export RUSTFLAGS+=" -L${fakelib}"
+ # this is a literally magic variable that gets through cargo cache, without it some
+ # crates ignore RUSTFLAGS.
+ # this variable can not contain leading space.
+ export MAGIC_EXTRA_RUSTFLAGS+="${MAGIC_EXTRA_RUSTFLAGS:+ }-L${fakelib}"
+}
+
+src_prepare() {
+ # Clear vendor checksums for crates that we patched to bump libc.
+ # NOTE: refresh this on each bump.
+ #for i in addr2line-0.20.0 bstr cranelift-jit crossbeam-channel elasticlunr-rs handlebars icu_locid libffi \
+ # terminal_size tracing-tree; do
+ # clear_vendor_checksums "${i}"
+ #done
+
+ if ! use system-bootstrap; then
+ has_version sys-devel/gcc || esetup_unwind_hack
+ local rust_stage0_root="${WORKDIR}"/rust-stage0
+ local rust_stage0="rust-${RUST_STAGE0_VERSION}-$(rust_abi "${CBUILD}")"
+
+ "${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig \
+ --without=rust-docs-json-preview,rust-docs --destdir="${rust_stage0_root}" --prefix=/ || die
+ fi
+
+ default
+}
+
+src_configure() {
+ filter-lto # https://bugs.gentoo.org/862109 https://bugs.gentoo.org/866231
+
+ local rust_target="" rust_targets="" arch_cflags
+
+ # Collect rust target names to compile standard libs for all ABIs.
+ for v in $(multilib_get_enabled_abi_pairs); do
+ rust_targets+=",\"$(rust_abi $(get_abi_CHOST ${v##*.}))\""
+ done
+ if use wasm; then
+ 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/base/wasm.rs || die
+ fi
+ fi
+ rust_targets="${rust_targets#,}"
+
+ # cargo and rustdoc are mandatory and should always be included
+ local tools='"cargo","rustdoc"'
+ use clippy && tools+=',"clippy"'
+ use miri && tools+=',"miri"'
+ use profiler && tools+=',"rust-demangler"'
+ use rustfmt && tools+=',"rustfmt"'
+ use rust-analyzer && tools+=',"rust-analyzer"'
+ use rust-src && tools+=',"src"'
+
+ 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)"
+ rust_build="$(rust_abi "${CBUILD}")"
+ rust_host="$(rust_abi "${CHOST}")"
+
+ 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 is_libcxx_linked; then
+ # https://bugs.gentoo.org/732632
+ 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)
+ enable-warnings = false
+ [llvm.build-config]
+ CMAKE_VERBOSE_MAKEFILE = "ON"
+ $(if ! tc-is-cross-compiler; then
+ # When cross-compiling, LLVM is compiled twice, once for host and
+ # once for target. Unfortunately, this build configuration applies
+ # to both, which means any flags applicable to one target but not
+ # the other will break. Conditionally disable respecting user
+ # flags when cross-compiling.
+ echo "CMAKE_C_FLAGS_${cm_btype} = \"${CFLAGS}\""
+ echo "CMAKE_CXX_FLAGS_${cm_btype} = \"${CXXFLAGS}\""
+ echo "CMAKE_EXE_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\""
+ echo "CMAKE_MODULE_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\""
+ echo "CMAKE_SHARED_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\""
+ echo "CMAKE_STATIC_LINKER_FLAGS_${cm_btype} = \"${ARFLAGS}\""
+ fi)
+ [build]
+ build-stage = 2
+ test-stage = 2
+ build = "${rust_build}"
+ host = ["${rust_host}"]
+ 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
+ $(if ! tc-is-cross-compiler; then
+ echo "default-linker = \"$(tc-getCC)\""
+ fi)
+ 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
+ lto = "$(usex lto fat off)"
+ [dist]
+ src-tarball = false
+ compression-formats = ["xz"]
+ compression-profile = "balanced"
+ _EOF_
+
+ for v in $(multilib_get_enabled_abi_pairs); do
+ rust_target=$(rust_abi $(get_abi_CHOST ${v##*.}))
+ arch_cflags="$(get_abi_CFLAGS ${v##*.})"
+
+ export CFLAGS_${rust_target//-/_}="${arch_cflags}"
+
+ cat <<- _EOF_ >> "${S}"/config.toml
+ [target.${rust_target}]
+ ar = "$(tc-getAR)"
+ cc = "$(tc-getCC)"
+ cxx = "$(tc-getCXX)"
+ linker = "$(tc-getCC)"
+ ranlib = "$(tc-getRANLIB)"
+ llvm-libunwind = "$(usex llvm-libunwind $(usex system-llvm system in-tree) no)"
+ _EOF_
+ if use system-llvm; then
+ cat <<- _EOF_ >> "${S}"/config.toml
+ llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
+ _EOF_
+ fi
+ # by default librustc_target/spec/linux_musl_base.rs sets base.crt_static_default = true;
+ # but we patch it and set to false here as well
+ if use elibc_musl; then
+ cat <<- _EOF_ >> "${S}"/config.toml
+ crt-static = false
+ _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}\""
+ echo MAGIC_EXTRA_RUSTFLAGS="\"${MAGIC_EXTRA_RUSTFLAGS}\""
+ env | grep "CARGO_TARGET_.*_RUSTFLAGS="
+ env | grep "CFLAGS_.*"
+ echo
+ einfo "config.toml contents:"
+ cat "${S}"/config.toml || die
+ echo
+}
+
+src_compile() {
+ RUST_BACKTRACE=1 "${EPYTHON}" ./x.py build -vvv --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 ! 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() {
+ 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 rustfmt && symlinks+=( rustfmt cargo-fmt )
+ use rust-analyzer && symlinks+=( rust-analyzer )
+
+ 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"
+ _EOF_
+
+ rm -rf "${ED}/usr/lib/${PN}/${PV}"/*.old || die
+ rm -rf "${ED}/usr/lib/${PN}/${PV}/bin"/*.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 rustfmt; then
+ echo /usr/bin/rustfmt >> "${T}/provider-${P}"
+ echo /usr/bin/cargo-fmt >> "${T}/provider-${P}"
+ fi
+ if use rust-analyzer; then
+ echo /usr/bin/rust-analyzer >> "${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 dev-debug/gdb || has_version dev-debug/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/rust/rust-1.76.0-r1.ebuild b/dev-lang/rust/rust-1.76.0-r1.ebuild
new file mode 100644
index 000000000000..a325d44301e2
--- /dev/null
+++ b/dev-lang/rust/rust-1.76.0-r1.ebuild
@@ -0,0 +1,787 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..12} )
+
+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 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+fi
+
+RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).0"
+
+DESCRIPTION="Language empowering everyone to build reliable and efficient software"
+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 ARC ARM AVR BPF CSKY DirectX Hexagon Lanai
+ LoongArch M68k Mips MSP430 NVPTX PowerPC RISCV Sparc SPIRV SystemZ VE
+ WebAssembly X86 XCore Xtensa )
+ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" )
+LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?}
+
+LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4"
+
+IUSE="big-endian clippy cpu_flags_x86_sse2 debug dist doc llvm-libunwind lto miri nightly parallel-compiler profiler rustfmt rust-analyzer 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=( 17 )
+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}(-)] )
+ wasm? ( sys-devel/lld:${_s} )"
+ done
+ LLVM_DEPEND+=" )"
+done
+unset _s _x
+LLVM_DEPEND+=" )
+ <sys-devel/llvm-$(( LLVM_MAX_SLOT + 1 )):=
+"
+
+# 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.json
+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-build/cmake-3.13.4
+ app-alternatives/ninja
+ )
+ test? ( dev-debug/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=
+ system-llvm? (
+ ${LLVM_DEPEND}
+ llvm-libunwind? ( sys-libs/llvm-libunwind:= )
+ )
+ !system-llvm? (
+ !llvm-libunwind? (
+ elibc_musl? ( sys-libs/libunwind:= )
+ )
+ )
+"
+
+RDEPEND="${DEPEND}
+ app-eselect/eselect-rust
+ sys-apps/lsb-release
+"
+
+REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} )
+ miri? ( nightly )
+ parallel-compiler? ( nightly )
+ rust-analyzer? ( 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
+ usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/self-contained/crtn.o
+"
+
+# 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=/usr/share/openpgp-keys/rust.asc
+
+PATCHES=(
+ "${FILESDIR}"/1.75.0-musl-dynamic-linking.patch
+ "${FILESDIR}"/1.74.1-cross-compile-libz.patch
+ #"${FILESDIR}"/1.72.0-bump-libc-deps-to-0.2.146.patch # pending refresh
+ "${FILESDIR}"/1.70.0-ignore-broken-and-non-applicable-tests.patch
+ "${FILESDIR}"/1.67.0-doc-wasm.patch
+ "${FILESDIR}"/1.75.0-handle-vendored-sources.patch # remove for >=1.77.0
+ "${FILESDIR}"/1.76.0-loong-code-model.patch # remove for >=1.78.0
+)
+
+S="${WORKDIR}/${MY_P}-src"
+
+clear_vendor_checksums() {
+ sed -i 's/\("files":{\)[^}]*/\1/' "vendor/${1}/.cargo-checksum.json" || die
+}
+
+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 --root="${BROOT}" 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 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// /,}]"
+}
+
+# Is LLVM being linked against libc++?
+is_libcxx_linked() {
+ local code='#include <ciso646>
+#if defined(_LIBCPP_VERSION)
+ HAVE_LIBCXX
+#endif
+'
+ local out=$($(tc-getCXX) ${CXXFLAGS} ${CPPFLAGS} -x c++ -E -P - <<<"${code}") || return 1
+ [[ ${out} == *HAVE_LIBCXX* ]]
+}
+
+pkg_pretend() {
+ pre_build_checks
+}
+
+pkg_setup() {
+ pre_build_checks
+ python-any-r1_pkg_setup
+
+ export LIBGIT2_NO_PKG_CONFIG=1 #749381
+ if tc-is-cross-compiler; then
+ export PKG_CONFIG_ALLOW_CROSS=1
+ export PKG_CONFIG_PATH="${ROOT}/usr/$(get_libdir)/pkgconfig"
+ export OPENSSL_INCLUDE_DIR="${ROOT}/usr/include"
+ export OPENSSL_LIB_DIR="${ROOT}/usr/$(get_libdir)"
+
+ use system-bootstrap || die "USE=system-bootstrap is required when cross-compiling"
+ use system-llvm && die "USE=system-llvm not allowed when cross-compiling"
+ local cross_llvm_target="$(llvm_tuple_to_target "${CBUILD}")"
+ use "llvm_targets_${cross_llvm_target}" || \
+ die "Must enable LLVM_TARGETS=${cross_llvm_target} matching CBUILD=${CBUILD} when cross-compiling"
+ fi
+
+ 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
+}
+
+esetup_unwind_hack() {
+ # https://bugs.gentoo.org/870280
+ # this is a hack needed to bootstrap with libgcc_s linked tarball on llvm-libunwind system.
+ # it should trigger for internal bootstrap or system-bootstrap with rust-bin.
+ # the whole idea is for stage0 to bootstrap with fake libgcc_s.
+ # final stage will receive -L${T}/lib but not -lgcc_s args, producing clean compiler.
+ local fakelib="${T}/fakelib"
+ mkdir -p "${fakelib}" || die
+ # we need both symlinks, one for cargo runtime, other for linker.
+ ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so.1" || die
+ ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so" || die
+ export LD_LIBRARY_PATH="${fakelib}"
+ export RUSTFLAGS+=" -L${fakelib}"
+ # this is a literally magic variable that gets through cargo cache, without it some
+ # crates ignore RUSTFLAGS.
+ # this variable can not contain leading space.
+ export MAGIC_EXTRA_RUSTFLAGS+="${MAGIC_EXTRA_RUSTFLAGS:+ }-L${fakelib}"
+}
+
+src_prepare() {
+ # Clear vendor checksums for crates that we patched to bump libc.
+ # NOTE: refresh this on each bump.
+ #for i in addr2line-0.20.0 bstr cranelift-jit crossbeam-channel elasticlunr-rs handlebars icu_locid libffi \
+ # terminal_size tracing-tree; do
+ # clear_vendor_checksums "${i}"
+ #done
+
+ if ! use system-bootstrap; then
+ has_version sys-devel/gcc || esetup_unwind_hack
+ local rust_stage0_root="${WORKDIR}"/rust-stage0
+ local rust_stage0="rust-${RUST_STAGE0_VERSION}-$(rust_abi "${CBUILD}")"
+
+ "${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig \
+ --without=rust-docs-json-preview,rust-docs --destdir="${rust_stage0_root}" --prefix=/ || die
+ fi
+
+ default
+}
+
+src_configure() {
+ filter-lto # https://bugs.gentoo.org/862109 https://bugs.gentoo.org/866231
+
+ local rust_target="" rust_targets="" arch_cflags
+
+ # Collect rust target names to compile standard libs for all ABIs.
+ for v in $(multilib_get_enabled_abi_pairs); do
+ rust_targets+=",\"$(rust_abi $(get_abi_CHOST ${v##*.}))\""
+ done
+ if use wasm; then
+ 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/base/wasm.rs || die
+ fi
+ fi
+ rust_targets="${rust_targets#,}"
+
+ # cargo and rustdoc are mandatory and should always be included
+ local tools='"cargo","rustdoc"'
+ use clippy && tools+=',"clippy"'
+ use miri && tools+=',"miri"'
+ use profiler && tools+=',"rust-demangler"'
+ use rustfmt && tools+=',"rustfmt"'
+ use rust-analyzer && tools+=',"rust-analyzer"'
+ use rust-src && tools+=',"src"'
+
+ 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)"
+ rust_build="$(rust_abi "${CBUILD}")"
+ rust_host="$(rust_abi "${CHOST}")"
+
+ 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 is_libcxx_linked; then
+ # https://bugs.gentoo.org/732632
+ 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)
+ enable-warnings = false
+ [llvm.build-config]
+ CMAKE_VERBOSE_MAKEFILE = "ON"
+ $(if ! tc-is-cross-compiler; then
+ # When cross-compiling, LLVM is compiled twice, once for host and
+ # once for target. Unfortunately, this build configuration applies
+ # to both, which means any flags applicable to one target but not
+ # the other will break. Conditionally disable respecting user
+ # flags when cross-compiling.
+ echo "CMAKE_C_FLAGS_${cm_btype} = \"${CFLAGS}\""
+ echo "CMAKE_CXX_FLAGS_${cm_btype} = \"${CXXFLAGS}\""
+ echo "CMAKE_EXE_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\""
+ echo "CMAKE_MODULE_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\""
+ echo "CMAKE_SHARED_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\""
+ echo "CMAKE_STATIC_LINKER_FLAGS_${cm_btype} = \"${ARFLAGS}\""
+ fi)
+ [build]
+ build-stage = 2
+ test-stage = 2
+ build = "${rust_build}"
+ host = ["${rust_host}"]
+ 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
+ $(if ! tc-is-cross-compiler; then
+ echo "default-linker = \"$(tc-getCC)\""
+ fi)
+ 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
+ # See https://github.com/rust-lang/rust/issues/121124
+ lto = "$(usex lto thin off)"
+ [dist]
+ src-tarball = false
+ compression-formats = ["xz"]
+ compression-profile = "balanced"
+ _EOF_
+
+ for v in $(multilib_get_enabled_abi_pairs); do
+ rust_target=$(rust_abi $(get_abi_CHOST ${v##*.}))
+ arch_cflags="$(get_abi_CFLAGS ${v##*.})"
+
+ export CFLAGS_${rust_target//-/_}="${arch_cflags}"
+
+ cat <<- _EOF_ >> "${S}"/config.toml
+ [target.${rust_target}]
+ ar = "$(tc-getAR)"
+ cc = "$(tc-getCC)"
+ cxx = "$(tc-getCXX)"
+ linker = "$(tc-getCC)"
+ ranlib = "$(tc-getRANLIB)"
+ llvm-libunwind = "$(usex llvm-libunwind $(usex system-llvm system in-tree) no)"
+ _EOF_
+ if use system-llvm; then
+ cat <<- _EOF_ >> "${S}"/config.toml
+ llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
+ _EOF_
+ fi
+ # by default librustc_target/spec/linux_musl_base.rs sets base.crt_static_default = true;
+ # but we patch it and set to false here as well
+ if use elibc_musl; then
+ cat <<- _EOF_ >> "${S}"/config.toml
+ crt-static = false
+ _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}\""
+ echo MAGIC_EXTRA_RUSTFLAGS="\"${MAGIC_EXTRA_RUSTFLAGS}\""
+ env | grep "CARGO_TARGET_.*_RUSTFLAGS="
+ env | grep "CFLAGS_.*"
+ echo
+ einfo "config.toml contents:"
+ cat "${S}"/config.toml || die
+ echo
+}
+
+src_compile() {
+ RUST_BACKTRACE=1 "${EPYTHON}" ./x.py build -vvv --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 ! 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() {
+ 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 rustfmt && symlinks+=( rustfmt cargo-fmt )
+ use rust-analyzer && symlinks+=( rust-analyzer )
+
+ 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"
+ _EOF_
+
+ rm -rf "${ED}/usr/lib/${PN}/${PV}"/*.old || die
+ rm -rf "${ED}/usr/lib/${PN}/${PV}/bin"/*.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 rustfmt; then
+ echo /usr/bin/rustfmt >> "${T}/provider-${P}"
+ echo /usr/bin/cargo-fmt >> "${T}/provider-${P}"
+ fi
+ if use rust-analyzer; then
+ echo /usr/bin/rust-analyzer >> "${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 dev-debug/gdb || has_version dev-debug/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/rust/rust-1.77.1.ebuild b/dev-lang/rust/rust-1.77.1.ebuild
new file mode 100644
index 000000000000..7a7bd02afe98
--- /dev/null
+++ b/dev-lang/rust/rust-1.77.1.ebuild
@@ -0,0 +1,786 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..12} )
+
+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 ~loong ~mips ppc 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 ARC ARM AVR BPF CSKY DirectX Hexagon Lanai
+ LoongArch M68k Mips MSP430 NVPTX PowerPC RISCV Sparc SPIRV SystemZ VE
+ WebAssembly X86 XCore Xtensa )
+ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" )
+LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?}
+
+LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4"
+
+IUSE="big-endian clippy cpu_flags_x86_sse2 debug dist doc llvm-libunwind lto miri nightly parallel-compiler profiler rustfmt rust-analyzer 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=( 17 )
+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}(-)] )
+ wasm? ( sys-devel/lld:${_s} )"
+ done
+ LLVM_DEPEND+=" )"
+done
+unset _s _x
+LLVM_DEPEND+=" )
+ <sys-devel/llvm-$(( LLVM_MAX_SLOT + 1 )):=
+"
+
+# 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.json
+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-build/cmake-3.13.4
+ app-alternatives/ninja
+ )
+ test? ( dev-debug/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=
+ system-llvm? (
+ ${LLVM_DEPEND}
+ llvm-libunwind? ( sys-libs/llvm-libunwind:= )
+ )
+ !system-llvm? (
+ !llvm-libunwind? (
+ elibc_musl? ( sys-libs/libunwind:= )
+ )
+ )
+"
+
+RDEPEND="${DEPEND}
+ app-eselect/eselect-rust
+ sys-apps/lsb-release
+"
+
+REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} )
+ miri? ( nightly )
+ parallel-compiler? ( nightly )
+ rust-analyzer? ( 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
+ usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/self-contained/crtn.o
+"
+
+# 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=/usr/share/openpgp-keys/rust.asc
+
+PATCHES=(
+ "${FILESDIR}"/1.75.0-musl-dynamic-linking.patch
+ "${FILESDIR}"/1.74.1-cross-compile-libz.patch
+ #"${FILESDIR}"/1.72.0-bump-libc-deps-to-0.2.146.patch # pending refresh
+ "${FILESDIR}"/1.70.0-ignore-broken-and-non-applicable-tests.patch
+ "${FILESDIR}"/1.67.0-doc-wasm.patch
+ "${FILESDIR}"/1.76.0-loong-code-model.patch # remove for >=1.78.0
+)
+
+S="${WORKDIR}/${MY_P}-src"
+
+clear_vendor_checksums() {
+ sed -i 's/\("files":{\)[^}]*/\1/' "vendor/${1}/.cargo-checksum.json" || die
+}
+
+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 --root="${BROOT}" 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 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// /,}]"
+}
+
+# Is LLVM being linked against libc++?
+is_libcxx_linked() {
+ local code='#include <ciso646>
+#if defined(_LIBCPP_VERSION)
+ HAVE_LIBCXX
+#endif
+'
+ local out=$($(tc-getCXX) ${CXXFLAGS} ${CPPFLAGS} -x c++ -E -P - <<<"${code}") || return 1
+ [[ ${out} == *HAVE_LIBCXX* ]]
+}
+
+pkg_pretend() {
+ pre_build_checks
+}
+
+pkg_setup() {
+ pre_build_checks
+ python-any-r1_pkg_setup
+
+ export LIBGIT2_NO_PKG_CONFIG=1 #749381
+ if tc-is-cross-compiler; then
+ export PKG_CONFIG_ALLOW_CROSS=1
+ export PKG_CONFIG_PATH="${ROOT}/usr/$(get_libdir)/pkgconfig"
+ export OPENSSL_INCLUDE_DIR="${ROOT}/usr/include"
+ export OPENSSL_LIB_DIR="${ROOT}/usr/$(get_libdir)"
+
+ use system-bootstrap || die "USE=system-bootstrap is required when cross-compiling"
+ use system-llvm && die "USE=system-llvm not allowed when cross-compiling"
+ local cross_llvm_target="$(llvm_tuple_to_target "${CBUILD}")"
+ use "llvm_targets_${cross_llvm_target}" || \
+ die "Must enable LLVM_TARGETS=${cross_llvm_target} matching CBUILD=${CBUILD} when cross-compiling"
+ fi
+
+ 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
+}
+
+esetup_unwind_hack() {
+ # https://bugs.gentoo.org/870280
+ # this is a hack needed to bootstrap with libgcc_s linked tarball on llvm-libunwind system.
+ # it should trigger for internal bootstrap or system-bootstrap with rust-bin.
+ # the whole idea is for stage0 to bootstrap with fake libgcc_s.
+ # final stage will receive -L${T}/lib but not -lgcc_s args, producing clean compiler.
+ local fakelib="${T}/fakelib"
+ mkdir -p "${fakelib}" || die
+ # we need both symlinks, one for cargo runtime, other for linker.
+ ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so.1" || die
+ ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so" || die
+ export LD_LIBRARY_PATH="${fakelib}"
+ export RUSTFLAGS+=" -L${fakelib}"
+ # this is a literally magic variable that gets through cargo cache, without it some
+ # crates ignore RUSTFLAGS.
+ # this variable can not contain leading space.
+ export MAGIC_EXTRA_RUSTFLAGS+="${MAGIC_EXTRA_RUSTFLAGS:+ }-L${fakelib}"
+}
+
+src_prepare() {
+ # Clear vendor checksums for crates that we patched to bump libc.
+ # NOTE: refresh this on each bump.
+ #for i in addr2line-0.20.0 bstr cranelift-jit crossbeam-channel elasticlunr-rs handlebars icu_locid libffi \
+ # terminal_size tracing-tree; do
+ # clear_vendor_checksums "${i}"
+ #done
+
+ if ! use system-bootstrap; then
+ has_version sys-devel/gcc || esetup_unwind_hack
+ local rust_stage0_root="${WORKDIR}"/rust-stage0
+ local rust_stage0="rust-${RUST_STAGE0_VERSION}-$(rust_abi "${CBUILD}")"
+
+ "${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig \
+ --without=rust-docs-json-preview,rust-docs --destdir="${rust_stage0_root}" --prefix=/ || die
+ fi
+
+ default
+}
+
+src_configure() {
+ filter-lto # https://bugs.gentoo.org/862109 https://bugs.gentoo.org/866231
+
+ local rust_target="" rust_targets="" arch_cflags
+
+ # Collect rust target names to compile standard libs for all ABIs.
+ for v in $(multilib_get_enabled_abi_pairs); do
+ rust_targets+=",\"$(rust_abi $(get_abi_CHOST ${v##*.}))\""
+ done
+ if use wasm; then
+ 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/base/wasm.rs || die
+ fi
+ fi
+ rust_targets="${rust_targets#,}"
+
+ # cargo and rustdoc are mandatory and should always be included
+ local tools='"cargo","rustdoc"'
+ use clippy && tools+=',"clippy"'
+ use miri && tools+=',"miri"'
+ use profiler && tools+=',"rust-demangler"'
+ use rustfmt && tools+=',"rustfmt"'
+ use rust-analyzer && tools+=',"rust-analyzer","rust-analyzer-proc-macro-srv"'
+ use rust-src && tools+=',"src"'
+
+ 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)"
+ rust_build="$(rust_abi "${CBUILD}")"
+ rust_host="$(rust_abi "${CHOST}")"
+
+ 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 is_libcxx_linked; then
+ # https://bugs.gentoo.org/732632
+ 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)
+ enable-warnings = false
+ [llvm.build-config]
+ CMAKE_VERBOSE_MAKEFILE = "ON"
+ $(if ! tc-is-cross-compiler; then
+ # When cross-compiling, LLVM is compiled twice, once for host and
+ # once for target. Unfortunately, this build configuration applies
+ # to both, which means any flags applicable to one target but not
+ # the other will break. Conditionally disable respecting user
+ # flags when cross-compiling.
+ echo "CMAKE_C_FLAGS_${cm_btype} = \"${CFLAGS}\""
+ echo "CMAKE_CXX_FLAGS_${cm_btype} = \"${CXXFLAGS}\""
+ echo "CMAKE_EXE_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\""
+ echo "CMAKE_MODULE_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\""
+ echo "CMAKE_SHARED_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\""
+ echo "CMAKE_STATIC_LINKER_FLAGS_${cm_btype} = \"${ARFLAGS}\""
+ fi)
+ [build]
+ build-stage = 2
+ test-stage = 2
+ build = "${rust_build}"
+ host = ["${rust_host}"]
+ 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
+ $(if ! tc-is-cross-compiler; then
+ echo "default-linker = \"$(tc-getCC)\""
+ fi)
+ 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
+ # See https://github.com/rust-lang/rust/issues/121124
+ lto = "$(usex lto thin off)"
+ [dist]
+ src-tarball = false
+ compression-formats = ["xz"]
+ compression-profile = "balanced"
+ _EOF_
+
+ for v in $(multilib_get_enabled_abi_pairs); do
+ rust_target=$(rust_abi $(get_abi_CHOST ${v##*.}))
+ arch_cflags="$(get_abi_CFLAGS ${v##*.})"
+
+ export CFLAGS_${rust_target//-/_}="${arch_cflags}"
+
+ cat <<- _EOF_ >> "${S}"/config.toml
+ [target.${rust_target}]
+ ar = "$(tc-getAR)"
+ cc = "$(tc-getCC)"
+ cxx = "$(tc-getCXX)"
+ linker = "$(tc-getCC)"
+ ranlib = "$(tc-getRANLIB)"
+ llvm-libunwind = "$(usex llvm-libunwind $(usex system-llvm system in-tree) no)"
+ _EOF_
+ if use system-llvm; then
+ cat <<- _EOF_ >> "${S}"/config.toml
+ llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
+ _EOF_
+ fi
+ # by default librustc_target/spec/linux_musl_base.rs sets base.crt_static_default = true;
+ # but we patch it and set to false here as well
+ if use elibc_musl; then
+ cat <<- _EOF_ >> "${S}"/config.toml
+ crt-static = false
+ _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}\""
+ echo MAGIC_EXTRA_RUSTFLAGS="\"${MAGIC_EXTRA_RUSTFLAGS}\""
+ env | grep "CARGO_TARGET_.*_RUSTFLAGS="
+ env | grep "CFLAGS_.*"
+ echo
+ einfo "config.toml contents:"
+ cat "${S}"/config.toml || die
+ echo
+}
+
+src_compile() {
+ RUST_BACKTRACE=1 "${EPYTHON}" ./x.py build -vvv --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 ! 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() {
+ 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 rustfmt && symlinks+=( rustfmt cargo-fmt )
+ use rust-analyzer && symlinks+=( rust-analyzer )
+
+ 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"
+ _EOF_
+
+ rm -rf "${ED}/usr/lib/${PN}/${PV}"/*.old || die
+ rm -rf "${ED}/usr/lib/${PN}/${PV}/bin"/*.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 rustfmt; then
+ echo /usr/bin/rustfmt >> "${T}/provider-${P}"
+ echo /usr/bin/cargo-fmt >> "${T}/provider-${P}"
+ fi
+ if use rust-analyzer; then
+ echo /usr/bin/rust-analyzer >> "${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 dev-debug/gdb || has_version dev-debug/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/sassc/Manifest b/dev-lang/sassc/Manifest
index c79ef9284f41..4c6f5b071c9c 100644
--- a/dev-lang/sassc/Manifest
+++ b/dev-lang/sassc/Manifest
@@ -1,2 +1 @@
-DIST sassc-3.6.0.tar.gz 26111 BLAKE2B 91d634bd652607407c48f141aa39260739357f6eeb4bade1fff1bfdd4e4e6e0757712501395c913ef1a8944ec9174649fa5ce657af4afec6f9f0eb7f804e1ff2 SHA512 0d8de651b1587f4994a5da85ad09ec2ce6e240213dbaa567c6b9baa612fe82e337061d9a5a8a3a5588e4c366c1178b6fd04e9d699a0be3d83c68f98bac774527
-DIST sassc-3.6.1.tar.gz 26137 BLAKE2B 73aaabe4f4dab7efdaef591918da8a4bd79e98dff0105666548f00b09657f46d2e28523988d60eef7f4b1eedacbfe17638e96f5a9c98a5325ef9e56f681c0e28 SHA512 b6df8f481db0737ca08808c0849dcbd83e80799d883271d382607b7a74028153195f5f9c26768ffe1a9a92ee8c26be3c382ad7b3a5336eb6e4a0dad58132690e
+DIST sassc-3.6.2.tar.gz 26637 BLAKE2B 97699b1235dc955ef976c2ee87a42b5153effca4703c1003363bb192eaae5fd2519d7c8ae96bb94a53ea98de95a208b44f680dcedf8334b1d179a3484261319d SHA512 fff3995ce8608bdaed5f4f1352ae4f1f882de58663b932c598d6168df421e4dbf907ec0f8caebb1e56490a71ca11105726f291b475816dd53e705bc53121969f
diff --git a/dev-lang/sassc/metadata.xml b/dev-lang/sassc/metadata.xml
index 4451ee88e296..f2524d788cd8 100644
--- a/dev-lang/sassc/metadata.xml
+++ b/dev-lang/sassc/metadata.xml
@@ -1,7 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <!-- maintainer-needed -->
+ <maintainer type="person">
+ <email>andrewammerlaan@gentoo.org</email>
+ <name>Andrew Ammerlaan</name>
+ </maintainer>
<longdescription lang="en">
SassC is a wrapper around libsass (http://github.com/sass/libsass)
used to generate a useful command-line application that can be
diff --git a/dev-lang/sassc/sassc-3.6.0.ebuild b/dev-lang/sassc/sassc-3.6.0.ebuild
deleted file mode 100644
index f66b0dc86192..000000000000
--- a/dev-lang/sassc/sassc-3.6.0.ebuild
+++ /dev/null
@@ -1,25 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit autotools
-
-SRC_URI="https://github.com/sass/sassc/archive/${PV}.tar.gz -> ${P}.tar.gz"
-KEYWORDS="amd64 ~arm arm64 ~ia64 ~ppc ~ppc64 x86 ~amd64-linux"
-
-DESCRIPTION="A libsass command line driver"
-HOMEPAGE="https://github.com/sass/sassc"
-LICENSE="MIT"
-SLOT="0"
-IUSE=""
-
-RDEPEND="dev-libs/libsass:="
-DEPEND="${RDEPEND}"
-
-DOCS=( Readme.md )
-
-src_prepare() {
- default
- eautoreconf
-}
diff --git a/dev-lang/sassc/sassc-3.6.1.ebuild b/dev-lang/sassc/sassc-3.6.2.ebuild
index 82d1a97e1181..8d3fb8ef014e 100644
--- a/dev-lang/sassc/sassc-3.6.1.ebuild
+++ b/dev-lang/sassc/sassc-3.6.2.ebuild
@@ -1,20 +1,19 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit autotools
-SRC_URI="https://github.com/sass/sassc/archive/${PV}.tar.gz -> ${P}.tar.gz"
-KEYWORDS="~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~x86 ~amd64-linux"
-
DESCRIPTION="A libsass command line driver"
HOMEPAGE="https://github.com/sass/sassc"
+SRC_URI="https://github.com/sass/sassc/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
LICENSE="MIT"
SLOT="0"
-IUSE=""
+KEYWORDS="amd64 ~arm arm64 ~ia64 ~loong ~ppc ~ppc64 ~riscv x86 ~amd64-linux"
-RDEPEND="dev-libs/libsass:="
+RDEPEND=">=dev-libs/libsass-3.6.5:="
DEPEND="${RDEPEND}"
DOCS=( Readme.md )
diff --git a/dev-lang/scala-bin/Manifest b/dev-lang/scala-bin/Manifest
index 46dcb484038b..3521c3e86b2f 100644
--- a/dev-lang/scala-bin/Manifest
+++ b/dev-lang/scala-bin/Manifest
@@ -1 +1 @@
-DIST scala-2.13.1.tgz 19685743 BLAKE2B aaff6db71023f539d08da521ab1ff505a626605d9c298472d0c2e98a9a13d6b8440e89cf5ff4a53b7b9bcc48cbc1e3b55cc253563f54f18c369e13fc8c00a6c2 SHA512 028aa237c471cada1501cd5764b3c384c3f50e9fc327cddd3fa7c79e9cc909d86bf84d5fc28103054600f879a60c546fc45a837cdca54964eb57ec77f9c1613e
+DIST scala-2.13.9.tgz 23602967 BLAKE2B 93bbee93562143c72a4bdcfa3e7a8257064474cf38a2de448444bc5639f54e0ef17b9361e7144b39b3040b97683c2674bcc7611fc770c2fa985d9d0d9fd403d3 SHA512 da808ea65fe66c83dc55873662de92647675a2da15b87fb719f1c76d29588f725a466d8519c53f4c521d4defc7b66c023e52a6b264c58117f321ddcf50ebd2a6
diff --git a/dev-lang/scala-bin/metadata.xml b/dev-lang/scala-bin/metadata.xml
index 4422c51f84a2..4221e170cbc0 100644
--- a/dev-lang/scala-bin/metadata.xml
+++ b/dev-lang/scala-bin/metadata.xml
@@ -1,9 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="person">
- <email>monsieurp@gentoo.org</email>
- </maintainer>
<maintainer type="project">
<email>java@gentoo.org</email>
<name>Java</name>
diff --git a/dev-lang/scala-bin/scala-bin-2.13.1.ebuild b/dev-lang/scala-bin/scala-bin-2.13.9.ebuild
index 622baa6cd436..595cbbe98dc1 100644
--- a/dev-lang/scala-bin/scala-bin-2.13.1.ebuild
+++ b/dev-lang/scala-bin/scala-bin-2.13.9.ebuild
@@ -1,7 +1,7 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=6
+EAPI=7
JAVA_PKG_IUSE="doc"
@@ -11,16 +11,16 @@ MY_PN="${PN%-*}"
MY_P="${MY_PN}-${PV}"
DESCRIPTION="The Scala Programming Language"
-HOMEPAGE="http://scala.epfl.ch/"
-SRC_URI="http://downloads.lightbend.com/${MY_PN}/${PV}/${MY_P}.tgz"
+HOMEPAGE="https://scala.epfl.ch/"
+SRC_URI="https://downloads.lightbend.com/${MY_PN}/${PV}/${MY_P}.tgz"
-LICENSE="BSD"
+LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="amd64 x86"
IUSE="doc"
RDEPEND="
- >=virtual/jre-1.6
+ >=virtual/jre-1.8
!dev-lang/scala"
S="${WORKDIR}/${MY_P}"
diff --git a/dev-lang/scala/metadata.xml b/dev-lang/scala/metadata.xml
index c9aa3c0473c0..b109f86671ec 100644
--- a/dev-lang/scala/metadata.xml
+++ b/dev-lang/scala/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>java@gentoo.org</email>
diff --git a/dev-lang/scala/scala-2.12.10.ebuild b/dev-lang/scala/scala-2.12.10-r1.ebuild
index dca42db2ba4c..3ce6719026ac 100644
--- a/dev-lang/scala/scala-2.12.10.ebuild
+++ b/dev-lang/scala/scala-2.12.10-r1.ebuild
@@ -1,11 +1,11 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI="7"
+EAPI=8
JAVA_PKG_IUSE="doc source"
-inherit eutils check-reqs java-pkg-2
+inherit check-reqs java-pkg-2
SV="$(ver_cut 1-2)"
SBTV="0.13.18"
@@ -44,26 +44,23 @@ SRC_URI="
https://dev.gentoo.org/~gienah/snapshots/${P}-sbt-deps.tar.xz
)
binary? (
- https://dev.gentoo.org/~gienah/files/dist/${P}-gentoo-binary.tar.xz
+ https://dev.gentoo.org/~gienah/distfiles/${P}-gentoo-binary.tar.xz
)"
LICENSE="BSD"
SLOT="${SV}/${PV}"
-KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+KEYWORDS="~amd64 ~arm64 ~x86 ~amd64-linux ~x86-linux"
IUSE="binary emacs"
-COMMON_DEP="dev-java/ant-core:0
+COMMON_DEP=">=dev-java/ant-1.10.14-r3:0
dev-java/jline:2"
DEPEND="${COMMON_DEP}
!binary? (
- >=virtual/jdk-1.8:*
>=dev-java/sbt-${SBTV}:0
media-gfx/graphviz
)
- binary? (
- >=virtual/jdk-1.8:*
- )
+ <=virtual/jdk-17:*
app-arch/xz-utils:0"
RDEPEND="${COMMON_DEP}
@@ -103,7 +100,7 @@ src_unpack() {
}
src_prepare() {
- java-pkg_getjars ant-core,jline-2,sbt
+ java-pkg_getjars ant,jline-2,sbt
if ! use binary; then
local a
@@ -120,17 +117,12 @@ src_prepare() {
# gentoo patch (by gienah) to stop it calling git log in the build
eapply "${FILESDIR}/${PN}-2.12.10-no-git.patch"
- local SBT_PVR="$(java-config --query=PVR --package=sbt)"
- sed -e "s@sbt.version=${SBTV}@sbt.version=${SBT_PVR}@" \
- -i "${S}/project/build.properties" \
- || die "Could not set sbt.version=${SBT_PVR} in project/build.properties"
-
cat <<- EOF > "${S}/sbt"
#!/bin/bash
gjl_package=sbt
gjl_jar="sbt-launch.jar"
- gjl_java_args="-Dsbt.version=${SBT_PVR} -Xms512M -Xmx1536M -Xss1M -XX:+CMSClassUnloadingEnabled -Duser.home="${WORKDIR}""
- source /usr/share/java-config-2/launcher/launcher.bash
+ gjl_java_args="-Dsbt.version=${SBTV} -Xms512M -Xmx1536M -Xss1M -XX:+CMSClassUnloadingEnabled -Duser.home="${WORKDIR}""
+ source "${EPREFIX}"/usr/share/java-config-2/launcher/launcher.bash
EOF
chmod u+x "${S}/sbt" || die
diff --git a/dev-lang/scala/scala-2.12.4.ebuild b/dev-lang/scala/scala-2.12.4.ebuild
index 7c6e29bcd4cf..58851200267d 100644
--- a/dev-lang/scala/scala-2.12.4.ebuild
+++ b/dev-lang/scala/scala-2.12.4.ebuild
@@ -1,11 +1,11 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="6"
JAVA_PKG_IUSE="doc source"
-inherit eutils check-reqs java-pkg-2 versionator
+inherit check-reqs java-pkg-2 versionator
SV="$(get_version_component_range 1-2)"
@@ -70,7 +70,7 @@ SRC_URI="
https://dev.gentoo.org/~gienah/files/dist/${P}-gentoo-binary.tar.xz )"
LICENSE="BSD"
SLOT="${SV}/${PV}"
-KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+KEYWORDS="amd64 ~x86 ~amd64-linux ~x86-linux"
IUSE="binary emacs"
@@ -83,9 +83,7 @@ DEPEND="${COMMON_DEP}
>=dev-java/sbt-0.13.13
media-gfx/graphviz
)
- binary? (
- >=virtual/jdk-1.8
- )
+ >=virtual/jdk-1.8
app-arch/xz-utils:0"
RDEPEND="${COMMON_DEP}
@@ -146,7 +144,7 @@ src_prepare() {
gjl_package=sbt
gjl_jar="sbt-launch.jar"
gjl_java_args="-Dsbt.version=0.13.13 -Dfile.encoding=UTF8 -Xms512M -Xmx1536M -Xss1M -XX:+CMSClassUnloadingEnabled -Duser.home="${WORKDIR}""
- source /usr/share/java-config-2/launcher/launcher.bash
+ source "${EPREFIX}"/usr/share/java-config-2/launcher/launcher.bash
EOF
chmod u+x "${S}/sbt" || die
diff --git a/dev-lang/smlnj/Manifest b/dev-lang/smlnj/Manifest
index 02683a41b302..cebd0158857e 100644
--- a/dev-lang/smlnj/Manifest
+++ b/dev-lang/smlnj/Manifest
@@ -1,24 +1,52 @@
-DIST smlnj-110.82-MLRISC.tgz 1435372 BLAKE2B 1b18539d98a7339fc4062ea0e2afaddf67f6195719798a6041f456b904b6476f6c830c4529e9756040a6bdce32d5e6b271bd73d7f89c1df05df42e0030b6dc95 SHA512 23c0e4cb8432d39b4df8e51d06762c96ae6223a860bacb15e07020b17d7020667f5a8b1ad62b1ed17ff97f3f8fcee4899b70ac62979f12a4d7fd470fc968f3a0
-DIST smlnj-110.82-boot.ppc-unix.tgz 5666299 BLAKE2B 6c0e7dc0408f731bc2b26d3d962e88c5c2d678fb1ac5783e7252cb8ae6b26b98a3a9a4fe8e135198c3260f5735be4e98db123d4baf6cee620b8fe85780ab0a80 SHA512 5b3491ba2d264716579ec6070d063ab707aa04a4e74fcdb8ab47632e0660b15dabf3502719374dfde101583ebe4a88590792a8c790a7f4bb1c010ab907738569
-DIST smlnj-110.82-boot.sparc-unix.tgz 5788662 BLAKE2B 623e30a97714e83487085a83261f571a91ab587f5d7741363bde804941dee7348b2e9546292ca022e362524f0645f7aa8c019ccdbe786fa4c0348861e49ad556 SHA512 d719c5415c433f7aaf3dcc53f748ca6839e62a54819e4e66e26470104edc3fb7e960595e7ea859f1507f7da792fa52ecaebe4e703534a96f6a8dbfceb29ad8b0
-DIST smlnj-110.82-boot.x86-unix.tgz 5735380 BLAKE2B 1624e75f8a6518408cae8ccf36b5f2f4348bb8553794725b7e509636cfd62fed5ebbc2b9e29ce1eb5ec9f5264381dd93c3de1ccd6c22edb4bf9026f599046d02 SHA512 e1371c11d083c61f747b8f8154c60612853aa2387450b0abbd918c6096f05519a0258cc8a8744f1b486e5b8e984ce3ab5a4bb454a2d14c2d5a74aea41220d428
-DIST smlnj-110.82-ckit.tgz 194555 BLAKE2B c4dfab41c02f21ae088c7ca10c5c40c1f71bdc9f6b8b2721e10ac25ac4351c57359927f111f0801175ed32e8849e01ae83fb58758bc34203cb605c74dea109c7 SHA512 d753d22c2f382d8b91f34f7e6bfcadc8ff5cde051909d3344eb1eaf2adfaaa75420d31cdddfe1cdcf77cf146dc5800cc05fd0896c5942b6edf12533661d09459
-DIST smlnj-110.82-cm.tgz 217857 BLAKE2B f7d142bfa4fd2666ec2ddc4ef4c0bec90063d6e7c711b8435bda116c61197943964712bec490f765f5abfe8dc64d270b41cf8521ad4e9ee9a8536cb1be1317b0 SHA512 940436242ca5f077b03ce9e5b9fa5b6e4c7fe6ddbefc628644bdef9c5e672bc4ba50aa6814c0715d364d9d1f5ef29231e42ba11d34dc8a70d95f023874b46f43
-DIST smlnj-110.82-cml.tgz 106141 BLAKE2B 3ffdba33d9a84e796d48248cc2c6eeb33e7bd560cf22dd212ca4b0892f5144458adb02e8a4f933fe11a034b46e885e65927340891ef1c095107726af40edf6b9 SHA512 2fe4b64c61c2228bf6439dbd0403a068151115358d9caebdf9abf0f18ada37c77492e4debb02af0fcddda0504e280e8574144a974d74b5f877a8dbe747f18680
-DIST smlnj-110.82-compiler.tgz 825030 BLAKE2B acd15722ef1f286119dec556e031b6b618773cc78516108a71d3d616cf70b12c2ab600056915a3ec9a5260cee35854ab24c2b509bd2990564d595d010ebabd86 SHA512 775407372d85d9a6c45cc49ee6c35503d54d9f737c9c6994d4e5c9ed7eb6d48e4d9e57fa187dbc154135d478adbdc5f2abd04346712ee989fc7f022c4e670ef7
-DIST smlnj-110.82-config.tgz 511859 BLAKE2B 5c1419a37ccd5646b797ea5db25766f2c361df2b9195e552bfbb2dac97d4b55dc17bbeb0f483d1fc6e66767bf5de055e4bf0faf37092f95abbe133b681fd8381 SHA512 425c84a6a1c824008d7fb4936134df2e9cbe9229eba9ce4a81fea694659ae0d63024f1e291500b57a3e57828fdb9be791fa6abb13253a3b9e5adb9fe52a1e6d4
-DIST smlnj-110.82-doc.tgz 198542 BLAKE2B a566528ac32de141473da6641e7b3c3ddbb1614aac9e41508aa5fae4d7b6a198efc3bdb2e29f38ef20f2c14183a09fee1a91ba1ad8e34591642a10d213b5b19a SHA512 2d1a464f57d1321dad3032f591b06ac3e87130fa6403fba7a45312de0a6c29bcc2afa7e6d0a130a83abe1a6ae7ed19023de11d270bc25dbc66d9f51d8ffdfacd
-DIST smlnj-110.82-eXene.tgz 703173 BLAKE2B 259d1a2b6fe42a44789e0cebd5ef9adee6f5a36133df3b462d6fdfab364a2721e89b9b352b812d97ccce455af1f05d641a7bb74c424301f42e0ea9d876cfea66 SHA512 ccfecf09863bbb624d3397a44d6e0723cef7f27dff4ed9dc13dce8aad9a9f05a9008d452096ac8bf456be46a235e432f8017fe13129085905fe97dad32217659
-DIST smlnj-110.82-heap2asm.tgz 1321 BLAKE2B 2efe4425cdeed930e6d9c03347e92546c6cf57aa2955881bb847386427bb1f185612ba829de3be0cb15f5b565c289a6dd69b1a2b4748fab6e21fc24cd0499f5e SHA512 fde524f00b8cde5ea188eb7d3003c242b4ebd37ff583bef79e788c46472d842900ced3dbf50012d8ba1abdf2fd1492ea5d1fad6cec3cb19fd59617052e814b80
-DIST smlnj-110.82-ml-burg.tgz 36350 BLAKE2B b267d711cd92750207a0ec6468d071903e34c0f6f88169213b58490bde7f04440a1b7144c8cd9c8fa10e5706512815f5043fef435565a902a81ecb8e8f5f7748 SHA512 737caf8df11f8d023d98a325bb30c6606b16630c263e82440c1f16e3f4a2c90a2673798782d5e42b0d80b5f10dde95cc41ac99d92f195577f47ab326b3fac745
-DIST smlnj-110.82-ml-lex.tgz 33170 BLAKE2B c706899dcdb2751aa10a25ceca510b6bbbb1cac920719cd328e15f60f21b8929d17ca98f612cb37271f9cba2472ea7283e3a84b7d935bd361e599b668d0ca466 SHA512 c126a76e33678d214034beb6777ed4f466ffa63433bc953cbdacfed523aa9f8f6166a162632a49f538bb71ef24c1f4feeaa6278d539b258ea1e0f4ed29fb102a
-DIST smlnj-110.82-ml-lpt.tgz 264854 BLAKE2B a6bb9d92077c98115b6592a549534d54323c6f1d44bfab1c4c01aad13d47ba098892405b3a4db9936cdaf711b2e8196e7abffeb8ef662b7d8467019816102033 SHA512 4b09262582336d2f1506d37ce8cfce3284fa8bd3e90b18872e8d24e27226f404c944668f45f5c49aa492a3c6e4a0a732b08ec9c5d4b6d036332b35813be5cec2
-DIST smlnj-110.82-ml-yacc.tgz 100039 BLAKE2B 0cf4caff0a8ed98e03b324a1b984fcd248e234e1ea7284d927144bb853017c42ec1d9f587d1039081536b6142a0b191ea4024bfb3de3a943f8e621edfc9b3181 SHA512 d527eaf4e2de72076996fa1fc9d415dbe9735bcff7c8be3f8b095ed51c19f426b702d2034c6bb39990275c04e59dfaa1e36606dcf20e7f4fe1aee07ec5116428
-DIST smlnj-110.82-nlffi.tgz 74495 BLAKE2B 00c7dfb0b3678d82cf073e55cd08b447184282005053c75e6f24a9581a4a975c9259e14dcf584dcdf9b32e1fe2b8773c08bf36327ced7d994748ac9750d56e19 SHA512 e24815787bcd57da97cb149d5c7521dba658f0fff88927332d658c40627bc0fbe517cb6cc4d27bb7f624dcf705c75e882a5fe765266b2ac2241b2e0948ab0043
-DIST smlnj-110.82-old-basis.tgz 969 BLAKE2B 9923870b31b6301d51d0663d243ec476132c7f3ffcdbdba94f9397b796f5fb5fb2dd8fda4fde17c6b74a4fe52fd80ed2c5153a44ee9f1e125b6ad1844447efe6 SHA512 140441f3c83811eda603ae876fec80e2e213129e7d73e57e68235feca2e4d964b6768cdd406ce58422df0f18479d53e45f58f4d3ae450c03aab41dd933cb275c
-DIST smlnj-110.82-pgraph.tgz 5447 BLAKE2B d7d4807392cf47327b34e626d33376d387befcf0758f2fbc43f49a400eef6684e7fa6586d4c55e3c47731224e37cfbbf0d2b28cdd34c51fbfec519748feb2d73 SHA512 450335c2627ca92be2af48ad701b65d71cccf5b1511d41e6cb66d0cacd767361e914a1f00f3a883e0bd6a1a3438451bfa801d087e438932f6ea1e38397ffc226
-DIST smlnj-110.82-runtime.tgz 338575 BLAKE2B 27e9aa2764df9e525ff55dfc726bb9505e7aabae75aed564271081daf5a15ed7f4521042b221d50a555de56234cf24ffc9847efe9211e063b0298b422286b318 SHA512 f1aa053cedb38c64f5049079a9c7c5661fedce379f701f43a3ac104f2d305141d229c06420e986cd6f5449b33e376fd8fce219cacadad510a75df8e51d03485d
-DIST smlnj-110.82-smlnj-c.tgz 10544 BLAKE2B 6c096fbb8a8f135ac0fac1b4be6c4e4521dd0321c3a40c48c27218854104a2420049989968ef7866c2bed58e2beb55071d71fd363fb18fa830f6272f7faa7b02 SHA512 a1beef650094abbce6412bad7ffd7d18114e4b0394eea2df7261a93dc9336873e7ac89d1b57218f43663bbb1c7effd314d0517ef918207d362e057c00c44aabf
-DIST smlnj-110.82-smlnj-lib.tgz 449307 BLAKE2B aa6d21c608d89fc8696075ad13fa5179ee9a80a54f8dd8a446fa148065807a4094048b6da3537c222ff59cf0a6f837706cb6797d0873ac126ca0a3d743b5c7c7 SHA512 9e85b09e8bb4b253da7f0bea44bed55792a022967aa550e3ab0203566b84c6b8e126d91d4a0365c9bdb618d8e5bc1643ecd74ae30d750ff002d81dfea1c809ed
-DIST smlnj-110.82-system.tgz 240758 BLAKE2B 0903bd45a042c4cc5d327a88680f33f44128c1c9c929699813e3c7ba9b88975407b0b7b37b9048090c043485e8f144207529b7575904aa197122851d877b42b9 SHA512 b39fd42fd7418dee86accba9759dc3bb61234ff66ff695a2487c0e98b5640d5256e14edb7e23c8541e17ae35f7c9b27c7c1551d448c1383f61c33b20585a7662
-DIST smlnj-110.82-trace-debug-profile.tgz 3911 BLAKE2B c025b55430519123f4fe7907d45184cd31d0d72d89e1c5f0b8793fa4c59089b7e10f73c740b0eba3bfb39d2ec0e709a9f43482a6143d93b5128239833ca18619 SHA512 47af805b930d0c540139062c3ce3d1ba504e918c2f7817cad52bbae9e16ddc1dfea96f3058ae74afd247113101d59617d2098bfab8e38c701616c12f4610855e
+DIST smlnj-110.99.3-MLRISC.tgz 1457337 BLAKE2B a639a9afcaf1bf3e6521eeaa2dd8cb28f164b4c9b439dcb1370c9189b8ca769fa79f3b6c15aa3ee4db49afd61c321d1a6197ad3a46f7209bd51a431e1249dd49 SHA512 f1f2d7cd1316bd6c4156fc184990ccfee916993283ce0963ff30306089b5c6297d2c4fe55a280f17ae05ad45a764e3bdfcfd1b8ee9a8382a049f323b48692c8a
+DIST smlnj-110.99.3-asdl.tgz 241353 BLAKE2B a9f61116411919c51a56097d59f3501022d3b5d3fbd01660b16c3a5fc629b6b96102b17b1047e29c12c8b739a3ab66ff20a7d0c70d6edd899f26b713b9ac7f94 SHA512 cc703609a192a83766d6e8298912bf427fed66a3d5a20f98c1dcddec63ec234df1d868e418932676a0300bf68b490c5c8e2b8f8106f42bc0d38b93be5dde794d
+DIST smlnj-110.99.3-boot.amd64-unix.tgz 5971321 BLAKE2B c6a7c96344da723dfd88155586b680b6f54e7711335bc88d8f1468d3f989077febe6624596d16d7236e651f17d33b6bdf268e8a99164b46e21780d87c697551b SHA512 8616a06975f285623156637929b202fb1d060718bb990aeeff12e185f36ae0764d7074482eaa446dbf0ed8afd2527bfc38c423cdebfa8ed0346fd43b4d3442e3
+DIST smlnj-110.99.3-boot.ppc-unix.tgz 5839528 BLAKE2B 30da3659d7918126684a6e947200a4080a0366b43a03f20b5f27ec7c94a874ae9102ebf94dcb346e60c10d2155236448f4f59350813e46c3185b08f47e9cde2b SHA512 7a0c8d70c0a65f3cbe5c0d6e2172a037bc5b5314d805fe9686c11290ac30b26d26ad98dcd085092a3c76f2a23cc402857cd38afe4f9b0086f6b8a9cab9c19a53
+DIST smlnj-110.99.3-boot.sparc-unix.tgz 5981512 BLAKE2B 6a86232df38bc0ecf7525d8406f6d4f7fadf4730c20b679d4dc540a92e2cfbe14120bd211a5fc96e9b7bec55f2dcdd2b6fdf5969ff230011992d2ea942b7fec7 SHA512 eb167a171f0b0635619eff7e6c0c2ff5a347f3dbae6c690de334671a3aabc5c6ad0a21e6e3192852f2d86806c3cebb4cd6b769c8cf6e8883bb4ce137af8b1578
+DIST smlnj-110.99.3-boot.x86-unix.tgz 5923052 BLAKE2B 52e9f86e7dabaf51ddb642a135f72c6e59f870152107730f7321f7d1d6c165594bdaaf085795360a9dadccec1cd2595c56b7bf7d84d038254273ab8bd5ec1c03 SHA512 8a6680e910cda9b344192db4978c74f9eb55a872824f9ef9deb7419a43e475277997bba19de8abd8eeffda565f8900aeee31f6a94cb0a0bcdbb067b3ec12457a
+DIST smlnj-110.99.3-ckit.tgz 200785 BLAKE2B 0834239040c7e15b96c8ca8812a0d74f5254bbdca22fdba8da5059ec3a256896fa8840dcc18534b9ba3578cb204fe12665f02337f7e1f46af71f19acc2ee4c45 SHA512 c41835ccc1f0ed4352386a398f6847adfe11bd3926ebaeed6e9c6c9b24ff09ad5c676ac6d98700bb6c2f443b43e733071040452886f7a266b7053cdacc0c7b89
+DIST smlnj-110.99.3-cm.tgz 220282 BLAKE2B 6e4ecfc4d74756b1e69a3f61e25649798c6b74327e4d86ff649e9664f22e092a09b80ff0f6e0b94a5210db97985fabc3803e103b3be1da0f9c2bfccb06064e10 SHA512 5030b99dcfec2abb4be76fc15c7846b602d3fbd14ff78eba087a92b72e43a19584fe667281416ecb48fc3df1e7c9756f36d12a8e6ab66fa3917deaaa383fcf82
+DIST smlnj-110.99.3-cml.tgz 103973 BLAKE2B 4723c4a9f891274bac82168c21d19ec2506fc01f48fd330b179b468f73174c049df78a3948a10fe245f0f84f2f8b433ed0b64fc0340092e30433b247fbbd3773 SHA512 79fc9f7060d484c58171ab9577428ab12abd4376b3074bc87d5db5a080d49073a3950ea3d70baae927a2780a0072e83ce2159381c1d03791bce7ffd5bfcc8331
+DIST smlnj-110.99.3-compiler.tgz 856614 BLAKE2B c98a337003619d5968f416c83422fb1ed92dbb37423630d41e2600d62a8cda1d2eb02ecd681bc79cb71a51881c1f4e6189430a05726d6345585f87a5585bc66a SHA512 4616f1d86417ce542aa3f30159adcbbda5a89fc50248b48e53953d596180444b1af178633ba70b2c47ce9c1351cb718f0aab7bc481f6cd9ef4495b084eef4e28
+DIST smlnj-110.99.3-config.tgz 23167 BLAKE2B 78c6cafc1bc5ac8f6e1fe837c1d1fe8d725eab09713a004a2d89df02c52a2553a2b91a7f540d64b097661b80c1b7bbbbd96f9c2ffdae4e2d3655fd182a7c31aa SHA512 4a2f95cde1314f288f13af499b3af7a97ce799c4653cb8382d2361b46142e57a1943d471b7e841240f7accf7c73bd3a085a6e1d0bf3bbfb0246daf88773f0c38
+DIST smlnj-110.99.3-doc.tgz 2506809 BLAKE2B 3a4d568bd1f36d6268127120fc8aaab105fc777a8e4eae8af9d08254ef5b84a432a188b5b16d32399072a919f177f989abb6229d4126ae5da7fb10bdafecda17 SHA512 a042ab0eed78f0c2b3ece17f9fa0ab30c4327b50270e6f85476fee6676bde98f46288979d605dbd937112451e1014a09acd90f589ba2904eaea5a688caa9118a
+DIST smlnj-110.99.3-eXene.tgz 714453 BLAKE2B 579970eba09897cce2497dc3355a17ef4f8ca3a6f31cfc6a8b910aad3531558c5072c17b5a27fab1922b4a26c0ecf632abd547f2551f0de26e999351879c8c76 SHA512 ba380e7b1c751782015aa3603d54a57901697f13c0eb6c3b1928082224dca16f658cda16b4a3400ff46b3e7a46c1069f59366f35b35e837bcd73c1792515aca4
+DIST smlnj-110.99.3-heap2asm.tgz 1763 BLAKE2B 739ce12c488483b7a74f445f4584f43cd156c2912966bf8ce49ba84ed798c47e45175c47b6033a3be3411285245d4344dc58cfbae6064e2905c36af5fdde4847 SHA512 49eaf8ac9772b62d48cd52c3d395b1f2c40d4ce4f62c90ab875f934f3dae6e20e717d6bc41dc674ffa6f0ec03b437ac0a87478e214ac8d28890077faae8e42f5
+DIST smlnj-110.99.3-ml-burg.tgz 40357 BLAKE2B 3ef88f8ada0110b91db783901e1efefeea835bef94dbfbbb2de08480adaff79c484abcfb196bc473a0c5d517d6120dad56199c548cf52b5ced712090120afe62 SHA512 3b19feaba7d3616b364ccb5cf54e203a5583cfe850b1949bbf1f97182255594b5b8498225b8cfd437fb2066cb9461626358f6d3007646ca2cdfaf3f8fa6fd12c
+DIST smlnj-110.99.3-ml-lex.tgz 28038 BLAKE2B 7891b4c26aa44c945f18cd1300fb7c49455c1d2eef4d7ed425509387edd87abea8e23900fa9777798bd7db976d0f4788c3a97120f13c1778b6d476cca190a747 SHA512 5fc0acb9dcd49b663c2b0f071b1cf0a0619c9aa83ef6736eec330eca74693be3272a1c771928e0b3d0e46fc3058ba69445c8e0bfe6815042d51d5493512c81b3
+DIST smlnj-110.99.3-ml-lpt.tgz 267067 BLAKE2B 3b0a853c92eed28d0d8a4394d1b87761bd093d1e701b289e5de28a351f27e97abb1921a5e5ade6e7dea1faef1dccca4dbcb30aefe4624361b302f14084cf08af SHA512 aa3ae9109d42b42f9f619395807f0f7486f9eee794ef61a43df069ab29fcf028e5efb50831dd5a35519e592a89606be6a51aee9da0078a83e62a37c2f23f54f7
+DIST smlnj-110.99.3-ml-yacc.tgz 101376 BLAKE2B 39f9f50f612c5b263f6146d39262d669d7ee3f65daf7d24a0c950ddea8868f13ac6881860f694cba3ecb6b2f29b4755f1364fac2c08401e537d6c355071ebbde SHA512 0cec5df0cbad8b93e079a70dc5979231443a6563bd61dbeadaf3c82e5a28d61cc6d1ee080c3c003d8ece79fbab6a8a31790e29d10ebd64a644a779103751af89
+DIST smlnj-110.99.3-nlffi.tgz 74810 BLAKE2B 0129c45031c750fcb8b879fa325532170c937ac0dc50e224ff22e1ea7c0822f13794be22ff5bc8c1570ed28b8ff9aa90910cb07b3c18519344bbad17bbf351da SHA512 f35033fcaff75b930f4136d8cf903ee17702856fcb58c3b70bfd5fa69e45d3a37df277d9753e989fb1b1f7f21783758fc167d36f3a4537aa2162a754d652ba84
+DIST smlnj-110.99.3-old-basis.tgz 1363 BLAKE2B 32d3afda93fe372ec8bfc9589101c2e4c2b04259d481b39a3a932d3ff225f9142ecc978dae55081417c6437a5c64e5655c43bb29ccd9dc7d6073ff7b19a94e61 SHA512 1dff1f3e5eafb94c5b235f2cc04af4ab87a927d74eac641bad36e66db39a11078fe9aacc20fadadf9c8d13e4c3f7a211cd64efd7741b0dc45e1b22c013c81329
+DIST smlnj-110.99.3-pgraph.tgz 5367 BLAKE2B f30b054433ccb1394e557fc63dae9d097734fcbadee3bcbcd3cfe7bf2d2f833882ac5d187f846f0895b19eeb75de667b2394295858a6e0d873ff58bf55e3bd83 SHA512 3c9d4f3d42c49cd6950eb42712aafc8a58b253b0fade35b7b4c6a1bfef88b7a5805a07fad1d7e107f31d73912e4f32729b2d001dc5751aa629d0f0b4d1a20401
+DIST smlnj-110.99.3-runtime.tgz 334293 BLAKE2B ce70bd05fc311ed11285aceb4cb78af7f08a18431538a341f768fc04e9aa3b1df1f0f3f86f384622aea59fb3322eb8446176bf3481df6f0efa5d67fd1bf71da1 SHA512 21da06900903a2a460b3a8ea895b3f864df5e8f4606ee9c4303de838678c5ab8df947d2eaca74a0ad057c4ec3b7e20f498cde599d5761db14ce6ce516b4ade41
+DIST smlnj-110.99.3-smlnj-c.tgz 10591 BLAKE2B 1dd6646e64157ee31dbd04a0d7d485012ab31fb1e3855d5bf930e9705298df40d33391363dd927758ae2a931aa7d1f61259c688a437851ebff1b3979f12f6ef7 SHA512 3fb88af71a257229322d88c1bbd30a2081d58ad454f541853d327c785a50b88447db667ac787d6a6a98f449886139b71a4721af65cda18e620889cb3cc0d73de
+DIST smlnj-110.99.3-smlnj-lib.tgz 641512 BLAKE2B 1904fc25ae19f8a62669e8ad81272702df3871b04a8ee82e3526d5cbec15835d17fb9ebc710fa7cad5634a9485b5ae9534cb9015e96fae4c19d8a51bcb57b77e SHA512 e711cee0974a7357c0ecac7e38a8bda1db43da7a5262f5878994aab4df604245ccf70510ed7d1a7ff62cc184399ebe08c4a30fb83a881c95c77ed6179d411151
+DIST smlnj-110.99.3-system.tgz 283393 BLAKE2B 9fbb815ee69269ed962899a8374d5669adde670f1846c2137958fb945bc29ac52ae60a1e7393d6fe5479b037641f53bd938555c483683f4f8532c22a44073224 SHA512 90c84826cbc86ebe43cd8bb4bd8aff6ddae67c05c1d263f0528720ceb6291bdc6ef3d51ea117cea86d5af8412a43f4dc3422eae6c1de4442139e4d366398d3ae
+DIST smlnj-110.99.3-trace-debug-profile.tgz 3890 BLAKE2B 53bc19a0b805bde85527fec711e088e5805420ed969347075f1876ebbc0d13a54a9d5b444da9541fbccdd0e48444ce663806f08ed35095d63d87382dab020f32 SHA512 0fedf4d291823f279caf57695826b61da07cecbc1a10cf259a8faf4352e2631dc3d64f8442bf57c9df0c4a39150f37ab95995c4498b3a6700bd125fd2d8d6c15
+DIST smlnj-110.99.4-MLRISC.tgz 1457408 BLAKE2B 6d01d0a994ded4167e7429ac4d7a7184197a76b454c7270de8c0887a1a38fffc13db7c1ec23a2e26c3ee765de590cb9483ff74ef944ff71a6ed45dfab9b4c268 SHA512 8ab2d36b0f46824060c87080ea1d450de869db48a768772d4725ca2a7c807451ee675554d5440517960fe41d5f64ceb3a8368c97f667b2bbd83d03195666d64e
+DIST smlnj-110.99.4-asdl.tgz 241360 BLAKE2B 3fb88f1a44487bff643bf6d011c234cb27c31c220c8ea929b57f72ebd50c1df4da15444617e5a7adaa9f814b0aec4bf3995aad9871f9c808b4bb86df7dbd106d SHA512 9926bb97ac12b595907e2a86ffd4b208e2283275fabc3383b9a4942b99ec0daf5beaec2781072b21d1fefa2331ae99fc9a1cdbf6daf247714a495fe86c4bba2a
+DIST smlnj-110.99.4-boot.amd64-unix.tgz 5974915 BLAKE2B 81e88ecc65455ce29147130b9b848ba95e64cec184ca3c04020766eeff3bf17b4c8937d105d71748155e71cc5ae1e59a8630b9547123aa554674eba4d8f6b148 SHA512 f3a3baf0c725b590def75d5ba8bc71a46230f26f47cd921ebaf45912954d3ec47abf068c20a2719ce6b5db07b9160d6d75997e0e967073b0585bc415b92c859a
+DIST smlnj-110.99.4-boot.ppc-unix.tgz 5846611 BLAKE2B 9c4dc931135bad8be0a78c4131e0809b2394a16c0a329bfa1cbe2827bc7a19ee8efe375733694439886ba04d9213da6eef4aaee263888070288cba707cd74ce5 SHA512 2c1d569101439d027d0b5d602655eede72baae7359d0870e5d818bb03c627d88896d0b1bc8dc0b3ef9a6d25949ed76084fdd3c4df613e5107aa3e62f651c93ac
+DIST smlnj-110.99.4-boot.sparc-unix.tgz 5987747 BLAKE2B 30f1d35767a642b6d0873dbc3735d9a124d2500b9594f3a61a89688a63f3de7d5e0cdf6bf61a73a683b74ec31f4b62a904c29ad6f2c1c8fc00aa5cd4cae7e7c5 SHA512 6885819a923abce5c90bf9903aa73652020b581f42f1664cd21c79045ef6e6dc0cc014b597c26c4d216519ea0ab4c477db52f94f54199c259c0ba01cce94ae60
+DIST smlnj-110.99.4-boot.x86-unix.tgz 5928155 BLAKE2B 689bedd368396fcf5fef27c109e43bd32a3042fda9d9cfb85905639973a6a41fcdd5829903d79745a62de9fd47ddb89a91b838a4f96e6bc26f5e2c8959b6df5c SHA512 e39a7b80ceb35f4ea2d2ceb8e300f21da1dce54d34f2ff2c174a942621856ab92bdb60194d5a75194b8414abf54d7962a88fe9f04df34843f75bcf59eca43087
+DIST smlnj-110.99.4-ckit.tgz 200781 BLAKE2B f1562b39a7c3560aa6907ec7358beedc033c6be75d0cb6a48ceef0a4c1c59ab8dbc8585a107415e0fcff40fc20c1943f4ba0533bc05e11078a26e089ea793512 SHA512 6a80409659382ae8744acc0ec323a499cf4719414cb90298064c193b20d74c6a8aed22bf6b0debcbfbed33394012ab3cf4f9037a129151c357df7d9cec56bcde
+DIST smlnj-110.99.4-cm.tgz 220303 BLAKE2B fa3fdd023d999e723b588e8edc14f5a92e6393691646b55208e23197d1a13be098a392c77bfc867c52ae2085cd08e818dcfc44096c8d4613eeaca57f7d142a56 SHA512 1826ea9414758d9990d2cc683c86d044ef0cdd6f5fd605f4074a50e25d552994edfe3dba5e18825f689ef60de9560a2b503edd5ed3f5cec19bbd88c34ca28e5b
+DIST smlnj-110.99.4-cml.tgz 103974 BLAKE2B 48151b69fc020250656389c0b073bc75fd3673f21272bafd466aa966cadc3ba21f7f4de1677a4a6979b213ac5aff5bb354657516b014f9bc998a2d72d99c0e15 SHA512 a71f7be7b5a43ea2456a13d231310eee5ae16eff777271bda2fffc9f30d3916481c176c015b8e855f2c41cef5cab90d59351425659eace3bbd9e5a396c91857a
+DIST smlnj-110.99.4-compiler.tgz 856681 BLAKE2B fb073628cdadc800d4dd8d1ef66c54fe500d1aa46e38005d37702f3c7381cdaf8bdf11839f319f9f1c9a7de09d832440cb525effe90b9d603889b5bb6fa189f4 SHA512 eabb38b35fd46a2c9ef66464754d3c470f635bdc395e83a57637191e1ad81881410a55afccb78b3baedee6c944e07844085f243a03d9274708c05f0680450c8e
+DIST smlnj-110.99.4-config.tgz 23360 BLAKE2B e53f3fdd61047cdb14b1cf41f2a9d7aaf024c5ac7189b592dde1ce9bb1a3b851da10e736dcbce00c3c31719f32a169343b973fd6618ee16ee9c398000b019b3c SHA512 13ddc3f48fd532fca58fe4f9c975737726ecfc128ee592f6662b3419f8f21a69362a1ad3bc04f397f9a223dca1ebe7ecee4c31c026f6761f20ec3214ae08c883
+DIST smlnj-110.99.4-doc.tgz 2511006 BLAKE2B fb1830081bdcc59ec9b96d3d8d4408e5a89f55885b62971eb3e6025cfc133ce9d3640d8323852cd247708fa54a33dc3c1e7037d3c0129a0d047adf4697f474e4 SHA512 af4cdb5007efdc1c1b856e5d5a975494354e47c66109e0f3d3740abb81cce8948145b42501a3043dd504075ff3b0ead28e0ae4d0504a0dafd705b75c002eb1e9
+DIST smlnj-110.99.4-eXene.tgz 714479 BLAKE2B e43613b52c80c017e95c7be69a8e3424249701a094be9696016d22cdb0a91010c30bbe6acc132b05844f089d7565c085768feb64c98cae64b1b0427bbe9862dc SHA512 b0ec47155aa81a97cdc8429ec44c197fd20363f5448150cceb88f0698341fe8da25f8fab0e46c7aa8dfdee2bbb0af42078b9e7364248d5bd6afb174b379e12ff
+DIST smlnj-110.99.4-heap2asm.tgz 1763 BLAKE2B 94ac3d22e1de9e17877f48b0f01cb0a0ae35ba5b1fe706ac05be57dff990d2d6910ddd24ed7897a8409cfb5510cc5f6844c0fef81ef352c4ec947151fdc1355e SHA512 ff086979240e6081b939da400f7790f8a9a0eb36185f997574565f47740d9f673ff8d178fc165002851e746b835e58ba0b29a0a8ebfdff7f81511b1b86c6a774
+DIST smlnj-110.99.4-ml-burg.tgz 40359 BLAKE2B 7cdae677c454a5cfde6f914e974bce7b632a1028aaad36d8e8afaa48f07a0b9a787142ecf0c58a22c769ff5dc7a6b37c028bbb409e455fd4a45d756e70811ab0 SHA512 ed7361609ebaa55135896c6fa433672ab0385ca5965757d9b94ee02e05def0c13e22eedbf1662d6faa4203d9051727fd9a20e97fee9961a98fb4c47d621c4a6b
+DIST smlnj-110.99.4-ml-lex.tgz 28037 BLAKE2B 26c5fbfb845288db2d60961565cc374f56d739fe16dcfb39b091452d6ba7c01c70772d57bf7252cb9aba44ee152dcf67e92e8fae1350f7b6a023b9a47d311472 SHA512 394d4963af0ae6e5858103d7a97d3c7036246c17e2fe59447cd2f14acb3c8cfed26ec1ebfd96d46526e4afb2a8f8ce9c48f3a55e776def649fb6330c59b98670
+DIST smlnj-110.99.4-ml-lpt.tgz 267314 BLAKE2B 7a2640d7dcec0303fabf8323a8e1939ff743dd057757fb712bc09c6aa5f8466752b1eed715a5568c445bcb36dd44a965424a260ef6f210c452ba59c62420244d SHA512 9e2508b66a1134060325b95d32eb527c6c81f4fac57c7916cfded861fa15335487a3adabbe78402de59c0c78e78b9ab216d82db8319e04f3cc1cbfabd051a0e8
+DIST smlnj-110.99.4-ml-yacc.tgz 101365 BLAKE2B 12efc1b8673a51566915d78ddfeed31e69494dcf88464d3231cedb2d4f811b86025ba7d535fb2f605b9cabef8e6a466691803f8bf7daa8a52ae5fae4b118f4a3 SHA512 af1298f2d8401071d73b49a17f5aa23823cb5bcab5601d60c2c5ce841722e4ab623f84838524ce428a88066b05951b64e10981f97628da8b66ec6f3031b68fe4
+DIST smlnj-110.99.4-nlffi.tgz 74821 BLAKE2B ae5d170784cc604216f9abc1d2a996002cbef333525cce5ee94a0053a3a65f62d415d9abc0b74f0337fae7dc120a6278a223872a1b39f2b22a6f931f044da57b SHA512 9a5ae94f407651b4e342a803d3f857fd2eb62a577a23113aa7e69646a16250e992bd92c60208add10b48036a8beeff7b96cc97ac6a15cdee8e93b138b0950255
+DIST smlnj-110.99.4-old-basis.tgz 1363 BLAKE2B 984e4c888ee83907f179aef23f89299417b87dc7611abf357d20e78ce8a8411589db5cb9aa04b9f2c7ab883c301aa8eb7fdad7dd276c71f12bf5edbddd35a945 SHA512 ceeaab53cc9f88a2a0096a71cabe66e20fa0b16c2d5d189da87444fa512f9c74d96773071d78d760d45df2950cbc2726c35eb5f0f1e500493dcc77bb8f01277d
+DIST smlnj-110.99.4-pgraph.tgz 5368 BLAKE2B 2c8d5101807506c151c97e51ad11d7abe2ad4897cf766d23535e4abf830d76ec67684169e1347e46b98a2aa1518d399e75d1342b4caa2121f00c1dc2a3fa309b SHA512 0d51518c88a53c945a37d6bcf9678159811197b558c02ec529dd0d8a389466c3780ec1a58dabacbb7d46872f989f724866fd4ba6d0d30d608ca09d1a853adebc
+DIST smlnj-110.99.4-runtime.tgz 334322 BLAKE2B 61dae19bfa0f48533b9def27e971566032bdbc01ba54d5300643a668e5be86e2064aefcc93c31e074cd9fa04e1af719b3c5aa98529dc8f17629d704e3a1e712b SHA512 0406c4a55fecade5c47457c5cf4245a3a81d04214953066b846023cb863b27401121422b04d423905ceeecd9cdac238309d9b4967a396a05f13b35343e56bb51
+DIST smlnj-110.99.4-smlnj-c.tgz 10589 BLAKE2B df85102595bfdb492ee1a8967f4fc322b7d9366a579731a7984512d9ea24f4a06db2b51d96c168daa34b9d90f81bf3e4e771c590298833e059652b3732af8482 SHA512 ebe714a2cf18e0b0763e1819ddc83fbc3250ee49d386b4bbb5d5d653e92ed01d83aac0aaa89aace8d451fc0c681c82cfc725817e909fa16fd27b341067ec4b3d
+DIST smlnj-110.99.4-smlnj-lib.tgz 645485 BLAKE2B a1adc247c82dde766a34026a2cef77b4b89cc80f52b4a949173910d30aae2a8a28dc716691c7248d145791c81c27aae75f9b5a91cdcdd3397f1f944255c50c60 SHA512 ac32ed428de0512534445991ae02755170d61dfaa3d4ae5234b437edb7ed6cf9e72e94bfe8edbfd40e5bc7f7a18a97d90a42f5b4f8cbfac2b66cff1b8b6318fc
+DIST smlnj-110.99.4-system.tgz 282951 BLAKE2B 61ecb598b2daeefcd62ff8214579ecf30434368fb3b3d75edc2b701170ed9719b9f1bc8114c440ab3582329e5e965b3d1fc4287be0226707766bfc796db49fcf SHA512 35b5c2c1e27745c4f366d655768cbb5fd08953f58906751d49e6a4b5d19dd13bb0e1003e7dac5990dc121c81fc3ecab242a367ef43a02a2728ff3de9d2f0ad1b
+DIST smlnj-110.99.4-trace-debug-profile.tgz 3891 BLAKE2B 81cec5f57efc4345a287b5a0b5d93ee96271c2494feb06df3c4583bf23e6079322e9f93e0092469a233954ab145e7e6d56b821bf8bffb85c8d92338ad0fd7163 SHA512 db8c147d65b6211fdff71171a2b517726502e742c7ae48e4bb326decaaeba8ab5abfefd192cc7381182dc266d26a81d2792635821256c7ed7ff7652e9f6fbd41
diff --git a/dev-lang/smlnj/files/smlnj-110.82-pax-p1.patch b/dev-lang/smlnj/files/smlnj-110.82-pax-p1.patch
deleted file mode 100644
index d0291c9118a7..000000000000
--- a/dev-lang/smlnj/files/smlnj-110.82-pax-p1.patch
+++ /dev/null
@@ -1,116 +0,0 @@
---- base-orig/runtime/objs/makefile 2012-04-18 10:28:08.000000000 +1000
-+++ base/runtime/objs/makefile 2018-03-10 10:21:07.417776270 +1100
-@@ -12,6 +12,7 @@
- AR = ar
- ARFLAGS = rcv
- RANLIB = ranlib
-+PAXMARK = true
-
- #
- # dummy version
-@@ -114,6 +115,7 @@
-
- $(RUNTIME): $(VERSION) main.o $(OBJS) $(ALL_LIBS)
- $(CC) -o $(RUNTIME) $(CFLAGS) $(LDFLAGS) main.o $(OBJS) $(ALL_LIBS) $(LD_LIBS) -lm
-+ $(PAXMARK) -m $(RUNTIME)
-
- $(RUNTIME_A): $(VERSION) main.o $(OBJS) $(ALL_LIBS)
- rm -f $(RUNTIME_A)
---- base-orig/runtime/objs/mk.alpha32-dunix 2000-06-02 04:34:03.000000000 +1000
-+++ base/runtime/objs/mk.alpha32-dunix 2018-03-10 11:31:32.572918457 +1100
-@@ -10,6 +10,7 @@
- LDFLAGS = -non_shared -T 20000000 -D 40000000
- AS = as -nocpp
- AR = /usr/ucb/ar
-+PAXMARK = true
- XOBJS =
- XLIBS =
- LD_LIBS =
-@@ -20,4 +21,4 @@
- RUNTIME = run.alpha32-dunix
-
- all:
-- (make RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" CC="$(CC)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" AS="$(AS)" AR="$(AR)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
-+ (make RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" CC="$(CC)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" AS="$(AS)" AR="$(AR)" PAXMARK="$(PAXMARK)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
---- base-orig/runtime/objs/mk.alpha32x-osf1 2000-06-02 04:34:03.000000000 +1000
-+++ base/runtime/objs/mk.alpha32x-osf1 2018-03-10 11:31:32.573918461 +1100
-@@ -8,6 +8,7 @@
- LDFLAGS = -non_shared -T 20000000 -D 40000000
- AS = as -nocpp
- AR = /usr/ucb/ar
-+PAXMARK = true
- XOBJS =
- XLIBS =
- LD_LIBS =
-@@ -18,4 +19,4 @@
- RUNTIME = run.alpha32x-osf1
-
- all:
-- (make RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" CC="$(CC)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" AS="$(AS)" AR="$(AR)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
-+ (make RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" CC="$(CC)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" AS="$(AS)" AR="$(AR)" PAXMARK="$(PAXMARK)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
---- base-orig/runtime/objs/mk.amd64-darwin 2017-08-23 04:41:35.000000000 +1000
-+++ base/runtime/objs/mk.amd64-darwin 2018-03-10 11:31:32.575918471 +1100
-@@ -14,6 +14,7 @@
- CC = cc -m64 -std=c99
- CFLAGS = -g -O2 -D_DARWIN_C_SOURCE $(SDK)
- CPP = cc -x assembler-with-cpp -E -P -std=c99
-+PAXMARK = true
- XOBJS =
- XLIBS = ../c-libs/dl/libunix-dynload.a
- LD_LIBS = -ldl
-@@ -28,5 +29,5 @@
- RUNTIMEX = runx.amd64-darwin
-
- all:
-- ($(MAKE) RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" AS="$(AS)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
-- ($(MAKE) RUNTIME="$(RUNTIMEX)" VERSION="$(VERSION)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" LDFLAGS="-Xlinker -r" $(RUNTIMEX))
-+ ($(MAKE) RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" AS="$(AS)" PAXMARK="$(PAXMARK)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
-+ ($(MAKE) RUNTIME="$(RUNTIMEX)" VERSION="$(VERSION)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" PAXMARK="$(PAXMARK)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" LDFLAGS="-Xlinker -r" $(RUNTIMEX))
---- base-orig/runtime/objs/mk.hppa-hpux 2000-06-02 04:34:03.000000000 +1000
-+++ base/runtime/objs/mk.hppa-hpux 2018-03-10 11:31:32.577918480 +1100
-@@ -16,6 +16,7 @@
-
- AS = /usr/ccs/bin/as
- RANLIB = ar ts
-+PAXMARK = true
-
- XOBJS =
- XLIBS =
-@@ -27,4 +28,4 @@
- RUNTIME = run.hppa-hpux
-
- all:
-- (make RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" CC="$(CC)" CPP="$(CPP)" CFLAGS="$(CFLAGS)" AS="$(AS)" RANLIB="$(RANLIB)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
-+ (make RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" CC="$(CC)" CPP="$(CPP)" CFLAGS="$(CFLAGS)" AS="$(AS)" RANLIB="$(RANLIB)" PAXMARK="$(PAXMARK)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
---- base-orig/runtime/objs/mk.hppa-hpux11 2005-07-21 00:30:18.000000000 +1000
-+++ base/runtime/objs/mk.hppa-hpux11 2018-03-10 11:31:32.579918490 +1100
-@@ -17,6 +17,7 @@
-
- AS = /usr/ccs/bin/as
- RANLIB = ar ts
-+PAXMARK = true
-
- XOBJS =
- XLIBS =
-@@ -28,4 +29,4 @@
- RUNTIME = run.hppa-hpux11
-
- all:
-- (make RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" CC="$(CC)" CPP="$(CPP)" CFLAGS="$(CFLAGS)" AS="$(AS)" RANLIB="$(RANLIB)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
-+ (make RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" CC="$(CC)" CPP="$(CPP)" CFLAGS="$(CFLAGS)" AS="$(AS)" RANLIB="$(RANLIB)" PAXMARK="$(PAXMARK)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
---- base-orig/runtime/objs/mk.hppa-hpux9 2000-06-02 04:34:03.000000000 +1000
-+++ base/runtime/objs/mk.hppa-hpux9 2018-03-10 11:31:32.581918499 +1100
-@@ -13,6 +13,7 @@
-
- AS = /bin/as
- RANLIB = ar ts
-+PAXMARK = true
-
- XOBJS =
- XLIBS =
-@@ -24,4 +25,4 @@
- RUNTIME = run.hppa-hpux9
-
- all:
-- (make CHECK_HEAP=check-heap.o RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" CC="$(CC)" CPP="$(CPP)" CFLAGS="$(CFLAGS)" AS="$(AS)" RANLIB="$(RANLIB)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
-+ (make CHECK_HEAP=check-heap.o RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" CC="$(CC)" CPP="$(CPP)" CFLAGS="$(CFLAGS)" AS="$(AS)" RANLIB="$(RANLIB)" PAXMARK="$(PAXMARK)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
diff --git a/dev-lang/smlnj/files/smlnj-110.82-pax-p2.patch b/dev-lang/smlnj/files/smlnj-110.82-pax-p2.patch
deleted file mode 100644
index 7a7f30f11373..000000000000
--- a/dev-lang/smlnj/files/smlnj-110.82-pax-p2.patch
+++ /dev/null
@@ -1,132 +0,0 @@
---- base-orig/runtime/objs/mk.ppc-aix 2012-08-03 04:03:33.000000000 +1000
-+++ base/runtime/objs/mk.ppc-aix 2018-03-10 11:31:32.583918509 +1100
-@@ -7,6 +7,7 @@
- CC = cc
- CFLAGS = -O2
- CPP = /lib/cpp
-+PAXMARK = true
-
- #CC = gcc -ansi
- #CFLAGS = -O2
-@@ -22,4 +23,4 @@
- RUNTIME = run.ppc-aix
-
- all:
-- (make RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" CC="$(CC)" CPP="$(CPP)" CFLAGS="$(CFLAGS)" AS="$(AS)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
-+ (make RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" CC="$(CC)" CPP="$(CPP)" CFLAGS="$(CFLAGS)" AS="$(AS)" PAXMARK="$(PAXMARK)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
---- base-orig/runtime/objs/mk.ppc-darwin 2012-08-03 04:03:33.000000000 +1000
-+++ base/runtime/objs/mk.ppc-darwin 2018-03-10 11:31:32.584918513 +1100
-@@ -13,6 +13,7 @@
- CC = cc -ansi
- CFLAGS = -g -O2 -D_NONSTD_SOURCE
- CPP = cc -x assembler-with-cpp -E -P -ansi
-+PAXMARK = true
- XOBJS =
- XLIBS = ../c-libs/dl/libunix-dynload.a
- LD_LIBS = -ldl
-@@ -25,5 +26,5 @@
- RUNTIMEX = runx.ppc-darwin
-
- all:
-- ($(MAKE) RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
-- ($(MAKE) RUNTIME="$(RUNTIMEX)" VERSION="$(VERSION)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" LDFLAGS="-Xlinker -r" $(RUNTIMEX))
-+ ($(MAKE) RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" PAXMARK="$(PAXMARK)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
-+ ($(MAKE) RUNTIME="$(RUNTIMEX)" VERSION="$(VERSION)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" PAXMARK="$(PAXMARK)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" LDFLAGS="-Xlinker -r" $(RUNTIMEX))
---- base-orig/runtime/objs/mk.ppc-linux 2015-09-23 00:26:12.000000000 +1000
-+++ base/runtime/objs/mk.ppc-linux 2018-03-10 11:31:32.587918528 +1100
-@@ -8,6 +8,7 @@
- CC = gcc -ansi
- CFLAGS = -O2
- CPP = gcc -x c -E -P -ansi
-+PAXMARK = true
- #XOBJS = xmonitor.o
- #LD_LIBS = -lX11
- #BASE_DEFS = -DHEAP_MONITOR
-@@ -22,4 +23,4 @@
- RUNTIME = run.ppc-linux
-
- all:
-- ($(MAKE) RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
-+ ($(MAKE) RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" PAXMARK="$(PAXMARK)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
---- base-orig/runtime/objs/mk.ppc-openbsd 2014-08-20 21:39:44.000000000 +1000
-+++ base/runtime/objs/mk.ppc-openbsd 2018-03-10 11:31:32.589918537 +1100
-@@ -11,6 +11,7 @@
- CC ?= gcc -ansi
- CFLAGS ?= -O2
- CPP = gcc -x assembler-with-cpp -E -P
-+PAXMARK = true
-
- XOBJS =
- XLIBS = ../c-libs/dl/libunix-dynload.a
-@@ -22,4 +23,4 @@
- RUNTIME = run.ppc-openbsd
-
- all:
-- ($(MAKE) RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" MAKE="$(MAKE)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
-+ ($(MAKE) RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" MAKE="$(MAKE)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" PAXMARK="$(PAXMARK)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
---- base-orig/runtime/objs/mk.sparc-solaris 2001-06-16 05:05:19.000000000 +1000
-+++ base/runtime/objs/mk.sparc-solaris 2018-03-10 11:31:32.591918547 +1100
-@@ -12,6 +12,7 @@
- #CFLAGS = -g
- CPP = $(GCC) -x c -E -P
- RANLIB = $(AR) ts
-+PAXMARK = true
-
- #XOBJS = xmonitor.o
- #LD_LIBS = -lX11
-@@ -28,4 +29,4 @@
- RUNTIME = run.sparc-solaris
-
- all:
-- ($(MAKE) RUNTIME="$(RUNTIME)" MAKE="$(MAKE)" VERSION="$(VERSION)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" AS="$(AS)" AR="$(AR)" RANLIB="$(RANLIB)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
-+ ($(MAKE) RUNTIME="$(RUNTIME)" MAKE="$(MAKE)" VERSION="$(VERSION)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" AS="$(AS)" AR="$(AR)" RANLIB="$(RANLIB)" PAXMARK="$(PAXMARK)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
---- base-orig/runtime/objs/mk.sparc-sunos 2000-06-02 04:34:03.000000000 +1000
-+++ base/runtime/objs/mk.sparc-sunos 2018-03-10 11:31:32.593918556 +1100
-@@ -6,6 +6,7 @@
- CC = gcc -ansi
- CFLAGS = -O2
- CPP = gcc -x c -E -P -ansi
-+PAXMARK = true
- #XOBJS = xmonitor.o
- #LD_LIBS = -lX11
- #BASE_DEFS = -DHEAP_MONITOR
-@@ -19,4 +20,4 @@
- RUNTIME = run.sparc-sunos
-
- all:
-- (make RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
-+ (make RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" PAXMARK="$(PAXMARK)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
---- base-orig/runtime/objs/mk.x86-cygwin 2004-03-20 05:54:52.000000000 +1100
-+++ base/runtime/objs/mk.x86-cygwin 2018-03-10 11:31:32.595918566 +1100
-@@ -7,6 +7,7 @@
- CC = gcc
- CFLAGS = -O2
- CPP = gcc -x assembler-with-cpp -E -P
-+PAXMARK = true
- XOBJS =
- XLIBS = ../c-libs/dl/libunix-dynload.a
- #LD_LIBS = -lws2_32 -Wl,--export-all -output-def=smlnj.def
-@@ -19,4 +20,4 @@
- RUNTIME = run.x86-cygwin
-
- all:
-- ($(MAKE) RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
-+ ($(MAKE) RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" PAXMARK="$(PAXMARK)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
---- base-orig/runtime/objs/mk.x86-darwin 2016-08-17 01:10:45.000000000 +1000
-+++ base/runtime/objs/mk.x86-darwin 2018-03-10 11:31:32.597918575 +1100
-@@ -37,6 +37,7 @@
- CC = cc -m32 -std=c99
- CFLAGS = -g -O2 -D_DARWIN_C_SOURCE $(SDK)
- CPP = cc -x assembler-with-cpp -E -P -std=c99
-+PAXMARK = true
- XOBJS =
- XLIBS = ../c-libs/dl/libunix-dynload.a
- LD_LIBS = -ldl
-@@ -49,5 +50,5 @@
- RUNTIMEX = runx.x86-darwin
-
- all:
-- ($(MAKE) RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" AS="$(AS)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
-- ($(MAKE) RUNTIME="$(RUNTIMEX)" VERSION="$(VERSION)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" LDFLAGS="-Xlinker -r" $(RUNTIMEX))
-+ ($(MAKE) RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" AS="$(AS)" PAXMARK="$(PAXMARK)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
-+ ($(MAKE) RUNTIME="$(RUNTIMEX)" VERSION="$(VERSION)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" PAXMARK="$(PAXMARK)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" LDFLAGS="-Xlinker -r" $(RUNTIMEX))
diff --git a/dev-lang/smlnj/files/smlnj-110.82-pax-p3.patch b/dev-lang/smlnj/files/smlnj-110.82-pax-p3.patch
deleted file mode 100644
index fe2c183da5a4..000000000000
--- a/dev-lang/smlnj/files/smlnj-110.82-pax-p3.patch
+++ /dev/null
@@ -1,137 +0,0 @@
---- base-orig/runtime/objs/mk.x86-freebsd 2006-04-21 01:28:53.000000000 +1000
-+++ base/runtime/objs/mk.x86-freebsd 2018-03-10 11:31:32.599918584 +1100
-@@ -12,6 +12,7 @@
- CFLAGS = -O2
- CPP = gcc -x assembler-with-cpp -E -P
- #CPP = /usr/bin/cpp -P
-+PAXMARK = true
-
- XOBJS =
- XLIBS = ../c-libs/dl/libunix-dynload.a
-@@ -25,6 +26,6 @@
- RUNTIME_A = run.x86-freebsd.a
-
- all:
-- ($(MAKE) RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" MAKE="$(MAKE)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
-- ($(MAKE) RUNTIME="$(RUNTIME_SO)" VERSION="$(VERSION)" MAKE="$(MAKE)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" LDFLAGS="-shared" $(RUNTIME_SO))
-- ($(MAKE) RUNTIME_A="$(RUNTIME_A)" VERSION="$(VERSION)" MAKE="$(MAKE)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" LDFLAGS="" $(RUNTIME_A))
-+ ($(MAKE) RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" MAKE="$(MAKE)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" PAXMARK="$(PAXMARK)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
-+ ($(MAKE) RUNTIME="$(RUNTIME_SO)" VERSION="$(VERSION)" MAKE="$(MAKE)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" PAXMARK="$(PAXMARK)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" LDFLAGS="-shared" $(RUNTIME_SO))
-+ ($(MAKE) RUNTIME_A="$(RUNTIME_A)" VERSION="$(VERSION)" MAKE="$(MAKE)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" PAXMARK="$(PAXMARK)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" LDFLAGS="" $(RUNTIME_A))
---- base-orig/runtime/objs/mk.x86-linux 2014-10-12 06:28:40.000000000 +1100
-+++ base/runtime/objs/mk.x86-linux 2018-03-10 11:31:32.600918589 +1100
-@@ -8,6 +8,7 @@
- CC = gcc -ansi
- CFLAGS = -O2 -m32
- CPP = gcc -x assembler-with-cpp -E -P
-+PAXMARK = true
- #XOBJS = xmonitor.o
- #LD_LIBS = -lX11
- #BASE_DEFS = -DHEAP_MONITOR
-@@ -27,6 +28,6 @@
- RUNTIME_A = run.x86-linux.a
-
- all:
-- ($(MAKE) RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" AS="$(AS)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
-- ($(MAKE) RUNTIME="$(RUNTIME_SO)" VERSION="$(VERSION)" AS="$(AS)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" LDFLAGS="-shared" $(RUNTIME_SO))
-- ($(MAKE) RUNTIME_A="$(RUNTIME_A)" VERSION="$(VERSION)" AS="$(AS)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" LDFLAGS="" $(RUNTIME_A))
-+ ($(MAKE) RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" AS="$(AS)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" PAXMARK="$(PAXMARK)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
-+ ($(MAKE) RUNTIME="$(RUNTIME_SO)" VERSION="$(VERSION)" AS="$(AS)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" PAXMARK="$(PAXMARK)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" LDFLAGS="-shared" $(RUNTIME_SO))
-+ ($(MAKE) RUNTIME_A="$(RUNTIME_A)" VERSION="$(VERSION)" AS="$(AS)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" PAXMARK="$(PAXMARK)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" LDFLAGS="" $(RUNTIME_A))
---- base-orig/runtime/objs/mk.x86-linux-pthreads 2014-10-12 06:28:40.000000000 +1100
-+++ base/runtime/objs/mk.x86-linux-pthreads 2018-03-10 11:31:32.602918599 +1100
-@@ -7,6 +7,7 @@
- CC = gcc -ansi
- CFLAGS = -O2 -D_REENTRANT
- CPP = gcc -x assembler-with-cpp -E -P
-+PAXMARK = true
- #XOBJS = xmonitor.o
- #LD_LIBS = -lX11
- #BASE_DEFS = -DHEAP_MONITOR
-@@ -21,4 +22,4 @@
- RUNTIME = run.x86-linux
-
- all:
-- ($(MAKE) RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
-+ ($(MAKE) RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" PAXMARK="$(PAXMARK)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
---- base-orig/runtime/objs/mk.x86-netbsd 2006-02-11 09:14:59.000000000 +1100
-+++ base/runtime/objs/mk.x86-netbsd 2018-03-10 11:31:32.604918608 +1100
-@@ -12,6 +12,7 @@
- CFLAGS = -O2
- CPP = gcc -x assembler-with-cpp -E -P
- #CPP = /usr/bin/cpp -P
-+PAXMARK = true
-
- XOBJS =
- XLIBS = ../c-libs/dl/libunix-dynload.a
-@@ -23,4 +24,4 @@
- RUNTIME = run.x86-netbsd
-
- all:
-- ($(MAKE) RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" MAKE="$(MAKE)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
-+ ($(MAKE) RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" MAKE="$(MAKE)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" PAXMARK="$(PAXMARK)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
---- base-orig/runtime/objs/mk.x86-netbsd2 2006-02-11 09:14:59.000000000 +1100
-+++ base/runtime/objs/mk.x86-netbsd2 2018-03-10 11:31:32.605918613 +1100
-@@ -12,6 +12,7 @@
- CFLAGS = -O2
- CPP = gcc -x assembler-with-cpp -E -P
- #CPP = /usr/bin/cpp -P
-+PAXMARK = true
-
- XOBJS =
- XLIBS = ../c-libs/dl/libunix-dynload.a
-@@ -23,4 +24,4 @@
- RUNTIME = run.x86-netbsd
-
- all:
-- ($(MAKE) RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" MAKE="$(MAKE)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
-+ ($(MAKE) RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" MAKE="$(MAKE)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" PAXMARK="$(PAXMARK)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
---- base-orig/runtime/objs/mk.x86-openbsd 2008-12-03 03:50:18.000000000 +1100
-+++ base/runtime/objs/mk.x86-openbsd 2018-03-10 11:31:32.607918622 +1100
-@@ -12,6 +12,7 @@
- CFLAGS = -O2
- CPP = gcc -x assembler-with-cpp -E -P
- #CPP = /usr/bin/cpp -P
-+PAXMARK = true
-
- XOBJS =
- XLIBS = ../c-libs/dl/libunix-dynload.a
-@@ -23,4 +24,4 @@
- RUNTIME = run.x86-openbsd
-
- all:
-- ($(MAKE) RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" MAKE="$(MAKE)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
-+ ($(MAKE) RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" MAKE="$(MAKE)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" PAXMARK="$(PAXMARK)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
---- base-orig/runtime/objs/mk.x86-solaris 2004-02-01 01:24:42.000000000 +1100
-+++ base/runtime/objs/mk.x86-solaris 2018-03-10 11:31:32.609918632 +1100
-@@ -15,6 +15,7 @@
- CFLAGS = -O2
- CPP = gcc -x assembler-with-cpp -E -P
- RANLIB = $(AR) ts
-+PAXMARK = true
-
- XOBJS =
- XLIBS =
-@@ -26,4 +27,4 @@
- RUNTIME = run.x86-solaris
-
- all:
-- ($(MAKE) RUNTIME="$(RUNTIME)" MAKE="$(MAKE)" VERSION="$(VERSION)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" AS="$(AS)" AR="$(AR)" RANLIB="$(RANLIB)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
-+ ($(MAKE) RUNTIME="$(RUNTIME)" MAKE="$(MAKE)" VERSION="$(VERSION)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" AS="$(AS)" AR="$(AR)" RANLIB="$(RANLIB)" PAXMARK="$(PAXMARK)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
---- base-orig/runtime/objs/mk.x86-win32 2004-08-03 05:44:48.000000000 +1000
-+++ base/runtime/objs/mk.x86-win32 2018-03-10 11:31:32.611918641 +1100
-@@ -8,6 +8,7 @@
- CC = cl
- CFLAGS = /Zi
- CPP = cl /E /EP
-+PAXMARK = true
- XOBJS =
- XLIBS =
- XCLIBS =
-@@ -23,5 +24,5 @@
- RUNTIME = run.x86-win32.exe
-
- all:
-- ($(MAKE) MAKE="$(MAKE)" RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" XCLIBS="$(XCLIBS)" $(RUNTIME))
-+ ($(MAKE) MAKE="$(MAKE)" RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" PAXMARK="$(PAXMARK)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" XCLIBS="$(XCLIBS)" $(RUNTIME))
-
diff --git a/dev-lang/smlnj/files/smlnj-110.99.3-shuffle.patch b/dev-lang/smlnj/files/smlnj-110.99.3-shuffle.patch
new file mode 100644
index 000000000000..8073e36baf41
--- /dev/null
+++ b/dev-lang/smlnj/files/smlnj-110.99.3-shuffle.patch
@@ -0,0 +1,10 @@
+--- a/base/runtime/c-libs/smlnj-date/makefile 2023-01-23 08:32:22.450319630 +0100
++++ b/base/runtime/c-libs/smlnj-date/makefile 2023-01-23 08:37:23.920174357 +0100
+@@ -26,6 +26,7 @@
+ strftime.o \
+ unix-date.o
+
++$(OBJS) : $(VERSION)
+ $(LIBRARY) : $(VERSION) $(OBJS)
+ rm -rf $(LIBRARY)
+ $(AR) $(ARFLAGS) $(LIBRARY) $(OBJS)
diff --git a/dev-lang/smlnj/metadata.xml b/dev-lang/smlnj/metadata.xml
index e7ce88d55f5e..9952eb208297 100644
--- a/dev-lang/smlnj/metadata.xml
+++ b/dev-lang/smlnj/metadata.xml
@@ -1,9 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+
<pkgmetadata>
-<!-- maintainer-needed -->
- <use>
- <flag name="pax_kernel">Enable if the user plans to run the
- package under a pax enabled hardened kernel</flag>
- </use>
+ <maintainer type="project">
+ <email>ml@gentoo.org</email>
+ <name>ML</name>
+ </maintainer>
+ <longdescription>
+ Standard ML of New Jersey (abbreviated SML/NJ) is a compiler for
+ the Standard ML '97 programming language with associated libraries,
+ tools, and documentation. SML/NJ is free, open source software.
+ </longdescription>
</pkgmetadata>
diff --git a/dev-lang/smlnj/smlnj-110.82.ebuild b/dev-lang/smlnj/smlnj-110.82.ebuild
deleted file mode 100644
index 5d27434d3e35..000000000000
--- a/dev-lang/smlnj/smlnj-110.82.ebuild
+++ /dev/null
@@ -1,166 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="6"
-
-inherit eutils multilib toolchain-funcs
-
-DESCRIPTION="Standard ML of New Jersey compiler and libraries"
-HOMEPAGE="http://www.smlnj.org"
-
-BASE_URI="http://smlnj.cs.uchicago.edu/dist/working/${PV}"
-
-FILES="
-doc.tgz
-
-config.tgz
-
-cm.tgz
-compiler.tgz
-runtime.tgz
-system.tgz
-MLRISC.tgz
-smlnj-lib.tgz
-old-basis.tgz
-
-ckit.tgz
-nlffi.tgz
-
-cml.tgz
-eXene.tgz
-
-ml-lpt.tgz
-ml-lex.tgz
-ml-yacc.tgz
-ml-burg.tgz
-
-pgraph.tgz
-trace-debug-profile.tgz
-
-heap2asm.tgz
-
-smlnj-c.tgz
-"
-
-#use amd64 in 32-bit mode
-SRC_URI="amd64? ( ${BASE_URI}/boot.x86-unix.tgz -> ${P}-boot.x86-unix.tgz )
- ppc? ( ${BASE_URI}/boot.ppc-unix.tgz -> ${P}-boot.ppc-unix.tgz )
- sparc? ( ${BASE_URI}/boot.sparc-unix.tgz -> ${P}-boot.sparc-unix.tgz )
- x86? ( ${BASE_URI}/boot.x86-unix.tgz -> ${P}-boot.x86-unix.tgz )"
-
-for file in ${FILES}; do
- SRC_URI+=" ${BASE_URI}/${file} -> ${P}-${file} "
-done
-
-LICENSE="BSD"
-SLOT="0"
-
-#sparc support should be there but is untested
-KEYWORDS="-* ~amd64 ~ppc ~x86"
-IUSE="pax_kernel"
-DEPEND="pax_kernel? ( sys-apps/elfix )"
-RDEPEND=""
-
-S=${WORKDIR}
-
-src_unpack() {
- mkdir -p "${S}"
- for file in ${A}; do
- [[ ${file} != ${P}-config.tgz ]] && cp "${DISTDIR}/${file}" "${S}/${file#${P}-}"
- done
-
-# make sure we don't use the internet to download anything
- unpack ${P}-config.tgz && rm config/*.bat
- echo SRCARCHIVEURL=\"file:/${S}\" > "${S}"/config/srcarchiveurl
-}
-
-src_prepare() {
- # respect CC et al. (bug 243886)
- mkdir base || die # without this unpacking runtime will fail
- ./config/unpack "${S}" runtime || die
- epatch "${FILESDIR}/${PN}-110.82-pax-p1.patch"
- epatch "${FILESDIR}/${PN}-110.82-pax-p2.patch"
- epatch "${FILESDIR}/${PN}-110.82-pax-p3.patch"
- default
- for file in mk.*; do
- sed -e "/^AS/s:as:$(tc-getAS):" \
- -e "/^CC/s:gcc:$(tc-getCC):" \
- -e "/^CPP/s:gcc:$(tc-getCC):" \
- -e "/^CFLAGS/{s:-O[0123s]:: ; s:=:= ${CFLAGS}:}" \
- -e "/^PAXMARK/s:true:"$(usex pax_kernel "paxmark.sh" "true")":" \
- -i base/runtime/objs/${file}
- done
-}
-
-src_compile() {
- SMLNJ_HOME="${S}" \
- ./config/install.sh || die "compilation failed"
-}
-
-# Return an array which has the element $1 removed from the array $[@]:1
-# i.e. return an array where the first function argument $1 removed from
-# the array consisting of the rest of the function arguments.
-remove_element_from_array() {
- local args=("$@")
- local e=${args[0]}
- local oa=()
- for x in "${args[@]:1}"; do
- if [ ${x} != ${e} ]; then
- oa+=( ${x} )
- fi
- done
- echo "${oa[@]}"
-}
-
-# smlnj 110.82 is still only 32 bit. On a multilib 64 bit system
-# smlnj_get_libdir tries to find the 32 bit lib directory. Or otherwise,
-# just return the system lib directory $(get_libdir).
-smlnj_get_libdir() {
- local x=$(get_all_libdirs)
- # Remove the native lib dir
- local y=$(remove_element_from_array $(get_libdir) ${x[@]})
- # Remove libx32 if it exists
- local z=$(remove_element_from_array "libx32" ${y[@]})
- # However if the system is not multlib, then we still need to install
- # the 32 bit smlnj executables and libraries somewhere, so I guess we
- # just have to put them under the system lib directory. Put the
- # native lib dir back on the end of the array.
- z+=( $(get_libdir) )
- # Then return the first element of the array, which should be the 32 bit
- # lib directory on multilib systems, or the 32 bit lib directory on
- # 32 bit systems, or the system 64 bit lib directory on non-multilib
- # 64 bit systems.
- echo ${z[0]}
-}
-
-src_install() {
- SUBDIR=$(smlnj_get_libdir)/${PN}
- DIR=/usr/${SUBDIR}
- for file in bin/{*,.*}; do
- [[ -f ${file} ]] && sed -e "2iSMLNJ_HOME=${EPREFIX}/${DIR}" \
- -e "s:${WORKDIR}:${EPREFIX}/${DIR}:" -i ${file}
- done
- dodir ${DIR}/bin
- exeinto ${DIR}/bin
- pushd bin || die
- for i in .arch-n-opsys .link-sml .run-sml heap2exec ml-* sml; do
- doexe ${i}
- done
- for i in heap2exec ml-* sml; do
- dosym ../${SUBDIR}/bin/${i} /usr/bin/${i}
- done
- popd || die
- dodir ${DIR}/bin/.heap
- insinto ${DIR}/bin/.heap
- doins bin/.heap/*
- dodir ${DIR}/bin/.run
- exeinto ${DIR}/bin/.run
- pushd bin/.run || die
- for i in run*; do
- doexe ${i}
- done
- popd || die
- insinto ${DIR}
- doins -r lib
- dodoc -r doc/*
-}
diff --git a/dev-lang/smlnj/smlnj-110.99.3.ebuild b/dev-lang/smlnj/smlnj-110.99.3.ebuild
new file mode 100644
index 000000000000..35f77904057e
--- /dev/null
+++ b/dev-lang/smlnj/smlnj-110.99.3.ebuild
@@ -0,0 +1,153 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+DESCRIPTION="Standard ML of New Jersey compiler and libraries"
+HOMEPAGE="http://www.smlnj.org"
+
+BASE_URI="http://smlnj.cs.uchicago.edu/dist/working/${PV}"
+
+FILES="
+doc.tgz
+
+config.tgz
+
+asdl.tgz
+cm.tgz
+compiler.tgz
+runtime.tgz
+system.tgz
+MLRISC.tgz
+smlnj-lib.tgz
+old-basis.tgz
+
+ckit.tgz
+nlffi.tgz
+
+cml.tgz
+eXene.tgz
+
+ml-lpt.tgz
+ml-lex.tgz
+ml-yacc.tgz
+ml-burg.tgz
+
+pgraph.tgz
+trace-debug-profile.tgz
+
+heap2asm.tgz
+
+smlnj-c.tgz
+"
+
+SRC_URI="
+ amd64? ( ${BASE_URI}/boot.amd64-unix.tgz -> ${P}-boot.amd64-unix.tgz )
+ ppc? ( ${BASE_URI}/boot.ppc-unix.tgz -> ${P}-boot.ppc-unix.tgz )
+ sparc? ( ${BASE_URI}/boot.sparc-unix.tgz -> ${P}-boot.sparc-unix.tgz )
+ x86? ( ${BASE_URI}/boot.x86-unix.tgz -> ${P}-boot.x86-unix.tgz )
+"
+
+for file in ${FILES} ; do
+ SRC_URI+=" ${BASE_URI}/${file} -> ${P}-${file} "
+done
+
+S="${WORKDIR}"
+
+LICENSE="BSD"
+SLOT="0"
+
+# sparc support should be there but is untested
+KEYWORDS="~amd64 ~ppc ~x86"
+
+PATCHES=( "${FILESDIR}"/${P}-shuffle.patch )
+
+src_unpack() {
+ mkdir -p "${S}" || die
+ local file
+ for file in ${A} ; do
+ if [[ ${file} != ${P}-config.tgz ]] ; then
+ cp "${DISTDIR}/${file}" "${S}/${file#${P}-}" || die
+ fi
+ done
+
+ # make sure we don't use the internet to download anything
+ unpack ${P}-config.tgz
+ rm config/*.bat || die
+ echo SRCARCHIVEURL=\"file:/${S}\" > "${S}"/config/srcarchiveurl
+
+ mkdir base || die # without this unpacking runtime will fail
+ ./config/unpack "${S}" runtime || die
+
+ # Unpack asdl to fix autoconf linker check
+ unpack "${S}"/asdl.tgz
+}
+
+src_prepare() {
+ default
+
+ # respect CC et al. (bug 243886)
+ sed -e "/^AS/s|as|$(tc-getAS)|" \
+ -e "/^CC/s|gcc|$(tc-getCC)|" \
+ -e "/^CPP/s|gcc|$(tc-getCC)|" \
+ -e "/^CFLAGS/{s|-O[0123s]|| ; s|=|= ${CFLAGS}|}" \
+ -i base/runtime/objs/mk.* || die
+ sed -e "/^AS/s|as|$(tc-getAS)|" \
+ -e "/^AR/s|ar|$(tc-getAR)|" \
+ -e "/^CC/s|cc|$(tc-getCC)|" \
+ -e "/^CPP/s|/lib/cpp|$(tc-getCPP)|" \
+ -e "/^RANLIB/s|ranlib|$(tc-getRANLIB)|" \
+ -i base/runtime/objs/makefile || die
+
+ sed -i "s|nm |$(tc-getNM) |g" config/chk-global-names.sh || die
+ sed -i "/^AC_PATH_PROG/s|\[ld\]|\[$(tc-getLD)\]|" asdl/configure.ac || die
+}
+
+src_compile() {
+ local config_opts=( )
+ use amd64 && config_opts+=( "-default 64" ) # force 64-bit build for amd64
+
+ SMLNJ_HOME="${S}" ./config/install.sh ${config_opts[@]} ||
+ die "compilation failed"
+}
+
+src_install() {
+ local DIR=/usr/$(get_libdir)/${PN}
+ local i
+
+ local file
+ for file in bin/{*,.*} ; do
+ [[ -f ${file} ]] &&
+ sed -e "2iSMLNJ_HOME=${EPREFIX}/${DIR}" \
+ -e "s|${WORKDIR}|${EPREFIX}/${DIR}|" \
+ -i ${file}
+ done
+
+ newbin ./config/_heap2exec heap2exec
+ exeinto ${DIR}/bin
+ pushd bin || die
+ for i in {*,.*} ; do
+ [[ -f ${i} ]] && doexe ${i}
+ done
+ for i in ml-* sml ; do
+ dosym ../../${DIR}/bin/${i} /usr/bin/${i}
+ done
+ popd || die
+
+ exeinto ${DIR}/bin/.run
+ pushd bin/.run || die
+ for i in run* ; do
+ doexe ${i}
+ done
+ popd || die
+
+ insinto ${DIR}/bin/.heap
+ doins bin/.heap/*
+
+ insinto ${DIR}
+ doins -r lib
+ doman doc/man/man*/*.*
+ dodoc -r doc/*
+}
diff --git a/dev-lang/smlnj/smlnj-110.99.4.ebuild b/dev-lang/smlnj/smlnj-110.99.4.ebuild
new file mode 100644
index 000000000000..8b5e2ab139ba
--- /dev/null
+++ b/dev-lang/smlnj/smlnj-110.99.4.ebuild
@@ -0,0 +1,151 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+DESCRIPTION="Standard ML of New Jersey compiler and libraries"
+HOMEPAGE="http://www.smlnj.org"
+
+BASE_URI="http://smlnj.cs.uchicago.edu/dist/working/${PV}"
+
+SRC_FILES="
+doc.tgz
+
+config.tgz
+
+asdl.tgz
+cm.tgz
+compiler.tgz
+runtime.tgz
+system.tgz
+MLRISC.tgz
+smlnj-lib.tgz
+old-basis.tgz
+
+ckit.tgz
+nlffi.tgz
+
+cml.tgz
+eXene.tgz
+
+ml-lpt.tgz
+ml-lex.tgz
+ml-yacc.tgz
+ml-burg.tgz
+
+pgraph.tgz
+trace-debug-profile.tgz
+
+heap2asm.tgz
+
+smlnj-c.tgz
+"
+
+SRC_URI="
+ amd64? ( ${BASE_URI}/boot.amd64-unix.tgz -> ${P}-boot.amd64-unix.tgz )
+ ppc? ( ${BASE_URI}/boot.ppc-unix.tgz -> ${P}-boot.ppc-unix.tgz )
+ sparc? ( ${BASE_URI}/boot.sparc-unix.tgz -> ${P}-boot.sparc-unix.tgz )
+ x86? ( ${BASE_URI}/boot.x86-unix.tgz -> ${P}-boot.x86-unix.tgz )
+"
+
+for file in ${SRC_FILES} ; do
+ SRC_URI+=" ${BASE_URI}/${file} -> ${P}-${file} "
+done
+
+S="${WORKDIR}"
+
+LICENSE="BSD"
+SLOT="0"
+
+# sparc support should be there but is untested
+KEYWORDS="~amd64 ~ppc ~x86"
+
+src_unpack() {
+ mkdir -p "${S}" || die
+ local file
+ for file in ${A} ; do
+ if [[ ${file} != ${P}-config.tgz ]] ; then
+ cp "${DISTDIR}/${file}" "${S}/${file#${P}-}" || die
+ fi
+ done
+
+ # make sure we don't use the internet to download anything
+ unpack ${P}-config.tgz
+ rm config/*.bat || die
+ echo SRCARCHIVEURL=\"file:/${S}\" > "${S}"/config/srcarchiveurl
+
+ mkdir base || die # without this unpacking runtime will fail
+ ./config/unpack "${S}" runtime || die
+
+ # Unpack asdl to fix autoconf linker check
+ unpack "${S}"/asdl.tgz
+}
+
+src_prepare() {
+ default
+
+ # respect CC et al. (bug 243886)
+ sed -e "/^AS/s|as|$(tc-getAS)|" \
+ -e "/^CC/s|gcc|$(tc-getCC)|" \
+ -e "/^CPP/s|gcc|$(tc-getCC)|" \
+ -e "/^CFLAGS/{s|-O[0123s]|| ; s|=|= ${CFLAGS}|}" \
+ -i base/runtime/objs/mk.* || die
+ sed -e "/^AS/s|as|$(tc-getAS)|" \
+ -e "/^AR/s|ar|$(tc-getAR)|" \
+ -e "/^CC/s|cc|$(tc-getCC)|" \
+ -e "/^CPP/s|/lib/cpp|$(tc-getCPP)|" \
+ -e "/^RANLIB/s|ranlib|$(tc-getRANLIB)|" \
+ -i base/runtime/objs/makefile || die
+
+ sed -i "s|nm |$(tc-getNM) |g" config/chk-global-names.sh || die
+ sed -i "/^AC_PATH_PROG/s|\[ld\]|\[$(tc-getLD)\]|" asdl/configure.ac || die
+}
+
+src_compile() {
+ local config_opts=( )
+ use amd64 && config_opts+=( "-default 64" ) # force 64-bit build for amd64
+
+ SMLNJ_HOME="${S}" ./config/install.sh ${config_opts[@]} ||
+ die "compilation failed"
+}
+
+src_install() {
+ local DIR=/usr/$(get_libdir)/${PN}
+ local i
+
+ local file
+ for file in bin/{*,.*} ; do
+ [[ -f ${file} ]] &&
+ sed -e "2iSMLNJ_HOME=${EPREFIX}/${DIR}" \
+ -e "s|${WORKDIR}|${EPREFIX}/${DIR}|" \
+ -i ${file}
+ done
+
+ newbin ./config/_heap2exec heap2exec
+ exeinto ${DIR}/bin
+ pushd bin || die
+ for i in {*,.*} ; do
+ [[ -f ${i} ]] && doexe ${i}
+ done
+ for i in ml-* sml ; do
+ dosym ../../${DIR}/bin/${i} /usr/bin/${i}
+ done
+ popd || die
+
+ exeinto ${DIR}/bin/.run
+ pushd bin/.run || die
+ for i in run* ; do
+ doexe ${i}
+ done
+ popd || die
+
+ insinto ${DIR}/bin/.heap
+ doins bin/.heap/*
+
+ insinto ${DIR}
+ doins -r lib
+ doman doc/man/man*/*.*
+ dodoc -r doc/*
+}
diff --git a/dev-lang/snobol/files/snobol-1.4.1-fno-common.patch b/dev-lang/snobol/files/snobol-1.4.1-fno-common.patch
new file mode 100644
index 000000000000..8814867c2ae7
--- /dev/null
+++ b/dev-lang/snobol/files/snobol-1.4.1-fno-common.patch
@@ -0,0 +1,31 @@
+--- a/include/macros.h
++++ b/include/macros.h
+@@ -192,7 +192,7 @@ extern volatile int math_error;
+ #define RETURN(VALUE) {RSTSTK(); return (VALUE);}
+ #endif /* TRACE_DEPTH not defined */
+
+-struct descr _NORET[1];
++extern struct descr _NORET[1];
+ #define NORET ((ptr_t)_NORET)
+
+ /****************/
+--- a/isnobol4.c
++++ b/isnobol4.c
+@@ -4,6 +4,7 @@
+
+ # include "mlink.h"
+ # include "parms.h"
++extern struct descr _NORET[1];
+ static int
+ ENDALL(retval)
+ ret_t retval;
+--- a/main.c
++++ b/main.c
+@@ -46,6 +46,7 @@ struct vars *varp;
+ const char vers[] = VERSION;
+ const char vdate[] = VERSION_DATE;
+ const char snoname[] = "CSNOBOL4";
++struct descr _NORET[1];
+
+ int
+ main(argc, argv)
diff --git a/dev-lang/snobol/metadata.xml b/dev-lang/snobol/metadata.xml
index a4e0d354f696..a19661a8bd04 100644
--- a/dev-lang/snobol/metadata.xml
+++ b/dev-lang/snobol/metadata.xml
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="person">
- <email>robbat2@gentoo.org</email>
- <name>Robin H. Johnson</name>
- </maintainer>
+ <maintainer type="person">
+ <email>robbat2@gentoo.org</email>
+ <name>Robin H. Johnson</name>
+ </maintainer>
</pkgmetadata>
diff --git a/dev-lang/snobol/snobol-1.4.1-r1.ebuild b/dev-lang/snobol/snobol-1.4.1-r1.ebuild
new file mode 100644
index 000000000000..2f1b55d3d530
--- /dev/null
+++ b/dev-lang/snobol/snobol-1.4.1-r1.ebuild
@@ -0,0 +1,58 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit flag-o-matic toolchain-funcs
+
+MY_P="${PN}4-${PV}"
+DESCRIPTION="Phil Budne's port of Macro SNOBOL4 in C, for modern machines"
+HOMEPAGE="http://www.snobol4.org/csnobol4/"
+SRC_URI="ftp://ftp.snobol4.org/snobol/old/${MY_P}.tar.gz"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc"
+
+DEPEND="sys-libs/gdbm[berkdb]"
+RDEPEND="${DEPEND}"
+BDEPEND="sys-devel/m4"
+
+S="${WORKDIR}/${MY_P}"
+
+PATCHES=( "${FILESDIR}"/${P}-fno-common.patch )
+
+src_prepare() {
+ default
+
+ # bug #855650
+ append-flags -fno-strict-aliasing
+ filter-lto
+
+ sed -i -e '/autoconf/s:autoconf:./autoconf:g' configure || die
+ sed -i -e 's/$(INSTALL) -s/$(INSTALL)/' Makefile2.m4 || die
+ echo "ADD_OPT([${CFLAGS}])" >> local-config || die
+ echo "ADD_CPPFLAGS([-DUSE_STDARG_H])" >> local-config || die
+ echo "ADD_CPPFLAGS([-DHAVE_STDARG_H])" >> local-config || die
+
+ # this cannot work and will cause funny sandbox violations
+ sed -i -e 's~/usr/bin/emerge info~~' timing || die "Failed to exorcise the sandbox violations"
+}
+
+src_configure() {
+ tc-export CC
+ ./configure --prefix="${EPREFIX}/usr" \
+ --snolibdir="${EPREFIX}/usr/lib/snobol4" \
+ --mandir="${EPREFIX}/usr/share/man" \
+ --add-cflags="${CFLAGS}" || die
+}
+
+src_install() {
+ emake DESTDIR="${D}" install
+
+ rm "${ED}"/usr/lib/snobol4/{load.txt,README} || die
+
+ dodoc doc/*txt
+ use doc && dodoc -r doc/*html
+}
diff --git a/dev-lang/snobol/snobol-1.4.1.ebuild b/dev-lang/snobol/snobol-1.4.1.ebuild
deleted file mode 100644
index 24b2727cb01f..000000000000
--- a/dev-lang/snobol/snobol-1.4.1.ebuild
+++ /dev/null
@@ -1,52 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-
-MY_P="${PN}4-${PV}"
-
-DESCRIPTION="Phil Budne's port of Macro SNOBOL4 in C, for modern machines"
-HOMEPAGE="http://www.snobol4.org/csnobol4/"
-SRC_URI="ftp://ftp.snobol4.org/snobol/old/${MY_P}.tar.gz"
-
-LICENSE="BSD-2"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE="doc"
-
-DEPEND="
- sys-devel/gcc
- sys-devel/m4
- sys-libs/gdbm[berkdb]
-"
-S=${WORKDIR}/${MY_P}
-
-src_prepare() {
- sed -e '/autoconf/s:autoconf:./autoconf:g' \
- -i configure || die 'autoconf sed failed'
- sed -e 's/$(INSTALL) -s/$(INSTALL)/' \
- -i Makefile2.m4 || die 'strip sed failed'
- echo "ADD_OPT([${CFLAGS}])" >>${S}/local-config
- echo "ADD_CPPFLAGS([-DUSE_STDARG_H])" >>${S}/local-config
- echo "ADD_CPPFLAGS([-DHAVE_STDARG_H])" >>${S}/local-config
-
- # this cannot work and will cause funny sandbox violations
- sed -i -e 's~/usr/bin/emerge info~~' timing || die "Failed to exorcise the sandbox violations"
-}
-
-src_configure() {
- ./configure --prefix="${EPREFIX}/usr" \
- --snolibdir="${EPREFIX}/usr/lib/snobol4" \
- --mandir="${EPREFIX}/usr/share/man" \
- --add-cflags="${CFLAGS}"
-}
-
-src_install() {
- emake DESTDIR="${D}" install
-
- rm "${ED%/}"/usr/lib/snobol4/{load.txt,README}
-
- dodoc doc/*txt
-
- use doc && dohtml doc/*html
-}
diff --git a/dev-lang/souffle/Manifest b/dev-lang/souffle/Manifest
new file mode 100644
index 000000000000..5be2a57dc07a
--- /dev/null
+++ b/dev-lang/souffle/Manifest
@@ -0,0 +1 @@
+DIST souffle-2.4.1.tar.gz 9668253 BLAKE2B b101a6f24df7d5bd86854d5d19c166bfe8266a9f6e8c8391fdbb79afddec7bd2297bb7af472ebc01ff2d6b0c1516820d96ec47dbf1042167b1435c22f9671ea3 SHA512 5dd321a2b025f2120d7867fa7317b4784a0f0fcc109250721cdb0918009ca218c63cdad004282046885f7096b287bc111e09057311603828ecce53f9cc532319
diff --git a/dev-lang/souffle/files/souffle-2.4.1-ncurses.patch b/dev-lang/souffle/files/souffle-2.4.1-ncurses.patch
new file mode 100644
index 000000000000..96882d9f29da
--- /dev/null
+++ b/dev-lang/souffle/files/souffle-2.4.1-ncurses.patch
@@ -0,0 +1,13 @@
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -288,8 +288,8 @@ endif()
+ if (SOUFFLE_USE_CURSES)
+ target_compile_definitions(libsouffle PUBLIC USE_NCURSES)
+ target_compile_definitions(compiled PUBLIC USE_NCURSES)
+- target_link_libraries(libsouffle PUBLIC Curses::NCurses)
+- target_link_libraries(compiled PUBLIC Curses::NCurses)
++ target_link_libraries(libsouffle PUBLIC ${CURSES_LIBRARIES})
++ target_link_libraries(compiled PUBLIC ${CURSES_LIBRARIES})
+ endif()
+
+ if (SOUFFLE_USE_ZLIB)
diff --git a/dev-lang/souffle/files/souffle-2.4.1-threads.patch b/dev-lang/souffle/files/souffle-2.4.1-threads.patch
new file mode 100644
index 000000000000..92e2ce79b409
--- /dev/null
+++ b/dev-lang/souffle/files/souffle-2.4.1-threads.patch
@@ -0,0 +1,34 @@
+Stolen from NixOS packages... later they removed the patch but looks
+like this is what should fix bug https://bugs.gentoo.org/918956
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 73d5c3c84..e4b0dbfd1 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -104,13 +104,6 @@ option(SOUFFLE_CUSTOM_GETOPTLONG "Enable/Disable custom getopt_long implementati
+ cmake_dependent_option(SOUFFLE_USE_LIBCPP "Link to libc++ instead of libstdc++" ON
+ "CMAKE_CXX_COMPILER_ID STREQUAL Clang" OFF)
+
+-# Using Clang? Likely want to use `lld` too.
+-if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
+- set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fuse-ld=lld")
+- set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -fuse-ld=lld")
+- set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -fuse-ld=lld")
+-endif()
+-
+ # Add aditional modules to CMake
+ set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH})
+
+@@ -247,7 +240,11 @@ endif()
+ # pthreads
+ # --------------------------------------------------
+ set(THREADS_PREFER_PTHREAD_FLAG ON)
+-find_package(Threads REQUIRED)
++set(CMAKE_THREAD_LIBS_INIT "-lpthread")
++set(CMAKE_HAVE_THREADS_LIBRARY 1)
++set(CMAKE_USE_WIN32_THREADS_INIT 0)
++set(CMAKE_USE_PTHREADS_INIT 1)
++set(THREADS_PREFER_PTHREAD_FLAG ON)
+
+ # --------------------------------------------------
+ # OpenMP
diff --git a/dev-lang/souffle/metadata.xml b/dev-lang/souffle/metadata.xml
new file mode 100644
index 000000000000..b76f2d6201e7
--- /dev/null
+++ b/dev-lang/souffle/metadata.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+
+<pkgmetadata>
+ <maintainer type="person">
+ <email>xgqt@gentoo.org</email>
+ <name>Maciej Barć</name>
+ </maintainer>
+ <longdescription>
+ Soufflé is a variant of Datalog for tool designers crafting analyses in
+ Horn clauses. Soufflé synthesizes a native parallel C++ program from a
+ logic specification.
+ </longdescription>
+ <use>
+ <flag name="ffi">Support c++ functors with arbitrary number of arguments</flag>
+ <flag name="swig">Enable SWIG usage, needed for Java and Python bindings</flag>
+ </use>
+ <upstream>
+ <bugs-to>https://github.com/souffle-lang/souffle/issues/</bugs-to>
+ <remote-id type="github">souffle-lang/souffle</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-lang/souffle/souffle-2.4.1.ebuild b/dev-lang/souffle/souffle-2.4.1.ebuild
new file mode 100644
index 000000000000..9e2e1af841fc
--- /dev/null
+++ b/dev-lang/souffle/souffle-2.4.1.ebuild
@@ -0,0 +1,124 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..12} )
+
+inherit bash-completion-r1 cmake java-pkg-opt-2 python-single-r1
+
+DESCRIPTION="Datalog compiler, synthesizes C++ program from logic specification"
+HOMEPAGE="http://souffle-lang.github.io/
+ https://github.com/souffle-lang/souffle/"
+
+if [[ "${PV}" == *9999* ]] ; then
+ inherit git-r3
+
+ EGIT_REPO_URI="https://github.com/souffle-lang/${PN}.git"
+else
+ SRC_URI="https://github.com/souffle-lang/${PN}/archive/${PV}.tar.gz
+ -> ${P}.tar.gz"
+
+ KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="UPL-1.0"
+SLOT="0"
+IUSE="+ffi java +ncurses +openmp python +sqlite swig test +zlib"
+REQUIRED_USE="java? ( swig ) python? ( swig ) test? ( ${PYTHON_REQUIRED_USE} )"
+
+# Still, some tests fail. TODO: Disable them.
+# RESTRICT="!test? ( test )"
+RESTRICT="test"
+
+RDEPEND="
+ ffi? ( dev-libs/libffi:= )
+ ncurses? ( sys-libs/ncurses:= )
+ openmp? ( sys-libs/libomp:= )
+ python? ( ${PYTHON_DEPS} )
+ sqlite? ( dev-db/sqlite:3 )
+ swig? ( dev-lang/swig:= )
+ zlib? ( sys-libs/zlib:= )
+"
+DEPEND="
+ ${RDEPEND}
+ java? ( >=virtual/jdk-1.8 )
+"
+BDEPEND="
+ sys-devel/bison
+ sys-devel/flex
+ test? ( ${PYTHON_DEPS} )
+"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-2.4.1-ncurses.patch"
+ "${FILESDIR}/${PN}-2.4.1-threads.patch"
+)
+
+pkg_pretend() {
+ if [[ "${MERGE_TYPE}" != binary ]] ; then
+ if has ccache "${FEATURES}" && use test ; then
+ ewarn "Very many tests fail with ccache enabled."
+ fi
+ fi
+}
+
+pkg_setup() {
+ if use java ; then
+ java-pkg-opt-2_pkg_setup
+ fi
+
+ if use python || use test ; then
+ python-single-r1_pkg_setup
+ fi
+}
+
+src_prepare() {
+ unset LEX
+
+ cmake_src_prepare
+ java-pkg-opt-2_src_prepare
+}
+
+src_configure() {
+ local -a mycmakeargs=(
+ # Configure bash completions.
+ -DBASH_COMPLETION_COMPLETIONSDIR=$(get_bashcompdir)
+ -DSOUFFLE_BASH_COMPLETION=ON
+
+ # Disable developer tests.
+ -DSOUFFLE_TEST_EVALUATION=OFF
+ -DSOUFFLE_TEST_EXAMPLES=OFF
+
+ -DSOUFFLE_ENABLE_TESTING=$(usex test)
+ -DSOUFFLE_SWIG_JAVA=$(usex java)
+ -DSOUFFLE_SWIG_PYTHON=$(usex python)
+ -DSOUFFLE_USE_CURSES=$(usex ncurses)
+ -DSOUFFLE_USE_LIBFFI=$(usex ffi)
+ -DSOUFFLE_USE_OPENMP=$(usex openmp)
+ -DSOUFFLE_USE_SQLITE=$(usex sqlite)
+ -DSOUFFLE_USE_ZLIB=$(usex zlib)
+ )
+
+ # Version information for non-git, non-live builds.
+ if ! has live "${PROPERTIES}" ; then
+ mycmakeargs+=(
+ -DSOUFFLE_GIT=OFF
+ -DSOUFFLE_VERSION="${PV}"
+ )
+ fi
+
+ if use ffi ; then
+ mycmakeargs+=(
+ -DLIBFFI_INCLUDE_DIR="${EPREFIX}/usr/$(get_libdir)/libffi/include"
+ )
+ fi
+
+ cmake_src_configure
+}
+
+src_install() {
+ cmake_src_install
+
+ doman man/*.1
+}
diff --git a/dev-lang/spark/Manifest b/dev-lang/spark/Manifest
index ae89247fb3a6..69576300de16 100644
--- a/dev-lang/spark/Manifest
+++ b/dev-lang/spark/Manifest
@@ -1,4 +1,2 @@
-DIST gnat-2019-20190517-18C94-src.tar.gz 8950160 BLAKE2B ce6b8ca0687b3d345db72a8b3216e67ba706cfd7f6ca98f45ec2ae356d9c5b3a42a4b3aac5e89285871157ddaca3aff1b970934de88f8190d84aff060bf1fc4b SHA512 4d57c97fc1f3d5274e0c4ffa536ec056e7c3f1619010affff008cd07a0bfa638d18fee1705a5dd76f12d168baef85677cc34ef40f5e52fd5292ac886c0d4c5ee
-DIST gnat-gpl-2018-src.tar.gz 8706578 BLAKE2B ba245fd91cc5263d5b8c159d9e75caf6bed21dcaa5fa43734af8775a4008ce5f96bfb84a8b5e6e734ff883314ab3219dacec3fe95a5baa33fb712bfb5ff8bce8 SHA512 0ff7e848ef77f7e772e2a1b01905307a91c332f32329456f5238c4b7eb46cc118709e8682a5fc826d98a7d99fd15a92c194f4a278f04bc465165cfa616cc3c2e
-DIST spark-2019-20190517-19665-src.tar.gz 22778220 BLAKE2B b0e2141c4b8aa603ee51fe984654c502d214cc5461cf7afba90926b4f3393772bc755a4ec8ef307496f5c052d3c478312f987b79d8b31bec3e9dba962cedd419 SHA512 9ee15e1ae80720a0295ec8a59e1b414f82a4044ebd47f81f8daea7a155720bb151714d9e9c2830612f5530d906f6c393e84ffde16982afef547f1c8edc27e97a
-DIST spark-gpl-2018-src.tar.gz 20244517 BLAKE2B efb8120a869eaf79aa513ea3b3393dcefdb548e66a00a630bfb9d28a59785c15362c111df3635423a7312c491c9929a7bcd8e7161607dc4d3acd6d1c27f3ca3e SHA512 83490a95c2d6401bcd077a8ec508eaf18609b5b480ccd9f247f4bb61164b5e52e34473526cd49ebdf5fd15ac422ed4a121dc50cab96241db02af9e32812a4df8
+DIST gnat-2021-20210519-19A70-src.tar.gz 8765762 BLAKE2B ef48f54c6109566e37bfa5dee9262305d0529b3dfd333ee28bc4e66f4709a0673f673d742bc04deb15dc145404f7618d350dbdf3f2a7ab37c861e57d011946fa SHA512 3cb79be024fdd9b738d99ffc8e224d32bb382b5da2d02b97b2061a5ea58456f33d4564c92e224af2713ce15fd5481edd715e5b9a52abc74fdc142f27e103c201
+DIST spark-2021-2021-20210519-19A1A-src.tar.gz 11361491 BLAKE2B 67f8d27ae68ef4929aafaf96c470394e093883619c5c778e804f1ff62c297d5a3f628e04e987fb06741cb824710599928a7ec3b94fa6d7af029cff35be0898c3 SHA512 b595516892f6054d3c856c30c4296be9cd61adca3ea2cffe3c9060fbab249d36ce1b8fff6f80e1e8173ef6e232dd9c2da8a581ae9964845120c03d09896b635c
diff --git a/dev-lang/spark/files/spark-2017-gentoo.patch b/dev-lang/spark/files/spark-2017-gentoo.patch
deleted file mode 100644
index 8258c9feab7e..000000000000
--- a/dev-lang/spark/files/spark-2017-gentoo.patch
+++ /dev/null
@@ -1,23 +0,0 @@
---- a/gnat2why/gnat2why_c.gpr 2017-10-04 21:41:41.613376056 +0200
-+++ b/gnat2why/gnat2why_c.gpr 2017-10-04 21:42:30.582572536 +0200
-@@ -1,4 +1,7 @@
- project Gnat2Why_C is
- for Languages use ("C");
- for Object_Dir use "obj";
-+ package Compiler is
-+ for Driver ("C") use External ("CC", "gcc");
-+ end Compiler;
- end Gnat2Why_C;
---- a/gnatprove/configuration.adb 2019-11-08 19:20:16.876198539 +0100
-+++ b/gnatprove/configuration.adb 2019-11-08 19:21:13.550201663 +0100
-@@ -694,7 +694,9 @@
- Tree : Project_Tree;
-
- begin
-- Set_Path_From_Gnatls (Proj_Env.all, "gnatls", GNAT_Version);
-+ Set_Path_From_Gnatls (Proj_Env.all,
-+ "gnatls",
-+ GNAT_Version);
- Free (GNAT_Version);
- Set_Object_Subdir (Proj_Env.all, Subdir_Name);
- Proj_Env.Register_Default_Language_Extension ("C", ".h", ".c");
diff --git a/dev-lang/spark/files/spark-2019-gentoo.patch b/dev-lang/spark/files/spark-2021-gentoo.patch
index d940471dfcf8..e2f44d237962 100644
--- a/dev-lang/spark/files/spark-2019-gentoo.patch
+++ b/dev-lang/spark/files/spark-2021-gentoo.patch
@@ -1,16 +1,6 @@
---- a/gnat2why/gnat2why_c.gpr 2017-10-04 21:41:41.613376056 +0200
-+++ b/gnat2why/gnat2why_c.gpr 2017-10-04 21:42:30.582572536 +0200
-@@ -1,4 +1,7 @@
- project Gnat2Why_C is
- for Languages use ("C");
- for Object_Dir use "obj";
-+ package Compiler is
-+ for Driver ("C") use External ("CC", "gcc");
-+ end Compiler;
- end Gnat2Why_C;
---- a/gnatprove/configuration.adb 2019-11-28 08:13:36.857402405 +0100
-+++ b/gnatprove/configuration.adb 2019-11-28 08:14:23.777570096 +0100
-@@ -1161,7 +1161,9 @@
+--- a/src/gnatprove/configuration.adb 2021-06-21 22:30:18.962850246 +0200
++++ b/src/gnatprove/configuration.adb 2021-06-21 22:31:03.621210570 +0200
+@@ -1269,7 +1269,9 @@
end if;
@@ -21,3 +11,13 @@
Free (GNAT_Version);
Set_Object_Subdir (Proj_Env.all,
Filesystem_String
+--- a/gnat2why/gnat2why_c.gpr 2017-10-04 21:41:41.613376056 +0200
++++ b/gnat2why/gnat2why_c.gpr 2017-10-04 21:42:30.582572536 +0200
+@@ -1,4 +1,7 @@
+ project Gnat2Why_C is
+ for Languages use ("C");
+ for Object_Dir use "obj";
++ package Compiler is
++ for Driver ("C") use External ("CC", "gcc");
++ end Compiler;
+ end Gnat2Why_C;
diff --git a/dev-lang/spark/metadata.xml b/dev-lang/spark/metadata.xml
index 2516831ba9a7..3e2253467fac 100644
--- a/dev-lang/spark/metadata.xml
+++ b/dev-lang/spark/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>ada@gentoo.org</email>
diff --git a/dev-lang/spark/spark-2018-r1.ebuild b/dev-lang/spark/spark-2018-r1.ebuild
deleted file mode 100644
index e49999294ef5..000000000000
--- a/dev-lang/spark/spark-2018-r1.ebuild
+++ /dev/null
@@ -1,61 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-ADA_COMPAT=( gnat_2018 )
-inherit ada toolchain-funcs multiprocessing
-
-MYP=${PN}-gpl-${PV}
-
-DESCRIPTION="Software development for high-reliability applications."
-HOMEPAGE="http://libre.adacore.com"
-SRC_URI="http://mirrors.cdn.adacore.com/art/5b0819dec7a447df26c27a47
- -> ${MYP}-src.tar.gz
- http://mirrors.cdn.adacore.com/art/5b0819dfc7a447df26c27aa5
- -> gnat-gpl-2018-src.tar.gz"
-
-LICENSE="GPL-3"
-SLOT="0"
-KEYWORDS="amd64"
-IUSE=""
-
-RDEPEND="
- dev-ada/gnatcoll-core[${ADA_USEDEP},shared]
- sci-mathematics/alt-ergo
- sci-mathematics/why3-for-spark"
-DEPEND="${RDEPEND}
- dev-ada/gprbuild[${ADA_USEDEP}]"
-
-REQUIRED_USE="${ADA_REQUIRED_USE}"
-
-S="${WORKDIR}"/${MYP}-src
-
-PATCHES=( "${FILESDIR}"/${PN}-2017-gentoo.patch )
-
-src_prepare() {
- ln -sf "${WORKDIR}"/gnat-gpl-2018-src/src/ada gnat2why/gnat_src || die
- default
- sed -i \
- -e "s:gnatls:${GNATLS}:g" \
- gnatprove/configuration.adb || die
-}
-
-src_compile() {
- emake GPRARGS="-XLIBRARY_TYPE=relocatable" gnat2why
- emake PROD="-XLIBRARY_TYPE=relocatable" gnatprove
-}
-
-src_install() {
- emake INSTALLDIR="${D}"/usr install
- einstalldocs
- dosym ../../../lib64/why3/why3server /usr/libexec/spark/bin/why3server
- dobin install/bin/gnatprove
- mv install/share/doc/spark/* "${D}"/usr/share/doc/${PF} || die
- exeinto /usr/libexec/spark/bin
- doexe install/bin/gnat2why
- doexe install/bin/spark_memcached_wrapper
- doexe install/bin/spark_report
- doexe install/bin/spark_codepeer_wrapper
- mv "${D}"/usr/bin/target.atp "${D}"/usr/libexec/spark/bin || die
-}
diff --git a/dev-lang/spark/spark-2019.ebuild b/dev-lang/spark/spark-2019.ebuild
deleted file mode 100644
index 0a0f4fd0550c..000000000000
--- a/dev-lang/spark/spark-2019.ebuild
+++ /dev/null
@@ -1,67 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-ADA_COMPAT=( gnat_2019 )
-PYTHON_COMPAT=( python2_7 )
-
-inherit ada python-any-r1 toolchain-funcs multiprocessing
-
-DESCRIPTION="Software development for high-reliability applications."
-HOMEPAGE="http://libre.adacore.com"
-SRC_URI="http://mirrors.cdn.adacore.com/art/5cdf912431e87a8f1c967d51
- -> ${P}-20190517-19665-src.tar.gz
- http://mirrors.cdn.adacore.com/art/5cdf865331e87aa2cdf16b49
- -> gnat-2019-20190517-18C94-src.tar.gz"
-
-LICENSE="GPL-3"
-SLOT="0"
-KEYWORDS="~amd64"
-IUSE=""
-
-RDEPEND="
- dev-ada/gnatcoll-core[${ADA_USEDEP},shared]
- sci-mathematics/alt-ergo
- sci-mathematics/why3-for-spark"
-DEPEND="${RDEPEND}
- ${PYTHON_DEPS}
- dev-ada/gprbuild[${ADA_USEDEP}]"
-
-REQUIRED_USE="${ADA_REQUIRED_USE}"
-
-S="${WORKDIR}"/${P}-2019-20190517-19665-src
-
-PATCHES=( "${FILESDIR}"/${P}-gentoo.patch )
-
-pkg_setup() {
- ada_pkg_setup
- python-any-r1_pkg_setup
-}
-
-src_prepare() {
- ln -sf "${WORKDIR}"/gnat-2019-20190517-18C94-src/src/ada gnat2why/gnat_src || die
- default
- sed -i \
- -e "s:gnatls:${GNATLS}:g" \
- gnatprove/configuration.adb || die
-}
-
-src_compile() {
- emake -C gnat2why GPRARGS="-XLIBRARY_TYPE=relocatable -v"
- emake -C gnatprove PROD="-XLIBRARY_TYPE=relocatable -v"
-}
-
-src_install() {
- emake INSTALLDIR="${D}"/usr install
- einstalldocs
- dosym ../../../lib64/why3/why3server /usr/libexec/spark/bin/why3server
- dobin install/bin/gnatprove
- mv install/share/doc/spark/* "${D}"/usr/share/doc/${PF} || die
- exeinto /usr/libexec/spark/bin
- doexe install/bin/gnat2why
- doexe install/bin/spark_memcached_wrapper
- doexe install/bin/spark_report
- doexe install/bin/spark_codepeer_wrapper
- mv "${D}"/usr/bin/target.atp "${D}"/usr/libexec/spark/bin || die
-}
diff --git a/dev-lang/spark/spark-2021.ebuild b/dev-lang/spark/spark-2021.ebuild
new file mode 100644
index 000000000000..9b763b07b66a
--- /dev/null
+++ b/dev-lang/spark/spark-2021.ebuild
@@ -0,0 +1,85 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+ADA_COMPAT=( gnat_2021 )
+
+inherit ada
+
+ADA_MIRROR=https://community.download.adacore.com/v1
+ID=969ce28e217bd5aa4db549a544d20846408a5229
+MYP=${P}-2021-20210519-19A1A-src
+GNATID=005d2b2eff627177986d2517eb31e1959bec6f3a
+GNATDIR=gnat-${PV}-20210519-19A70-src
+
+DESCRIPTION="Software development for high-reliability applications"
+HOMEPAGE="http://libre.adacore.com"
+SRC_URI="${ADA_MIRROR}/${ID}?filename=${MYP}.tar.gz -> ${MYP}.tar.gz
+ ${ADA_MIRROR}/${GNATID}?filename=${GNATDIR}.tar.gz -> ${GNATDIR}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE=""
+
+RDEPEND="
+ dev-ada/gnatcoll-core[${ADA_USEDEP},shared]
+ sci-mathematics/alt-ergo
+ sci-mathematics/why3-for-spark"
+DEPEND="${RDEPEND}
+ dev-ada/gprbuild[${ADA_USEDEP}]"
+
+REQUIRED_USE="${ADA_REQUIRED_USE}"
+
+S="${WORKDIR}"/${MYP}
+
+PATCHES=( "${FILESDIR}"/${P}-gentoo.patch )
+
+src_prepare() {
+ ln -sf "${WORKDIR}"/${GNATDIR}/src/ada gnat2why/gnat_src || die
+ default
+ sed -i \
+ -e "s:gnatls:${GNATLS}:g" \
+ src/gnatprove/configuration.adb || die
+}
+
+src_compile() {
+ emake -C gnat2why GPRARGS="-XLIBRARY_TYPE=relocatable -v"
+ gprbuild -p -XLIBRARY_TYPE=relocatable -v -P gnatprove.gpr || die
+ emake -C include generate
+}
+
+src_install() {
+ # Create the fake prover scripts to help extract benchmarks.
+ insinto /usr/libexec/spark/bin/
+ doins benchmark_script/fake_*
+
+ gprbuild -q -c -u -gnats spark2014vsn.ads \
+ -XLIBRARY_TYPE=relocatable -v \
+ -gnatet="${D}"/usr/libexec/spark/bin/target.atp || die
+ insinto /usr/share/spark
+ doins share/spark/help.txt
+ doins -r share/spark/config
+ insinto /usr/share/spark/theories
+ doins share/spark/theories/*why
+ doins share/spark/theories/*mlw
+ insinto /usr/share/spark/runtimes
+ doins share/spark/runtimes/README
+ insinto /usr/include/spark
+ doins include/*.ad?
+ insinto /usr/lib/gnat
+ doins include/*.gpr
+ doins -r include/proof
+
+ dosym ../../../lib64/why3/why3server /usr/libexec/spark/bin/why3server
+ dobin install/bin/gnatprove
+ exeinto /usr/libexec/spark/bin
+ doexe install/bin/gnat2why
+ doexe install/bin/spark_memcached_wrapper
+ doexe install/bin/spark_report
+ doexe install/bin/spark_codepeer_wrapper
+ doexe install/bin/spark_semaphore_wrapper
+
+ einstalldocs
+}
diff --git a/dev-lang/spidermonkey/Manifest b/dev-lang/spidermonkey/Manifest
index 9f61526c28bd..554099e6f6e2 100644
--- a/dev-lang/spidermonkey/Manifest
+++ b/dev-lang/spidermonkey/Manifest
@@ -1,12 +1,10 @@
-DIST firefox-68.0-patches-15.tar.xz 16060 BLAKE2B f9e6cd58ea51bed1af90a9d30fd551dc7e939afcd1b4d00de1271bd4bda94021c6f1799fd9945962c14ffa1fd0b6a6429369c4e45efc2000f179b9b2e46971e7 SHA512 9cb2479637dd8b84e0ab68dc0fe144acd2dc74feca282fd3c4b485ca6f0de8190244587622713a5421b243ccda153f738e9a8f463e87e15e93e9b725d943e128
-DIST firefox-68.12.0esr.source.tar.xz 313856956 BLAKE2B eeaa4acc9fabf15ec1b313170a30cee8e1fc10a8b08512b915b83b7d6a81c09b365733ed94638bd434864fd7b0cb8cbf1bc2e43441be69e31117e8e6a099234c SHA512 839b02422e4c87bdb12e0995cd35ca8c1996f3fba00bbb46b419e46b67df5ec48a264cb14632db777ce29166ee4fdcb06e2ee3ce847e64328c58c9a2f9129f4c
-DIST firefox-78.6.0esr.source.tar.xz 338098664 BLAKE2B 9d082b6104bffbd0d918dc1adf2a01ac32613d8048faf399177834c4949714a00c1f4383b778a21d6b6684296d8f9bd44fa547ee2507a8631d206e3764d2ceeb SHA512 a1e2d6af0020784d00ed3cb4d778c136685e7c2f6ae536cc270fbd331d51d483d17dff9acd7ad8e6b3b231b9df894c146092889357b23715814a080c6f08d11a
-DIST firefox-78esr-patches-07.tar.xz 66156 BLAKE2B 8f69883432dcbd484b1fb15e3fde1630b1424e502ba78d9ec3cbe70cb2676a6876853d3477c8bfe35e92bca91b200e2d14543de1778d895676a52d2608109af2 SHA512 b4a01d3499002bd33a7fb45a1a80e9e73ba27a0986b6bfa43b3482dd8d82a686a14ae0c5e013402c8c8f359a642632a40bf4c362a0e83a1f53b453914f42e3a7
-DIST js185-1.0.0.tar.gz 6164605 BLAKE2B 76a37f0ceae05d3475853875bd0ce4be6e525e4114816f8f281ea6fc6b60a71060975a0fa1cb843f57ad1e2f842dfb26b24244fa0fd6c20f6ae2ebbe430f70be SHA512 2af7122a7c7007fd7b6668776fe1222515a810b3e43bbf0f76b8f94e1ef406ffd3fb5ccec393021b00274c05b38a77235bc8d6886994c56762fcaf0aa7cf6718
-DIST mozjs-52.9.1pre1.tar.bz2 30178574 BLAKE2B 0920432b5140e78297a9bcbccb54268d75a223d5e75e4ff90b3b01aab4f7736b4a4e05c47b3a925ff0a74607a0abad3b6583c75d070ef5142009b20ebaf6e4bf SHA512 187b231b246a5ae09e55c0fef77866b316d75f38f4c2e066d5d4325d8da63433027020c929439cab46af3253ac63ab2f780223a8fd2c6ff535b3409bb6c4aa0f
-DIST mozjs-60.5.2.tar.bz2 32816585 BLAKE2B 45ac4c9646e1275faf60eeedbf486f802cd106583eb7f640fe2243adc7cbb811dced5cefa94426cceca63468b0112be84078ffcef24cb2b8c1a7b6c8173c0d45 SHA512 5fb73330e7803bdd524fbe7cfdf4e6b72e85d4b22b0c827400317b5d052d1088d36e558ceac376393089e9d03e658b24e69262851fc04a66bbcda47135423dc0
-DIST spidermonkey-52.0-patches-1.tar.xz 3112 BLAKE2B d8f4c44cb2ae290fa51efc4725a2c1b3cd85dd9f04f4ccfa5681ba6df5f37f5d8d4ad6859316a70d0f7647ac2cee014d126f88b7d4ca74a82796f35b141200ef SHA512 5328403e3b9ecd1c456037e7cca374c2453d9331752c48b9466e498e22fd8d4ca6e1804e51140ee0be027fcef7d0c3f26822b1f569305a3b2f03209b7fb15499
-DIST spidermonkey-60.0-patches-04.tar.xz 4428 BLAKE2B af78049cd9b3ee6a9b689e6253486c4670fd3b506faade7d745dafaa7af329c0bd15cd35e95528a4c96688230f4803130967fb09b97aae2bda0ce0f73acaaf3e SHA512 fb1326a81512146ba98773d4f7e0c4bc1bff0f076897c13f576fcf63b56f6965efeff633eea9160bca9f9bc4546505901084eabc33bc955de0b7ab3d6334387a
-DIST spidermonkey-68.6.0-patches-04.tar.xz 5956 BLAKE2B b1250391a5173e676272d5926b710c06b0e9de1ff03b130a57fdac30f2deefbee3fa92250b37e28087572fe5cce73eb112ef4e1fb0c0401d6ecdb22ab9868998 SHA512 94575b11b4f006c6ee0c8d64b315734a173cecb68e9128ca61ba1a28177e3c149b8cf1f3b3c47a7a263fad8da6196fc0101df87392f016686a827e0cd24fdc74
-DIST spidermonkey-78-patches-03.tar.xz 3732 BLAKE2B 5dc47527581c010994a102e6458119c762ec3836f57e403cbaac88c457f5f119bd75ae1a067307b20d229536f75db4b2b797408874d28156667ac63b61de8501 SHA512 f0921562dcd0ea519bf3f5ef2da43f87565e92493781d56e6e0b73d4124f41e7aadd34d8285bbb181f4286160dde0c9684920e98058f0683143a2687eb93cc1a
-DIST spidermonkey-slot0-patches-02.tar.xz 10952 BLAKE2B fb7bf5cdac6c821a48d407ff172fe0ec7297e047d3b3bab952f226f413b83ea70325175b41c1680725ff588111b424efc97a0c66e392989da510c43d38528ff1 SHA512 cd62890c4b58658d99fc1b52f05ccb35c07da835b168bb9d5e6b219de5021122c199cc2255c5b0be01ef582f53dd51c9975921e6bde9f14e9b43536e2bee85f2
+DIST firefox-102.15.0esr.source.tar.xz 486592324 BLAKE2B b70727fa91d0d270673374bebb4745b87f6194191c1c9415547d772811a4a85f79a97e8985877eb5c9beef43fe15bef574172da35935e7024a947919ec11d883 SHA512 87db6e32fda215253f9b3bd233ef7fa91a64349310064b8482e5c634f34cbe99a2a111d74d2b9f2a99a0b3b510dbf9039ebe4ccfc176c2554d65bc9cfb508bf9
+DIST firefox-102esr-patches-13.tar.xz 22212 BLAKE2B 02e9edd071a99abbac02faa11ffce061d5d12d8baa9ce54b51d6bfdbf8160022a1565902d65ca30fe51b5670e509fa921b11a460989933cbb797fcd59d635125 SHA512 8b8b0f3789978447a1293fd9acb5c2db3d7e9f724357a0d762b54f7e34d28f11655997ffeafccfe8001a01dd595848d257f90cb983462c405d434cc794216520
+DIST firefox-115.10.0esr.source.tar.xz 507826764 BLAKE2B 342d5cf4d61b3efe3dde6a6e53f064739d4107690f1d101915ba8cf2214f518aa8c7490903e20179f0874a3bd62871723e877e8f789d9816f3e0d9227d751eb6 SHA512 0626e2c68ce43f24dfc2b9216e2565537ad8781daf4195d53420e1b78d57d0f6360fbe56b0ddbedae3818546c72472c85c1ff2b208c123d32a0543e666f42b65
+DIST firefox-115.3.1esr.source.tar.xz 515785920 BLAKE2B ad5ec24361e94d9185eed210f681c50159f5be3e6046d79200b5e2586107f1ed98ebe7935f1e266afadd570fc1aa6a1aec81fe3b7fb86efb48afe82514f26c68 SHA512 65cb6fc46bba03eed742bd67f8e36b63b19f2ad7b85d2f503595704a4e88f554758a1e66ba548c8efe97a76322fb2514db72e6ff4bb2992d1aaa86edc3af85f1
+DIST firefox-115.9.1esr.source.tar.xz 508070816 BLAKE2B 5182972f45edfb9ec6b23cc2e869fe86237bd51bd23fd31058d03d9dc98f0ea2dcf57215d61d724e08f98d0e0771b86b5e5ce78ed03c3ac08fac60ed4377f890 SHA512 9ccaede2fcda13a07f98a2110bb8f99c7324601d66bff311f3070a669576a1598fe1d7de2d005d725d1f44dbe3934a9c0fd0b7950f60686047d4ce8d9d812310
+DIST firefox-115esr-patches-06.tar.xz 14944 BLAKE2B e60a8a32f8c5e6d897e8c3e13d291ffab651937505ce258f031e7e75560c9eb89fce4a22c61872d639e6e1d40244e94761baa1660c2d3d02584ad4cc4778946f SHA512 d9ea1a063df287fa651042c90529b1a1b5ebd5a28735c44b5527cc7dd29678c2f8a9204f007db328371ed6af9613ca7215464c00df5e685c3af4296a22139257
+DIST firefox-115esr-patches-09.tar.xz 16660 BLAKE2B 1dcdf62f35013b82dd70bf00c0505394b9277affcd1b1cbde92421778f4fcc146f536a546c2db8d6a70f92d40e4b1c96927fedec54383e6bb80bd9806d9b4461 SHA512 e003d0a2a5304dcdd0851b57ceb11993333326c8221d5d99555cd0c64090d5eda1bdb2a2a52e605f6094a3214ffa2238e43d57ff64eb7d424ff54b8125c16f5c
+DIST firefox-115esr-patches-10.tar.xz 17256 BLAKE2B 0f6265d6e12f55e9b5128f2f261ba3785b80563e049d2441fde09dedf419c6086c9d994d2b44d1aab35af64cde375bdc254206da9ef148fc20fa90da0417606d SHA512 a1f0012420593a1c1b38dba1785ee9092e0923f56458c38f003cca4ebaac30a73fe3d1f5806a5795c76b2b8d729f8184372e63681daa450c3bb8e5afbe9e2e4f
+DIST spidermonkey-102-patches-05j.tar.xz 4596 BLAKE2B 215b770bbdf17973d7b3fd1df6cee9647459d2b02b0be5bdb289d457e5dbdb06ceac7a3082fc2f5836e991a4ac4486d73330b0276a466b5c528dab226a27829c SHA512 d2b8e32dac87d60a00fd93479dc34d8adab4feec24a38591cebeb4cf271aa2fd964f4dc26e67ebfb127a47bc8f684d50b32b2cff18ed5286701a04a289058185
+DIST spidermonkey-115-patches-01.tar.xz 3992 BLAKE2B e97d0cb3edfb885119226f54f22485ed4e8220cd904d3356b87ccc013403f976a042171cf9ca7250bcf3fe3d90996dd80b4104e7d614f95d7bcfcb0e710a8a78 SHA512 cece96f172a09dd0e29f7c2fdbf650cde405b276bc4083956365289f1da4b1d078ccbde760da6553888ddb3c53cf9aded52051db556a2c4ec492fed01dcb03a1
diff --git a/dev-lang/spidermonkey/files/moz38-dont-hardcode-libc-soname.patch b/dev-lang/spidermonkey/files/moz38-dont-hardcode-libc-soname.patch
deleted file mode 100644
index 708c7496975f..000000000000
--- a/dev-lang/spidermonkey/files/moz38-dont-hardcode-libc-soname.patch
+++ /dev/null
@@ -1,15 +0,0 @@
---- a/testing/mozbase/mozinfo/mozinfo/mozinfo.py 2018-01-12 12:21:16.764318254 -0500
-+++ b/testing/mozbase/mozinfo/mozinfo/mozinfo.py 2018-01-12 12:22:23.392069398 -0500
-@@ -93,10 +93,11 @@
-
- if info['os'] == 'linux':
- import ctypes
-+ import ctypes.util
- import errno
- PR_SET_SECCOMP = 22
- SECCOMP_MODE_FILTER = 2
-- ctypes.CDLL("libc.so.6", use_errno=True).prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, 0)
-+ ctypes.CDLL(ctypes.util.find_library('c'), use_errno=True).prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, 0)
- info['has_sandbox'] = ctypes.get_errno() == errno.EFAULT
- else:
- info['has_sandbox'] = True
diff --git a/dev-lang/spidermonkey/files/spidermonkey-1.8.5-LTO.patch b/dev-lang/spidermonkey/files/spidermonkey-1.8.5-LTO.patch
deleted file mode 100644
index 7c36b5525b04..000000000000
--- a/dev-lang/spidermonkey/files/spidermonkey-1.8.5-LTO.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 6ff7ad09daf98e5b804cf73c066c382a76e74e8c Mon Sep 17 00:00:00 2001
-From: Alexander Miller <alex.miller@gmx.de>
-Date: Wed, 12 Jun 2019 00:29:23 -0500
-Subject: [PATCH] Fix breakage with lto builds
-
-<artificial>:(.text+0x7a): undefined reference to `PopActiveVMFrame'
-collect2: error: ld returned 1 exit status
-
-Signed-off-by: Alexander Miller <alex.miller@gmx.de>
----
- js/src/methodjit/InvokeHelpers.cpp | 2 +-
- js/src/methodjit/MethodJIT.cpp | 6 +++---
- 2 files changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/js/src/methodjit/InvokeHelpers.cpp b/js/src/methodjit/InvokeHelpers.cpp
-index d017c2a..abde396 100644
---- a/js/src/methodjit/InvokeHelpers.cpp
-+++ b/js/src/methodjit/InvokeHelpers.cpp
-@@ -500,7 +500,7 @@ stubs::PutActivationObjects(VMFrame &f)
- js::PutActivationObjects(f.cx, f.fp());
- }
-
--extern "C" void *
-+extern "C" void * __attribute__((used))
- js_InternalThrow(VMFrame &f)
- {
- JSContext *cx = f.cx;
-diff --git a/js/src/methodjit/MethodJIT.cpp b/js/src/methodjit/MethodJIT.cpp
-index 4feefbc..66099e6 100644
---- a/js/src/methodjit/MethodJIT.cpp
-+++ b/js/src/methodjit/MethodJIT.cpp
-@@ -120,20 +120,20 @@ static uint32 StubCallsForOp[STUB_CALLS_FOR_OP_COUNT];
-
- extern "C" void JaegerTrampolineReturn();
-
--extern "C" void JS_FASTCALL
-+extern "C" void JS_FASTCALL __attribute__((used))
- PushActiveVMFrame(VMFrame &f)
- {
- f.entryfp->script()->compartment->jaegerCompartment->pushActiveFrame(&f);
- f.regs.fp->setNativeReturnAddress(JS_FUNC_TO_DATA_PTR(void*, JaegerTrampolineReturn));
- }
-
--extern "C" void JS_FASTCALL
-+extern "C" void JS_FASTCALL __attribute__((used))
- PopActiveVMFrame(VMFrame &f)
- {
- f.entryfp->script()->compartment->jaegerCompartment->popActiveFrame();
- }
-
--extern "C" void JS_FASTCALL
-+extern "C" void JS_FASTCALL __attribute__((used))
- SetVMFrameRegs(VMFrame &f)
- {
- f.cx->setCurrentRegs(&f.regs);
---
-2.22.0
-
diff --git a/dev-lang/spidermonkey/files/spidermonkey-102-known-test-failures.txt b/dev-lang/spidermonkey/files/spidermonkey-102-known-test-failures.txt
new file mode 100644
index 000000000000..ad245956ef03
--- /dev/null
+++ b/dev-lang/spidermonkey/files/spidermonkey-102-known-test-failures.txt
@@ -0,0 +1,105 @@
+non262/Date/15.9.5.7.js
+non262/Date/reset-time-zone-cache-same-offset.js
+non262/Date/time-zone-etc_localetime.js
+non262/Date/time-zones-historic.js
+non262/Date/time-zones-imported.js
+non262/Date/toString-localized-posix.js
+non262/Date/toString-localized.js
+non262/Intl/Array/toLocaleString-date.js
+non262/Intl/Collator/collation.js
+non262/Intl/Date/toLocaleString_timeZone.js
+non262/Intl/Date/toLocaleTimeString_timeZone.js
+non262/Intl/DateTimeFormat/day-period-hour-cycle.js
+non262/Intl/DateTimeFormat/extended-time-zone-names.js
+non262/Intl/DateTimeFormat/field-widths.js
+non262/Intl/DateTimeFormat/format.js
+non262/Intl/DateTimeFormat/formatRange-hour-cycle.js
+non262/Intl/DateTimeFormat/formatToParts.js
+non262/Intl/DateTimeFormat/format_timeZone.js
+non262/Intl/DateTimeFormat/fractional-second-digits-append-item.js
+non262/Intl/DateTimeFormat/hourCycle.js
+non262/Intl/DateTimeFormat/implied-script-has-consistent-output.js
+non262/Intl/DateTimeFormat/timeZone_backzone.js
+non262/Intl/DateTimeFormat/timeZone_version.js
+non262/Intl/DisplayNames/calendar.js
+non262/Intl/DisplayNames/dateTimeField.js
+non262/Intl/DisplayNames/language-dialect.js
+non262/Intl/ListFormat/conjunction-type.js
+non262/Intl/Locale/likely-subtags-generated.js
+non262/Intl/Locale/likely-subtags.js
+non262/Intl/NumberFormat/currency-narrow-symbol.js
+non262/Intl/NumberFormat/format.js
+non262/Intl/NumberFormat/notation-compact-long.js
+non262/Intl/available-locales-resolved.js
+non262/Intl/available-locales-supported.js
+non262/Intl/supportedValuesOf-timeZones-canonical.js
+test262/built-ins/RegExp/property-escapes/generated/Alphabetic.js
+test262/built-ins/RegExp/property-escapes/generated/Assigned.js
+test262/built-ins/RegExp/property-escapes/generated/Case_Ignorable.js
+test262/built-ins/RegExp/property-escapes/generated/Cased.js
+test262/built-ins/RegExp/property-escapes/generated/Changes_When_NFKC_Casefolded.js
+test262/built-ins/RegExp/property-escapes/generated/Diacritic.js
+test262/built-ins/RegExp/property-escapes/generated/Emoji.js
+test262/built-ins/RegExp/property-escapes/generated/Emoji_Modifier_Base.js
+test262/built-ins/RegExp/property-escapes/generated/Emoji_Presentation.js
+test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Cased_Letter.js
+test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Decimal_Number.js
+test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Format.js
+test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Letter.js
+test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Lowercase_Letter.js
+test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Mark.js
+test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Modifier_Letter.js
+test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Nonspacing_Mark.js
+test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Number.js
+test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Other.js
+test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Other_Letter.js
+test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Other_Number.js
+test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Other_Punctuation.js
+test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Other_Symbol.js
+test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Punctuation.js
+test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Spacing_Mark.js
+test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Symbol.js
+test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Unassigned.js
+test262/built-ins/RegExp/property-escapes/generated/Grapheme_Base.js
+test262/built-ins/RegExp/property-escapes/generated/Grapheme_Extend.js
+test262/built-ins/RegExp/property-escapes/generated/ID_Continue.js
+test262/built-ins/RegExp/property-escapes/generated/ID_Start.js
+test262/built-ins/RegExp/property-escapes/generated/Ideographic.js
+test262/built-ins/RegExp/property-escapes/generated/Lowercase.js
+test262/built-ins/RegExp/property-escapes/generated/Script_-_Arabic.js
+test262/built-ins/RegExp/property-escapes/generated/Script_-_Common.js
+test262/built-ins/RegExp/property-escapes/generated/Script_-_Cyrillic.js
+test262/built-ins/RegExp/property-escapes/generated/Script_-_Devanagari.js
+test262/built-ins/RegExp/property-escapes/generated/Script_-_Egyptian_Hieroglyphs.js
+test262/built-ins/RegExp/property-escapes/generated/Script_-_Han.js
+test262/built-ins/RegExp/property-escapes/generated/Script_-_Hiragana.js
+test262/built-ins/RegExp/property-escapes/generated/Script_-_Kannada.js
+test262/built-ins/RegExp/property-escapes/generated/Script_-_Katakana.js
+test262/built-ins/RegExp/property-escapes/generated/Script_-_Khojki.js
+test262/built-ins/RegExp/property-escapes/generated/Script_-_Lao.js
+test262/built-ins/RegExp/property-escapes/generated/Script_-_Latin.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Arabic.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Common.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Cyrillic.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Devanagari.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Egyptian_Hieroglyphs.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Han.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Hiragana.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Kannada.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Katakana.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Khojki.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Lao.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Latin.js
+test262/built-ins/RegExp/property-escapes/generated/Sentence_Terminal.js
+test262/built-ins/RegExp/property-escapes/generated/Soft_Dotted.js
+test262/built-ins/RegExp/property-escapes/generated/Terminal_Punctuation.js
+test262/built-ins/RegExp/property-escapes/generated/Unified_Ideograph.js
+test262/built-ins/RegExp/property-escapes/generated/XID_Continue.js
+test262/built-ins/RegExp/property-escapes/generated/XID_Start.js
+test262/intl402/DateTimeFormat/prototype/format/timedatestyle-en.js
+test262/intl402/DateTimeFormat/prototype/formatRange/en-US.js
+test262/intl402/DateTimeFormat/prototype/formatRange/fractionalSecondDigits.js
+test262/intl402/DateTimeFormat/prototype/formatRangeToParts/en-US.js
+test262/intl402/DateTimeFormat/prototype/formatRangeToParts/fractionalSecondDigits.js
+test262/intl402/Locale/constructor-non-iana-canon.js
+test262/intl402/Locale/prototype/minimize/removing-likely-subtags-first-adds-likely-subtags.js
diff --git a/dev-lang/spidermonkey/files/spidermonkey-115-known-test-failures.txt b/dev-lang/spidermonkey/files/spidermonkey-115-known-test-failures.txt
new file mode 100644
index 000000000000..9d21ef6dc615
--- /dev/null
+++ b/dev-lang/spidermonkey/files/spidermonkey-115-known-test-failures.txt
@@ -0,0 +1,44 @@
+non262/Date/time-zone-etc_localetime.js
+non262/Intl/Collator/big5han-gb2312han.js
+non262/Intl/Collator/implicithan.js
+non262/Intl/DateTimeFormat/day-period-hour-cycle.js
+non262/Intl/DateTimeFormat/fractional-second-digits-append-item.js
+non262/Intl/DateTimeFormat/related-year.js
+non262/Intl/DateTimeFormat/timeZone_backzone.js
+non262/Intl/DateTimeFormat/timeZone_version.js
+non262/Intl/DisplayNames/calendar.js
+non262/Intl/DisplayNames/currency.js
+non262/Intl/DisplayNames/language-dialect.js
+non262/Intl/ListFormat/conjunction-type.js
+non262/Intl/Locale/likely-subtags-generated.js
+non262/Intl/Locale/likely-subtags.js
+non262/Intl/available-locales-resolved.js
+non262/Intl/available-locales-supported.js
+non262/Intl/supportedValuesOf-timeZones-canonical.js
+non262/Intl/supportedValuesOf-timeZones.js
+test262/built-ins/RegExp/property-escapes/generated/Alphabetic.js
+test262/built-ins/RegExp/property-escapes/generated/Assigned.js
+test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Letter.js
+test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Other.js
+test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Other_Letter.js
+test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Other_Symbol.js
+test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Symbol.js
+test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Unassigned.js
+test262/built-ins/RegExp/property-escapes/generated/Grapheme_Base.js
+test262/built-ins/RegExp/property-escapes/generated/IDS_Binary_Operator.js
+test262/built-ins/RegExp/property-escapes/generated/ID_Continue.js
+test262/built-ins/RegExp/property-escapes/generated/ID_Start.js
+test262/built-ins/RegExp/property-escapes/generated/Ideographic.js
+test262/built-ins/RegExp/property-escapes/generated/Script_-_Common.js
+test262/built-ins/RegExp/property-escapes/generated/Script_-_Han.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Common.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Han.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Malayalam.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Sharada.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Sinhala.js
+test262/built-ins/RegExp/property-escapes/generated/Sentence_Terminal.js
+test262/built-ins/RegExp/property-escapes/generated/Unified_Ideograph.js
+test262/built-ins/RegExp/property-escapes/generated/XID_Continue.js
+test262/built-ins/RegExp/property-escapes/generated/XID_Start.js
+test262/intl402/Intl/supportedValuesOf/timeZones-accepted-by-DateTimeFormat.js
+test262/intl402/Locale/likely-subtags.js
diff --git a/dev-lang/spidermonkey/files/spidermonkey-52.0-fix-alpha-bitness.patch b/dev-lang/spidermonkey/files/spidermonkey-52.0-fix-alpha-bitness.patch
deleted file mode 100644
index b0f872964388..000000000000
--- a/dev-lang/spidermonkey/files/spidermonkey-52.0-fix-alpha-bitness.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-
-# HG changeset patch
-# User John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
-# Date 1482966103 -3600
-# Node ID 1f4d99d8dff27bcc25eff21dc6a16dae63f48595
-# Parent ce9e9f0dc752896ac7ba00bb0610b3f731e948b0
-Bug 1326496 - mozbuild: Fix bitness from 32 to 64 bits on alpha. r=glandium
-
-
-diff --git a/python/mozbuild/mozbuild/configure/constants.py b/python/mozbuild/mozbuild/configure/constants.py
---- a/python/mozbuild/mozbuild/configure/constants.py
-+++ b/python/mozbuild/mozbuild/configure/constants.py
-@@ -35,17 +35,17 @@ Kernel = EnumString.subclass(
- 'Linux',
- 'NetBSD',
- 'OpenBSD',
- 'WINNT',
- )
-
- CPU_bitness = {
- 'aarch64': 64,
-- 'Alpha': 32,
-+ 'Alpha': 64,
- 'arm': 32,
- 'hppa': 32,
- 'ia64': 64,
- 'mips32': 32,
- 'mips64': 64,
- 'ppc': 32,
- 'ppc64': 64,
- 's390': 32,
-
diff --git a/dev-lang/spidermonkey/files/spidermonkey-52.0-gcc9-overflow.patch b/dev-lang/spidermonkey/files/spidermonkey-52.0-gcc9-overflow.patch
deleted file mode 100644
index c7eb0f62b280..000000000000
--- a/dev-lang/spidermonkey/files/spidermonkey-52.0-gcc9-overflow.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 311fc467219ab6ee9eed60759b58a8066c4bf36d Mon Sep 17 00:00:00 2001
-From:
-Date: Thu, 25 Jul 2019 10:00:33 -0500
-Subject: [PATCH] gcc-9 overflow fix
-
----
- js/src/jsapi-tests/testPrintf.cpp | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/js/src/jsapi-tests/testPrintf.cpp b/js/src/jsapi-tests/testPrintf.cpp
-index 51486856..03cc118d 100644
---- a/js/src/jsapi-tests/testPrintf.cpp
-+++ b/js/src/jsapi-tests/testPrintf.cpp
-@@ -55,7 +55,6 @@ BEGIN_TEST(testPrintf)
- CHECK(print_one("27270", "%zu", (size_t) 27270));
- CHECK(print_one("27270", "%" PRIuSIZE, (size_t) 27270));
- CHECK(print_one("hello", "he%so", "ll"));
-- CHECK(print_one("(null)", "%s", zero()));
- CHECK(print_one("0", "%p", (char *) 0));
- CHECK(print_one("h", "%c", 'h'));
- CHECK(print_one("1.500000", "%f", 1.5f));
---
-2.22.0
-
diff --git a/dev-lang/spidermonkey/files/spidermonkey-60.5.2-ia64-fix-virtual-address-length.patch b/dev-lang/spidermonkey/files/spidermonkey-60.5.2-ia64-fix-virtual-address-length.patch
deleted file mode 100644
index 8b2245f1e353..000000000000
--- a/dev-lang/spidermonkey/files/spidermonkey-60.5.2-ia64-fix-virtual-address-length.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From 8099213b51180254b322332ecd573239da4212c4 Mon Sep 17 00:00:00 2001
-From: Sergei Trofimovich <slyfox@gentoo.org>
-Date: Thu, 23 Jan 2020 22:57:53 +0000
-Subject: [PATCH] ProcessExecutableMemory.cpp: fix virtual address length on
- ia64
-
-ia64's usable virtual address space is page dependent. For 16K
-pages with 3 levels of page tables de can address only 44 bits
-of virtual memory, not default 47.
-
-The change makes page size detection dynamic and adapts to
-addressable bits. On ia64 it is '4 * log2(page_size/8)'.
-
-Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
----
- js/src/jit/ProcessExecutableMemory.cpp | 25 +++++++++++++++++++++++++
- 1 file changed, 25 insertions(+)
-
-diff --git a/js/src/jit/ProcessExecutableMemory.cpp b/js/src/jit/ProcessExecutableMemory.cpp
-index 9e55c262..8581c150 100644
---- a/js/src/jit/ProcessExecutableMemory.cpp
-+++ b/js/src/jit/ProcessExecutableMemory.cpp
-
-@@ -248,7 +248,32 @@ static void* ComputeRandomAllocationAddress() {
- // x64 CPUs have a 48-bit address space and on some platforms the OS will
- // give us access to 47 bits, so to be safe we right shift by 18 to leave
- // 46 bits.
-+# ifdef __ia64__
-+ // On ia64 virtual address space looks like one of:
-+ // virt_addr_64 = [ <63..61> | <unimplemented> | L3 | L2 | L1 | offset ]
-+ // virt_addr_64 = [ <63..61> | <unimplemented> | L4 | L3 | L2 | L1 | offset ]
-+ // where L{1..L4} are page tables. Each page table (except top-level L3 or L4)
-+ // is itself a page-size entry and can store PageSize / 8 entries. Top-level
-+ // entry is 1/8 of of L1/L2 (as 3 upper bits are part of <63..61> address part).
-+ // Note: that makes addressable size directly depend on page size.
-+ //
-+ // We conservatively assume 3 levels of page tables here. This makes the
-+ // following formula:
-+ // L3 = log2(PAGE / 8 / 8) = log2(PAGE / 8) - 3
-+ // L2 = log2(PAGE / 8)
-+ // L1 = log2(PAGE / 8)
-+ // offset = log2(PAGE) = log2(PAGE / 8) + 3
-+ // thus
-+ // L3 + L2 + L1 + offset = 4 * log2(PAGE / 8)
-+ // For more details see http://www.ia64-linux.org/doc/IA64linuxkernel.PDF
-+ // (slide 19: "user regions").
-+ static uint64_t ia64_virt_bits = std::min<uint64_t>(
-+ 4 * (mozilla::FloorLog2(gc::SystemPageSize() / 8)),
-+ 46);
-+ rand >>= (64 - ia64_virt_bits);
-+# else
- rand >>= 18;
-+# endif
- #else
- // On 32-bit, right shift by 34 to leave 30 bits, range [0, 1GiB). Then add
- // 512MiB to get range [512MiB, 1.5GiB), or [0x20000000, 0x60000000). This
---
-2.25.0
-
diff --git a/dev-lang/spidermonkey/files/spidermonkey-60.5.2-ia64-support.patch b/dev-lang/spidermonkey/files/spidermonkey-60.5.2-ia64-support.patch
deleted file mode 100644
index 90c8a4c9da3b..000000000000
--- a/dev-lang/spidermonkey/files/spidermonkey-60.5.2-ia64-support.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 35d787c782a075c0a01e29605d254950fd1e81a6 Mon Sep 17 00:00:00 2001
-From: Sergei Trofimovich <slyfox@gentoo.org>
-Date: Thu, 25 Jul 2019 10:17:39 -0500
-Subject: [PATCH] Add support for ia64 atomic-ops
-
-Signed-off-by: Jory Pratt <anarchy@gentoo.org>
----
- js/src/jit/AtomicOperations.h | 2 ++
- js/src/jit/none/AtomicOperations-feeling-lucky.h | 6 ++++++
- 2 files changed, 8 insertions(+)
-
-diff --git a/js/src/jit/AtomicOperations.h b/js/src/jit/AtomicOperations.h
-index 3501e65b..44c3f358 100644
---- a/js/src/jit/AtomicOperations.h
-+++ b/js/src/jit/AtomicOperations.h
-@@ -393,6 +393,8 @@ inline bool AtomicOperations::isLockfreeJS(int32_t size) {
- #include "jit/none/AtomicOperations-feeling-lucky.h"
- #elif defined(__s390__) || defined(__s390x__)
- #include "jit/none/AtomicOperations-feeling-lucky.h"
-+#elif defined(__ia64__)
-+#include "jit/none/AtomicOperations-feeling-lucky.h"
- #else
- #error "No AtomicOperations support provided for this platform"
- #endif
-diff --git a/js/src/jit/none/AtomicOperations-feeling-lucky.h b/js/src/jit/none/AtomicOperations-feeling-lucky.h
-index c0b43699..a3f4497e 100644
---- a/js/src/jit/none/AtomicOperations-feeling-lucky.h
-+++ b/js/src/jit/none/AtomicOperations-feeling-lucky.h
-@@ -80,6 +80,12 @@
- #define GNUC_COMPATIBLE
- #endif
-
-+#ifdef __ia64__
-+#define HAS_64BIT_ATOMICS
-+#define HAS_64BIT_LOCKFREE
-+#define GNUC_COMPATIBLE
-+#endif
-+
- // The default implementation tactic for gcc/clang is to use the newer
- // __atomic intrinsics added for use in C++11 <atomic>. Where that
- // isn't available, we use GCC's older __sync functions instead.
---
-2.22.0
-
diff --git a/dev-lang/spidermonkey/files/spidermonkey-perl-defined-array-check.patch b/dev-lang/spidermonkey/files/spidermonkey-perl-defined-array-check.patch
deleted file mode 100644
index c3996ae82bb3..000000000000
--- a/dev-lang/spidermonkey/files/spidermonkey-perl-defined-array-check.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/js/src/config/milestone.pl 2013-02-11 17:33:22.000000000 -0500
-+++ b/js/src/config/milestone.pl 2015-07-15 10:44:31.676153600 -0400
-@@ -55,7 +55,7 @@
- #
- my $milestone = Moz::Milestone::getOfficialMilestone($MILESTONE_FILE);
-
--if (defined(@TEMPLATE_FILE)) {
-+if (@TEMPLATE_FILE) {
- my $TFILE;
-
- foreach $TFILE (@TEMPLATE_FILE) {
diff --git a/dev-lang/spidermonkey/metadata.xml b/dev-lang/spidermonkey/metadata.xml
index 0e68089f7c5c..451d64839c6f 100644
--- a/dev-lang/spidermonkey/metadata.xml
+++ b/dev-lang/spidermonkey/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>mozilla@gentoo.org</email>
@@ -7,10 +7,6 @@
</maintainer>
<use>
<flag name="clang">Use Clang compiler instead of GCC</flag>
- <flag name="custom-optimization">Build with user-specified compiler optimizations
- (-Os, -O0, -O1, -O2, -O3) from CFLAGS (unsupported)</flag>
<flag name="debug">Enable assertions to allow for easier debugging of programs that link to spidermonkey -- note this will often crash software on regular end-user systems</flag>
- <flag name="lto">Enable Link Time Optimization (LTO)</flag>
- <flag name="system-icu">Use the system-wide <pkg>dev-libs/icu</pkg> instead of bundled -- note, only takes effect when icu flag is enabled</flag>
</use>
</pkgmetadata>
diff --git a/dev-lang/spidermonkey/spidermonkey-1.8.5-r9.ebuild b/dev-lang/spidermonkey/spidermonkey-1.8.5-r9.ebuild
deleted file mode 100644
index 3808367d5171..000000000000
--- a/dev-lang/spidermonkey/spidermonkey-1.8.5-r9.ebuild
+++ /dev/null
@@ -1,152 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-WANT_AUTOCONF="2.1"
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE="threads"
-inherit autotools toolchain-funcs multilib python-any-r1 versionator pax-utils
-
-MY_PN="js"
-TARBALL_PV="$(replace_all_version_separators '' $(get_version_component_range 1-3))"
-MY_P="${MY_PN}-${PV}"
-TARBALL_P="${MY_PN}${TARBALL_PV}-1.0.0"
-DESCRIPTION="Stand-alone JavaScript C library"
-HOMEPAGE="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
-SRC_URI="https://archive.mozilla.org/pub/js/${TARBALL_P}.tar.gz
- https://dev.gentoo.org/~axs/distfiles/${PN}-slot0-patches-02.tar.xz
- "
-
-LICENSE="NPL-1.1"
-SLOT="0/mozjs185"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 s390 x86 ~x64-macos"
-IUSE="debug minimal static-libs test"
-RESTRICT="!test? ( test )"
-
-S="${WORKDIR}/${MY_P}"
-BUILDDIR="${S}/js/src"
-
-RDEPEND=">=dev-libs/nspr-4.7.0
- sys-libs/readline:0=
- x64-macos? ( dev-libs/jemalloc )"
-DEPEND="${RDEPEND}
- ${PYTHON_DEPS}
- app-arch/zip
- virtual/pkgconfig"
-
-PATCHES=(
- "${WORKDIR}"/sm0/${P}-fix-install-symlinks.patch
- "${WORKDIR}"/sm0/${P}-fix-ppc64.patch
- "${WORKDIR}"/sm0/${P}-arm_respect_cflags-3.patch
- "${WORKDIR}"/sm0/${PN}-1.8.7-freebsd-pthreads.patch
- "${WORKDIR}"/sm0/${P}-perf_event-check.patch
- "${WORKDIR}"/sm0/${P}-symbol-versions.patch
- "${WORKDIR}"/sm0/${P}-ia64-fix.patch
- "${WORKDIR}"/sm0/${P}-ia64-static-strings.patch
- "${WORKDIR}"/sm0/${P}-isfinite.patch
- "${FILESDIR}"/${PN}-perl-defined-array-check.patch
- "${WORKDIR}"/sm0/${PN}-1.8.7-x32.patch
- "${WORKDIR}"/sm0/${P}-gcc6.patch
- "${WORKDIR}"/sm0/${P}-drop-asm-volatile-toplevel.patch
- "${FILESDIR}"/${P}-LTO.patch
-)
-
-DOCS=( ${S}/README )
-HTML_DOCS=( ${BUILDDIR}/README.html )
-
-pkg_setup() {
- if [[ ${MERGE_TYPE} != "binary" ]]; then
- export LC_ALL="C"
- fi
-}
-
-src_prepare() {
- pwd
-
- default
-
- cd "${BUILDDIR}" || die
- eautoconf
-
- # remove options that are not correct from js-config
- sed '/lib-filenames/d' -i "${BUILDDIR}"/js-config.in || die "failed to remove invalid option from js-config"
-}
-
-src_configure() {
- cd "${BUILDDIR}" || die
-
- CC="$(tc-getCC)" CXX="$(tc-getCXX)" \
- AR="$(tc-getAR)" RANLIB="$(tc-getRANLIB)" \
- LD="$(tc-getLD)" \
- ac_cv_lib_dnet_dnet_ntoa=no \
- ac_cv_lib_dnet_stub_dnet_ntoa=no \
- econf \
- ${myopts} \
- --enable-jemalloc \
- --enable-readline \
- --enable-threadsafe \
- --with-system-nspr \
- --disable-optimize \
- --disable-profile-guided-optimization \
- $(use_enable debug) \
- $(use_enable static-libs static) \
- $(use_enable test tests)
-}
-
-cross_make() {
- emake \
- CFLAGS="${BUILD_CFLAGS}" \
- CXXFLAGS="${BUILD_CXXFLAGS}" \
- AR="${BUILD_AR}" \
- CC="${BUILD_CC}" \
- CXX="${BUILD_CXX}" \
- RANLIB="${BUILD_RANLIB}" \
- "$@"
-}
-src_compile() {
- cd "${BUILDDIR}" || die
- if tc-is-cross-compiler; then
- tc-export_build_env BUILD_{AR,CC,CXX,RANLIB}
- cross_make jscpucfg host_jsoplengen host_jskwgen
- cross_make -C config nsinstall
- mv {,native-}jscpucfg || die
- mv {,native-}host_jskwgen || die
- mv {,native-}host_jsoplengen || die
- mv config/{,native-}nsinstall || die
- sed -i \
- -e 's@./jscpucfg@./native-jscpucfg@' \
- -e 's@./host_jskwgen@./native-host_jskwgen@' \
- -e 's@./host_jsoplengen@./native-host_jsoplengen@' \
- Makefile || die
- sed -i -e 's@/nsinstall@/native-nsinstall@' config/config.mk || die
- rm -f config/host_nsinstall.o \
- config/host_pathsub.o \
- host_jskwgen.o \
- host_jsoplengen.o || die
- fi
- emake
-}
-
-src_test() {
- cd "${BUILDDIR}/jsapi-tests" || die
- # for bug 415791
- pax-mark mr jsapi-tests
- emake check
-}
-
-src_install() {
- cd "${BUILDDIR}" || die
- emake DESTDIR="${D}" install
- # bug 437520 , exclude js shell for small systems
- if ! use minimal ; then
- dobin shell/js
- pax-mark m "${ED}/usr/bin/js"
- fi
- einstalldocs
-
- if ! use static-libs; then
- # We can't actually disable building of static libraries
- # They're used by the tests and in a few other places
- find "${D}" -iname '*.a' -delete || die
- fi
-}
diff --git a/dev-lang/spidermonkey/spidermonkey-102.15.0.ebuild b/dev-lang/spidermonkey/spidermonkey-102.15.0.ebuild
new file mode 100644
index 000000000000..b1ab05478ed6
--- /dev/null
+++ b/dev-lang/spidermonkey/spidermonkey-102.15.0.ebuild
@@ -0,0 +1,489 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="8"
+
+# Patch version
+FIREFOX_PATCHSET="firefox-102esr-patches-13.tar.xz"
+SPIDERMONKEY_PATCHSET="spidermonkey-102-patches-05j.tar.xz"
+
+LLVM_MAX_SLOT=17
+
+PYTHON_COMPAT=( python3_{10..11} )
+PYTHON_REQ_USE="ssl,xml(+)"
+
+WANT_AUTOCONF="2.1"
+
+inherit autotools check-reqs flag-o-matic llvm multiprocessing prefix python-any-r1 toolchain-funcs
+
+MY_PN="mozjs"
+MY_PV="${PV/_pre*}" # Handle Gentoo pre-releases
+
+MY_MAJOR=$(ver_cut 1)
+
+MOZ_ESR=yes
+
+MOZ_PV=${PV}
+MOZ_PV_SUFFIX=
+if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then
+ MOZ_PV_SUFFIX=${BASH_REMATCH[1]}
+
+ # Convert the ebuild version to the upstream Mozilla version
+ MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI
+ MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI
+ MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI
+fi
+
+if [[ -n ${MOZ_ESR} ]] ; then
+ # ESR releases have slightly different version numbers
+ MOZ_PV="${MOZ_PV}esr"
+fi
+
+MOZ_PN="firefox"
+MOZ_P="${MOZ_PN}-${MOZ_PV}"
+MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
+MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
+
+MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}"
+
+if [[ ${PV} == *_rc* ]] ; then
+ MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}"
+fi
+
+PATCH_URIS=(
+ https://dev.gentoo.org/~{juippis,whissi}/mozilla/patchsets/${FIREFOX_PATCHSET}
+ https://dev.gentoo.org/~{juippis,whissi}/mozilla/patchsets/${SPIDERMONKEY_PATCHSET}
+)
+
+SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz
+ ${PATCH_URIS[@]}"
+
+DESCRIPTION="SpiderMonkey is Mozilla's JavaScript engine written in C and C++"
+HOMEPAGE="https://spidermonkey.dev https://firefox-source-docs.mozilla.org/js/index.html "
+
+KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv x86"
+
+SLOT="$(ver_cut 1)"
+LICENSE="MPL-2.0"
+IUSE="clang cpu_flags_arm_neon debug +jit lto test"
+
+#RESTRICT="test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="${PYTHON_DEPS}
+ || (
+ (
+ sys-devel/llvm:17
+ clang? (
+ sys-devel/clang:17
+ sys-devel/lld:17
+ virtual/rust:0/llvm-17
+ )
+ )
+ (
+ sys-devel/llvm:16
+ clang? (
+ sys-devel/clang:16
+ sys-devel/lld:16
+ virtual/rust:0/llvm-16
+ )
+ )
+ (
+ sys-devel/llvm:15
+ clang? (
+ sys-devel/clang:15
+ virtual/rust:0/llvm-15
+ lto? ( sys-devel/lld:15 )
+ )
+ )
+ (
+ sys-devel/llvm:14
+ clang? (
+ sys-devel/clang:14
+ virtual/rust:0/llvm-14
+ lto? ( sys-devel/lld:14 )
+ )
+ )
+ )
+ !clang? ( virtual/rust )
+ virtual/pkgconfig
+ test? (
+ $(python_gen_any_dep 'dev-python/six[${PYTHON_USEDEP}]')
+ )"
+DEPEND=">=dev-libs/icu-71.1:=
+ dev-libs/nspr
+ sys-libs/readline:0=
+ sys-libs/zlib"
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/firefox-${MY_PV}/js/src"
+
+llvm_check_deps() {
+ if ! has_version -b "sys-devel/llvm:${LLVM_SLOT}" ; then
+ einfo "sys-devel/llvm:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+
+ if use clang ; then
+ if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then
+ einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+
+ if ! has_version -b "virtual/rust:0/llvm-${LLVM_SLOT}" ; then
+ einfo "virtual/rust:0/llvm-${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+
+ if use lto ; then
+ if ! has_version -b "sys-devel/lld:${LLVM_SLOT}" ; then
+ einfo "sys-devel/lld:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+ fi
+ fi
+
+ einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
+}
+
+python_check_deps() {
+ if use test ; then
+ python_has_version "dev-python/six[${PYTHON_USEDEP}]"
+ fi
+}
+
+pkg_pretend() {
+ if use test ; then
+ CHECKREQS_DISK_BUILD="4000M"
+ else
+ CHECKREQS_DISK_BUILD="3600M"
+ fi
+
+ check-reqs_pkg_pretend
+}
+
+pkg_setup() {
+ if [[ ${MERGE_TYPE} != binary ]] ; then
+ if use test ; then
+ CHECKREQS_DISK_BUILD="4000M"
+ else
+ CHECKREQS_DISK_BUILD="3600M"
+ fi
+
+ check-reqs_pkg_setup
+
+ llvm_pkg_setup
+
+ if use clang && use lto ; then
+ local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }')
+ [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}")
+ [[ -z ${version_lld} ]] && die "Failed to read ld.lld version!"
+
+ local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }')
+ [[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}")
+ [[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!"
+
+ if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then
+ eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}."
+ eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:"
+ eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version"
+ eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version"
+ eerror " - Build ${CATEGORY}/${PN} without USE=lto"
+ eerror " - Rebuild lld with llvm that was used to build rust (may need to rebuild the whole "
+ eerror " llvm/clang/lld/rust chain depending on your @world updates)"
+ die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!"
+ fi
+ fi
+
+ python-any-r1_pkg_setup
+
+ # Build system is using /proc/self/oom_score_adj, bug #604394
+ addpredict /proc/self/oom_score_adj
+
+ if ! mountpoint -q /dev/shm ; then
+ # If /dev/shm is not available, configure is known to fail with
+ # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py
+ ewarn "/dev/shm is not mounted -- expect build failures!"
+ fi
+
+ # Ensure we use C locale when building, bug #746215
+ export LC_ALL=C
+ fi
+}
+
+src_prepare() {
+ pushd ../.. &>/dev/null || die
+
+ use lto && rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch
+
+ eapply "${WORKDIR}"/firefox-patches
+ eapply "${WORKDIR}"/spidermonkey-patches
+
+ default
+
+ # Make cargo respect MAKEOPTS
+ export CARGO_BUILD_JOBS="$(makeopts_jobs)"
+
+ # sed-in toolchain prefix
+ sed -i \
+ -e "s/objdump/${CHOST}-objdump/" \
+ python/mozbuild/mozbuild/configure/check_debug_ranges.py \
+ || die "sed failed to set toolchain prefix"
+
+ # use prefix shell in wrapper linker scripts, bug #789660
+ hprefixify "${S}"/../../build/cargo-{,host-}linker
+
+ einfo "Removing pre-built binaries ..."
+ find third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die
+
+ MOZJS_BUILDDIR="${WORKDIR}/build"
+ mkdir "${MOZJS_BUILDDIR}" || die
+
+ popd &>/dev/null || die
+ eautoconf
+}
+
+src_configure() {
+ # Show flags set at the beginning
+ einfo "Current CFLAGS: ${CFLAGS}"
+ einfo "Current CXXFLAGS: ${CXXFLAGS}"
+ einfo "Current LDFLAGS: ${LDFLAGS}"
+ einfo "Current RUSTFLAGS: ${RUSTFLAGS}"
+
+ local have_switched_compiler=
+ if use clang; then
+ # Force clang
+ einfo "Enforcing the use of clang due to USE=clang ..."
+ if tc-is-gcc; then
+ have_switched_compiler=yes
+ fi
+ AR=llvm-ar
+ CC=${CHOST}-clang
+ CXX=${CHOST}-clang++
+ NM=llvm-nm
+ RANLIB=llvm-ranlib
+ elif ! use clang && ! tc-is-gcc ; then
+ # Force gcc
+ have_switched_compiler=yes
+ einfo "Enforcing the use of gcc due to USE=-clang ..."
+ AR=gcc-ar
+ CC=${CHOST}-gcc
+ CXX=${CHOST}-g++
+ NM=gcc-nm
+ RANLIB=gcc-ranlib
+ fi
+
+ if [[ -n "${have_switched_compiler}" ]] ; then
+ # Because we switched active compiler we have to ensure
+ # that no unsupported flags are set
+ strip-unsupported-flags
+ fi
+
+ # Ensure we use correct toolchain
+ export HOST_CC="$(tc-getBUILD_CC)"
+ export HOST_CXX="$(tc-getBUILD_CXX)"
+ export AS="$(tc-getCC) -c"
+ tc-export CC CXX LD AR AS NM OBJDUMP RANLIB PKG_CONFIG
+
+ cd "${MOZJS_BUILDDIR}" || die
+
+ # ../python/mach/mach/mixin/process.py fails to detect SHELL
+ export SHELL="${EPREFIX}/bin/bash"
+
+ local -a myeconfargs=(
+ --host="${CBUILD:-${CHOST}}"
+ --target="${CHOST}"
+
+ --disable-ctype
+ --disable-jemalloc
+ --disable-smoosh
+ --disable-strip
+
+ --enable-readline
+ --enable-release
+ --enable-shared-js
+
+ --with-intl-api
+ --with-system-icu
+ --with-system-nspr
+ --with-system-zlib
+ --with-toolchain-prefix="${CHOST}-"
+
+ $(use_enable debug)
+ $(use_enable jit)
+ $(use_enable test tests)
+ )
+
+ if use debug; then
+ myeconfargs+=( --disable-optimize )
+ myeconfargs+=( --enable-debug-symbols )
+ else
+ myeconfargs+=( --enable-optimize )
+ myeconfargs+=( --disable-debug-symbols )
+ fi
+
+ # Always troubling with newer rust versions.
+ myeconfargs+=( --disable-rust-simd )
+
+ # Modifications to better support ARM, bug 717344
+ if use cpu_flags_arm_neon ; then
+ myeconfargs+=( --with-fpu=neon )
+
+ if ! tc-is-clang ; then
+ # thumb options aren't supported when using clang, bug 666966
+ myeconfargs+=( --with-thumb=yes )
+ myeconfargs+=( --with-thumb-interwork=no )
+ fi
+ fi
+
+ # Tell build system that we want to use LTO
+ if use lto ; then
+ if use clang ; then
+ myeconfargs+=( --enable-linker=lld )
+ myeconfargs+=( --enable-lto=cross )
+ else
+ myeconfargs+=( --enable-linker=bfd )
+ myeconfargs+=( --enable-lto=full )
+ fi
+ fi
+
+ # LTO flag was handled via configure
+ filter-lto
+
+ # Use system's Python environment
+ export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none"
+ export PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach
+
+ # Show flags we will use
+ einfo "Build CFLAGS: ${CFLAGS}"
+ einfo "Build CXXFLAGS: ${CXXFLAGS}"
+ einfo "Build LDFLAGS: ${LDFLAGS}"
+ einfo "Build RUSTFLAGS: ${RUSTFLAGS}"
+
+ # Forcing system-icu allows us to skip patching bundled ICU for PPC
+ # and other minor arches
+ ECONF_SOURCE="${S}" \
+ econf \
+ ${myeconfargs[@]} \
+ XARGS="${EPREFIX}/usr/bin/xargs"
+}
+
+src_compile() {
+ cd "${MOZJS_BUILDDIR}" || die
+ default
+}
+
+src_test() {
+ if "${MOZJS_BUILDDIR}/js/src/js" -e 'print("Hello world!")'; then
+ einfo "Smoke-test successful, continuing with full test suite"
+ else
+ die "Smoke-test failed: did interpreter initialization fail?"
+ fi
+
+ cp "${FILESDIR}"/spidermonkey-${SLOT}-known-test-failures.txt "${T}"/known_failures.list || die
+
+ if [[ $(tc-endian) == "big" ]] ; then
+ echo "non262/extensions/clone-errors.js" >> "${T}"/known_failures.list
+ echo "test262/built-ins/Date/UTC/fp-evaluation-order.js" >> "${T}"/known_failures.list
+ echo "test262/built-ins/TypedArray/prototype/set/typedarray-arg-set-values-same-buffer-other-type.js" >> "${T}"/known_failures.list
+ fi
+
+ if use ppc; then
+ echo "non262/Array/fill.js" >> "${T}"/known_failures.list
+ echo "non262/Array/sort_basics.js" >> "${T}"/known_failures.list
+ echo "non262/Symbol/typed-arrays.js" >> "${T}"/known_failures.list
+ echo "non262/Intl/TypedArray/toLocaleString.js" >> "${T}"/known_failures.list
+ echo "non262/TypedArray/entries.js" >> "${T}"/known_failures.list
+ echo "non262/TypedArray/fill.js" >> "${T}"/known_failures.list
+ echo "non262/TypedArray/map-species.js" >> "${T}"/known_failures.list
+ echo "non262/TypedArray/iterator.js" >> "${T}"/known_failures.list
+ echo "non262/TypedArray/reverse.js" >> "${T}"/known_failures.list
+ echo "non262/TypedArray/join.js" >> "${T}"/known_failures.list
+ echo "non262/TypedArray/sort_comparators.js" >> "${T}"/known_failures.list
+ echo "non262/TypedArray/forEach.js" >> "${T}"/known_failures.list
+ echo "non262/TypedArray/slice.js" >> "${T}"/known_failures.list
+ echo "non262/TypedArray/sort_compare_nan.js" >> "${T}"/known_failures.list
+ echo "non262/TypedArray/set-toobject.js" >> "${T}"/known_failures.list
+ echo "non262/TypedArray/sort-non-function.js" >> "${T}"/known_failures.list
+ echo "non262/TypedArray/includes.js" >> "${T}"/known_failures.list
+ echo "non262/TypedArray/subarray-species.js" >> "${T}"/known_failures.list
+ echo "non262/TypedArray/indexOf-never-returns-negative-zero.js" >> "${T}"/known_failures.list
+ echo "non262/TypedArray/map-and-filter.js" >> "${T}"/known_failures.list
+ echo "non262/TypedArray/at.js" >> "${T}"/known_failures.list
+ echo "non262/TypedArray/from_errors.js" >> "${T}"/known_failures.list
+ echo "non262/TypedArray/values.js" >> "${T}"/known_failures.list
+ echo "non262/TypedArray/set-wrapped.js" >> "${T}"/known_failures.list
+ echo "non262/TypedArray/every-and-some.js" >> "${T}"/known_failures.list
+ echo "non262/TypedArray/from_mapping.js" >> "${T}"/known_failures.list
+ echo "non262/TypedArray/lastIndexOf-never-returns-negative-zero.js" >> "${T}"/known_failures.list
+ echo "non262/Reflect/preventExtensions.js" >> "${T}"/known_failures.list
+ echo "non262/TypedArray/sort_sorted.js" >> "${T}"/known_failures.list
+ echo "non262/TypedArray/of.js" >> "${T}"/known_failures.list
+ echo "non262/TypedArray/keys.js" >> "${T}"/known_failures.list
+ echo "non262/TypedArray/from_realms.js" >> "${T}"/known_failures.list
+ echo "non262/TypedArray/from_iterable.js" >> "${T}"/known_failures.list
+ echo "non262/TypedArray/filter-species.js" >> "${T}"/known_failures.list
+ echo "non262/TypedArray/object-defineproperty.js" >> "${T}"/known_failures.list
+ echo "non262/TypedArray/uint8clamped-constructor.js" >> "${T}"/known_failures.list
+ echo "non262/TypedArray/indexOf-and-lastIndexOf.js" >> "${T}"/known_failures.list
+ echo "non262/TypedArray/slice-species.js" >> "${T}"/known_failures.list
+ echo "non262/TypedArray/set-tointeger.js" >> "${T}"/known_failures.list
+ echo "non262/Reflect/ownKeys.js" >> "${T}"/known_failures.list
+ echo "non262/TypedArray/seal-and-freeze.js" >> "${T}"/known_failures.list
+ echo "non262/TypedArray/reduce-and-reduceRight.js" >> "${T}"/known_failures.list
+ echo "non262/TypedArray/from_basics.js" >> "${T}"/known_failures.list
+ echo "non262/TypedArray/find-and-findIndex.js" >> "${T}"/known_failures.list
+ echo "non262/Reflect/isExtensible.js" >> "${T}"/known_failures.list
+ echo "non262/regress/regress-571014.js" >> "${T}"/known_failures.list
+ echo "non262/extensions/reviver-mutates-holder-object-nonnative.js" >> "${T}"/known_failures.list
+ echo "non262/extensions/typedarray-set-neutering.js" >> "${T}"/known_failures.list
+ echo "non262/extensions/reviver-mutates-holder-array-nonnative.js" >> "${T}"/known_failures.list
+ echo "non262/extensions/typedarray.js" >> "${T}"/known_failures.list
+ echo "non262/Math/fround.js" >> "${T}"/known_failures.list
+ fi
+
+ if use x86 ; then
+ echo "non262/Date/timeclip.js" >> "${T}"/known_failures.list
+ echo "test262/built-ins/Date/UTC/fp-evaluation-order.js" >> "${T}"/known_failures.list
+ echo "test262/language/types/number/S8.5_A2.1.js" >> "${T}"/known_failures.list
+ echo "test262/language/types/number/S8.5_A2.2.js" >> "${T}"/known_failures.list
+ fi
+
+ ${EPYTHON} \
+ "${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \
+ --exclude-file="${T}"/known_failures.list \
+ "${MOZJS_BUILDDIR}"/js/src/js \
+ || die
+
+ if use jit ; then
+ ${EPYTHON} \
+ "${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \
+ --exclude-file="${T}"/known_failures.list \
+ "${MOZJS_BUILDDIR}"/js/src/js basic \
+ || die
+ fi
+}
+
+src_install() {
+ cd "${MOZJS_BUILDDIR}" || die
+ default
+
+ # fix soname links
+ pushd "${ED}"/usr/$(get_libdir) &>/dev/null || die
+ mv lib${MY_PN}-${MY_MAJOR}.so lib${MY_PN}-${MY_MAJOR}.so.0.0.0 || die
+ ln -s lib${MY_PN}-${MY_MAJOR}.so.0.0.0 lib${MY_PN}-${MY_MAJOR}.so.0 || die
+ ln -s lib${MY_PN}-${MY_MAJOR}.so.0 lib${MY_PN}-${MY_MAJOR}.so || die
+ popd &>/dev/null || die
+
+ # remove unneeded files
+ rm \
+ "${ED}"/usr/bin/js${MY_MAJOR}-config \
+ "${ED}"/usr/$(get_libdir)/libjs_static.ajs \
+ || die
+
+ # fix permissions
+ chmod -x \
+ "${ED}"/usr/$(get_libdir)/pkgconfig/*.pc \
+ "${ED}"/usr/include/mozjs-${MY_MAJOR}/js-config.h \
+ || die
+}
diff --git a/dev-lang/spidermonkey/spidermonkey-115.10.0.ebuild b/dev-lang/spidermonkey/spidermonkey-115.10.0.ebuild
new file mode 100644
index 000000000000..ecca50c0ad51
--- /dev/null
+++ b/dev-lang/spidermonkey/spidermonkey-115.10.0.ebuild
@@ -0,0 +1,504 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="8"
+
+# Patch version
+FIREFOX_PATCHSET="firefox-115esr-patches-10.tar.xz"
+SPIDERMONKEY_PATCHSET="spidermonkey-115-patches-01.tar.xz"
+
+LLVM_MAX_SLOT=18
+
+PYTHON_COMPAT=( python3_{10..12} )
+PYTHON_REQ_USE="ncurses,ssl,xml(+)"
+
+WANT_AUTOCONF="2.1"
+
+inherit autotools check-reqs flag-o-matic llvm multiprocessing prefix python-any-r1 toolchain-funcs
+
+MY_PN="mozjs"
+MY_PV="${PV/_pre*}" # Handle Gentoo pre-releases
+
+MY_MAJOR=$(ver_cut 1)
+
+MOZ_ESR=yes
+
+MOZ_PV=${PV}
+MOZ_PV_SUFFIX=
+if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then
+ MOZ_PV_SUFFIX=${BASH_REMATCH[1]}
+
+ # Convert the ebuild version to the upstream Mozilla version
+ MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI
+ MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI
+ MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI
+fi
+
+if [[ -n ${MOZ_ESR} ]] ; then
+ # ESR releases have slightly different version numbers
+ MOZ_PV="${MOZ_PV}esr"
+fi
+
+MOZ_PN="firefox"
+MOZ_P="${MOZ_PN}-${MOZ_PV}"
+MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
+MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
+
+MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}"
+
+if [[ ${PV} == *_rc* ]] ; then
+ MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}"
+fi
+
+PATCH_URIS=(
+ https://dev.gentoo.org/~juippis/mozilla/patchsets/${FIREFOX_PATCHSET}
+ https://dev.gentoo.org/~juippis/mozilla/patchsets/${SPIDERMONKEY_PATCHSET}
+)
+
+SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz
+ ${PATCH_URIS[@]}"
+
+DESCRIPTION="SpiderMonkey is Mozilla's JavaScript engine written in C and C++"
+HOMEPAGE="https://spidermonkey.dev https://firefox-source-docs.mozilla.org/js/index.html "
+
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+
+SLOT="$(ver_cut 1)"
+LICENSE="MPL-2.0"
+IUSE="clang cpu_flags_arm_neon debug +jit lto test"
+
+#RESTRICT="test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="${PYTHON_DEPS}
+ virtual/pkgconfig
+ || (
+ (
+ sys-devel/llvm:18
+ clang? (
+ sys-devel/lld:18
+ sys-devel/clang:18
+ virtual/rust:0/llvm-18
+ )
+ )
+ (
+ sys-devel/llvm:17
+ clang? (
+ sys-devel/lld:17
+ sys-devel/clang:17
+ virtual/rust:0/llvm-17
+ )
+ )
+ (
+ sys-devel/llvm:16
+ clang? (
+ sys-devel/lld:16
+ sys-devel/clang:16
+ virtual/rust:0/llvm-16
+ )
+ )
+ (
+ sys-devel/llvm:15
+ clang? (
+ sys-devel/lld:15
+ sys-devel/clang:15
+ virtual/rust:0/llvm-15
+ )
+ )
+ )
+ !clang? ( virtual/rust )
+ !elibc_glibc? (
+ || (
+ dev-lang/rust
+ <dev-lang/rust-bin-1.73
+ )
+ )
+ test? (
+ $(python_gen_any_dep 'dev-python/six[${PYTHON_USEDEP}]')
+ )"
+DEPEND=">=dev-libs/icu-73.1:=
+ dev-libs/nspr
+ sys-libs/readline:0=
+ sys-libs/zlib"
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/firefox-${MY_PV}/js/src"
+
+llvm_check_deps() {
+ if ! has_version -b "sys-devel/llvm:${LLVM_SLOT}" ; then
+ einfo "sys-devel/llvm:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+
+ if use clang ; then
+ if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then
+ einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+
+ if ! has_version -b "virtual/rust:0/llvm-${LLVM_SLOT}" ; then
+ einfo "virtual/rust:0/llvm-${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+
+ if ! tc-ld-is-mold ; then
+ if ! has_version -b "sys-devel/lld:${LLVM_SLOT}" ; then
+ einfo "sys-devel/lld:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+ fi
+ fi
+
+ einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
+}
+
+python_check_deps() {
+ if use test ; then
+ python_has_version "dev-python/six[${PYTHON_USEDEP}]"
+ fi
+}
+
+# This is a straight copypaste from toolchain-funcs.eclass's 'tc-ld-is-lld', and is temporarily
+# placed here until toolchain-funcs.eclass gets an official support for mold linker.
+# Please see:
+# https://github.com/gentoo/gentoo/pull/28366 ||
+# https://github.com/gentoo/gentoo/pull/28355
+tc-ld-is-mold() {
+ local out
+
+ # Ensure ld output is in English.
+ local -x LC_ALL=C
+
+ # First check the linker directly.
+ out=$($(tc-getLD "$@") --version 2>&1)
+ if [[ ${out} == *"mold"* ]] ; then
+ return 0
+ fi
+
+ # Then see if they're selecting mold via compiler flags.
+ # Note: We're assuming they're using LDFLAGS to hold the
+ # options and not CFLAGS/CXXFLAGS.
+ local base="${T}/test-tc-linker"
+ cat <<-EOF > "${base}.c"
+ int main() { return 0; }
+ EOF
+ out=$($(tc-getCC "$@") ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} -Wl,--version "${base}.c" -o "${base}" 2>&1)
+ rm -f "${base}"*
+ if [[ ${out} == *"mold"* ]] ; then
+ return 0
+ fi
+
+ # No mold here!
+ return 1
+}
+
+pkg_pretend() {
+ if use test ; then
+ CHECKREQS_DISK_BUILD="4000M"
+ else
+ CHECKREQS_DISK_BUILD="3600M"
+ fi
+
+ check-reqs_pkg_pretend
+}
+
+pkg_setup() {
+ if [[ ${MERGE_TYPE} != binary ]] ; then
+ if use test ; then
+ CHECKREQS_DISK_BUILD="4000M"
+ else
+ CHECKREQS_DISK_BUILD="3600M"
+ fi
+
+ check-reqs_pkg_setup
+
+ llvm_pkg_setup
+
+ if use clang && use lto && tc-ld-is-lld ; then
+ local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }')
+ [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}")
+ [[ -z ${version_lld} ]] && die "Failed to read ld.lld version!"
+
+ local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }')
+ [[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}")
+ [[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!"
+
+ if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then
+ eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}."
+ eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:"
+ eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version"
+ eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version"
+ eerror " - Build ${CATEGORY}/${PN} without USE=lto"
+ eerror " - Rebuild lld with llvm that was used to build rust (may need to rebuild the whole "
+ eerror " llvm/clang/lld/rust chain depending on your @world updates)"
+ die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!"
+ fi
+ fi
+
+ python-any-r1_pkg_setup
+
+ # Build system is using /proc/self/oom_score_adj, bug #604394
+ addpredict /proc/self/oom_score_adj
+
+ if ! mountpoint -q /dev/shm ; then
+ # If /dev/shm is not available, configure is known to fail with
+ # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py
+ ewarn "/dev/shm is not mounted -- expect build failures!"
+ fi
+
+ # Ensure we use C locale when building, bug #746215
+ export LC_ALL=C
+ fi
+}
+
+src_prepare() {
+ pushd ../.. &>/dev/null || die
+
+ use lto && rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch
+
+ if ! use ppc64; then
+ rm -v "${WORKDIR}"/firefox-patches/*ppc64*.patch || die
+ fi
+
+ # Workaround for bgo #915651,915651,929013 on musl
+ if use elibc_glibc ; then
+ rm -v "${WORKDIR}"/firefox-patches/*bgo-748849-RUST_TARGET_override.patch || die
+ fi
+
+ eapply "${WORKDIR}"/firefox-patches
+ eapply "${WORKDIR}"/spidermonkey-patches
+
+ default
+
+ # Make cargo respect MAKEOPTS
+ export CARGO_BUILD_JOBS="$(makeopts_jobs)"
+
+ # Workaround for bgo #915651,915651,929013 on musl
+ if ! use elibc_glibc ; then
+ if use amd64 ; then
+ export RUST_TARGET="x86_64-unknown-linux-musl"
+ elif use x86 ; then
+ export RUST_TARGET="i686-unknown-linux-musl"
+ else
+ die "Unknown musl chost, please post your rustc -vV along with emerge --info on Gentoo's bug #915651"
+ fi
+ fi
+
+ # sed-in toolchain prefix
+ sed -i \
+ -e "s/objdump/${CHOST}-objdump/" \
+ python/mozbuild/mozbuild/configure/check_debug_ranges.py \
+ || die "sed failed to set toolchain prefix"
+
+ # use prefix shell in wrapper linker scripts, bug #789660
+ hprefixify "${S}"/../../build/cargo-{,host-}linker
+
+ einfo "Removing pre-built binaries ..."
+ find third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die
+
+ MOZJS_BUILDDIR="${WORKDIR}/build"
+ mkdir "${MOZJS_BUILDDIR}" || die
+
+ popd &>/dev/null || die
+}
+
+src_configure() {
+ # Show flags set at the beginning
+ einfo "Current CFLAGS: ${CFLAGS}"
+ einfo "Current CXXFLAGS: ${CXXFLAGS}"
+ einfo "Current LDFLAGS: ${LDFLAGS}"
+ einfo "Current RUSTFLAGS: ${RUSTFLAGS}"
+
+ local have_switched_compiler=
+ if use clang; then
+ # Force clang
+ einfo "Enforcing the use of clang due to USE=clang ..."
+
+ local version_clang=$(clang --version 2>/dev/null | grep -F -- 'clang version' | awk '{ print $3 }')
+ [[ -n ${version_clang} ]] && version_clang=$(ver_cut 1 "${version_clang}")
+ [[ -z ${version_clang} ]] && die "Failed to read clang version!"
+
+ if tc-is-gcc; then
+ have_switched_compiler=yes
+ fi
+ AR=llvm-ar
+ CC=${CHOST}-clang-${version_clang}
+ CXX=${CHOST}-clang++-${version_clang}
+ NM=llvm-nm
+ RANLIB=llvm-ranlib
+
+ elif ! use clang && ! tc-is-gcc ; then
+ # Force gcc
+ have_switched_compiler=yes
+ einfo "Enforcing the use of gcc due to USE=-clang ..."
+ AR=gcc-ar
+ CC=${CHOST}-gcc
+ CXX=${CHOST}-g++
+ NM=gcc-nm
+ RANLIB=gcc-ranlib
+ fi
+
+ if [[ -n "${have_switched_compiler}" ]] ; then
+ # Because we switched active compiler we have to ensure
+ # that no unsupported flags are set
+ strip-unsupported-flags
+ fi
+
+ # Ensure we use correct toolchain,
+ # AS is used in a non-standard way by upstream, #bmo1654031
+ export HOST_CC="$(tc-getBUILD_CC)"
+ export HOST_CXX="$(tc-getBUILD_CXX)"
+ export AS="$(tc-getCC) -c"
+ tc-export CC CXX LD AR AS NM OBJDUMP RANLIB PKG_CONFIG
+
+ cd "${MOZJS_BUILDDIR}" || die
+
+ # ../python/mach/mach/mixin/process.py fails to detect SHELL
+ export SHELL="${EPREFIX}/bin/bash"
+
+ local -a myeconfargs=(
+ --host="${CBUILD:-${CHOST}}"
+ --target="${CHOST}"
+
+ --disable-ctype
+ --disable-jemalloc
+ --disable-smoosh
+ --disable-strip
+
+ --enable-project=js
+ --enable-readline
+ --enable-release
+ --enable-shared-js
+
+ --with-intl-api
+ --with-system-icu
+ --with-system-nspr
+ --with-system-zlib
+ --with-toolchain-prefix="${CHOST}-"
+
+ $(use_enable debug)
+ $(use_enable jit)
+ $(use_enable test tests)
+ )
+
+ if use debug; then
+ myeconfargs+=( --disable-optimize )
+ myeconfargs+=( --enable-debug-symbols )
+ myeconfargs+=( --enable-real-time-tracing )
+ else
+ myeconfargs+=( --enable-optimize )
+ myeconfargs+=( --disable-debug-symbols )
+ myeconfargs+=( --disable-real-time-tracing )
+ fi
+
+ if ! use x86 && [[ ${CHOST} != armv*h* ]] ; then
+ myeconfargs+=( --enable-rust-simd )
+ fi
+
+ # Modifications to better support ARM, bug 717344
+ if use cpu_flags_arm_neon ; then
+ myeconfargs+=( --with-fpu=neon )
+
+ if ! tc-is-clang ; then
+ # thumb options aren't supported when using clang, bug 666966
+ myeconfargs+=( --with-thumb=yes )
+ myeconfargs+=( --with-thumb-interwork=no )
+ fi
+ fi
+
+ # Tell build system that we want to use LTO
+ if use lto ; then
+ if use clang ; then
+ if tc-ld-is-mold ; then
+ myeconfargs+=( --enable-linker=mold )
+ else
+ myeconfargs+=( --enable-linker=lld )
+ fi
+ myeconfargs+=( --enable-lto=cross )
+
+ else
+ myeconfargs+=( --enable-linker=bfd )
+ myeconfargs+=( --enable-lto=full )
+ fi
+ fi
+
+ # LTO flag was handled via configure
+ filter-lto
+
+ # Use system's Python environment
+ export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none"
+ export PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach
+
+ # Show flags we will use
+ einfo "Build CFLAGS: ${CFLAGS}"
+ einfo "Build CXXFLAGS: ${CXXFLAGS}"
+ einfo "Build LDFLAGS: ${LDFLAGS}"
+ einfo "Build RUSTFLAGS: ${RUSTFLAGS}"
+
+ # Forcing system-icu allows us to skip patching bundled ICU for PPC
+ # and other minor arches
+ ECONF_SOURCE="${S}" \
+ econf \
+ ${myeconfargs[@]} \
+ XARGS="${EPREFIX}/usr/bin/xargs"
+}
+
+src_compile() {
+ cd "${MOZJS_BUILDDIR}" || die
+ default
+}
+
+src_test() {
+ if "${MOZJS_BUILDDIR}/js/src/js" -e 'print("Hello world!")'; then
+ einfo "Smoke-test successful, continuing with full test suite"
+ else
+ die "Smoke-test failed: did interpreter initialization fail?"
+ fi
+
+ cp "${FILESDIR}"/spidermonkey-${SLOT}-known-test-failures.txt "${T}"/known_failures.list || die
+
+ if use x86 ; then
+ echo "non262/Date/timeclip.js" >> "${T}"/known_failures.list
+ echo "test262/built-ins/Date/UTC/fp-evaluation-order.js" >> "${T}"/known_failures.list
+ echo "test262/language/types/number/S8.5_A2.1.js" >> "${T}"/known_failures.list
+ echo "test262/language/types/number/S8.5_A2.2.js" >> "${T}"/known_failures.list
+ fi
+
+ ${EPYTHON} \
+ "${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \
+ --exclude-file="${T}"/known_failures.list \
+ "${MOZJS_BUILDDIR}"/js/src/js \
+ || die
+
+ if use jit ; then
+ ${EPYTHON} \
+ "${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \
+ --exclude-file="${T}"/known_failures.list \
+ "${MOZJS_BUILDDIR}"/js/src/js basic \
+ || die
+ fi
+}
+
+src_install() {
+ cd "${MOZJS_BUILDDIR}" || die
+ default
+
+ # fix soname links
+ pushd "${ED}"/usr/$(get_libdir) &>/dev/null || die
+ mv lib${MY_PN}-${MY_MAJOR}.so lib${MY_PN}-${MY_MAJOR}.so.0.0.0 || die
+ ln -s lib${MY_PN}-${MY_MAJOR}.so.0.0.0 lib${MY_PN}-${MY_MAJOR}.so.0 || die
+ ln -s lib${MY_PN}-${MY_MAJOR}.so.0 lib${MY_PN}-${MY_MAJOR}.so || die
+ popd &>/dev/null || die
+
+ # remove unneeded files
+ rm \
+ "${ED}"/usr/bin/js${MY_MAJOR}-config \
+ "${ED}"/usr/$(get_libdir)/libjs_static.ajs \
+ || die
+
+ # fix permissions
+ chmod -x \
+ "${ED}"/usr/$(get_libdir)/pkgconfig/*.pc \
+ "${ED}"/usr/include/mozjs-${MY_MAJOR}/js-config.h \
+ || die
+}
diff --git a/dev-lang/spidermonkey/spidermonkey-78.6.0.ebuild b/dev-lang/spidermonkey/spidermonkey-115.3.1.ebuild
index 19bc2279f74e..552bc5c63e43 100644
--- a/dev-lang/spidermonkey/spidermonkey-78.6.0.ebuild
+++ b/dev-lang/spidermonkey/spidermonkey-115.3.1.ebuild
@@ -1,19 +1,20 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI="7"
+EAPI="8"
# Patch version
-FIREFOX_PATCHSET="firefox-78esr-patches-07.tar.xz"
-SPIDERMONKEY_PATCHSET="spidermonkey-78-patches-03.tar.xz"
+FIREFOX_PATCHSET="firefox-115esr-patches-06.tar.xz"
+SPIDERMONKEY_PATCHSET="spidermonkey-115-patches-01.tar.xz"
-LLVM_MAX_SLOT=11
+LLVM_MAX_SLOT=17
-PYTHON_COMPAT=( python3_{6..9} )
+PYTHON_COMPAT=( python3_{10..11} )
+PYTHON_REQ_USE="ncurses,ssl,xml(+)"
WANT_AUTOCONF="2.1"
-inherit autotools check-reqs flag-o-matic llvm multiprocessing python-any-r1 toolchain-funcs
+inherit autotools check-reqs flag-o-matic llvm multiprocessing prefix python-any-r1 toolchain-funcs
MY_PN="mozjs"
MY_PV="${PV/_pre*}" # Handle Gentoo pre-releases
@@ -50,78 +51,85 @@ if [[ ${PV} == *_rc* ]] ; then
fi
PATCH_URIS=(
- https://dev.gentoo.org/~{whissi,polynomial-c,axs}/mozilla/patchsets/${FIREFOX_PATCHSET}
- https://dev.gentoo.org/~{whissi,polynomial-c,axs}/mozilla/patchsets/${SPIDERMONKEY_PATCHSET}
+ https://dev.gentoo.org/~juippis/mozilla/patchsets/${FIREFOX_PATCHSET}
+ https://dev.gentoo.org/~juippis/mozilla/patchsets/${SPIDERMONKEY_PATCHSET}
)
SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz
${PATCH_URIS[@]}"
DESCRIPTION="SpiderMonkey is Mozilla's JavaScript engine written in C and C++"
-HOMEPAGE="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
+HOMEPAGE="https://spidermonkey.dev https://firefox-source-docs.mozilla.org/js/index.html "
-KEYWORDS="amd64 arm arm64 ~mips ppc64 ~s390 x86"
+KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv sparc x86"
-SLOT="78"
+SLOT="$(ver_cut 1)"
LICENSE="MPL-2.0"
IUSE="clang cpu_flags_arm_neon debug +jit lto test"
+#RESTRICT="test"
RESTRICT="!test? ( test )"
BDEPEND="${PYTHON_DEPS}
- >=virtual/rust-1.41.0
- virtual/pkgconfig
|| (
(
- sys-devel/llvm:11
+ sys-devel/llvm:17
clang? (
- sys-devel/clang:11
- lto? ( =sys-devel/lld-11* )
+ sys-devel/lld:17
+ sys-devel/clang:17
+ virtual/rust:0/llvm-17
)
)
(
- sys-devel/llvm:10
+ sys-devel/llvm:16
clang? (
- sys-devel/clang:10
- lto? ( =sys-devel/lld-10* )
+ sys-devel/lld:16
+ sys-devel/clang:16
+ virtual/rust:0/llvm-16
)
)
(
- sys-devel/llvm:9
+ sys-devel/llvm:15
clang? (
- sys-devel/clang:9
- lto? ( =sys-devel/lld-9* )
+ sys-devel/lld:15
+ sys-devel/clang:15
+ virtual/rust:0/llvm-15
)
)
)
- lto? (
- !clang? ( sys-devel/binutils[gold] )
- )"
-
-CDEPEND=">=dev-libs/icu-67.1:=
- >=dev-libs/nspr-4.25
- sys-libs/readline:0=
- >=sys-libs/zlib-1.2.3"
-
-DEPEND="${CDEPEND}
+ !clang? ( virtual/rust )
+ virtual/pkgconfig
test? (
$(python_gen_any_dep 'dev-python/six[${PYTHON_USEDEP}]')
)"
-
-RDEPEND="${CDEPEND}"
+DEPEND=">=dev-libs/icu-73.1:=
+ dev-libs/nspr
+ sys-libs/readline:0=
+ sys-libs/zlib"
+RDEPEND="${DEPEND}"
S="${WORKDIR}/firefox-${MY_PV}/js/src"
llvm_check_deps() {
+ if ! has_version -b "sys-devel/llvm:${LLVM_SLOT}" ; then
+ einfo "sys-devel/llvm:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+
if use clang ; then
if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then
- ewarn "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+
+ if ! has_version -b "virtual/rust:0/llvm-${LLVM_SLOT}" ; then
+ einfo "virtual/rust:0/llvm-${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
return 1
fi
- if use lto ; then
- if ! has_version -b "=sys-devel/lld-${LLVM_SLOT}*" ; then
- ewarn "=sys-devel/lld-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ if ! tc-ld-is-mold ; then
+ if ! has_version -b "sys-devel/lld:${LLVM_SLOT}" ; then
+ einfo "sys-devel/lld:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
return 1
fi
fi
@@ -132,15 +140,49 @@ llvm_check_deps() {
python_check_deps() {
if use test ; then
- has_version "dev-python/six[${PYTHON_USEDEP}]"
+ python_has_version "dev-python/six[${PYTHON_USEDEP}]"
+ fi
+}
+
+# This is a straight copypaste from toolchain-funcs.eclass's 'tc-ld-is-lld', and is temporarily
+# placed here until toolchain-funcs.eclass gets an official support for mold linker.
+# Please see:
+# https://github.com/gentoo/gentoo/pull/28366 ||
+# https://github.com/gentoo/gentoo/pull/28355
+tc-ld-is-mold() {
+ local out
+
+ # Ensure ld output is in English.
+ local -x LC_ALL=C
+
+ # First check the linker directly.
+ out=$($(tc-getLD "$@") --version 2>&1)
+ if [[ ${out} == *"mold"* ]] ; then
+ return 0
+ fi
+
+ # Then see if they're selecting mold via compiler flags.
+ # Note: We're assuming they're using LDFLAGS to hold the
+ # options and not CFLAGS/CXXFLAGS.
+ local base="${T}/test-tc-linker"
+ cat <<-EOF > "${base}.c"
+ int main() { return 0; }
+ EOF
+ out=$($(tc-getCC "$@") ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} -Wl,--version "${base}.c" -o "${base}" 2>&1)
+ rm -f "${base}"*
+ if [[ ${out} == *"mold"* ]] ; then
+ return 0
fi
+
+ # No mold here!
+ return 1
}
pkg_pretend() {
if use test ; then
- CHECKREQS_DISK_BUILD="7600M"
+ CHECKREQS_DISK_BUILD="4000M"
else
- CHECKREQS_DISK_BUILD="6400M"
+ CHECKREQS_DISK_BUILD="3600M"
fi
check-reqs_pkg_pretend
@@ -149,16 +191,16 @@ pkg_pretend() {
pkg_setup() {
if [[ ${MERGE_TYPE} != binary ]] ; then
if use test ; then
- CHECKREQS_DISK_BUILD="7600M"
+ CHECKREQS_DISK_BUILD="4000M"
else
- CHECKREQS_DISK_BUILD="6400M"
+ CHECKREQS_DISK_BUILD="3600M"
fi
check-reqs_pkg_setup
llvm_pkg_setup
- if use clang && use lto ; then
+ if use clang && use lto && tc-ld-is-lld ; then
local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }')
[[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}")
[[ -z ${version_lld} ]] && die "Failed to read ld.lld version!"
@@ -173,6 +215,8 @@ pkg_setup() {
eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version"
eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version"
eerror " - Build ${CATEGORY}/${PN} without USE=lto"
+ eerror " - Rebuild lld with llvm that was used to build rust (may need to rebuild the whole "
+ eerror " llvm/clang/lld/rust chain depending on your @world updates)"
die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!"
fi
fi
@@ -198,16 +242,17 @@ src_prepare() {
use lto && rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch
+ if ! use ppc64; then
+ rm -v "${WORKDIR}"/firefox-patches/*ppc64*.patch || die
+ fi
+
eapply "${WORKDIR}"/firefox-patches
eapply "${WORKDIR}"/spidermonkey-patches
default
- # Make LTO respect MAKEOPTS
- sed -i \
- -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
- build/moz.configure/lto-pgo.configure \
- || die "sed failed to set num_cores"
+ # Make cargo respect MAKEOPTS
+ export CARGO_BUILD_JOBS="$(makeopts_jobs)"
# sed-in toolchain prefix
sed -i \
@@ -215,6 +260,9 @@ src_prepare() {
python/mozbuild/mozbuild/configure/check_debug_ranges.py \
|| die "sed failed to set toolchain prefix"
+ # use prefix shell in wrapper linker scripts, bug #789660
+ hprefixify "${S}"/../../build/cargo-{,host-}linker
+
einfo "Removing pre-built binaries ..."
find third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die
@@ -222,7 +270,6 @@ src_prepare() {
mkdir "${MOZJS_BUILDDIR}" || die
popd &>/dev/null || die
- eautoconf
}
src_configure() {
@@ -233,15 +280,23 @@ src_configure() {
einfo "Current RUSTFLAGS: ${RUSTFLAGS}"
local have_switched_compiler=
- if use clang && ! tc-is-clang ; then
+ if use clang; then
# Force clang
einfo "Enforcing the use of clang due to USE=clang ..."
- have_switched_compiler=yes
+
+ local version_clang=$(clang --version 2>/dev/null | grep -F -- 'clang version' | awk '{ print $3 }')
+ [[ -n ${version_clang} ]] && version_clang=$(ver_cut 1 "${version_clang}")
+ [[ -z ${version_clang} ]] && die "Failed to read clang version!"
+
+ if tc-is-gcc; then
+ have_switched_compiler=yes
+ fi
AR=llvm-ar
- CC=${CHOST}-clang
- CXX=${CHOST}-clang++
+ CC=${CHOST}-clang-${version_clang}
+ CXX=${CHOST}-clang++-${version_clang}
NM=llvm-nm
RANLIB=llvm-ranlib
+
elif ! use clang && ! tc-is-gcc ; then
# Force gcc
have_switched_compiler=yes
@@ -259,10 +314,12 @@ src_configure() {
strip-unsupported-flags
fi
- # Ensure we use correct toolchain
+ # Ensure we use correct toolchain,
+ # AS is used in a non-standard way by upstream, #bmo1654031
export HOST_CC="$(tc-getBUILD_CC)"
export HOST_CXX="$(tc-getBUILD_CXX)"
- tc-export CC CXX LD AR NM OBJDUMP RANLIB PKG_CONFIG
+ export AS="$(tc-getCC) -c"
+ tc-export CC CXX LD AR AS NM OBJDUMP RANLIB PKG_CONFIG
cd "${MOZJS_BUILDDIR}" || die
@@ -272,21 +329,38 @@ src_configure() {
local -a myeconfargs=(
--host="${CBUILD:-${CHOST}}"
--target="${CHOST}"
+
+ --disable-ctype
--disable-jemalloc
- --disable-optimize
+ --disable-smoosh
--disable-strip
+
+ --enable-project=js
--enable-readline
+ --enable-release
--enable-shared-js
+
--with-intl-api
--with-system-icu
--with-system-nspr
--with-system-zlib
--with-toolchain-prefix="${CHOST}-"
+
$(use_enable debug)
$(use_enable jit)
$(use_enable test tests)
)
+ if use debug; then
+ myeconfargs+=( --disable-optimize )
+ myeconfargs+=( --enable-debug-symbols )
+ myeconfargs+=( --enable-real-time-tracing )
+ else
+ myeconfargs+=( --enable-optimize )
+ myeconfargs+=( --disable-debug-symbols )
+ myeconfargs+=( --disable-real-time-tracing )
+ fi
+
if ! use x86 && [[ ${CHOST} != armv*h* ]] ; then
myeconfargs+=( --enable-rust-simd )
fi
@@ -304,24 +378,26 @@ src_configure() {
# Tell build system that we want to use LTO
if use lto ; then
- myeconfargs+=( --enable-lto )
-
if use clang ; then
- myeconfargs+=( --enable-linker=lld )
+ if tc-ld-is-mold ; then
+ myeconfargs+=( --enable-linker=mold )
+ else
+ myeconfargs+=( --enable-linker=lld )
+ fi
+ myeconfargs+=( --enable-lto=cross )
+
else
- myeconfargs+=( --enable-linker=gold )
+ myeconfargs+=( --enable-linker=bfd )
+ myeconfargs+=( --enable-lto=full )
fi
fi
# LTO flag was handled via configure
- filter-flags '-flto*'
+ filter-lto
- if tc-is-gcc ; then
- if ver_test $(gcc-fullversion) -ge 10 ; then
- einfo "Forcing -fno-tree-loop-vectorize to workaround GCC bug, see bug 758446 ..."
- append-cxxflags -fno-tree-loop-vectorize
- fi
- fi
+ # Use system's Python environment
+ export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none"
+ export PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach
# Show flags we will use
einfo "Build CFLAGS: ${CFLAGS}"
@@ -349,61 +425,23 @@ src_test() {
die "Smoke-test failed: did interpreter initialization fail?"
fi
- local -a KNOWN_TESTFAILURES
- KNOWN_TESTFAILURES+=( non262/Date/reset-time-zone-cache-same-offset.js )
- KNOWN_TESTFAILURES+=( non262/Date/time-zone-path.js )
- KNOWN_TESTFAILURES+=( non262/Date/time-zones-historic.js )
- KNOWN_TESTFAILURES+=( non262/Date/time-zones-imported.js )
- KNOWN_TESTFAILURES+=( non262/Date/toString-localized.js )
- KNOWN_TESTFAILURES+=( non262/Date/toString-localized-posix.js )
- KNOWN_TESTFAILURES+=( non262/Intl/Date/toLocaleString_timeZone.js )
- KNOWN_TESTFAILURES+=( non262/Intl/Date/toLocaleDateString_timeZone.js )
- KNOWN_TESTFAILURES+=( non262/Intl/DateTimeFormat/format.js )
- KNOWN_TESTFAILURES+=( non262/Intl/DateTimeFormat/format_timeZone.js )
- KNOWN_TESTFAILURES+=( non262/Intl/DateTimeFormat/timeZone_backward_links.js )
- KNOWN_TESTFAILURES+=( non262/Intl/DateTimeFormat/tz-environment-variable.js )
- KNOWN_TESTFAILURES+=( non262/Intl/DisplayNames/language.js )
- KNOWN_TESTFAILURES+=( non262/Intl/DisplayNames/region.js )
- KNOWN_TESTFAILURES+=( non262/Intl/Locale/likely-subtags.js )
- KNOWN_TESTFAILURES+=( non262/Intl/Locale/likely-subtags-generated.js )
- KNOWN_TESTFAILURES+=( test262/intl402/Locale/prototype/minimize/removing-likely-subtags-first-adds-likely-subtags.js )
+ cp "${FILESDIR}"/spidermonkey-${SLOT}-known-test-failures.txt "${T}"/known_failures.list || die
if use x86 ; then
- KNOWN_TESTFAILURES+=( non262/Date/timeclip.js )
- KNOWN_TESTFAILURES+=( test262/built-ins/Number/prototype/toPrecision/return-values.js )
- KNOWN_TESTFAILURES+=( test262/language/types/number/S8.5_A2.1.js )
- KNOWN_TESTFAILURES+=( test262/language/types/number/S8.5_A2.2.js )
- fi
-
- if [[ $(tc-endian) == "big" ]] ; then
- KNOWN_TESTFAILURES+=( test262/built-ins/TypedArray/prototype/set/typedarray-arg-set-values-same-buffer-other-type.js )
+ echo "non262/Date/timeclip.js" >> "${T}"/known_failures.list
+ echo "test262/built-ins/Date/UTC/fp-evaluation-order.js" >> "${T}"/known_failures.list
+ echo "test262/language/types/number/S8.5_A2.1.js" >> "${T}"/known_failures.list
+ echo "test262/language/types/number/S8.5_A2.2.js" >> "${T}"/known_failures.list
fi
- echo "" > "${T}"/known_failures.list || die
-
- local KNOWN_TESTFAILURE
- for KNOWN_TESTFAILURE in ${KNOWN_TESTFAILURES[@]} ; do
- echo "${KNOWN_TESTFAILURE}" >> "${T}"/known_failures.list
- done
-
- PYTHONPATH="${S}/tests/lib" \
- ${PYTHON} \
+ ${EPYTHON} \
"${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \
--exclude-file="${T}"/known_failures.list \
"${MOZJS_BUILDDIR}"/js/src/js \
|| die
if use jit ; then
- KNOWN_TESTFAILURES=()
-
- echo "" > "${T}"/known_failures.list || die
-
- for KNOWN_TESTFAILURE in ${KNOWN_TESTFAILURES[@]} ; do
- echo "${KNOWN_TESTFAILURE}" >> "${T}"/known_failures.list
- done
-
- PYTHONPATH="${S}/tests/lib" \
- ${PYTHON} \
+ ${EPYTHON} \
"${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \
--exclude-file="${T}"/known_failures.list \
"${MOZJS_BUILDDIR}"/js/src/js basic \
diff --git a/dev-lang/spidermonkey/spidermonkey-115.9.1.ebuild b/dev-lang/spidermonkey/spidermonkey-115.9.1.ebuild
new file mode 100644
index 000000000000..3370f0954753
--- /dev/null
+++ b/dev-lang/spidermonkey/spidermonkey-115.9.1.ebuild
@@ -0,0 +1,474 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="8"
+
+# Patch version
+FIREFOX_PATCHSET="firefox-115esr-patches-09.tar.xz"
+SPIDERMONKEY_PATCHSET="spidermonkey-115-patches-01.tar.xz"
+
+LLVM_MAX_SLOT=17
+
+PYTHON_COMPAT=( python3_{10..11} )
+PYTHON_REQ_USE="ncurses,ssl,xml(+)"
+
+WANT_AUTOCONF="2.1"
+
+inherit autotools check-reqs flag-o-matic llvm multiprocessing prefix python-any-r1 toolchain-funcs
+
+MY_PN="mozjs"
+MY_PV="${PV/_pre*}" # Handle Gentoo pre-releases
+
+MY_MAJOR=$(ver_cut 1)
+
+MOZ_ESR=yes
+
+MOZ_PV=${PV}
+MOZ_PV_SUFFIX=
+if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then
+ MOZ_PV_SUFFIX=${BASH_REMATCH[1]}
+
+ # Convert the ebuild version to the upstream Mozilla version
+ MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI
+ MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI
+ MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI
+fi
+
+if [[ -n ${MOZ_ESR} ]] ; then
+ # ESR releases have slightly different version numbers
+ MOZ_PV="${MOZ_PV}esr"
+fi
+
+MOZ_PN="firefox"
+MOZ_P="${MOZ_PN}-${MOZ_PV}"
+MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
+MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
+
+MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}"
+
+if [[ ${PV} == *_rc* ]] ; then
+ MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}"
+fi
+
+PATCH_URIS=(
+ https://dev.gentoo.org/~juippis/mozilla/patchsets/${FIREFOX_PATCHSET}
+ https://dev.gentoo.org/~juippis/mozilla/patchsets/${SPIDERMONKEY_PATCHSET}
+)
+
+SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz
+ ${PATCH_URIS[@]}"
+
+DESCRIPTION="SpiderMonkey is Mozilla's JavaScript engine written in C and C++"
+HOMEPAGE="https://spidermonkey.dev https://firefox-source-docs.mozilla.org/js/index.html "
+
+KEYWORDS="amd64 arm arm64 ~loong ~mips ~ppc ppc64 ~riscv ~sparc x86"
+
+SLOT="$(ver_cut 1)"
+LICENSE="MPL-2.0"
+IUSE="clang cpu_flags_arm_neon debug +jit lto test"
+
+#RESTRICT="test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="${PYTHON_DEPS}
+ || (
+ (
+ sys-devel/llvm:17
+ clang? (
+ sys-devel/lld:17
+ sys-devel/clang:17
+ virtual/rust:0/llvm-17
+ )
+ )
+ (
+ sys-devel/llvm:16
+ clang? (
+ sys-devel/lld:16
+ sys-devel/clang:16
+ virtual/rust:0/llvm-16
+ )
+ )
+ (
+ sys-devel/llvm:15
+ clang? (
+ sys-devel/lld:15
+ sys-devel/clang:15
+ virtual/rust:0/llvm-15
+ )
+ )
+ )
+ !clang? ( virtual/rust )
+ virtual/pkgconfig
+ test? (
+ $(python_gen_any_dep 'dev-python/six[${PYTHON_USEDEP}]')
+ )"
+DEPEND=">=dev-libs/icu-73.1:=
+ dev-libs/nspr
+ sys-libs/readline:0=
+ sys-libs/zlib"
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/firefox-${MY_PV}/js/src"
+
+llvm_check_deps() {
+ if ! has_version -b "sys-devel/llvm:${LLVM_SLOT}" ; then
+ einfo "sys-devel/llvm:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+
+ if use clang ; then
+ if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then
+ einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+
+ if ! has_version -b "virtual/rust:0/llvm-${LLVM_SLOT}" ; then
+ einfo "virtual/rust:0/llvm-${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+
+ if ! tc-ld-is-mold ; then
+ if ! has_version -b "sys-devel/lld:${LLVM_SLOT}" ; then
+ einfo "sys-devel/lld:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+ fi
+ fi
+
+ einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
+}
+
+python_check_deps() {
+ if use test ; then
+ python_has_version "dev-python/six[${PYTHON_USEDEP}]"
+ fi
+}
+
+# This is a straight copypaste from toolchain-funcs.eclass's 'tc-ld-is-lld', and is temporarily
+# placed here until toolchain-funcs.eclass gets an official support for mold linker.
+# Please see:
+# https://github.com/gentoo/gentoo/pull/28366 ||
+# https://github.com/gentoo/gentoo/pull/28355
+tc-ld-is-mold() {
+ local out
+
+ # Ensure ld output is in English.
+ local -x LC_ALL=C
+
+ # First check the linker directly.
+ out=$($(tc-getLD "$@") --version 2>&1)
+ if [[ ${out} == *"mold"* ]] ; then
+ return 0
+ fi
+
+ # Then see if they're selecting mold via compiler flags.
+ # Note: We're assuming they're using LDFLAGS to hold the
+ # options and not CFLAGS/CXXFLAGS.
+ local base="${T}/test-tc-linker"
+ cat <<-EOF > "${base}.c"
+ int main() { return 0; }
+ EOF
+ out=$($(tc-getCC "$@") ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} -Wl,--version "${base}.c" -o "${base}" 2>&1)
+ rm -f "${base}"*
+ if [[ ${out} == *"mold"* ]] ; then
+ return 0
+ fi
+
+ # No mold here!
+ return 1
+}
+
+pkg_pretend() {
+ if use test ; then
+ CHECKREQS_DISK_BUILD="4000M"
+ else
+ CHECKREQS_DISK_BUILD="3600M"
+ fi
+
+ check-reqs_pkg_pretend
+}
+
+pkg_setup() {
+ if [[ ${MERGE_TYPE} != binary ]] ; then
+ if use test ; then
+ CHECKREQS_DISK_BUILD="4000M"
+ else
+ CHECKREQS_DISK_BUILD="3600M"
+ fi
+
+ check-reqs_pkg_setup
+
+ llvm_pkg_setup
+
+ if use clang && use lto && tc-ld-is-lld ; then
+ local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }')
+ [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}")
+ [[ -z ${version_lld} ]] && die "Failed to read ld.lld version!"
+
+ local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }')
+ [[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}")
+ [[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!"
+
+ if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then
+ eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}."
+ eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:"
+ eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version"
+ eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version"
+ eerror " - Build ${CATEGORY}/${PN} without USE=lto"
+ eerror " - Rebuild lld with llvm that was used to build rust (may need to rebuild the whole "
+ eerror " llvm/clang/lld/rust chain depending on your @world updates)"
+ die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!"
+ fi
+ fi
+
+ python-any-r1_pkg_setup
+
+ # Build system is using /proc/self/oom_score_adj, bug #604394
+ addpredict /proc/self/oom_score_adj
+
+ if ! mountpoint -q /dev/shm ; then
+ # If /dev/shm is not available, configure is known to fail with
+ # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py
+ ewarn "/dev/shm is not mounted -- expect build failures!"
+ fi
+
+ # Ensure we use C locale when building, bug #746215
+ export LC_ALL=C
+ fi
+}
+
+src_prepare() {
+ pushd ../.. &>/dev/null || die
+
+ use lto && rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch
+
+ if ! use ppc64; then
+ rm -v "${WORKDIR}"/firefox-patches/*ppc64*.patch || die
+ fi
+
+ eapply "${WORKDIR}"/firefox-patches
+ eapply "${WORKDIR}"/spidermonkey-patches
+
+ default
+
+ # Make cargo respect MAKEOPTS
+ export CARGO_BUILD_JOBS="$(makeopts_jobs)"
+
+ # sed-in toolchain prefix
+ sed -i \
+ -e "s/objdump/${CHOST}-objdump/" \
+ python/mozbuild/mozbuild/configure/check_debug_ranges.py \
+ || die "sed failed to set toolchain prefix"
+
+ # use prefix shell in wrapper linker scripts, bug #789660
+ hprefixify "${S}"/../../build/cargo-{,host-}linker
+
+ einfo "Removing pre-built binaries ..."
+ find third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die
+
+ MOZJS_BUILDDIR="${WORKDIR}/build"
+ mkdir "${MOZJS_BUILDDIR}" || die
+
+ popd &>/dev/null || die
+}
+
+src_configure() {
+ # Show flags set at the beginning
+ einfo "Current CFLAGS: ${CFLAGS}"
+ einfo "Current CXXFLAGS: ${CXXFLAGS}"
+ einfo "Current LDFLAGS: ${LDFLAGS}"
+ einfo "Current RUSTFLAGS: ${RUSTFLAGS}"
+
+ local have_switched_compiler=
+ if use clang; then
+ # Force clang
+ einfo "Enforcing the use of clang due to USE=clang ..."
+
+ local version_clang=$(clang --version 2>/dev/null | grep -F -- 'clang version' | awk '{ print $3 }')
+ [[ -n ${version_clang} ]] && version_clang=$(ver_cut 1 "${version_clang}")
+ [[ -z ${version_clang} ]] && die "Failed to read clang version!"
+
+ if tc-is-gcc; then
+ have_switched_compiler=yes
+ fi
+ AR=llvm-ar
+ CC=${CHOST}-clang-${version_clang}
+ CXX=${CHOST}-clang++-${version_clang}
+ NM=llvm-nm
+ RANLIB=llvm-ranlib
+
+ elif ! use clang && ! tc-is-gcc ; then
+ # Force gcc
+ have_switched_compiler=yes
+ einfo "Enforcing the use of gcc due to USE=-clang ..."
+ AR=gcc-ar
+ CC=${CHOST}-gcc
+ CXX=${CHOST}-g++
+ NM=gcc-nm
+ RANLIB=gcc-ranlib
+ fi
+
+ if [[ -n "${have_switched_compiler}" ]] ; then
+ # Because we switched active compiler we have to ensure
+ # that no unsupported flags are set
+ strip-unsupported-flags
+ fi
+
+ # Ensure we use correct toolchain,
+ # AS is used in a non-standard way by upstream, #bmo1654031
+ export HOST_CC="$(tc-getBUILD_CC)"
+ export HOST_CXX="$(tc-getBUILD_CXX)"
+ export AS="$(tc-getCC) -c"
+ tc-export CC CXX LD AR AS NM OBJDUMP RANLIB PKG_CONFIG
+
+ cd "${MOZJS_BUILDDIR}" || die
+
+ # ../python/mach/mach/mixin/process.py fails to detect SHELL
+ export SHELL="${EPREFIX}/bin/bash"
+
+ local -a myeconfargs=(
+ --host="${CBUILD:-${CHOST}}"
+ --target="${CHOST}"
+
+ --disable-ctype
+ --disable-jemalloc
+ --disable-smoosh
+ --disable-strip
+
+ --enable-project=js
+ --enable-readline
+ --enable-release
+ --enable-shared-js
+
+ --with-intl-api
+ --with-system-icu
+ --with-system-nspr
+ --with-system-zlib
+ --with-toolchain-prefix="${CHOST}-"
+
+ $(use_enable debug)
+ $(use_enable jit)
+ $(use_enable test tests)
+ )
+
+ if use debug; then
+ myeconfargs+=( --disable-optimize )
+ myeconfargs+=( --enable-debug-symbols )
+ myeconfargs+=( --enable-real-time-tracing )
+ else
+ myeconfargs+=( --enable-optimize )
+ myeconfargs+=( --disable-debug-symbols )
+ myeconfargs+=( --disable-real-time-tracing )
+ fi
+
+ if ! use x86 && [[ ${CHOST} != armv*h* ]] ; then
+ myeconfargs+=( --enable-rust-simd )
+ fi
+
+ # Modifications to better support ARM, bug 717344
+ if use cpu_flags_arm_neon ; then
+ myeconfargs+=( --with-fpu=neon )
+
+ if ! tc-is-clang ; then
+ # thumb options aren't supported when using clang, bug 666966
+ myeconfargs+=( --with-thumb=yes )
+ myeconfargs+=( --with-thumb-interwork=no )
+ fi
+ fi
+
+ # Tell build system that we want to use LTO
+ if use lto ; then
+ if use clang ; then
+ if tc-ld-is-mold ; then
+ myeconfargs+=( --enable-linker=mold )
+ else
+ myeconfargs+=( --enable-linker=lld )
+ fi
+ myeconfargs+=( --enable-lto=cross )
+
+ else
+ myeconfargs+=( --enable-linker=bfd )
+ myeconfargs+=( --enable-lto=full )
+ fi
+ fi
+
+ # LTO flag was handled via configure
+ filter-lto
+
+ # Use system's Python environment
+ export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none"
+ export PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach
+
+ # Show flags we will use
+ einfo "Build CFLAGS: ${CFLAGS}"
+ einfo "Build CXXFLAGS: ${CXXFLAGS}"
+ einfo "Build LDFLAGS: ${LDFLAGS}"
+ einfo "Build RUSTFLAGS: ${RUSTFLAGS}"
+
+ # Forcing system-icu allows us to skip patching bundled ICU for PPC
+ # and other minor arches
+ ECONF_SOURCE="${S}" \
+ econf \
+ ${myeconfargs[@]} \
+ XARGS="${EPREFIX}/usr/bin/xargs"
+}
+
+src_compile() {
+ cd "${MOZJS_BUILDDIR}" || die
+ default
+}
+
+src_test() {
+ if "${MOZJS_BUILDDIR}/js/src/js" -e 'print("Hello world!")'; then
+ einfo "Smoke-test successful, continuing with full test suite"
+ else
+ die "Smoke-test failed: did interpreter initialization fail?"
+ fi
+
+ cp "${FILESDIR}"/spidermonkey-${SLOT}-known-test-failures.txt "${T}"/known_failures.list || die
+
+ if use x86 ; then
+ echo "non262/Date/timeclip.js" >> "${T}"/known_failures.list
+ echo "test262/built-ins/Date/UTC/fp-evaluation-order.js" >> "${T}"/known_failures.list
+ echo "test262/language/types/number/S8.5_A2.1.js" >> "${T}"/known_failures.list
+ echo "test262/language/types/number/S8.5_A2.2.js" >> "${T}"/known_failures.list
+ fi
+
+ ${EPYTHON} \
+ "${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \
+ --exclude-file="${T}"/known_failures.list \
+ "${MOZJS_BUILDDIR}"/js/src/js \
+ || die
+
+ if use jit ; then
+ ${EPYTHON} \
+ "${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \
+ --exclude-file="${T}"/known_failures.list \
+ "${MOZJS_BUILDDIR}"/js/src/js basic \
+ || die
+ fi
+}
+
+src_install() {
+ cd "${MOZJS_BUILDDIR}" || die
+ default
+
+ # fix soname links
+ pushd "${ED}"/usr/$(get_libdir) &>/dev/null || die
+ mv lib${MY_PN}-${MY_MAJOR}.so lib${MY_PN}-${MY_MAJOR}.so.0.0.0 || die
+ ln -s lib${MY_PN}-${MY_MAJOR}.so.0.0.0 lib${MY_PN}-${MY_MAJOR}.so.0 || die
+ ln -s lib${MY_PN}-${MY_MAJOR}.so.0 lib${MY_PN}-${MY_MAJOR}.so || die
+ popd &>/dev/null || die
+
+ # remove unneeded files
+ rm \
+ "${ED}"/usr/bin/js${MY_MAJOR}-config \
+ "${ED}"/usr/$(get_libdir)/libjs_static.ajs \
+ || die
+
+ # fix permissions
+ chmod -x \
+ "${ED}"/usr/$(get_libdir)/pkgconfig/*.pc \
+ "${ED}"/usr/include/mozjs-${MY_MAJOR}/js-config.h \
+ || die
+}
diff --git a/dev-lang/spidermonkey/spidermonkey-52.9.1_pre1-r2.ebuild b/dev-lang/spidermonkey/spidermonkey-52.9.1_pre1-r2.ebuild
deleted file mode 100644
index 5b47c03a9c44..000000000000
--- a/dev-lang/spidermonkey/spidermonkey-52.9.1_pre1-r2.ebuild
+++ /dev/null
@@ -1,163 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-WANT_AUTOCONF="2.1"
-inherit autotools toolchain-funcs pax-utils mozcoreconf-v5
-
-MY_PN="mozjs"
-MY_P="${MY_PN}-${PV/_rc/.rc}"
-MY_P="${MY_P/_pre/pre}"
-DESCRIPTION="Stand-alone JavaScript C++ library"
-HOMEPAGE="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
-#SRC_URI="https://people.mozilla.org/~sfink/${MY_P}.tar.bz2"
-SRC_URI="http://ftp.mozilla.org/pub/spidermonkey/prereleases/52/pre1/mozjs-52.9.1pre1.tar.bz2 -> ${MY_P}.tar.bz2
- https://dev.gentoo.org/~whissi/dist/mozilla/${PN}-52.0-patches-1.tar.xz"
-
-LICENSE="NPL-1.1"
-SLOT="52"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 s390 x86"
-IUSE="debug minimal +system-icu test"
-
-# Disable tests:
-# Version is dead and most issues are related to the use of
-# system's ICU.
-RESTRICT="test"
-
-S="${WORKDIR}/${MY_P%.rc*}"
-BUILDDIR="${S}/jsobj"
-
-RDEPEND=">=dev-libs/nspr-4.13.1
- virtual/libffi
- sys-libs/readline:0=
- >=sys-libs/zlib-1.2.3
- system-icu? ( >=dev-libs/icu-58.1:= )"
-DEPEND="${RDEPEND}"
-
-pkg_setup() {
- [[ ${MERGE_TYPE} == "binary" ]] || \
- moz_pkgsetup
-
- export SHELL="${EPREFIX}/bin/bash"
-}
-
-src_prepare() {
- # remove patches integrated by upstream
- rm -f "${WORKDIR}"/${PN}/0002-build-Add-major-version-to-make-parallel-installable.patch \
- "${WORKDIR}"/${PN}/0005-headers-Fix-symbols-visibility.patch \
- "${WORKDIR}"/${PN}/0007-build-Remove-unnecessary-NSPR-dependency.patch \
- "${WORKDIR}"/${PN}/0008-tests-Skip-on-all-64-bit-archs.patch \
- || die
-
- eapply "${WORKDIR}/${PN}"
- eapply "${FILESDIR}"/moz38-dont-hardcode-libc-soname.patch
- eapply "${FILESDIR}"/${PN}-52.0-fix-alpha-bitness.patch
- eapply "${FILESDIR}"/${PN}-52.0-gcc9-overflow.patch
-
- eapply_user
-
- if [[ ${CHOST} == *-freebsd* ]]; then
- # Don't try to be smart, this does not work in cross-compile anyway
- ln -sfn "${BUILDDIR}/config/Linux_All.mk" "${S}/config/$(uname -s)$(uname -r).mk" || die
- fi
-
- cd "${S}"/js/src || die
- eautoconf old-configure.in
- eautoconf
-
- # remove options that are not correct from js-config
- sed '/lib-filenames/d' -i "${S}"/js/src/js-config.in || die "failed to remove invalid option from js-config"
-
- # there is a default config.cache that messes everything up
- rm -f "${S}"/js/src/config.cache || die
-
- mkdir -p "${BUILDDIR}" || die
-}
-
-src_configure() {
- cd "${BUILDDIR}" || die
-
- tc-export AR RANLIB
-
- ECONF_SOURCE="${S}/js/src" \
- econf \
- --enable-jemalloc \
- --enable-readline \
- --with-system-nspr \
- --disable-optimize \
- --with-intl-api \
- --with-toolchain-prefix="${CHOST}-" \
- --disable-gold \
- $(use_with system-icu) \
- $(use_enable debug) \
- $(use_enable test tests) \
- XARGS="/usr/bin/xargs" \
- SHELL="${SHELL:-${EPREFIX}/bin/bash}" \
- CC="${CC}" CXX="${CXX}" LD="${LD}" AR="${AR}" RANLIB="${RANLIB}"
-}
-
-cross_make() {
- emake \
- CFLAGS="${BUILD_CFLAGS}" \
- CXXFLAGS="${BUILD_CXXFLAGS}" \
- AR="${BUILD_AR}" \
- CC="${BUILD_CC}" \
- CXX="${BUILD_CXX}" \
- RANLIB="${BUILD_RANLIB}" \
- SHELL="${SHELL:-${EPREFIX}/bin/bash}" \
- "$@"
-}
-src_compile() {
- cd "${BUILDDIR}" || die
- if tc-is-cross-compiler; then
- tc-export_build_env BUILD_{AR,CC,CXX,RANLIB}
- cross_make \
- MOZ_OPTIMIZE_FLAGS="" MOZ_DEBUG_FLAGS="" \
- HOST_OPTIMIZE_FLAGS="" MODULE_OPTIMIZE_FLAGS="" \
- MOZ_PGO_OPTIMIZE_FLAGS="" \
- host_jsoplengen host_jskwgen
- cross_make \
- MOZ_OPTIMIZE_FLAGS="" MOZ_DEBUG_FLAGS="" HOST_OPTIMIZE_FLAGS="" \
- -C config nsinstall
- mv {,native-}host_jskwgen || die
- mv {,native-}host_jsoplengen || die
- mv config/{,native-}nsinstall || die
- sed -i \
- -e 's@./host_jskwgen@./native-host_jskwgen@' \
- -e 's@./host_jsoplengen@./native-host_jsoplengen@' \
- Makefile || die
- sed -i -e 's@/nsinstall@/native-nsinstall@' config/config.mk || die
- rm -f config/host_nsinstall.o \
- config/host_pathsub.o \
- host_jskwgen.o \
- host_jsoplengen.o || die
- fi
-
- MOZ_MAKE_FLAGS="${MAKEOPTS}" \
- SHELL="${SHELL:-${EPREFIX}/bin/bash}" \
- emake \
- MOZ_OPTIMIZE_FLAGS="" MOZ_DEBUG_FLAGS="" \
- HOST_OPTIMIZE_FLAGS="" MODULE_OPTIMIZE_FLAGS="" \
- MOZ_PGO_OPTIMIZE_FLAGS=""
-}
-
-src_test() {
- cd "${BUILDDIR}/js/src/jsapi-tests" || die
- ./jsapi-tests || die
-}
-
-src_install() {
- cd "${BUILDDIR}" || die
- SHELL="${SHELL:-${EPREFIX}/bin/bash}" \
- emake DESTDIR="${D}" install
-
- if ! use minimal; then
- pax-mark m "${ED}"usr/bin/js${SLOT}
- else
- rm -f "${ED}"usr/bin/js${SLOT}
- fi
-
- # We can't actually disable building of static libraries
- # They're used by the tests and in a few other places
- find "${D}" -iname '*.a' -o -iname '*.ajs' -delete || die
-}
diff --git a/dev-lang/spidermonkey/spidermonkey-60.5.2_p0-r4.ebuild b/dev-lang/spidermonkey/spidermonkey-60.5.2_p0-r4.ebuild
deleted file mode 100644
index 52f96f099364..000000000000
--- a/dev-lang/spidermonkey/spidermonkey-60.5.2_p0-r4.ebuild
+++ /dev/null
@@ -1,161 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-WANT_AUTOCONF="2.1"
-inherit autotools check-reqs toolchain-funcs pax-utils mozcoreconf-v5
-
-MY_PN="mozjs"
-MY_P="${MY_PN}-${PV/_rc/.rc}"
-MY_P="${MY_P/_pre/pre}"
-MY_P="${MY_P%_p[0-9]*}"
-DESCRIPTION="Stand-alone JavaScript C++ library"
-HOMEPAGE="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
-#SRC_URI="https://archive.mozilla.org/pub/spidermonkey/prereleases/60/pre3/${MY_P}.tar.bz2
-SRC_URI="https://dev.gentoo.org/~axs/distfiles/${MY_P}.tar.bz2
- https://dev.gentoo.org/~anarchy/mozilla/patchsets/${PN}-60.0-patches-04.tar.xz"
-
-LICENSE="NPL-1.1"
-SLOT="60"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 s390 sparc x86"
-IUSE="debug +jit minimal +system-icu test"
-
-# Disable tests:
-# Version is dead and most issues are related to the use of
-# system's ICU.
-RESTRICT="test"
-
-S="${WORKDIR}/${MY_P%.rc*}"
-
-BUILDDIR="${S}/jsobj"
-
-RDEPEND=">=dev-libs/nspr-4.13.1
- virtual/libffi
- sys-libs/readline:0=
- >=sys-libs/zlib-1.2.3:=
- system-icu? ( >=dev-libs/icu-59.1:= )"
-DEPEND="${RDEPEND}"
-
-pkg_pretend() {
- CHECKREQS_DISK_BUILD="2G"
-
- check-reqs_pkg_setup
-}
-pkg_setup() {
- [[ ${MERGE_TYPE} == "binary" ]] || \
- moz_pkgsetup
- export SHELL="${EPREFIX}/bin/bash"
-}
-
-src_prepare() {
- eapply "${WORKDIR}/${PN}"
- eapply "${FILESDIR}/${PN}-60.5.2-ia64-support.patch"
- eapply "${FILESDIR}/${PN}-60.5.2-ia64-fix-virtual-address-length.patch"
-
- eapply_user
-
- if [[ ${CHOST} == *-freebsd* ]]; then
- # Don't try to be smart, this does not work in cross-compile anyway
- ln -sfn "${BUILDDIR}/config/Linux_All.mk" "${S}/config/$(uname -s)$(uname -r).mk" || die
- fi
-
- cd "${S}/js/src" || die
- eautoconf old-configure.in
- eautoconf
-
- # remove options that are not correct from js-config
- sed '/lib-filenames/d' -i "${S}"/js/src/build/js-config.in || die "failed to remove invalid option from js-config"
-
- # there is a default config.cache that messes everything up
- rm -f "${S}/js/src"/config.cache || die
-
- mkdir -p "${BUILDDIR}" || die
-}
-
-src_configure() {
- cd "${BUILDDIR}" || die
-
- tc-export AR RANLIB
-
- ECONF_SOURCE="${S}/js/src" \
- econf \
- --disable-jemalloc \
- --enable-readline \
- --with-system-nspr \
- --with-system-zlib \
- --disable-optimize \
- --with-intl-api \
- --with-toolchain-prefix="${CHOST}-" \
- $(use_with system-icu) \
- $(use_enable debug) \
- $(use_enable jit ion) \
- $(use_enable test tests) \
- XARGS="/usr/bin/xargs" \
- CONFIG_SHELL="${EPREFIX}/bin/bash" \
- CC="${CC}" CXX="${CXX}" LD="${LD}" AR="${AR}" RANLIB="${RANLIB}"
-}
-
-cross_make() {
- emake \
- CFLAGS="${BUILD_CFLAGS}" \
- CXXFLAGS="${BUILD_CXXFLAGS}" \
- AR="${BUILD_AR}" \
- CC="${BUILD_CC}" \
- CXX="${BUILD_CXX}" \
- RANLIB="${BUILD_RANLIB}" \
- "$@"
-}
-src_compile() {
- cd "${BUILDDIR}" || die
- if tc-is-cross-compiler; then
- tc-export_build_env BUILD_{AR,CC,CXX,RANLIB}
- cross_make \
- MOZ_OPTIMIZE_FLAGS="" MOZ_DEBUG_FLAGS="" \
- HOST_OPTIMIZE_FLAGS="" MODULE_OPTIMIZE_FLAGS="" \
- MOZ_PGO_OPTIMIZE_FLAGS="" \
- host_jsoplengen host_jskwgen
- cross_make \
- MOZ_OPTIMIZE_FLAGS="" MOZ_DEBUG_FLAGS="" HOST_OPTIMIZE_FLAGS="" \
- -C config nsinstall
- mv {,native-}host_jskwgen || die
- mv {,native-}host_jsoplengen || die
- mv config/{,native-}nsinstall || die
- sed -i \
- -e 's@./host_jskwgen@./native-host_jskwgen@' \
- -e 's@./host_jsoplengen@./native-host_jsoplengen@' \
- Makefile || die
- sed -i -e 's@/nsinstall@/native-nsinstall@' config/config.mk || die
- rm -f config/host_nsinstall.o \
- config/host_pathsub.o \
- host_jskwgen.o \
- host_jsoplengen.o || die
- fi
-
- MOZ_MAKE_FLAGS="${MAKEOPTS}" \
- emake \
- MOZ_OPTIMIZE_FLAGS="" MOZ_DEBUG_FLAGS="" \
- HOST_OPTIMIZE_FLAGS="" MODULE_OPTIMIZE_FLAGS="" \
- MOZ_PGO_OPTIMIZE_FLAGS=""
-}
-
-src_test() {
- cd "${BUILDDIR}/js/src/jsapi-tests" || die
- ./jsapi-tests || die
-}
-
-src_install() {
- cd "${BUILDDIR}" || die
- emake DESTDIR="${D}" install
-
- if ! use minimal; then
- if use jit; then
- pax-mark m "${ED}"usr/bin/js${SLOT}
- fi
- else
- rm -f "${ED}"usr/bin/js${SLOT}
- fi
-
- # We can't actually disable building of static libraries
- # They're used by the tests and in a few other places
- find "${D}" -iname '*.a' -o -iname '*.ajs' -delete || die
-}
diff --git a/dev-lang/spidermonkey/spidermonkey-68.12.0.ebuild b/dev-lang/spidermonkey/spidermonkey-68.12.0.ebuild
deleted file mode 100644
index 1a3cf72f182b..000000000000
--- a/dev-lang/spidermonkey/spidermonkey-68.12.0.ebuild
+++ /dev/null
@@ -1,264 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="7"
-
-PYTHON_COMPAT=( python3_{6..9} )
-
-WANT_AUTOCONF="2.1"
-
-inherit autotools check-reqs python-any-r1 toolchain-funcs
-
-MY_PN="mozjs"
-MY_PV="${PV/_pre*}" # Handle Gentoo pre-releases
-
-MY_MAJOR=$(ver_cut 1)
-
-MOZ_ESR="1"
-
-# Convert the ebuild version to the upstream mozilla version
-MOZ_PV="${MY_PV/_alpha/a}" # Handle alpha for SRC_URI
-MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI
-MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI
-
-if [[ ${MOZ_ESR} == 1 ]] ; then
- # ESR releases have slightly different version numbers
- MOZ_PV="${MOZ_PV}esr"
-fi
-
-# Patch version
-FIREFOX_PATCHSET="firefox-68.0-patches-15"
-SPIDERMONKEY_PATCHSET="${PN}-68.6.0-patches-04"
-
-MOZ_HTTP_URI="https://archive.mozilla.org/pub/firefox/releases"
-MOZ_SRC_URI="${MOZ_HTTP_URI}/${MOZ_PV}/source/firefox-${MOZ_PV}.source.tar.xz"
-
-if [[ "${PV}" == *_rc* ]]; then
- MOZ_HTTP_URI="https://archive.mozilla.org/pub/firefox/candidates/${MOZ_PV}-candidates/build${PV##*_rc}"
- MOZ_SRC_URI="${MOZ_HTTP_URI}/source/firefox-${MOZ_PV}.source.tar.xz"
-fi
-
-PATCH_URIS=(
- https://dev.gentoo.org/~{anarchy,whissi,polynomial-c,axs}/mozilla/patchsets/${FIREFOX_PATCHSET}.tar.xz
- https://dev.gentoo.org/~{whissi,polynomial-c,axs}/mozilla/patchsets/${SPIDERMONKEY_PATCHSET}.tar.xz
-)
-
-SRC_URI="${MOZ_SRC_URI}
- ${PATCH_URIS[@]}"
-
-DESCRIPTION="SpiderMonkey is Mozilla's JavaScript engine written in C and C++"
-HOMEPAGE="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
-
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~s390 sparc x86"
-
-SLOT="68"
-LICENSE="MPL-2.0"
-IUSE="cpu_flags_arm_neon debug +jit test"
-
-RESTRICT="!test? ( test )"
-
-BDEPEND="dev-lang/python:2.7
- test? ( ${PYTHON_DEPS} )"
-
-DEPEND=">=dev-libs/icu-63.1:=
- >=dev-libs/nspr-4.21
- sys-libs/readline:0=
- >=sys-libs/zlib-1.2.3"
-RDEPEND="${DEPEND}"
-
-S="${WORKDIR}/firefox-${MY_PV}/js/src"
-
-pkg_pretend() {
- if use test ; then
- CHECKREQS_DISK_BUILD="6G"
- else
- CHECKREQS_DISK_BUILD="5G"
- fi
-
- check-reqs_pkg_pretend
-}
-
-pkg_setup() {
- if use test ; then
- CHECKREQS_DISK_BUILD="6G"
- else
- CHECKREQS_DISK_BUILD="5G"
- fi
-
- check-reqs_pkg_setup
-
- use test && python-any-r1_pkg_setup
-}
-
-src_prepare() {
- cd ../.. || die
- rm "${WORKDIR}"/firefox/2013_avoid_noinline_on_GCC_with_skcms.patch
- rm "${WORKDIR}"/firefox/2015_fix_cssparser.patch
- rm "${WORKDIR}"/firefox/2016_set_CARGO_PROFILE_RELEASE_LTO.patch
- eapply "${WORKDIR}"/firefox
- eapply "${WORKDIR}"/spidermonkey-patches
-
- default
-
- # sed-in toolchain prefix
- sed -i \
- -e "s/objdump/${CHOST}-objdump/" \
- python/mozbuild/mozbuild/configure/check_debug_ranges.py \
- || die "sed failed to set toolchain prefix"
-
- MOZJS_BUILDDIR="${WORKDIR}/build"
- mkdir "${MOZJS_BUILDDIR}" || die
-
- cd "${S}" || die
- eautoconf
-}
-
-src_configure() {
- tc-export CC CXX LD AR RANLIB
-
- # backup current active Python version
- local PYTHON_OLD=${PYTHON}
-
- # build system will require Python2.7
- export PYTHON=python2.7
-
- cd "${MOZJS_BUILDDIR}" || die
-
- # ../python/mach/mach/mixin/process.py fails to detect SHELL
- export SHELL="${EPREFIX}/bin/bash"
-
- local -a myeconfargs=(
- --host="${CBUILD:-${CHOST}}"
- --target="${CHOST}"
- --disable-jemalloc
- --disable-optimize
- --disable-strip
- --enable-readline
- --enable-shared-js
- --with-intl-api
- --with-system-icu
- --with-system-nspr
- --with-system-zlib
- --with-toolchain-prefix="${CHOST}-"
- $(use_enable debug)
- $(use_enable jit ion)
- $(use_enable test tests)
- )
-
- # Modifications to better support ARM, bug 717344
- if use cpu_flags_arm_neon ; then
- myeconfargs+=( --with-fpu=neon )
-
- if ! tc-is-clang ; then
- # thumb options aren't supported when using clang, bug 666966
- myeconfargs+=( --with-thumb=yes )
- myeconfargs+=( --with-thumb-interwork=no )
- fi
- fi
-
- # Forcing system-icu allows us to skip patching bundled ICU for PPC
- # and other minor arches
- ECONF_SOURCE="${S}" \
- econf \
- ${myeconfargs[@]} \
- XARGS="${EPREFIX}/usr/bin/xargs"
-
- # restore PYTHON
- export PYTHON=${PYTHON_OLD}
-}
-
-src_compile() {
- cd "${MOZJS_BUILDDIR}" || die
- default
-}
-
-src_test() {
- if "${MOZJS_BUILDDIR}/js/src/js" -e 'print("Hello world!")'; then
- einfo "Smoke-test successful, continuing with full test suite"
- else
- die "Smoke-test failed: did interpreter initialization fail?"
- fi
-
- local -a KNOWN_TESTFAILURES
- KNOWN_TESTFAILURES+=( test262/built-ins/Atomics/wait/bigint/waiterlist-order-of-operations-is-fifo.js )
- KNOWN_TESTFAILURES+=( test262/intl402/RelativeTimeFormat/prototype/format/en-us-numeric-auto.js )
- KNOWN_TESTFAILURES+=( non262/Intl/DateTimeFormat/timeZone_backward_links.js )
- KNOWN_TESTFAILURES+=( non262/Intl/DateTimeFormat/tz-environment-variable.js )
- KNOWN_TESTFAILURES+=( non262/Intl/RelativeTimeFormat/format.js )
- KNOWN_TESTFAILURES+=( non262/Date/time-zones-imported.js )
- KNOWN_TESTFAILURES+=( non262/Date/toString-localized.js )
- KNOWN_TESTFAILURES+=( non262/Date/time-zone-path.js )
- KNOWN_TESTFAILURES+=( non262/Date/time-zones-historic.js )
- KNOWN_TESTFAILURES+=( non262/Date/toString-localized-posix.js )
- KNOWN_TESTFAILURES+=( non262/Date/reset-time-zone-cache-same-offset.js )
-
- if use x86 ; then
- KNOWN_TESTFAILURES+=( test262/language/types/number/S8.5_A2.1.js )
- KNOWN_TESTFAILURES+=( test262/language/types/number/S8.5_A2.2.js )
- KNOWN_TESTFAILURES+=( test262/built-ins/Number/prototype/toPrecision/return-values.js )
- KNOWN_TESTFAILURES+=( non262/Date/timeclip.js )
- elif use sparc ; then
- KNOWN_TESTFAILURES+=( non262/Array/regress-157652.js )
- KNOWN_TESTFAILURES+=( non262/Array/regress-330812.js )
- KNOWN_TESTFAILURES+=( non262/regress/regress-422348.js )
- fi
-
- if [[ $(tc-endian) == "big" ]] ; then
- KNOWN_TESTFAILURES+=( test262/built-ins/TypedArray/prototype/set/typedarray-arg-set-values-same-buffer-other-type.js )
- fi
-
- echo "" > "${T}"/known_failures.list || die
-
- local KNOWN_TESTFAILURE
- for KNOWN_TESTFAILURE in ${KNOWN_TESTFAILURES[@]} ; do
- echo "${KNOWN_TESTFAILURE}" >> "${T}"/known_failures.list
- done
-
- PYTHONPATH="${S}/tests/lib" \
- ${PYTHON} \
- "${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \
- --exclude-file="${T}"/known_failures.list \
- "${MOZJS_BUILDDIR}"/js/src/js \
- || die
-
- if use jit ; then
- KNOWN_TESTFAILURES=()
-
- echo "" > "${T}"/known_failures.list || die
-
- for KNOWN_TESTFAILURE in ${KNOWN_TESTFAILURES[@]} ; do
- echo "${KNOWN_TESTFAILURE}" >> "${T}"/known_failures.list
- done
-
- PYTHONPATH="${S}/tests/lib" \
- ${PYTHON} \
- "${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \
- --exclude-file="${T}"/known_failures.list \
- "${MOZJS_BUILDDIR}"/js/src/js basic \
- || die
- fi
-}
-
-src_install() {
- cd "${MOZJS_BUILDDIR}" || die
- default
-
- # fix soname links
- pushd "${ED}"/usr/$(get_libdir) &>/dev/null || die
- mv lib${MY_PN}-${MY_MAJOR}.so lib${MY_PN}-${MY_MAJOR}.so.0.0.0 || die
- ln -s lib${MY_PN}-${MY_MAJOR}.so.0.0.0 lib${MY_PN}-${MY_MAJOR}.so.0 || die
- ln -s lib${MY_PN}-${MY_MAJOR}.so.0 lib${MY_PN}-${MY_MAJOR}.so || die
- popd &>/dev/null || die
-
- # remove unneeded files
- rm \
- "${ED}"/usr/bin/js${MY_MAJOR}-config \
- "${ED}"/usr/$(get_libdir)/libjs_static.ajs \
- || die
-
- # fix permissions
- chmod -x \
- "${ED}"/usr/$(get_libdir)/pkgconfig/*.pc \
- "${ED}"/usr/include/mozjs-${MY_MAJOR}/js-config.h \
- || die
-}
diff --git a/dev-lang/squirrel/Manifest b/dev-lang/squirrel/Manifest
index a07ee041552a..8c72455203ab 100644
--- a/dev-lang/squirrel/Manifest
+++ b/dev-lang/squirrel/Manifest
@@ -1 +1,2 @@
-DIST squirrel-3.1_p20200612.tar.gz 181047 BLAKE2B f6965b5e721919c6c33426843a9b73fb27f39b7341763c2ff01421e6b6dce6cb86c6a02df65af9cb2266e8a63d6612c0e857456c4bb6e2546760f937d1979990 SHA512 e9853c92c151ca35e137a91ba4e3c9ad9c4c6d95a22c3686ebbae74cea7c1bf704ec5274d610f9d8158d8662a2b1b1445664f3f33c11689553cfc090a957b204
+DIST squirrel-3.2.tar.gz 620486 BLAKE2B c03cee0dffc12ff48caa4a7c9c0fffec32cdfb23306f265b8475454b0b9f14a3d2ec620b0f2183de8e8bc83e4921d6853105ac1a8d37bf3f2d97e914a001c4fd SHA512 e488ccc07b851e1707f3fde923f691747b18dc2fcc4748d2a68f2590ab84a3c0db647c8ac9ee775796984d2302a3d3686459556ea0c49a0b96b1354fcb8a6c74
+DIST squirrel-config.cmake.in_3.2 143 BLAKE2B e9e795a4f855f41206c5aca89b949c279f35dce06dad73c9153a9c03701f1721d831bdc29e3a399a2a6b2cf6e97d3a966008d81dfe955b2f5412c818d5a054bc SHA512 4820835a233b2beb5768b39e6b3ce5f06f1f9bc57c4c19df2c4f7ce2b03e67c18554c3084259317092d1eb0fee7d909bdbc56a9fc556f57ed61ef8b0f181996d
diff --git a/dev-lang/squirrel/files/squirrel-3.2-CVE-2022-30292.patch b/dev-lang/squirrel/files/squirrel-3.2-CVE-2022-30292.patch
new file mode 100644
index 000000000000..3ba274b3270c
--- /dev/null
+++ b/dev-lang/squirrel/files/squirrel-3.2-CVE-2022-30292.patch
@@ -0,0 +1,12 @@
+diff --git a/squirrel/sqbaselib.cpp b/squirrel/sqbaselib.cpp
+index e2f248e..308d2cc 100644
+--- a/squirrel/sqbaselib.cpp
++++ b/squirrel/sqbaselib.cpp
+@@ -1149,6 +1149,7 @@ static SQInteger thread_call(HSQUIRRELVM v)
+ SQObjectPtr o = stack_get(v,1);
+ if(sq_type(o) == OT_THREAD) {
+ SQInteger nparams = sq_gettop(v);
++ sq_reservestack(_thread(o), nparams + 3);
+ _thread(o)->Push(_thread(o)->_roottable);
+ for(SQInteger i = 2; i<(nparams+1); i++)
+ sq_move(_thread(o),v,i);
diff --git a/dev-lang/squirrel/files/squirrel.pc.in b/dev-lang/squirrel/files/squirrel.pc.in
new file mode 100644
index 000000000000..4dc26b906ad2
--- /dev/null
+++ b/dev-lang/squirrel/files/squirrel.pc.in
@@ -0,0 +1,12 @@
+prefix=/usr
+exec_prefix=/usr
+libdir=/usr/@libdir@
+includedir=/usr/include/squirrel
+
+Name: squirrel
+Description: squirrel library
+Version: @version@
+
+Requires:
+Libs: -L${libdir} -lsquirrel -lsqstdlib
+Cflags: -I${includedir}
diff --git a/dev-lang/squirrel/metadata.xml b/dev-lang/squirrel/metadata.xml
index cc06c944a210..27e49e816bba 100644
--- a/dev-lang/squirrel/metadata.xml
+++ b/dev-lang/squirrel/metadata.xml
@@ -1,10 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="person">
- <email>slyfox@gentoo.org</email>
- <name>Sergei Trofimovich</name>
- </maintainer>
+ <!-- maintainer-needed -->
<upstream>
<remote-id type="sourceforge">squirrel</remote-id>
<remote-id type="github">albertodemichelis/squirrel</remote-id>
diff --git a/dev-lang/squirrel/squirrel-3.1_p20200612.ebuild b/dev-lang/squirrel/squirrel-3.1_p20200612.ebuild
deleted file mode 100644
index f8d5a1c568fb..000000000000
--- a/dev-lang/squirrel/squirrel-3.1_p20200612.ebuild
+++ /dev/null
@@ -1,42 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit cmake vcs-snapshot
-
-DESCRIPTION="A interpreted language mainly used for games"
-HOMEPAGE="http://squirrel-lang.org/"
-commit=40050fa249733c85485adde533774ec066d29aca
-SRC_URI="https://github.com/albertodemichelis/squirrel/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-SRC_URI="https://github.com/albertodemichelis/squirrel/archive/${commit}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="ZLIB"
-SLOT="0"
-KEYWORDS="amd64 x86"
-IUSE="examples static-libs"
-
-RDEPEND=""
-DEPEND="${RDEPEND}"
-
-src_configure() {
- local mycmakeargs=(
- $(usex static-libs '' -DDISABLE_STATIC=YES)
- # /usr/bin/sq is used by app-text/ispell
- # /usr/lib/libsquirrel.so is used by app-shells/squirrelsh
- -DLONG_OUTPUT_NAMES=YES
- )
-
- cmake_src_configure
-}
-
-src_install() {
- cmake_src_install
-
- dodoc HISTORY
-
- if use examples; then
- docompress -x /usr/share/doc/${PF}/samples
- dodoc -r samples
- fi
-}
diff --git a/dev-lang/squirrel/squirrel-3.2.ebuild b/dev-lang/squirrel/squirrel-3.2.ebuild
new file mode 100644
index 000000000000..66afa008066b
--- /dev/null
+++ b/dev-lang/squirrel/squirrel-3.2.ebuild
@@ -0,0 +1,63 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+DESCRIPTION="A interpreted language mainly used for games"
+HOMEPAGE="http://squirrel-lang.org/"
+# Missing file in the tarball, do the same as Mageia
+SRC_URI="https://download.sourceforge.net/squirrel/${PN}_${PV/./_}_stable.tar.gz -> ${P}.tar.gz
+ https://raw.githubusercontent.com/albertodemichelis/squirrel/v${PV}/squirrel-config.cmake.in -> squirrel-config.cmake.in_${PV}"
+
+LICENSE="ZLIB"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="examples static-libs"
+
+RDEPEND=""
+DEPEND="${RDEPEND}"
+
+S="${WORKDIR}/${PN}3"
+
+PATCHES=(
+ # Fixed in master
+ "${FILESDIR}/${P}-CVE-2022-30292.patch"
+)
+
+src_prepare() {
+ cp "${DISTDIR}/squirrel-config.cmake.in_${PV}" "${S}/squirrel-config.cmake.in" || die
+ cmake_src_prepare
+}
+
+src_configure() {
+ local mycmakeargs=(
+ $(usex static-libs '' -DDISABLE_STATIC=YES)
+ # /usr/bin/sq is used by app-text/ispell
+ # /usr/lib/libsquirrel.so is used by app-shells/squirrelsh
+ -DLONG_OUTPUT_NAMES=YES
+ )
+
+ cmake_src_configure
+}
+
+src_install() {
+ cmake_src_install
+
+ dodoc HISTORY
+
+ if use examples; then
+ docompress -x /usr/share/doc/${PF}/samples
+ dodoc -r samples
+ fi
+
+ # Add pkgconfig file, needed for some reverse deps (follows Mageia
+ # one)
+ # https://github.com/albertodemichelis/squirrel/issues/259
+ dodir /usr/$(get_libdir)/pkgconfig
+ sed \
+ -e "s/@libdir@/$(get_libdir)/" \
+ -e "s/@version@/${PV}/" \
+ "${FILESDIR}/${PN}.pc.in" > "${ED}/usr/$(get_libdir)/pkgconfig/${PN}.pc" || die
+}
diff --git a/dev-lang/srf/metadata.xml b/dev-lang/srf/metadata.xml
index d1565625819d..3c2d1b10e034 100644
--- a/dev-lang/srf/metadata.xml
+++ b/dev-lang/srf/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<!-- maintainer-needed -->
<longdescription lang="en">
diff --git a/dev-lang/srf/srf-1.0-r2.ebuild b/dev-lang/srf/srf-1.0-r2.ebuild
index 949fee4692d3..216eb11e8f3a 100644
--- a/dev-lang/srf/srf-1.0-r2.ebuild
+++ b/dev-lang/srf/srf-1.0-r2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
@@ -14,8 +14,8 @@ SLOT="0"
KEYWORDS="~amd64 ~x86 ~x86-linux ~ppc-macos"
DEPEND="
- sys-devel/flex
- virtual/yacc"
+ app-alternatives/lex
+ app-alternatives/yacc"
PATCHES=( "${FILESDIR}"/${P}-fno-common.patch )
diff --git a/dev-lang/starlark-rust/Manifest b/dev-lang/starlark-rust/Manifest
new file mode 100644
index 000000000000..d439db41473d
--- /dev/null
+++ b/dev-lang/starlark-rust/Manifest
@@ -0,0 +1,165 @@
+DIST Inflector-0.11.4.crate 17438 BLAKE2B eaf0c7f983b3186e9bc89353021a10592f2877e46585bd50b96db9b087343d1199c7b6cf3fa53cd274fb6d33de025a904b8aa31a7ac9599ae3689ecdbcec34cd SHA512 f1f6463e033b6d3c16c51dc1e1a3f5569954308b95b59058294b7f9310919bbda797e99e6a07529071bb83f0688867a243997d33795a7136b0af73977004296e
+DIST ahash-0.7.6.crate 38030 BLAKE2B aca3661477fcd7822d6d10970151e05c28e1615f8cd7ddaac064b15102027e404b19b0f3f16dd76145048594ea1c22ae27dd08cc05c411efbae9ec7a1ef55ce9 SHA512 61354688b6fb096359faefb6f34be958cd2215d56b88c22c737d24183eaad433f811bc9e64f927e4852c87d2799c22fda82b55cfbef2ed6357ff74f0c4ffec68
+DIST aho-corasick-0.7.18.crate 112923 BLAKE2B 4f6947d1aacf89ccfab0592cdc55fa61ef09cea38231d3f758765dbce328a810c0b588be4ba96e81d64955379ee005722d22a7aec39caea6e72342245d7ca34f SHA512 7a23b16231a90d23ee60ad4c81bc225410599a4560d33d3a203138fc540c39cf1000100fed3aed40dcc371c3635656a3792545dca5dd1aefbde00d8774eebd00
+DIST annotate-snippets-0.9.1.crate 31829 BLAKE2B 6919f78127653f9f022667b0ee7cb80bd2ef95220698e033031c6f4d3ff3341ed260e8baf776d032291538503e26577fc8fa82e99bcdc032985fb297351586a3 SHA512 e1e8b262a6681730ad068c29d7e0f3879acf0c7138721f606851228bd5d90292f24ac2c225fe49f26264e7d35de5ed3904850e522da8cd2c44a67f7db36f2d8e
+DIST ansi_term-0.12.1.crate 24838 BLAKE2B f636772c34e2d68cda7b8d3b2b86abda074585a62bd2654812ce92384244655a9197fa66e6939e19a674c0148ca605313d83de262bb18c2339a8a4eb4438a791 SHA512 b840e28b3e7700689a69a39659b1e066560078dd4a58326b91a028915819e7af883399ee53e920db68fd974c58d35bb1ddf8d427af5937d5f696f57c4376b671
+DIST anyhow-1.0.57.crate 44614 BLAKE2B b8d8274325b7959cedb2b8f4023d13b0d3824034c8433aea9a0a6f3c3fa6a6d7460b93bf624dff4b7168075524545f1a312e454ed0b15e8dff2109cf3c6dc433 SHA512 311b9280aa7d573c11752ca2ffe810e2d4b55fe4c34cca948bbd42f1ddb1d36a51eda39684cffb7f6c4a18508cb53a5a38495521562a0088e3374fee800ff004
+DIST argfile-0.1.4.crate 7933 BLAKE2B e0256758f704afa1c1702c7eb9c27ac87bc10c60d8d1c1fd6700de9ef47c47c25a4b1cf41376f47908b76e442b05cd9b0bfc54da82f1fda0debc842e576fe78f SHA512 fdc5646bdd90602addbd3cd6eaa4aefaf0c89431839eecda4c66e6050bbdd2dfbef0ccf5b9186a2f48dd05e1e4be431892bbde97a68600c5ee45ddd144676584
+DIST ascii-canvas-3.0.0.crate 10575 BLAKE2B fc40c40551e3e1b2bec6ae5a85ee8b0a1ab1ef3425cdd19ec6dd47d849205004781a2c8f51470417fe7556cf8524cc63b84a532532c5081604adbcd92d286b44 SHA512 216056640604f5faba6d46e2c94ff75234fec83d3bc2dc7cf34dd279706362874e3a513c717b23bc591da07cc3088458913c4e9aa5f280550c93d261095c8703
+DIST atty-0.2.14.crate 5470 BLAKE2B 2db856a9e898a430258f059aeaf7c844a153293e8856d90ac81f7d91a888c89198768ad5cb09303c23241fe85c560a55148fa56a303651a82b0edb895616bfab SHA512 d7b6c4b9a0f898d91ddbc41a5ee45bbf45d1d269508c8cc87ee3e3990500e41e0ec387afb1f3bc7db55bedac396dd86c6509f4bf9e5148d809c3802edcc5e1d9
+DIST autocfg-1.1.0.crate 13272 BLAKE2B 7724055c337d562103f191f4e36cab469e578f0c51cc24d33624dea155d108a07578703766341fd6a4cc1ef52acda406e7dba1650d59115f18261281e5b40203 SHA512 df972c09abbdc0b6cb6bb55b1e29c7fed706ece38a62613d9e275bac46a19574a7f96f0152cccb0239efea04ee90083a146b58b15307696c4c81878cd12de28f
+DIST beef-0.5.1.crate 15177 BLAKE2B 7d81c3e4dd7e8e66b670b7a907d54656c5e1932554e2c162401ec2b406495120fc7c5297faa7b827565c27b483b76c63a531cbf0478aafb5a5822bc076aa1468 SHA512 7e4e33c598d7f28a0b939f9be67bfa6cc4deb5c2b04179a24e4e26ffafe715fa84c9dabbf3a1979c456be8d07f8e39cea1dcb24d1717118ef86900b292741a0e
+DIST bit-set-0.5.2.crate 14093 BLAKE2B 06d41a217438d9a00f8e57e592d12364b671d082f21a4d174673bc820dde28ef5ce02e782002d03c9311f71b0130eeeca7cfacbc4c1b27475069479163643ef3 SHA512 9709f35c7e69b84eed61f73da99ffe0693d1d0fa5fb94d13759cfbbb9dd4b0bb27628c3200e4b29ef29cdb0aede5fd3d7ddf663012b2c5946975bc169efbac34
+DIST bit-vec-0.6.3.crate 19927 BLAKE2B f5bd3bb9c87fdf3b206739b74df20cab50a1a45af3a58b2642a5a061c26207884be58ef8369a3cd06dfd3615bff0ce15915fdd4b6b6f03facc4a0f86c0b7e910 SHA512 b4b4a82c80d0ff13527ae4fff449ac9c1c7bc519c013af6ea3428348e0e5b9306b725c0a13a42d7d9dcf0f895a9eee0c63695a2503eb7fd2200083c9ea3a9aa8
+DIST bitflags-1.3.2.crate 23021 BLAKE2B eb990bb27b2bdeb66fd7212ce582cb36e1c616debbac85df642d0c82b25439e6bf9b1e811fac76b59e58ea3c1bbea6170d03a61e8f9a395e4334a0e2e2987eda SHA512 3c698f757b5cc62f815f9a1cce365c3d2dd88e4db71f331dff8bba86c2865f755b81cb4c9bfc59bd86b7643b0943f9e09a7c4f8ad75eb2ab0e714803d0129f62
+DIST bumpalo-3.9.1.crate 77507 BLAKE2B b248a0c2a9faaf52061f2fe0a82b9fd4efb4dae01da9dbd986493941f3ef2632f1d5608d167f2d088536dc96b4cce28981602220062892a7af51c3ead7a74a4b SHA512 40bf3f0d261aaff1f7c30a539953b9c14f4526f05586af0dbe2e4df4cc042cbe6180e3dcc2fbc6f1802e694066f72e629e74de40bc2951c5527edaf551722a52
+DIST cc-1.0.73.crate 57880 BLAKE2B be8d7a25a54afdd759844e76aec61526fc2bd5ca09480e6cdd3bdcf27e5f9d3a88dc16cbcbf54cd021470a7cc521e1ad468116c112bbd30752bac0d5486939ac SHA512 980f012b90c6410144f6de4995048337e09214f19603076db6d4edb88e9ef9ac9e8c6e25569f66c2be3a47e99298f5886dafc102e1a9122316179aa26bc1c985
+DIST cfg-if-1.0.0.crate 7934 BLAKE2B e99a5589c11d79d77a4537b34ce0a45d37b981c123b79b807cea836c89fc3926d693458893baca2882448d3d44e3f64e06141f6d916b748daa10b8cc1ae16d1b SHA512 0fb16a8882fd30e86b62c5143b1cb18ab564e84e75bd1f28fd12f24ffdc4a42e0d2e012a99abb606c12efe3c11061ff5bf8e24ab053e550ae083f7d90f6576ff
+DIST clap-2.34.0.crate 202210 BLAKE2B f383adf1d757ac4b68995132b33837686ce451f85a02a8d05d2c746da398510d05d46330f3efade063c3952aacb1754cdac73dd0afcae0df5340a89f9353aa1c SHA512 c648a761b9996a7e7464a538bb53621bae22090b846a42c3b729beca3363958ae67e3da9f93f58b10a10e043cadf7ff930388680d168646178c2824177832db8
+DIST clipboard-win-4.4.1.crate 12561 BLAKE2B c9870360d637b379269952620a48d379e8a132c80d67e93660a211a80633d876ab36369e9fc405d07f09dc9abd18d286b0d8531c773ab3ffc7b6d9fe630a904d SHA512 df83e7d13ef492080a70301bcfa3567727f584a4f7057963732d66609f46ba2fd26386b22c79f4b2c5250a2346a1997a48e38a1a56a7b7fbbda33d540f1a4910
+DIST convert_case-0.4.0.crate 8098 BLAKE2B cd038a7b0d52a9e183a96cbd548a8deefbe0c60d6aea15d7c6f92a4bbf991444d401b5cd3c944f3d37019e7e3db2a648e321402e13803768556f32c08ec00084 SHA512 e17e92b94b030e39f368ef0dd0288dbb45f77c8ce3034c1a6fd2fd43f38cf10a1af5aa7bebdfb447c335d9593c32dde7262e13f97c271c419c6106cf47dc01e1
+DIST crossbeam-channel-0.5.4.crate 88237 BLAKE2B ffcab003305b80586a9b61c6309dcf6f4ced483856c4501753cddd23fb0fa9a71b7870b676ccba78119cc29f03974ff4731cef9a92840c0b38ae944f0b3825b5 SHA512 39b17dbaefc15d7faafca4ae6b060665471d384956aca7439fc407ed2632bd458e473efb62b74629b42a5f3d237e13503d2084cac6f6b3f42b9e03aa1fde0982
+DIST crossbeam-utils-0.8.8.crate 39681 BLAKE2B 2b3e64bfcaa044a9351c1cc8e9ea53fd68fd0bb9875ae523e0cd309a85ad23b340267bdb742d363b5d99fc065ed74f6cbb3ad1e33dec7d14d99ec458875e7e10 SHA512 ab960afdb82863160a3fa1c21c64b35b3112725bd72fc8e0724175937f4b23d0628253032229501938cd86a8e406a59c06cb44e8bdf34619de781a84ebb46ea0
+DIST crunchy-0.2.2.crate 2995 BLAKE2B 74ddf8c5e0deb2ceab65c20a2743e1230739ac6aa3af60c9e867a7852270697a1278b7dee00df8949fc4268f9756a4a098df1211ab3b3e31a122652c3ba0a6fb SHA512 36dc0aebc41a3aac5f1b178a7e61b65bcd9bb5c8539b2024f79428200f7c62daa7098af55c6ab0765febd2f8969bd6c0ac8096f73cdc0958e5c4e4eb6a4f7025
+DIST debugserver-types-0.5.0.crate 18075 BLAKE2B 9748c6852e5b9291820eab35be0f56f49e12b7592e5594b98f5fb662d7ef22db1eb3be45b6065ac448522fd8d9cd6c70a4828dfcbbc98bf10cf2cec91606d6f7 SHA512 20f780d6f1b6e4cbe8381122b8c9bbb7026ad0621c548b5724efb8b95b65e60027af4d25e7f01cbecc622d8e6e93900f5c43947eb636b2b8de0efd8201a22e02
+DIST derivative-2.2.0.crate 48076 BLAKE2B 56d27e27493c3b818ad45703efda607a0a0d9a48b0d43785b6a013443b8b964b67bb5b5284d242358415c5fb81b86b02079ee7c0595ec07bc658240eb114b887 SHA512 3c65ecdabd2dc202be3d83b06f96b6f68504fe542ede7e2285093c6d360a33ec76a3787c436c6e5ff8f59d430436a4b8ce2f908cf7b2b08cd8b0045de4e5d1da
+DIST derive_more-0.99.17.crate 55771 BLAKE2B b290bfbf06119018206be0f8ad4c92508be4cbc443f1a937c38961e207fc3f433d8a87b2b5a17e72aa1735520799540557d9dd9e49e26b8eb7cc80289afd44bd SHA512 0bb5a94e56d35a17ff4deed61c437ba75c9063694032ba98b58be1b072d33f2fb170d51bd262a17ff1beed2110b334528de75d5315ac627202ccb13d8c490baf
+DIST diff-0.1.12.crate 10223 BLAKE2B 369f305661f1da31207f3801ed1841dbce12451ac9c3e9d3736f7158ece433af9b2e42c29063e5d93bb86b1d300e503caa9c3ce7dd0b25553f91d72a9eea5298 SHA512 0e81331c0424e9369963e23894a6412b65a3ed4f3154ccc184fc84cf1c5985b81c586a6b34e8c6c0e5c3afba38fb15277cfd89e7f50c85bd5d8d4d24ba670d16
+DIST dirs-next-2.0.0.crate 11689 BLAKE2B f5022bc51dd50bad4ad0fd05b159a4117aca47afbea66dc42c8306ca58f3a550165afbcf9f5f721ef5ad8d357eaff305c6f6e42789354a910d5f1d05d3b7b7c6 SHA512 6ccb732da8ccf7bf35952c22a3b0caa8238319feb0a6cd3b0957e6be12548a2ce507c69cb6d3cbd2adfb37e13e6521c6229da5999edb0e47a292a41c3ea1a766
+DIST dirs-sys-next-0.1.2.crate 10681 BLAKE2B 71431533dbfd6016cc309c14a842ac8d43577abe768e69bd2caaf7d19d743f3ca95b9b0be1747077282089c64485f3d4e24bec8e56d4d883f25e494d328fbf3a SHA512 b3c40a8e93d4f9f4a890718076e14779aedd67a79da61b466788268c1eaea19aa493f043a7e410f5023a23d5509e639a6fc6681fbee30e252a601091cfffa2d5
+DIST either-1.6.1.crate 13641 BLAKE2B e5f40c40a5edb6dcb07a10bf79183cbe42438f1f70f3932dce72f6f6e91f75f24d17d82bc447507def4dad4345ffc9dd9162dde778afb253bdb1218e91887949 SHA512 4bfe56920e30cbc8eb4f90162db618f7dca653b42db35ab6a7045d3fd9a24ceb1778b1f79613850bdb1a87ad3794fa0d73015e46c48d513f368d8c3776fc9ddf
+DIST ena-0.14.0.crate 23052 BLAKE2B ac9a4141d831bd16cfd260a162572b43e9389b5cee4319cc22a23b550b25370cf49856c320fd4489633171a4fca91cf7091e974418ddbb1649fec8730c9cd2c9 SHA512 bcf842f8f5da8a7e9b8e51df50bdf3f00234534f1d59d96bb1e45b0ee4fa74847eb8b9b5ca615a66d84d23c629d7386f28294a5c64d22efdf2903bc89faab2d4
+DIST endian-type-0.1.2.crate 2340 BLAKE2B 6048948b467403409807fec776add4366685282a277d4ca40c5fc901228c0652c5759210048b28a94c8bb04c39bb3b359d43254e953e5b476112da7e49151a5b SHA512 d8a9b125fb87099f8bcbaf3688e2feb1c463ce624cd3dd36396e75e7aff177ed5033ecc295c02f491be04dbf240aac376e79a5c7cb591c3b208c442e1c1e6bbd
+DIST erased-serde-0.3.20.crate 26473 BLAKE2B c55de1e10ae724b5dba249d0557cad7e4a6ced4b85864f057372b941e2557a7dbfccfbef241943ab9477b3e31e86a320e48c34732b2236ef6ba6c7effe13bc32 SHA512 b11981c37b706de3546cc72943c4a7eb33cc7e5987d42d4759636552aee95b8eb5bd80b960755c0ec220f541e96bd598b534882d7af2571b89ce1c58ed83b000
+DIST errno-0.2.8.crate 9276 BLAKE2B b73738deb47d1f76ec91ffd15558126d32312647b82677290725669edb01b8f34a503172fad6518ebf0ffb1633ef0afaf0750982b9384a9fb87833d31721c9a8 SHA512 1f513743224cd9a9b7e4caaf33dab075a4a79efa90c9f46c9edfb0c8600daccd3ad2677ba2116621e19fcf8be456954da5d611cbcea4b6f1410f7731828b50d1
+DIST errno-dragonfly-0.1.2.crate 1810 BLAKE2B 781fc26dce5c33d83b9a1fd9be2b2ce9ac2559aaa858957ba6777e143b1e44cdfee48e1b47e3c91a95075a51921d1a421d0b45eb3d8de827cf4dd0ad744a7d8c SHA512 f853f1e1b8dd0f359a8f9a0399b3384c1103cd090d96e2b2204f91a40d40a9eb99383d4aa6a11e5470c51557afacf452d4be2049600d4235d27f59870fa3b916
+DIST error-code-2.3.1.crate 5324 BLAKE2B 3e6c18560c4f30d9fa8e5487453432b220b88acf59a421d2c2ec29bd77bba75ad8bca63e99d384442c7d458b5936dcae149897c2b0c57ad6e621f9b7928b2331 SHA512 a3953c854f7fba48dc34c35ca841d6f0671e8bde19f5dc36cbdc167fcc7c22c143dcd071a35c1866f5bbf05cedcdbcba3f1902d93aa21d19993b426c458af46e
+DIST fancy-regex-0.5.0.crate 73970 BLAKE2B a4f9ea5f36b14de00d8358a2d3b68252d80dadc1044fcd5fdfb67c845eec05e0c7232d1af089e6de8ef8b9bd6ebaee954a4ff0d23182d95da79dc8ef0c967093 SHA512 9768db0aa8335d68dd30cb2841fbbd4cc86154ad60d54d54ec7c3944003c7b9aff60ea4ad288d97199c2e027101fd66128d331319235b92b775429cfced85e22
+DIST fd-lock-3.0.5.crate 13383 BLAKE2B 554729ecd142e9f783112ff479de14e52554b902319c061321a38e37ed80a1a445d4eb9b45ed91a44fc913b02f98aab8f7187b29e692e08b67edd789a337d936 SHA512 7173838a01960e0870ae90055fd97173d647fe9eb7457f76c0bfbb95f7d95c02e4ec9a9a7c7ea528ecefc4400b4c6b99f6c847248c55392e72d94248ad6db239
+DIST fixedbitset-0.4.1.crate 15551 BLAKE2B bcebd833a45215566a565bcc8cc3440c5bacbced810d2658048da7050808b56c13951bacdd3930f85530129a118bdc23c42381206b63265da7d6846085937536 SHA512 8c53515f1a372a2626e83bc6999adaa00be6451f68627a63e0207ce6a8967e9cab6061adde3e33305c700c472be750903eb36b6f5ce071248db461c0af450b33
+DIST fnv-1.0.7.crate 11266 BLAKE2B 81da85889c91b6567e0f555e37dd915f1bd919719d1ca10c31a6861d7aec29a49ae9c1e8bc500791bf9d6b8dbb318c096d04872c5872a4b1f7d45fbd8e12842d SHA512 2195a4b34a78e2dd9838caf0ee556bf87cbb4a8ef5505aac663b614eb59dcfc0c40f432463ede41ecca57bfe7711f72673d39a85fe03d426f1324097d5628334
+DIST form_urlencoded-1.0.1.crate 8773 BLAKE2B e2d2224dbd85d053343aea29ef1bd540fb8be12fd600289e9c048e3b74bfb009d0770f8296556309ef756086f22feec4713dfed1006e1101075c8897be5471cc SHA512 3ab371c223561a27ffbd35cf648ef4a9145d47bba9d71900a7c54cfc2f089175e9361f6352331a9a7fa018923b15e7a3553c8f9ff9fae80e1626e641a5faff68
+DIST gazebo-0.7.0.crate 28540 BLAKE2B 38de72a17468e27ae1a4b9ffe8c6f441ae1a0717b298b8ba14b910fc2ffe564ff409af7feff779a3867f2ae6429ad8a03a4940dc5652c94cc5e88986700051fc SHA512 4fbb8b537bdd6d3dc290c93ae7654b3b16a8fbacdec535ae9c17d24ad462365f6ff539cf3eae226d466025df31762e181517e48de24890dfd87cf66c3f2539c9
+DIST gazebo_derive-0.7.0.crate 15454 BLAKE2B 25af108f4e82c6c37ee9f6874e2406f4081ec8d838dce9d7ce71967a448e80e1550977bc80b92d921d52e3a4d9cb823d13cd3c96ae2a508d421545b9a888910d SHA512 d9d40acf58989d5858e9632de4280a9d6b305bdcb99ee23faa123cdcf2d4e245e55228688cf0810b1b6855a59c7896895363bf205b4a6fc24dbb2c69f22c5fae
+DIST gazebo_lint-0.1.1.crate 12606 BLAKE2B 28a762905241bf443ffd928323b8af8e4c87d33a91b4f65eae13eb0cf3a5099c97a39a816ea7351491af034dde8df5694c01829915176ba46d55464b98a986ee SHA512 b81a4b24434f2c26899d4529dfde76b087ba37f396ac59af2b563308122af2463ef69cb1359d1ebf56482cc3b6e6982008f1c210187932b0a5e31f8173d91a10
+DIST getrandom-0.2.6.crate 28043 BLAKE2B b9871b18389f6e5503b3b817baa37dc585eec980851114b3407f34d25bbf68fd70e8bdef60ab682967a1397cb9659b343312deee740aa2107bbf38d1f4629d60 SHA512 3fca26198bbab1a9e189fb45ad6cc7c7a18969eed6f68ca43407a2d463fe004955b1d199c1794a23a53ba21fedb61eff86d380d2bf49bfdb6c7055c11d543096
+DIST hashbrown-0.11.2.crate 85713 BLAKE2B 402f9f1bdcb92631206f9b72923ee35e28db8623e87469c0f1496664bc7185077013ab3c8aea68268241e5b2504f10cddc613a350abd4291050deda6c112e559 SHA512 c21ca68fd49bbb741901f59fed04cc124b8da99e2a4dfc26e2e5e1140637872b344612a01691bd30cc771575c571be15f756c84dde225441699cd2322af2ad6c
+DIST heck-0.3.3.crate 10260 BLAKE2B dc756738081d855583f239908f671e9b5dde72ebfb577f6387b1a169817a03332464cf67071708a4c4f06b1ecb222118e8c719073ccdec1c0f938e5ef378b13f SHA512 b3498e033f44e03206421e565efec5b21d13107b60d35e4476331c44e6effd75c81f7678f2452c822eefd581209a2ffefd2034779cca2d8b4fac4583bbbf777f
+DIST hermit-abi-0.1.19.crate 9979 BLAKE2B 801e8052b85341cca388ada9db4b06bb1bd7b64474185b2ad06c0256b9e597639bd3dd4ba0053ea010f922e53969a4ab47b90d451fd9b94c8f2324055d151ea1 SHA512 1c877fcd562b15d2de9c151fd6c5f3ea4bf48abcb799e6139a180ffad5d64b632f0000d5707bbd92ff23a0e5f349157b9e0f5be8b50f03680b0fa47315dbb78a
+DIST idna-0.2.3.crate 271023 BLAKE2B 157ece18825fd3f8055581ccbd14191a6923da4c806ce51b3d6376682878db000a1b873f744c8e9e1966e4c1f8393643bcb603deae299ed0bd87847b0bd2c591 SHA512 1278bd561ce329e1dc7a6f24a10f83d9a068af5d15a088414f3921c6728b0d54f4d60d6f4d0d5a786596ad226263e1e50c3842f192d5758aa4665ba4ed5c269f
+DIST indenter-0.3.3.crate 6587 BLAKE2B dc4a73eb90bf05ec939634d3f1543f57c8b612e44e0fb3b38329ed2b9bdedcaedce84eb3f542f71c726b00c7cd273c3c390f827da170b5ba361cf669de4d1d3f SHA512 6585964939ee84739cdd19576faef467703415777e159ab2ff8b0f2a371fb2cd6c7a83dff4df954e9bea35844a43b72d93131dd4d23d328e9f365950ad831a71
+DIST indexmap-1.8.1.crate 53220 BLAKE2B 9605405ef6d7559fc5d6fde38cc6810ae49e69b93e0687323f9a4ecee9b513a1cf7c57b8ef625a9095fd36cc7ba6e98410fa11a7a8788c424fb6a0cecfe6b37c SHA512 919372d9bbe791092ca78026ea6f7f6b6560b5c011682b21afcfbbc76684a18844602545a527e3342e2b787643b1c07c8f18f2279535b7afdf395361c9a8749b
+DIST indoc-1.0.6.crate 14312 BLAKE2B e4757497450f9c5e854f472e576c0df49f1aecb10e3ae77ca56b436dbefc5c75fd9b83093f9bb485b697d32c454af5d70d72da27e231124f7af20d3dc6e320e2 SHA512 798d36767d29ac5170a9de498ebee1056a6658e74b94310d589d429471ae059f974bd83eaa823c99a637c16758b3fdaaeaaaf7b21a2a35cbcbf345840b5f23cf
+DIST io-lifetimes-0.6.1.crate 37632 BLAKE2B 5e38a460d823b5b63253e7b41bdda2443b7153ee4b5cd7772784dd9d10830208ffcfee5f8bc74662584a805c24d9eb2af9333d65b5b90f01fecd061c7673b4ee SHA512 2e2003e47f5c21c44d45ecb9d371534ca8ae6c1ef6f7d2e2ca2f56f9e3d4f18ebb6fafdbb241495b472dbcfabd5e274167179667b6d9ee2f22c70b0f15c77da3
+DIST itertools-0.10.3.crate 118661 BLAKE2B 0095d6e7f14ddda69605d09f74e8cc881eec1a1d234f705e667d7f9e738ef157b7ddee066855cbcad7f134bf79b99a4a4c77bff3371397a567cd34d98b68bf97 SHA512 9d17357eb68159edf4f4ccd2eb9895672c7fb633803166d5e24ee12350639eaf66f1c822910518185cd1f1ca5d9c3e228dd37525e6c337ba3fc7ce967f9bfc85
+DIST itertools-0.9.0.crate 96429 BLAKE2B 36d3b1dec7ece85639337f1a40a00330a5216ea8c460d13e52f0f9fea71bed5b3914cc4a7e05b407ed41e0dbc2292ae5873b3481297edcd92ec547866d044b8c SHA512 1c6650060750f3073140c4a77fc4d1acffa7d18320012807df0e20ab06ddb39afa7f086d89626e3909f89dc1f0408c9ccee4dd9454ca1f7a6a145bb213e7c5ce
+DIST itoa-1.0.1.crate 11059 BLAKE2B 5a2e22ab891ec883a90f652c88f924113252765579c03c783e43210fb2604e9e3ccbd4c1571087791be07bb99c4e85c7f85253be831b3ea883bc0ac18a927980 SHA512 8e7bc1e9bf4fc06871b9fe20caad4e0af965477d724f4c8d0e2a3a4d87aedf99f92e4e583a6440ce574d0fb43fc9d6a2e80add52a2f64210c6aa3b402e424295
+DIST lalrpop-0.19.8.crate 228864 BLAKE2B c280697f25a333f02f646055f748fe96801d7c8793e66b0c41a3861c45e8368996cd6d3284d4b3c8120f1a5e717ef2c688350b3ca7329898b57f1c61b281d726 SHA512 62af845f2b0087a08b98fd55a2b07bfceb84ebf63a38b53cac23ee4c1043ff4f8e5f84194b314b25a0dcfba3ecc10b050be63d638a991d1ea90fb73707567d9f
+DIST lalrpop-util-0.19.8.crate 10216 BLAKE2B f3331d3eb8eb9615daca080c9df0ed6e6558d839002e69f6eac3d73d81687fe8800b3073422075010c48a7f299f54618416eaf97909f504d39be29fdf9379d09 SHA512 4b32f2055c10b7210c39c47c0599ce724464692512ff8ca682693e8e3c0ea191bfb3f2dc6fac55780627af22b7b21816940b6a3f4c60d0690e64cf5d204bb3e4
+DIST lazy_static-1.4.0.crate 10443 BLAKE2B 25b2e61bbac48f0dcbc79c81d7bf01f2403d8269ecb6be3ea6147bd00f7a588df15a91f44dfc18ada19b21faa71de4637c7d493a8628cbecd0e547d74e616a23 SHA512 e124c0521ec7c950f3c4a066821918da7a9c6e711115d98009ae7c351928fdddead852e7596fea5937a9c30e4e4ce8eee7099b20248b5d6e3b2494b6a6d88cb8
+DIST libc-0.2.125.crate 589236 BLAKE2B 57ca3aa19687b5c5702b66ad690a86ec7639dca41c5846c7cc3500f2d0fffcfee95a2def7695652174862fb6b8d211e7564fef6bef6d1197c481b5b8f18a9c74 SHA512 64ea5bb20120b9893bf5a3648f28da07384972e3cbad13da40c3ecc501efe1bff0bd6b71f52d5f253f00d7a97c2f69d86fba490955e8d70ca1360b8db1e431cf
+DIST linux-raw-sys-0.0.46.crate 807633 BLAKE2B 58a63a6ee202e53892d78f2142d6ef98f8bb21109962273689b284cb4d6756e6399010983da813f6f58664d6191b392b70ecd161518e8ca0fb46992bc3d23adf SHA512 b821ab53d9a885b9dfef6eb3d36a422525cf35d797fe32fee3abf9bb5463712af57febf684c9ab41b5de40c9b0e73d9e369599497f7a7f1314ff455795d32b39
+DIST lock_api-0.4.7.crate 25371 BLAKE2B 9ed08433ffa70af60193dcf307287991a3154f0ef16b485f32a6c83e64962661a6e08ef83a6b217d6cbf5bd964c0638d8ed86b290087677c1fb3218321c4bbf8 SHA512 b1a5227fd131edaa70e017f7ddb43af8b4efa58488007b898ca1dfc818a3a441b732b7adbf1270e72a68ee5d2a99a5d48f33b2bca8e2cf78694953d20d27636d
+DIST log-0.4.17.crate 38028 BLAKE2B b46be3719fc0a53e50b1f342762e188587e9f1ceb692c72473ce2663edfb8253742d30024e68c1444780ab7fc0e2d5b0601b8ea7228dc3405a9342a57548e605 SHA512 2477d88db42b1d92c30708d88823212e236f613b3465e85eb425f83f8d16fadfaf0352f06c2999a1852102edd2f6ffb10ecb539d8a3b6c48f552a25622ccffa2
+DIST logos-0.12.0.crate 8849 BLAKE2B 1aa4d2fcf57d7e3953bd4325da1ad43af1c0c9a968ef964a8449b6aa09e92c65c0d0e178f319e0ce004fba55618d576023f810b5aa64f2f59c2c26b0315726b7 SHA512 3fe0b51294bb929d85c7c8223f07012a292376d57b2ed8e91b974cb27501170aa14a50cfc4c64840006ffd0adcdf60bdddf1596a4bf56ca8824d7d08cb26afca
+DIST logos-derive-0.12.0.crate 32455 BLAKE2B 94556a68e8ddb65cb000877e057b46dabc03360068ce06494c400df07006eb6adfad61311420187a55b68760971708564c4b3daf9fdab5f5c864fb34aaace9e1 SHA512 be0454574faaf7e2ecbfec7f2692af2e08ede3751e4efe8d431ca3f1bcb9944c45479c3decf7232c7136390bad1fdc32b46cb2c2fd9883aa43eebe570ba5f425
+DIST lsp-server-0.5.2.crate 15018 BLAKE2B 90567a348794c9b53929cd0f1b877e7820e204ca39747d1ccad5bc53a98cfa3b0bb73137b8f121a2f3dc4b3e774eb78f943687345e72aa500511f53afb704296 SHA512 deac4de563a8f1fd4bf475f62b6597946ff287a4000b17f6e7736b2d30b5837c17c6dee0f41c0b0f9b4f6f76ac56dd587471168663f38711bbb95cdc1c5e6129
+DIST lsp-types-0.89.2.crate 49933 BLAKE2B 00c23d427672f539e1187de55717edc2ebd4518e483e460b4ed19370810ec08142273c00bfde0dd97df68cf77b27485af387d05dc47309cab25f0bb6ac739ca1 SHA512 a1ba7c572c5d9aff31e57f63de7ef7224a558c9b798a7c175c8ebece1f75b122c0d8dc7bb3952fdb8f711b659996d9824ab2cd606f7197d710d7f50c3540fb42
+DIST maplit-1.0.2.crate 8871 BLAKE2B 3cf975d35de2d2fbd50227a6d2c5e72227e99197b620c8f29be97bd3666ec162deeef0d9e6bd327a063f175201beeb73c4ed27272449b1df0b78238b2d36ca22 SHA512 917b5cf665e12b687035c895b60b2ae05622963f495f5693515fd24d56f49e95a06ffced68606d061bd20822c655100035930673fd4b0d4790168763b6961a9f
+DIST matches-0.1.9.crate 2246 BLAKE2B de155202636c6a03ed68cdb21e8ef96e19b45be040a82943d2d7e5192c0ab5c253ab6d65f0b30b2689e21da79cba684af5be6e63c48266681aceba356f6eea41 SHA512 6a2809687d30ff04ea97bf9d1610d746e097699a4c3625ffd1b7b1e4a9673ece9d559058c9f760b99d6ab509024f7b338e7cfa6fe767499c983efa98bfb98305
+DIST memchr-2.5.0.crate 65812 BLAKE2B 57966413a1f933dcb2d2d4ccb29c247070f65a83299b2a9f5aa83f5a48a5c5f1c4c7c632fa63bd19f9508e9291e7258db2f16e2813a56fd84e0856f70f1e67ab SHA512 444a163b484c233e78c0e2e4d51f01ce2da93d7d29f516a95e4b0866b20bdfd3f34137653abed53eb70387991ee3e2b5937d8d4360a85bbcb50a93005a75defa
+DIST memoffset-0.6.5.crate 7686 BLAKE2B 9a797388702389076c426052c3d54dc62802d5db8bc5c9c83990429f2ffaec4fab4c7dd3f09cd0704d1ea555e87976563bb43408ba54b5e66ce7e406d4604009 SHA512 11bdd9185b99dfee8e659e051b09ee301c7142a372a8117864745a5085c015436d2efbb1478192886f09cbc562529e209d2e3325d94938a64bc75b1d91d2bf3f
+DIST new_debug_unreachable-1.0.4.crate 2561 BLAKE2B 5c9831b04e2a44b2dd27816df0a331a8108991a84ebdfefe4e42f325ec3519ee50e89a99d490020a65a3d75acc371316c2253d2c6382453a0b15f4c3d5b96520 SHA512 6f964bb322aa8f2ff92078381dd720527600c6449e237b703278cbcf47b39a2581fddfc2f34ebb7cf31229e33d58de48bb5050e083fec6dad9aefddc1d771c85
+DIST nibble_vec-0.1.0.crate 11796 BLAKE2B 2e80648e4e18d17fdd41671acc1e166a8337fe1ec1765e5a7f08c19fbcb23ce43b11d1cb396b867b9a2c0ae58e30225d9b13fa337793d8c32abf99969e7c11af SHA512 21bc50bfa5f11f50b19a20691346f098db083ceb6891faed72fb91d2e911cee060ad4d19ee1c98792c5809cb6ab2bd65061bc051a1dea75d9096060b87497f67
+DIST nix-0.23.1.crate 240531 BLAKE2B 8e03f4edbad39a467c1557083cfbbd6eff4b78d5ec4e0f1ba06eb043f853352f5154f115ce75556e0d672f0499a9d4c03650bc5a1f57ba1b920cd1595cc50ea9 SHA512 23431030b094ebb027200d8cdc05d0ac1730fbb86ee088795a2314f1ba19b76ed5f24373c1aba8125575bf69f8e7d4d9c08344b9cb49a4ae3d8f7987b5f4e6b6
+DIST num-bigint-0.4.3.crate 97799 BLAKE2B afe9a08bf20dc974dcea12b5f9dd465e8b399a0cb0a6d0028d08f7f753aa4dfc929710e4dae883e67633d9dda073f995287e5315b1487e8f99f8f23f1f70e581 SHA512 4b38eaa8b51119dbc7cd8a1e177f37ec935ee348b693a93378742e9bfa68fe5f7e5062b7f34638283c23f04d2127451d796d310cd8adb64dc8e865b28708374f
+DIST num-integer-0.1.45.crate 22529 BLAKE2B 4da3e801f71ba8f92c692497e200bfc8d32183c94eaad91260683b09f4697c03175fec7cff5a9ff3782d5db5d514d74f22f7a61a102c0f0d2e67a7a4b4f29222 SHA512 731bdc09c3af7f9d8b171041f2957aa60facef93b06886000d8ba60d410aabbbee358d700bf31b2588b2e077464f290f24a0b712df7bb7f12972675b6c9bd735
+DIST num-traits-0.2.15.crate 49262 BLAKE2B 942ab170b2acce1cb40e6847f766bf810a79edd293d34f3a27864f464c16fe2b99fb13171ba429cc6d584248de879434beaadf1b231a4001b0e8389ed6c1be04 SHA512 5228498af0f15daeac3c9210f3e6e71cfaaeb30beea81dd37f8eb06b9592c8bf3226a47597cd8592ad4c513964a9a40f1ab2c33102ef3dfe3800d22c8d4528e8
+DIST once_cell-1.10.0.crate 30414 BLAKE2B 4161622dc9dab4748a1b96777da263523f23329808506faea7938160f0d5ca07b5edd31f385b14b88dd2fc34c58063df4d40a34a479573750a369512dc956992 SHA512 f6b5ce5e68923296d2041f83ac037f10ad7b9e94fc607c71332e8ee942a02c29534c2073cecdb132c7e1d91428e9d9687fbf05393ca0abbf7e15db50bb3b74ab
+DIST os_str_bytes-6.0.0.crate 21046 BLAKE2B 9d2a9f47aac852ca2e27e63a22c7267e1a4affde2277d50e128b54f377758322f07ca7263478c39c91e11a2b32b0e7a5fc5ba1b31e0ee014b412a4151642e605 SHA512 d2d3741a1190092cf251e035d2c55a7d022d99512160ed4ddccccb44ca85f664f94f8a937a76eff88581b593e2ebaddab6e753009f3046a8a2ebf451418e41d8
+DIST parking_lot-0.12.0.crate 39761 BLAKE2B 227ae508bebea21bd06c7a9c1651879ce3f5cd308019c8733f6b88e75a57b57d19b7bbc5dfed5ef1bff57ec0f116606ab699cfa6017b6e00078e7e4717cd58a6 SHA512 efa1ebe2f3849a9c6ac484c7e1cdd279640539468bd4d4da6c4c97ae34e86fa3a42818ee4839dea512635fbbd836829dbadd81dc05208614c820d1374139673f
+DIST parking_lot_core-0.9.3.crate 32256 BLAKE2B 79a1924a983b948a5c2b0c074452a7b2b61abda973d3bc8040d9153d34b378f0ee330e36aa813f49544319c479665d6328be71481f2e1e41bc94abb9bfbd12a0 SHA512 fa30db0fc73b268ab8395adb8bda35d12dc15363b247a95b7c4bb848ff9b8dbfb971a20f320b4feff3317d5b533c59b62152e4c652c1809a422c5671310b30df
+DIST paste-1.0.7.crate 18285 BLAKE2B c32095dc3e828fb91aac7af107af824866d2efb70ad6e01faea4862156341130ca686076e3cfc1b5f127354bd4ad513f47da553577c91437794f63d2a8b6f29e SHA512 6f203485cd916f68c4acac6fe6193e2ed8c5a36a6f58865fecbbc4e112e14c6e849cf61cfdbe22fd5b6311d60f1831d726da519a51a1a936552c3b39f01c90f0
+DIST percent-encoding-2.1.0.crate 9748 BLAKE2B f3ff35ac683724b15e40c85e0fb8ececb07b61beeea82b7020f02d27df05a8a3535f157b3cd688533e414d6541de7de8640ef4756706d8061af0fec94ba04ab3 SHA512 98af4dfa7c6a3cf0d5aa929c436f9eb1ba1b576a944513f1284e6df2ad06be7cab9eba145d888d50af88f8c970bacc702b323041bec6d4fa1dc34095186c628a
+DIST petgraph-0.6.0.crate 182063 BLAKE2B da9373f4d671d0694b8924e25efde32eaf29a1dc3e460a971b655461717594a84823da8bf65bae20e7a277057d081397999ae3d8c9ca83404e626e547bfefa2b SHA512 d71e014b25cf6008a35d425794f69b4361de7c5e8b8fb255c35758bf5631f375a5646431ab1cb59f1fceef93762a169d0408301a5baebbd3a0886a60f688e8d0
+DIST phf_shared-0.10.0.crate 4095 BLAKE2B 9155a2c145148f3c36ba6d6d8be86a526480b127f4af79b2b5855cb014a0080bec1ec45be466513bd57faa39c77cfde0d6ca02b6bb77d37a23d697603227da37 SHA512 f088a6836a28afca7a2ef5440d7aa953227785d52aa0b9fcb76c88d085fe7f0e68732f2354c9f8dfc0a90ab1b8ac214f28549780e6f32d857ff7e8963093d9e5
+DIST pico-args-0.4.2.crate 11565 BLAKE2B 2dd0dd6679d418fba0f6bab93a8216cbb9182431dd7e0819e382db2fa1632bb5ed17cfc2bd7da90df41024066d26cc82188dd4693e6b4f7eeec44d440edfb12d SHA512 a6e46bc8d086091a37a0edf418d5414eaa5ef57a508aa81c352c66281cc2c88c97611b7eedd4f5f18c7a8169f48aa3bfdc7a5eb7b3cb570cbf871eed5e867ea1
+DIST ppv-lite86-0.2.16.crate 22245 BLAKE2B 03cba61af42dc3a78ab8f6b03d833c028b7ed737e101b1952467a1e19706bdce6c758eca4ec7d575b2f61daa47cb25fa1d74039b2adb0dbf949b66b7aff3f10a SHA512 264b916f7d1bb6f1c0c0d3cc45f40b72b638abc7174416b49241c3663fe500409509ef6c8241a24515a21a20288c2ba508035b6b37972e4ae7ad02ad19118b74
+DIST precomputed-hash-0.1.1.crate 1640 BLAKE2B 64a37ef3edd317f771e833bb394f7c19bc9b8c844156c831d2b550692c7e2e36bce44ecf18dd9f2d0f0511346eaf0d2a0ebe792fc288ca0e94a93933f2051846 SHA512 a118a98286a47e2f0cf35d2678d0325c18b9b7d5bdf40ceadc16483b282307fd1498434d5bdfa25477a4f420d97c34d786e42e9fa70431b788b4b8fde9718e05
+DIST proc-macro-error-1.0.4.crate 25293 BLAKE2B ef918c5efaf2545ab38787c8d0c07315af00431139e4dff66346bf798e3a429f91d12a79776c150412fdda0b158a72badd5e1044ac4d6917f8482d4b5a7110b7 SHA512 8a47bc9d3e24e9561d1e384d8f5a633284c2cf9b5e6733c5f9d1dbfe1870ccc8e2152482852e50b551cecb68e009148585b910ffb0508a7b4875598eaf8657db
+DIST proc-macro-error-attr-1.0.4.crate 7971 BLAKE2B 98e2925881c2be186e22c2c439697e91d43f807eb61a5d13e3b0b4321ed50a74f3d699942c04b89b6fea0f156bb5d19ebcf22f9cd4b98a7e6917c437600ed823 SHA512 2606afa9ec78d7dad4500c98d3a5ecbd02c6b53ab829c742bed7f57b322a95238ab4e01cf268746815f1424fd9b02eddfa30e72f98c66106f57765f3d3116495
+DIST proc-macro2-1.0.38.crate 41687 BLAKE2B 226f76a1c264d6e74b72fe1f1a10fa8ab1405b618d0412863cc7e04509f682435dcc2703bf196e4fb1628219630d882d2be64926da19903b36d052113dfa60d8 SHA512 f360b00b4b1e05df52ca1714df34c719778f7bb6ed54fab04a84811acd0a29f7c4d4871fad7d988f0c042fe0fc326d7b1fedc731c55fd32c7257dd1895203080
+DIST quote-1.0.18.crate 28911 BLAKE2B 623872402cb185a57e2ffb1bfe4105c49c152c33c44c8054af59df7bb193d14416ea2caa7b28b3f9b9ae6985bec7fc7825bc946e2e41915d2744c887a51559b6 SHA512 3fa537aa96a8970104411471b0e4b7b9339583d552c1d9297737a59ef5301af41da105b92aeace87376e1395e379153f6551bfcfe9c740e6945064426f5f6f84
+DIST radix_trie-0.2.1.crate 251366 BLAKE2B 14b50e45eacbc5b42cdde8a4f8e8642adfdfa3cc569c3fe0e3aa1fdab901713b3929d706dc0aede1b679762fb8fb1af345efca15befc9234322db434c8a3923c SHA512 f6f54511860b6b878c83de4455bdbd71289599dba93234d5c7469342f3401cba99a9ea6bca2d32df2e31ba657f40e42e7d5fd7de66786ddd2814e22fe867f9d8
+DIST rand-0.8.5.crate 87113 BLAKE2B 516f26bb2a969d0d79e957818133f35d2c0b4d9f1b401098ea23c5b80d27599e842b9298c0c5e46e2a6cb6953857bf8a9fb71ec9366c5ce6708cf17df14f179c SHA512 8b33a8988906ba5e2057a9a84bdd11f867a5536c22f5056eec59ed4ec4e3a6da2fd773da4c0510d343762e5a4ea0f007db4c4a7cef87a47f90e36c1a84d86fb2
+DIST rand_chacha-0.3.1.crate 15251 BLAKE2B 645771b2c3e274f085e0837a20306b1d59f6e9032fba8eb38a6d1b30180d15e2f89ffa2a162bf6358da41e030098242d81e71dab4321980d0a4f6ddfc2974ce3 SHA512 8198c580b1b9b0429758ffa49cd8138fa3ce724f0dcf73c767ea7e55611d6a2e4c7cad9950896510def500ce4062b594386c947ac3d89425b4e5c9b04d0b8075
+DIST rand_core-0.6.3.crate 21938 BLAKE2B 7c73e2da6d423c68dbbca31f6528bdb3f42fa39b30d0951ca7058e05ce16ef09ef5e047697b33ec17720314f934512c0907aeb892df93d63abd8b63eda2b50a7 SHA512 0fc31f96ca8ebba8c179367de01458e909265e1d627ec0c5620be7c8e83d2f9570471d6ec2cb2bc4bc531505b02fc31f1165708cc1357906791c87123b06ee87
+DIST redox_syscall-0.2.13.crate 23759 BLAKE2B b59c3e923b7bddc84285377eca86e649c21ee7dd61924245d43c6554124adf689f9b92841ca64876b34797249698511b322f6e8e639d71e45e1ae9da5f8b7834 SHA512 6551f503ba52c4edc0cb4a418ff212188ddc7be80dcb39eaf3bfb82faa9a76cdf359f604d6b32be6c6a335b54180c9399a0e32670333a5a08351957308486100
+DIST redox_users-0.4.3.crate 15353 BLAKE2B 5e3b4e902566620cee8856c092cac193366ddcd2f5aef787b1d485353a0da11486ae1359dc60f3c87a198cb68f93ef99ac7551cc2315412b93b10ffb10540633 SHA512 0d3366e23cf93e1b0e025a29025eaebfcd1145bd158e2663b94fd952dc2d8a25566819e3a03c4136ca16a6408d37396e2ead0814c3f0c2bb10334dfd0b838fda
+DIST regex-1.5.5.crate 238119 BLAKE2B 175cec668da4321930a070993feb1671e14348b78e8b432f9fa25afd764863ff233b0d1d8931951ff99a3b5bc2e18774f68a6c0a4e31125ffcdb990b5b1b009c SHA512 a5873edc75a64f03be77151c318bc90c7dff565f838d811f5973ebca2e86247efd58830b0a8ba41e372f5a72f5402d93873f8d34c36481fa4359874b2fa5d571
+DIST regex-syntax-0.6.25.crate 293293 BLAKE2B d5ca0dbc26b03c6a1818026f9a69cd226ec934e7c64094d0ebe843052b648617ffae7aa3a074f8da46d03c46996d8b547d8916576342000bd9711089b3e57d73 SHA512 a3d31f82aadc6be1796f76c03152ff24f37fe42d6ce27fb98e2f55ab102f86502bc37ccd563f6e0eba61aab20d002184c618517b678b3b93cb8f0497cc046ca5
+DIST rustc_version-0.4.0.crate 12175 BLAKE2B 6fda2ce03eab45d7193fa0d70175cc7ffb56b7be85fb1314092bdcfd3948ea145420569ace3a47218a4a2a6e44a818862cea6dd8cfb945475496f63b591c29da SHA512 f66da7c6efe431db06cd01180d84ba67fcd38f8cd6ef693762957c00ccc2211f23c08079d7f184776e08f28d2d6ca3bdb5f5016f7de245c6193d4722891ba1db
+DIST rustix-0.34.6.crate 281783 BLAKE2B a216aff4a1d4240a1c6f0967dc18afbf8f09b4f476745bb56b39705ef615d69458b5aa52ea255a49e0bd2598cc55e11dd314c7e548f6dcfda78c2335d42a97ca SHA512 1e38ab7d1f6812c01d51aceb62f2bc251e76dcb83e460c64729ee77d4aa340382cbd4012b5265278ef15faa0a5517ac771eaf9b73debb91a4f4370f10c84061b
+DIST rustversion-1.0.6.crate 18380 BLAKE2B 2969bb40849dbd2f0d3f4a190629e53204cc5ef9065be6aec7a4504470e1dba6cde7172a3075a1bade421b30b88947cef6b29c0ab5aea8601695f72a7acc45d1 SHA512 fa9efca7e49eff6c510d062d02fc73d15341b1fe16d24dada86108202a4295d2e0519aecf3f1701540cd4d49a513c05e74d3d27e21e5eb3cb1aba46c70a992cc
+DIST rustyline-9.1.2.crate 100566 BLAKE2B e729f79d80d85ae492e493adfad1739962eb1693e75602342ae59a3d07ad35535eebfe3df7069edf948ae11a8de2ee81a0c4c746541b40d78e8ee0f2dff56d75 SHA512 6e012ffb9da22a79bddc119c4a6230ffedcf663836784998b2211bf13f83eceda2e98f63a47a6d6d489926a7c1667709a8b31f9035726d48bcf0703e7e411a96
+DIST ryu-1.0.9.crate 48391 BLAKE2B d5c1035ffd6340d846009953cb4303fb8c250a3a6ac60b51a2fec77a6cb3648524420064b7380fe31af33c57011f950f6f739a1f0114196675b3b5de4b54efc6 SHA512 4e7c2c7ec73da1ddb32e18d36b8159cb4047b9f4feeb975361e7ba68135e671e11419bb7786df789f5d08e5895231d2c98e36035b515f2c64ac40474d08905cb
+DIST same-file-1.0.6.crate 10183 BLAKE2B a320c8343e0b38078ba81c4f0159d886bf47764c74efe0d7cd2b3218426e8341b51e523c00a9e5fbc2ee1057618296bd70b576c68751bd55d6ddb352defaca15 SHA512 3ba35309742c8db63210d9ea78bff4ecd80471d69e6238eb96c7bf0673814f221e2d838fe6311bfc5a0e71b4a7ccba33e07859c0b9cff2171969ff08a4214a7c
+DIST schemafy-0.5.2.crate 62997 BLAKE2B fe2762796f97379dc223d84b2bcf9beed8c4787b095e129ca0562c388dfb7498aeb32eb71839f74d393c1ec2e6ec7acd4b8b20e0b50b01065acea8a74a63ccb7 SHA512 08c84f8186186b50a647531b8c47425b7a8a82da2fb2e03dc817a100b6dc6f99265dcbe1d4de4eaceb2f2dcd53fdd8bcecd99c1b3f4d34bca3915455703337af
+DIST schemafy_core-0.5.2.crate 2667 BLAKE2B be9a8f71189277b4e4d5be735bdf760c05cc317cbe24c64cd50644ee915f4d80138e89ca097b3bbe11f0aec75522cbde88be53a793ab869c49aceadf09b4ceec SHA512 80f0b45b584673c26a28b0c651eb6df8aca733a73184149719153e8592438fe0c632302cd9173b515ba592ea762cfc501ff132d3f7543814fb6a43d2e52e1bb4
+DIST schemafy_lib-0.5.2.crate 7858 BLAKE2B 8d4d9c4fcb65a9d376f19418b1101cc54ae7df061c3aa6295b774cb9b946fcfd09443cb12ad56eda292fb21f45004685fe582b6a8a84c56ec0a892801df15ae6 SHA512 9646ea8b33b75b949f9da2745986b714df8018956c7b6f5dfe23adb50a15106abd3c1281631b244c616bd10cf6436d4d74892734779f0004dc20c8f3bbe4a4b6
+DIST scopeguard-1.1.0.crate 11470 BLAKE2B f774eb90b7d3ffb2efba47518e9d1dead4017ab4b38a4bd74914daa84a5af4bf9eb63da0496e3924499d79cd0439c37447aeda4a21226f95645bddcd6becfabe SHA512 368fa5726df8f42b599993681579a9ffd0196480ee3cd0f9f671e8493f3bedd1e1779bdf2beb329e77e0005fa09b816e3385f309490c0f2781568db275d4d17d
+DIST semver-1.0.9.crate 30843 BLAKE2B 52c90056ec744bccbeb4a603b8e138a9b980a063c05462011d3b4cd11c5272c5284d0eec427ffd1e838d73f97a21af70a6c7f8094b6faecd3c18adb1b0be1449 SHA512 23da181209ca26a9e78d8111444c465273cdaac23ef6023b1e9a9a10e2ab9dfb13baf51f8b6f597598bde84c36910e0a45bae4f14555d731a9c9a3e94f37214a
+DIST serde-1.0.137.crate 76182 BLAKE2B dffef53be259eeb051a375e532c3748219f8219413af0615debdbbce61c5ca17be13b06c0bbbd7a85a696b4bc76ae8e252d880b01ecf540b758fc10f11415b21 SHA512 28223488e18826f83a7e90029aebc0722e0cd238a2c0c021e5a162d0f5deaa494713fad10f7ac79c8e14de856af931b6d83cb3efcfd0885837fc71e35ee38a2b
+DIST serde_derive-1.0.137.crate 54831 BLAKE2B 19a0324c18bd00da4feabcf83dd78de2ff7a1905abb82d5600c6128a8351f5ccc37df21e0135601167a51ea1e6691bd22957c2bbd9da637653c7673dbb808d24 SHA512 ee47d3bad717ae16118c43e6f308a0e264bde80caab8f8649bef96ed3f7aa0f9b6a479311df22ecdc7bbcdade65f7b03b79100f8b86caf02f9a0bc77ce01035a
+DIST serde_json-1.0.81.crate 144480 BLAKE2B 3c95d56e65c6673ebe9ef0aa41ba184c5246cbcfb0dd9edf8e87ca6cab736d195ce8b6349846806ba7047854d579517d2d19bbfa932c90b700f06e54cf49b131 SHA512 9f224b2182db2fdddfe1878d05d857c52a60a38f9b4fdfc87c09c20efc8b6ec2419bc60e4b18a0852ed080b09332773eac372f8356af5ac0ddf3da8212345cb8
+DIST serde_repr-0.1.8.crate 10327 BLAKE2B 2df93b708e840c7cf4528a9d15c13ae94a9b3660c5937cf405fc3ae3a1c32fc2c2c743503e7a63e27a999b5a7d550cfee182dc4c7db77377ce91f131a71f601d SHA512 6554814bc6cac332c8d5cc94241c224d8ca532719703b1fad19963db5f4793db7e2a5d195df6a1a534d1edafbb4223a63bae55dc928cafb3fbe69dce76d8547e
+DIST siphasher-0.3.10.crate 9889 BLAKE2B e5dd6d265340b4c9e4266ab1ff3a20f1fb87fd493b2d7b5fba32d26421cc858b38929e4ab96941d0c055375b8acebbd04236d994cadca324500ed05064b9bfc9 SHA512 f90425a2cccc9575d377bb92a765d34653ddef1ac12b7c63dc6d700aaa74b525787e11609061c2d3e44ea56fe0e4b8f93f7b13f0279b5de2e0f710c5caffd4ce
+DIST smallvec-1.8.0.crate 27992 BLAKE2B d02897eb4d3901805be86cafd5d3dc6768b31c2ee4d0a9d7eb455e2a21be2864ea83589f4ffde102dbbafb66e3c197707af770b5ef184b8e244d992189644b84 SHA512 17687cfa6aaf95a1df063adc3a412a7c41918a0d003eaac90f7d9e859fb8fa1d652eedee17a4cb3aaae9b33a2043f89e796519e3a7a3992b292f04049bf80b0c
+DIST smawk-0.3.1.crate 12840 BLAKE2B 937471e3ec3431f174264ce41e7a9c8ac781f5ce3638afe6219173730f5a0d0cec2b482ca72eeee34d5765c75db1707433b2c5b5004cd6d6fa4809f606b26813 SHA512 d6a050e873da5c90de3ff9fd02166de3be4c03931de9cac5307e6c16a71b8db1db6e8309eaa38ad408b20e0cc98eb4133595ad7aea96f62ebdcea579a643b65f
+DIST starlark-rust-0.8.0.tar.gz 676951 BLAKE2B 06372ad19c6aa343c6d4fc0de5450eab2fd1c3303c99fc7e7962db55804c461babca22d0c37d2b1314cf643b8da8bca8f514a949936f22980df57991e50f039b SHA512 9508e34b3dccbec0c068d7af6ae019f98e1cd3c80713a26df99dccfc8f36d127505e5010997ee9b5f36ffab07c205ad235c75bfed4f60b185e8c9be8e3e948ff
+DIST static_assertions-1.1.0.crate 18480 BLAKE2B 358dd5ac413d06f62da0388e2016c5fcb8ec68fd7dceb0dbbcb97665c032b7509b7e083c20701648b6a9174485f117c02682ae4bde7ef037e80a85cdf6a0c86e SHA512 46d0e35f77941dee6f60f574c130472248063dc38494c1c4f84f7c048244cc2a58a86fe17c0990e3f0f01406b75ed385a13d00058612b27cf0e867c8d31c92ee
+DIST str-buf-1.0.5.crate 3852 BLAKE2B 94178810ed2476c2a47a63a6efab8022cba9341c7ce04caa2ff09c675baa5b17327bf4824b7d24339896143ab1baafe6edf6c6a4bfd7367e16a5506346dec6a1 SHA512 d474b6cbcc53d72587b21e8352239dd7eb7eeed859493382d5cf052ff78997e72ea19c9d0e9afb8471853fc71d38f404b877a09dd6dd92a7584fc6733516e823
+DIST string_cache-0.8.4.crate 16380 BLAKE2B 235973fff64a66175b563bc512137bba98f84bc00fdffa771a9925950903f3ee91a9f1025786aa68b796a55782e4d5bb26756e1134db96dc6f4cf69974c18774 SHA512 dff6d359226fd2c4ea5934a3d5ea73324d548ec235cd9aac8c233f2d9e67ba9b045ee598a34063839eb5b906d344a70fe3be65abcbe106cb9ff79cbc40b833e3
+DIST strsim-0.10.0.crate 11355 BLAKE2B bcb25ad0a7284e24e4f17ebe0ccb621bdc4118e499b50b094d98aa7e8fcc0b96716c9953c3516ce7ea78309d41d424892ded595259696a5bbffdcb07802b5c2f SHA512 78b318532addfcf5c1ccc1e14539e258aab9d3cd893cc45d82342549bde838c177d90f13c560671f8f32929af47d0b467db35e6876bd7697d8b3f9e055aeeac1
+DIST strsim-0.8.0.crate 9309 BLAKE2B 40a8be506c43ee1ffe006ddc7dee98c3d418bdd205d57b78f5d1e4c9312feb57e1eaf952e02d92d4e0932db240c6fba45beb06ea8c4fc6de1cf1faa8b6a3a939 SHA512 1d55a8d946cd55f5f37d06aea536549ded95739fa58c0f2da285a0041154c181f663682bdcac643aa198b3e762d694a04f058db985c62ebe22b5c16327ba6d34
+DIST structopt-0.3.26.crate 53798 BLAKE2B 04be64637d18bcc87d261320668023459a42c167bb5a4c52216df556a7dd19be28032e7bf759cbcf710a3729a9dfaeb20c29f37f35fcf33533db583ac4fa049a SHA512 dec27090b57107473c9d398db68bde3b1b5191e7c7980d7d2c20fc723f92c64a6cf1d391d5122a103222c4262253d8073fd0fdfb11c74f235af79b2ae0caf069
+DIST structopt-derive-0.4.18.crate 20996 BLAKE2B 2ae17e0d365a7ce7a4d0e007513623ee0d5acf45afdc3844114e02975b855fd1a9f7df404a24044cf33a3a4cc4142eccc34d1e97925646d54d460a89baa28275 SHA512 68a7f9c2ed987993fdd8bb7e81c31969a1fdf5351c58cba9de61a2f5957aba1626be4b0742f31d4de502301675ba24b0d91dd3acb24f5607bdeec83070626a57
+DIST syn-1.0.93.crate 236682 BLAKE2B 6ad6cd905c5c8c4d4a0401fac4f54fc25fff765e6b294225d80ec2d790d7d3a1775308f37576eda3f69606ca5f06d66ec440d49acef79b7f7e1afb189ba356f1 SHA512 8f767d2ecaab1f3c0aa094f047668be278f9a5c9cd5200f8ee4eaf295749bcbe4aa70a3714c315ed7b6e9a40d38e5f30db343cc9025c36579ce36457ce2f5e84
+DIST term-0.7.0.crate 37082 BLAKE2B cb7947c696f71fc68bab3b25cc6cbde74b92380fdde5447399b06de99534b0cb2160963792824ac74a350444ce41a4fa16d6a9792a68d84578a15ab37ab76ca2 SHA512 9de6e836f1fd205b3b58645ec880eaabfc0fd8991e3980ef90bc6184b370a14676edb688a2a75bce412dd8ebd97345aef742afe5b964250e2b6f84e6b15b486a
+DIST textwrap-0.11.0.crate 17322 BLAKE2B 257428908342774593bbd3528fcdae710712ff54e8a711393a24356d8ba0e16e466a4b20c05f942c48ca76b3b5b5aaa90ec202f782cad892caa8b71ccf124da6 SHA512 f5c0fe4f28ff1a3a0931e8e235b5157a45f67967985bcc752418c5ec3481fca44a8ae4800088889b37e8cd0533f53d3c456d5ffd19b767b3f83a87b49a2e209a
+DIST textwrap-0.14.2.crate 52016 BLAKE2B db80b15ba23db718064ef0214578ea6aa4f0ee3b76723adaca131be26b770324205f2ead13c8f5c1e438ae1b5c9476cf1ede8f4ed82426c9d99d9406f2b83191 SHA512 521ab37e03aae8fcce5b909541399fc90a23020e353f95102c658fa94ffc56b9bdff43f47fb3da6e30f5c9cc9447fab72fe21d7276dfa21fe5a1a5a1c874e371
+DIST thiserror-1.0.31.crate 18013 BLAKE2B 5a46332efc602f8ce864024a538379b23b4586c04b18bf01b32b3cafae3ad90ae0c1ae5639cad555c01767c20f0109f87384918cb15a7ce51437094e70a2e544 SHA512 0e11aba54d38fc164c65b9357d1738ca96af2bc7bc2bcacfc4efc6f5c26a594effbb5e47aef46772ccafbe88871825a517920030572b79fae3d305550bfa6431
+DIST thiserror-impl-1.0.31.crate 15283 BLAKE2B ad7afdfbbf9c42a08dfbd5a2385883bc0bd855c123040cb187f8ec633456a7912f9e46559b41e4943bcca86043adcee08ddd9c61ec04ab6fcd78ebb42c1d1d10 SHA512 a265be50ae209775abb812f0e9b8c5af7a639514149d9f50f4a95bcedabd3666076bf7764351ea6f1836eb8a0e3c67c0b76abd26b27b0a853132fef011543e1e
+DIST tiny-keccak-2.0.2.crate 20129 BLAKE2B 105a2d2af36cc053cd95721ea563108f33b8a3feb2ae84c75a04a65ed5d548dfe35d8b2e48977a82f725c0ebcf914f21157c547f4a74bb4d98c2e894385139be SHA512 c0219f23361eb07e0a68575c461a36b7286d9bdebae89080d9e259178d402b0c7762ccf33e65a16951ea168392322c44a24eb55189cf143e22d09d6dfc4acec1
+DIST tinyvec-1.6.0.crate 45991 BLAKE2B e9699d4d80a78978f0ebfd049f5b33d7f23d401cf4f4439ccb168e8c0e322473ad0ea7e2ff0ff69e9aac3e5c4c9ae5a7102185533bfbf96dbe77b3526e700bc9 SHA512 e5acaf353c58c60ae5556130a934f1048abb79cf6668ae467d308bac44b689d8a9997227ea879f4b5fe50f29cde8761801b088d7149bcd063b973056c381921c
+DIST tinyvec_macros-0.1.0.crate 1817 BLAKE2B a3d1966bf57c11afcd026269135a6189f149f905bb70b47537c0a7bcaef0bfc6c89bdcbdb0f6cb8e5255632855134631c683fc90606a254ec8ba818fd5ef0794 SHA512 d6afc83a3c70cde916a6ff599e2772588e4bbfa7a5b1c7e5c8aa0f4a8a5c9426182497a644e4a88194ece986d38fa64b6c8eda9eb1630441c8e65a8741a45873
+DIST unicode-bidi-0.3.8.crate 36575 BLAKE2B c0442dd47a8ee81f575b28e34c9781ccf507b53ea96d1d4df2e8117231e8e67579031e4244a2dacfd6f4c24ec01fbbd4da7c9ab72ad50af51ef56d7d813b6444 SHA512 810b5be48159ecbca542c715496f279518285c3b09f7c39451986f94e6c259fab1057512a2148bf99ba9abf76e861a24456b547cc2273f0b45ed5d3ce9dfe3d5
+DIST unicode-linebreak-0.1.2.crate 69293 BLAKE2B 825dc2a29d86314cff3492cac71add2cd48948284d9e9b684580186f4c021c8ce1e288d21cc47493eb19a158385ec602f0cd5608a7618e38667c1cc7445a302d SHA512 170db67d6d74df913dffc921986b92df8a2ba68776ddb17c8ffca51d0d4bee597a5460591e7ba593c1eaec8b6227956f4e0f9b11d217aed4ee85cf46f1be5277
+DIST unicode-normalization-0.1.19.crate 107353 BLAKE2B 4c69d50efcae131eb4b91d385a64b49412a11ba913b3c0364cd04ad107d59e31adbda74d34ed13a065d9a7825d79fb740e82a4dc66b7813a9837af4352ac9e16 SHA512 7459e9d2867308cac80a98d8dd0b0cce797e2830ea5ff55b878f7a37a6f5e1f0bc14340e1a29955298d660ba2be57754a1478d74851b1b90576dd5bc4231729f
+DIST unicode-segmentation-1.9.0.crate 93241 BLAKE2B 359904bcaadfd161128d40a896a2d10e5dfdb4098de245c949ae3fffecce9b4b6b999bbc2c6ca522944733ab0074e50fe829690183639c312bba8f8d0ad24456 SHA512 7d0ea37bfb24a1a803b1cd40b7b0c0e6e44ebf9a474fdedf0dcca1ead25662e19f44af29b87de1b000c3cc75fec93320938bb3ab9d9e82298eda324bb97e7294
+DIST unicode-width-0.1.9.crate 16745 BLAKE2B 38d4b92e47a284d6881a8073089be59a73d82b91efe5522f55be977f95f479890b6c02cd519544729f1b1e62eb21bcfff8c5f5382917f953603b760e39cf1ea7 SHA512 0f5ec46c57e3b5e50cb8430c89db8d9c129e80ca11a9c398b5312bfe95001e19ca3efbfeb01c3ac09c4ce7e26c6ee1f352f7e114ecef78cefd68c54d2d50f5f4
+DIST unicode-xid-0.2.3.crate 15174 BLAKE2B 5cfb2a094047106a45eaeb77ebc1ae2e17ca51ece71082c127d3e2bf36773959f52df1c6df0d0d5cbc40ec4ee7f81820a094fd7ee99f01a2f99a1f7f68317223 SHA512 2adea0c8447c9450be34859f2b2e2b87a61b5e313685da994d21bc24a96dd94088f3320bcdb8d20466a3fdafb0bc0375823f0c28ec0077c9c42a9818f66ac1f5
+DIST url-2.2.2.crate 68555 BLAKE2B f8e59f784b6c2e16bacfba36ad68670a6af17c16ea3b0866b5aa98e5bf4686cf1b1aac9b1f0a0ea3b89a01e044a2ca37830416f42d147158ea8e88f23fd28ac2 SHA512 f9b6ad99d69ff303283b3fd9e98945fbd6cb411a3d141badcbb3a0566723a451375e6dd5d5357e3eb7a1b5b1ee5756a2347c43817db2de6fe35b9004b090e077
+DIST utf8-ranges-1.0.5.crate 8497 BLAKE2B 912fc7bd781b110950ecefe6f6b719da330e3c3180e6e1ad44d5a25a8bf3fce0a45794266e04cccfcee87177df4440d8d135945117781ef727d1dac181c0391a SHA512 b17f8de898e1a94c22477ee7d3b1038185ec46eecb57ac3cc8cd8eae224b1384289cab8f975c6d0840b6d28833b97942cee740ff3b1612e27d755070a5b5f6a2
+DIST utf8parse-0.2.0.crate 13392 BLAKE2B 05296f48fe429a871f42e729e3540ec3a974a69892c6bc9da95e23c0aee2163c9b115a9614eb1943363076793e17ac4c89e28066a9816cab30c451524a5832c0 SHA512 1f6a2eca32e42c8e4b53d28c4fea54c426ed66fc01447b3cf8fc0fd75694453eadbe3ba000ac8ee0347d16dbfec47681254117949109081798eab5370886827c
+DIST vec_map-0.8.2.crate 14466 BLAKE2B 8f109fbff19604b82ea2aa61c952e2ce9b5597ccc8e1ef4e847648e2de08dece8c4debe92889edeccb8d393645fd0b62436b49d236ded7ad181c4a51239a9539 SHA512 4f1ef59bc2c437e79f1f84fe021bce5aa8ccd581f500f3d5776913d5f17d45b03ccee64f5bd03d47656318cfc9344a1f4311079d471fa409a8e4e94c143973f9
+DIST version_check-0.9.4.crate 14895 BLAKE2B fa1fa4008af165bfc1fdbe560488afd9d232cfafee94104fbcc4cbc52f234849bff9ddfa88109a1ac682f6d9c1d86b0459893d223f64e65adc08966aaf93dc89 SHA512 b172dc9a3759a4a683ffc39b9a40b03b9974b626a088217de87090466cef695226557c226cf3e469b2b25ee7297b7eb0d7719878cab42457f80146a81943c0c8
+DIST walkdir-2.3.2.crate 23516 BLAKE2B 473f2b51aafd6ac17e5c3da8d545d179b31486b3a65ab39fbd8bd7fbb2ebcc24bebf01781200a26a68f0b1cb464f5763a919aead3b03eba5a7e1be6efec5500b SHA512 6c44071354faf37720ec4117ded34c8d530489542ee107ac26a7a56ef4a882b9003e22e84f1d61f6078643521343e35aa1f7b57c838779e78e5937a667bf82da
+DIST wasi-0.10.2+wasi-snapshot-preview1.crate 27505 BLAKE2B 4eb8644b945633d6e856ad80dd74990be19eb6af99823b147163384f61d471e2d9ec054d78a7064072344be53783e57073e8fffc6d5555c149b4834a9bf31dba SHA512 06977a294d76369a3867c45abdd8a87ea5c84e5a3681075ba0d14af1aee3114ff24495c7e7f7fe1e6e42230e65fba0e062898e69bc89e0209af62c2d14094ec7
+DIST winapi-0.3.9.crate 1200382 BLAKE2B cb5799749ccd935ea2d7068d953cecf19f543d9db7dc16ad4584bb7005373ada34937a3ced7225544d8bc765da599911c7a3190efefb3a25b7c1bb7123b4f673 SHA512 ff8b7b78065f3d8999ec03c725a0460ebc059771bf071c7a3df3f0ecd733edf3b0a2450024d4e24e1aedddaecd9038ce1376c0d8bbf45132068cf45cf4a53a97
+DIST winapi-i686-pc-windows-gnu-0.4.0.crate 2918815 BLAKE2B 4d357e4d30f9552972170d65b9a5358b69c46a3e772fe05efc22f3d4ffc1caeeaad7aacdc7abd503a7ad0545f8bd7d22bf351dcb6df76f812fa4d45c34d65df0 SHA512 a672ccefd0730a8166fef1d4e39f9034d9ae426a3f5e28d1f4169fa5c5790767693f281d890e7804773b34acdb0ae1febac33cde8c50c0044a5a6152c7209ec2
+DIST winapi-util-0.1.5.crate 10164 BLAKE2B fc800aceae5249a858c806c3e969ef2545766099872d856ebee51c883d9acf1122278db9607d50ca53eac351502b700fd2463900932d342240f97f683d517963 SHA512 7baeb661f397c4693dfa001fdc774b323c51a7c55caad40f2de5112a1cefd1d6151e3df41fa4ee193460a5905917c83d2b1de5fa10b4bd014ad96690af95c0fd
+DIST winapi-x86_64-pc-windows-gnu-0.4.0.crate 2947998 BLAKE2B 2ad1ea8b5fa07d544e910ccba043ae925269b76b26c9da356305b34b86741dd8b9aff0b9ffe3d562db4fcd7d7c46a11ce9e3168b782b1d89ae6881742b7ede82 SHA512 4a654af6a5d649dc87e00497245096b35a2894ae66f155cb62389902c3b93ddcc5cf7d0d8b9dd97b291d2d80bc686af2298e80abef6ac69883f4a54e79712513
+DIST windows-sys-0.30.0.crate 3256610 BLAKE2B a1a0563b6cacca5202c8ee4dddb9c2a3030935269ea3959949afc7aff747afa7e38de061f3a77978b7d9d90a6245f99e07a283566cdc48602dc21fb2cb4987e9 SHA512 ac71860c93295956f18b6b0f2617443e56e4b8475c042b0e428cd0decbb921cc2c4202298bd9480e090b201df7cb8247ef0269d1902f7350a9df234ab568b1cd
+DIST windows-sys-0.36.1.crate 3347053 BLAKE2B 818f7812bd9a55a4e95b3d461fa5fcc14569a159882f950d20fd5a6b7d2a2841f082c0bccaab657f5830549e6286a37d9f8fdf825a42403f543b51e35b2d20d4 SHA512 80973e461bef3be0d0d0c13d02b2129aeb0d0700768d637544315654126f101b39f980738035fe325bd96f549493a2245bd7b82511f833efa7bbcb2f62266001
+DIST windows_aarch64_msvc-0.30.0.crate 669666 BLAKE2B 8d864958cc1c431429f5433695216606256a08a58dfc0ddb72741cc42472e72560051cad122126593e64cd02ab063cd2461cc8aedab053a9b96890402e708b02 SHA512 323f272a6bcf3d2d9afbc5d4bcf3d43763156828a599b4f30380c43c437c139c0c54fe58752d5d2c88890699e94f49a2486c0d4d3ca5e9fafb11ceee18c93d9a
+DIST windows_aarch64_msvc-0.36.1.crate 661960 BLAKE2B d503150a05c4aa6ec376d1094ad24a7a4b3579d8f60cae65f4a98adfe830dd776c8996d5c3acfbfca1a69598475b918b5de2a162e3253b0b28cd6aa17de2dc13 SHA512 d0c352c78caec9c71bbaa1a688baab8f39a33c903c0492b19398c76e08194183e254ecd3a8b24af3e7e5e1d9d97373dcbab54499236829898a4fd153cfde2ccf
+DIST windows_i686_gnu-0.30.0.crate 774464 BLAKE2B 62740a8f355d08d94f453a2727808a328a831955c1996aae923afa748bcecd849f5e2f76c69aa5c4e58cb8d3ddbf30e12f2c459e5ccad77af6dce050de65449a SHA512 a02e9a1e3fbd9b1dfa41aa581f89ae2f87efa6a5ae08438c2556092d490e216f77a45872921c6f2a2b55f957447c38acd5b44e20aa3545e4385d0bad7c88b714
+DIST windows_i686_gnu-0.36.1.crate 818115 BLAKE2B fdb78cf88e1049d1ed6c474f870dfd1ff37b48bc24726d754cfec5b3e77075162f291f93aa709c07c9fa38ccb21a6c31cb5149dabc2cc8ad8a85c03408384a0b SHA512 e2c60e6639beb879472a06ed4462667eb4a78385df6bcde1ca579af759cf2b4ac70e84f7dd7b736e7fbd1b129061555671fed4b83bcd81a6083cc013963194a5
+DIST windows_i686_msvc-0.30.0.crate 732295 BLAKE2B 97747c5889375d7bcde1d614b5d20c04d4e5491a6c5257347bba788a0849a8853f8130432589d7a3918e87aab4f8b21b73f7feb86ad1242b3e976568c72beafd SHA512 5bf84371a7fb69da38db95b74d9b2c91e205aa30733e2d72556c656b0c45a26876096646408f72d59b68d104bd73b339b14b361235307df2d049835f0462ad5c
+DIST windows_i686_msvc-0.36.1.crate 724575 BLAKE2B cf964bec007d8432e2009644cf7f89ea7d910ccf9512c067b7bf5c6c825208ce4a36e9864c0cbca137f523983eb46e58e4bd01054cecd7ac7126d2ba9f67ac0c SHA512 02bb1507981229422498ce29f6c777d5e412358040128f84b09d948ccddf0461b078a0a20cc7f6ab7da8595121bb369453ae9ea1f0506aab715662e8c631e737
+DIST windows_x86_64_gnu-0.30.0.crate 743236 BLAKE2B 93a67f4c3afb7c2c667dd4b914fa649d0c169ccb7e24a19ff3c0afb7f5358cb3847ca48ecc5f2f968ace3f15d9ffb62bf57f50d031b141c71ca9c71271b2caeb SHA512 e0231935951c916e8accd3977128e943efba26e5c1cf5ea1c128d33324fe1d00c277d96571ac62e1f018aac15bbf0667b9afd8e9f7173beb46fa329c0955a2ff
+DIST windows_x86_64_gnu-0.36.1.crate 790934 BLAKE2B 9dec5d966bdc89efbc81989acca242d519f51676ec37487df2bfacd6bfbc5a8de2871be72c5b96a073a899c666e3a39aa60d493e7df39fa90efe869fb744a332 SHA512 598b69e4f2cd3d68f910d526a66dadb465ff30a8c261c9a4455aa1c5b952d23c04f8edaa063cd16fb43564c116a13f06d607f3a0a9c7495054b8bfe1c04d1865
+DIST windows_x86_64_msvc-0.30.0.crate 668972 BLAKE2B 46ca7506391d28b3317e730fcd8d994e01191b59a7a08eedc86cfa0a735435fbe0b9d09cef37f318a1dd250103e2f76915456183d2cb25406a209c8086751257 SHA512 25737d7088457e2c3e93ec17af814db6522dd2a9c72a78199bb4035d5ddded3aa364cc96f9a8c2beb1e5f96d2199de0288ca8e61e79ef870a2ff8fea38ea1875
+DIST windows_x86_64_msvc-0.36.1.crate 661999 BLAKE2B 4cf967f10d4ce148bac967598168752d1996b4ddf5278a8fca53360566c37c1a014bfb4dfdc0ae2d96e01196c42eb4906ea80d8e9dd23b9e9f3163631c9e253e SHA512 89c22ed51a74f531662d80ae0fa5e0215728db1e6caf3c13eaeba95a93548b43c00b8474f52553ac866ac83c203b6c22dc44fbc870e882a4c9c97ba54b87c631
+DIST yansi-term-0.1.2.crate 14342 BLAKE2B 31a1651bb43644cf880d591a22fe9d899ab0acbc744ced2952f120b4abfa0c42f6513089e34deaff1a453f3a26f9fb78442f016baa9524ccac9b21e4a7ed6ad6 SHA512 ba720e36487871427aaa7139e8aeaf5b2b3f2d1df4798d7e238e323dc3d3220f12202e223f74339201be3466848c372dc1712e1842e5cd6bd51c3dedf76c9ff6
diff --git a/dev-lang/starlark-rust/files/test/features.bash b/dev-lang/starlark-rust/files/test/features.bash
new file mode 100644
index 000000000000..35fb173e3cd1
--- /dev/null
+++ b/dev-lang/starlark-rust/files/test/features.bash
@@ -0,0 +1,175 @@
+#!/usr/bin/env bash
+
+# shellcheck disable=SC2034
+STARLARK_RUST_EXPECTED_functions=(
+ any
+ dir
+ fail
+ getattr
+ hasattr
+ hash
+ len
+ max
+ min
+ print
+ range
+ repr
+ reversed
+ sorted
+ type
+ zip
+)
+
+# shellcheck disable=SC2034
+STARLARK_RUST_EXPECTED_types=(
+ bool
+ int
+ list
+ str
+ tuple
+ dict
+)
+
+# shellcheck disable=SC2034
+STARLARK_RUST_EXPECTED_dict_methods=(
+ clear
+ get
+ items
+ keys
+ pop
+ popitem
+ setdefault
+ update
+ values
+)
+
+# shellcheck disable=SC2034
+STARLARK_RUST_EXPECTED_list_methods=(
+ append
+ clear
+ extend
+ index
+ insert
+ pop
+ remove
+)
+
+# shellcheck disable=SC2034
+STARLARK_RUST_EXPECTED_str_methods=(
+ capitalize
+ count
+ elems
+ endswith
+ find
+ format
+ index
+ isalnum
+ isalpha
+ isdigit
+ islower
+ isspace
+ istitle
+ isupper
+ join
+ lower
+ lstrip
+ partition
+ replace
+ rfind
+ rindex
+ rpartition
+ rsplit
+ rstrip
+ split
+ splitlines
+ startswith
+ strip
+ title
+ upper
+)
+
+_test-features_execute-test() {
+ local error_msg test_title=$1 test_stdin=$2 exp_stdout=$3 exp_stderr=$4 exp_exitcode=$5
+ ebegin "$test_title"
+ error_msg=$(
+ # Redirect stderr to stdin because print goes to stderr since this commit:
+ # https://github.com/facebookexperimental/starlark-rust/commit/cdd68fa752aa8b6cae602297de1e43658b0a63fd
+ test_stdout=$("$starlark_binary" -i --json <<< "$test_stdin" 2>&1)
+ test_exitcode=$?
+
+ if (( test_exitcode != exp_exitcode )); then
+ echo "unexpected exit code \"$test_exitcode\", expected exit code \"$exp_exitcode\" for test_stdin: $test_stdin"
+ exit 1
+ elif [[ "$test_stdout" != "$exp_stdout" ]]; then
+ echo "unexpected stdout \"$test_stdout\", expected stdout \"$exp_stdout\" for test_stdin: $test_stdin"
+ exit 1
+ fi
+ exit 0
+ )
+ eend $? "$error_msg"
+
+ # shellcheck disable=SC2015
+ [[ $error_msg ]] && failures+=("$error_msg") || (( successes += 1 ))
+}
+
+test-features_main() {
+ local starlark_binary=$1
+ local failures=() successes=0
+ local banner_width=45
+
+ local attr attr_type test_case
+ for attr_type in function type; do
+ printf -- '\n\n' >&2
+ printf -- '%s\n' "Checking for existence of expected ${attr_type}s" >&2
+ eval "printf -- '=%.0s' {1..${banner_width}}" >&2
+ echo >&2
+ while read -r attr; do
+ test_case=(
+ "$attr"
+ "$attr and print('$attr exists')"
+ "$attr exists"
+ ""
+ 0
+ )
+ _test-features_execute-test "${test_case[@]}"
+ done < <(eval "printf -- '%s\n' \"\${STARLARK_RUST_EXPECTED_${attr_type}s[@]}\"")
+ done
+
+ local attr attr_type test_case type_literal
+ for attr_type in dict list str; do
+ printf -- '\n\n' >&2
+ printf -- '%s\n' "Checking ${attr_type} built-in methods" >&2
+ eval "printf -- '=%.0s' {1..${banner_width}}" >&2
+ echo >&2
+
+ case $attr_type in
+ str)
+ type_literal='""'
+ ;;
+ *)
+ type_literal="$attr_type()"
+ ;;
+ esac
+
+ while read -r attr; do
+ test_case=(
+ "$attr_type.$attr"
+ "hasattr($type_literal, \"$attr\") and print('$attr method exists')"
+ "$attr method exists"
+ ""
+ 0
+ )
+ _test-features_execute-test "${test_case[@]}"
+ done < <(eval "printf -- '%s\n' \"\${STARLARK_RUST_EXPECTED_${attr_type}_methods[@]}\"")
+ done
+
+ printf -- '\n\n' >&2
+
+ if (( ${#failures[@]} > 0 )); then
+ echo "${#failures[@]} test (s) failed" >&2
+ return 1
+ elif (( successes == 0 )); then
+ echo "no tests ran" >&2
+ return 1
+ fi
+}
diff --git a/dev-lang/starlark-rust/metadata.xml b/dev-lang/starlark-rust/metadata.xml
new file mode 100644
index 000000000000..28b9dd7e4f55
--- /dev/null
+++ b/dev-lang/starlark-rust/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>zmedico@gentoo.org</email>
+ <name>Zac Medico</name>
+ </maintainer>
+ <upstream>
+ <bugs-to>https://github.com/facebookexperimental/starlark-rust/issues</bugs-to>
+ <changelog>https://github.com/facebookexperimental/starlark-rust/blob/master/CHANGELOG.md</changelog>
+ <doc>https://github.com/bazelbuild/starlark/blob/master/spec.md</doc>
+ <remote-id type="github">facebookexperimental/starlark-rust</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-lang/starlark-rust/starlark-rust-0.8.0.ebuild b/dev-lang/starlark-rust/starlark-rust-0.8.0.ebuild
new file mode 100644
index 000000000000..583c4b1b2c2d
--- /dev/null
+++ b/dev-lang/starlark-rust/starlark-rust-0.8.0.ebuild
@@ -0,0 +1,206 @@
+# Copyright 2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CRATES="
+ Inflector-0.11.4
+ ahash-0.7.6
+ aho-corasick-0.7.18
+ annotate-snippets-0.9.1
+ ansi_term-0.12.1
+ anyhow-1.0.57
+ argfile-0.1.4
+ ascii-canvas-3.0.0
+ atty-0.2.14
+ autocfg-1.1.0
+ beef-0.5.1
+ bit-set-0.5.2
+ bit-vec-0.6.3
+ bitflags-1.3.2
+ bumpalo-3.9.1
+ cc-1.0.73
+ cfg-if-1.0.0
+ clap-2.34.0
+ clipboard-win-4.4.1
+ convert_case-0.4.0
+ crossbeam-channel-0.5.4
+ crossbeam-utils-0.8.8
+ crunchy-0.2.2
+ debugserver-types-0.5.0
+ derivative-2.2.0
+ derive_more-0.99.17
+ diff-0.1.12
+ dirs-next-2.0.0
+ dirs-sys-next-0.1.2
+ either-1.6.1
+ ena-0.14.0
+ endian-type-0.1.2
+ erased-serde-0.3.20
+ errno-0.2.8
+ errno-dragonfly-0.1.2
+ error-code-2.3.1
+ fancy-regex-0.5.0
+ fd-lock-3.0.5
+ fixedbitset-0.4.1
+ fnv-1.0.7
+ form_urlencoded-1.0.1
+ gazebo-0.7.0
+ gazebo_derive-0.7.0
+ gazebo_lint-0.1.1
+ getrandom-0.2.6
+ hashbrown-0.11.2
+ heck-0.3.3
+ hermit-abi-0.1.19
+ idna-0.2.3
+ indenter-0.3.3
+ indexmap-1.8.1
+ indoc-1.0.6
+ io-lifetimes-0.6.1
+ itertools-0.9.0
+ itertools-0.10.3
+ itoa-1.0.1
+ lalrpop-0.19.8
+ lalrpop-util-0.19.8
+ lazy_static-1.4.0
+ libc-0.2.125
+ linux-raw-sys-0.0.46
+ lock_api-0.4.7
+ log-0.4.17
+ logos-0.12.0
+ logos-derive-0.12.0
+ lsp-server-0.5.2
+ lsp-types-0.89.2
+ maplit-1.0.2
+ matches-0.1.9
+ memchr-2.5.0
+ memoffset-0.6.5
+ new_debug_unreachable-1.0.4
+ nibble_vec-0.1.0
+ nix-0.23.1
+ num-bigint-0.4.3
+ num-integer-0.1.45
+ num-traits-0.2.15
+ once_cell-1.10.0
+ os_str_bytes-6.0.0
+ parking_lot-0.12.0
+ parking_lot_core-0.9.3
+ paste-1.0.7
+ percent-encoding-2.1.0
+ petgraph-0.6.0
+ phf_shared-0.10.0
+ pico-args-0.4.2
+ ppv-lite86-0.2.16
+ precomputed-hash-0.1.1
+ proc-macro-error-1.0.4
+ proc-macro-error-attr-1.0.4
+ proc-macro2-1.0.38
+ quote-1.0.18
+ radix_trie-0.2.1
+ rand-0.8.5
+ rand_chacha-0.3.1
+ rand_core-0.6.3
+ redox_syscall-0.2.13
+ redox_users-0.4.3
+ regex-1.5.5
+ regex-syntax-0.6.25
+ rustc_version-0.4.0
+ rustix-0.34.6
+ rustversion-1.0.6
+ rustyline-9.1.2
+ ryu-1.0.9
+ same-file-1.0.6
+ schemafy-0.5.2
+ schemafy_core-0.5.2
+ schemafy_lib-0.5.2
+ scopeguard-1.1.0
+ semver-1.0.9
+ serde-1.0.137
+ serde_derive-1.0.137
+ serde_json-1.0.81
+ serde_repr-0.1.8
+ siphasher-0.3.10
+ smallvec-1.8.0
+ smawk-0.3.1
+ static_assertions-1.1.0
+ str-buf-1.0.5
+ string_cache-0.8.4
+ strsim-0.8.0
+ strsim-0.10.0
+ structopt-0.3.26
+ structopt-derive-0.4.18
+ syn-1.0.93
+ term-0.7.0
+ textwrap-0.11.0
+ textwrap-0.14.2
+ thiserror-1.0.31
+ thiserror-impl-1.0.31
+ tiny-keccak-2.0.2
+ tinyvec-1.6.0
+ tinyvec_macros-0.1.0
+ unicode-bidi-0.3.8
+ unicode-linebreak-0.1.2
+ unicode-normalization-0.1.19
+ unicode-segmentation-1.9.0
+ unicode-width-0.1.9
+ unicode-xid-0.2.3
+ url-2.2.2
+ utf8-ranges-1.0.5
+ utf8parse-0.2.0
+ vec_map-0.8.2
+ version_check-0.9.4
+ walkdir-2.3.2
+ wasi-0.10.2+wasi-snapshot-preview1
+ winapi-0.3.9
+ winapi-i686-pc-windows-gnu-0.4.0
+ winapi-util-0.1.5
+ winapi-x86_64-pc-windows-gnu-0.4.0
+ windows-sys-0.30.0
+ windows-sys-0.36.1
+ windows_aarch64_msvc-0.30.0
+ windows_aarch64_msvc-0.36.1
+ windows_i686_gnu-0.30.0
+ windows_i686_gnu-0.36.1
+ windows_i686_msvc-0.30.0
+ windows_i686_msvc-0.36.1
+ windows_x86_64_gnu-0.30.0
+ windows_x86_64_gnu-0.36.1
+ windows_x86_64_msvc-0.30.0
+ windows_x86_64_msvc-0.36.1
+ yansi-term-0.1.2
+"
+
+inherit cargo
+
+DESCRIPTION="A Rust implementation of the Starlark language"
+HOMEPAGE="https://github.com/facebookexperimental/starlark-rust"
+SRC_URI="$(cargo_crate_uris ${CRATES})
+ https://github.com/facebookexperimental/starlark-rust/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE=""
+
+# Nightly rust-1.53.0 required for https://bugs.gentoo.org/796824
+BDEPEND="${RUST_DEPEND}
+ >=dev-lang/rust-1.53.0[nightly]"
+
+# RUSTFLAGS support needed: https://bugs.gentoo.org/796887
+QA_FLAGS_IGNORED=".*"
+
+src_prepare() {
+ sed -e 's:#!\[feature(const_mut_refs)\]:\0\n#![feature(maybe_uninit_extra)]:' \
+ -i starlark/src/lib.rs || die
+ default
+}
+
+src_test() {
+ source "${FILESDIR}/test/features.bash" || die
+ test-features_main "${PWD}/target/release/starlark" || die
+}
+
+src_install() {
+ dobin target/release/starlark
+ ln "${ED}/usr/bin/starlark"{,-rust} || die
+ dodoc -r {docs,{CHANGELOG,README}.md}
+}
diff --git a/dev-lang/swi-prolog/Manifest b/dev-lang/swi-prolog/Manifest
index bb6e273db518..edbafbc3f512 100644
--- a/dev-lang/swi-prolog/Manifest
+++ b/dev-lang/swi-prolog/Manifest
@@ -1,7 +1 @@
-DIST swi-prolog-8.2.2-gentoo-patchset-0.tar.gz 539 BLAKE2B 53d8f4aeb6f83eae628027f3f4d581f7a8c4e7e6c763350acc85bd0cc4ec4f6e8d7afe680763afc4bef9e5babb8100aeca0f887d029ffa115f4ead89cbc48cdd SHA512 d745b978c6926ed6b9f84d98c5cfd08716aaebe05bcf4a6fd9bd647a5d265b731e4daf2c0f5028eac36d7cea052eb52f80fe8287d4e9e285b3b8ffd544408da1
-DIST swi-prolog-8.2.3-gentoo-patchset-0.tar.gz 535 BLAKE2B bb7869c5166104a3a7faa88dd14284ea147ab5090695ff1c950365823451ac656403bee97c7dd4a039e2d58085456842f8bbc7caa26d18916c6f8718a204097c SHA512 c1f0dce1e336c79fe84a3f9d0fe5e873d33c00071f91cbb683a73fbceaba1c6ca8c2875b58045829eafcbee78a0e713009a07bd51a2c56bf146f14881899f934
-DIST swipl-8.2.1.tar.gz 10969688 BLAKE2B 754678d9683999b681e62321423df01c4d28ac0aefb5b836134790112a76a2710cc3b433d381f4b11756727037cada026a2778445fe533f51a5543332ca86e82 SHA512 b49fa0832b4bad3b48256c97538172a06e7a4c50b55823dad345360f98055f0702e7a10fb2bfdb636e3fd99557bcb243cfccbaccb7546cb2afd13335f1c09db8
-DIST swipl-8.2.2.tar.gz 11002077 BLAKE2B 581c3ea83d2440cbe2454ba12ea2752bec9fda926f3afef6e36de1bbf70b43b34931ad768335bb15809a3d76959c7eec7dd3ad54a0a4085ad8ba34075dd3f4d9 SHA512 fb77cfd58932dc35c3d808899c1f493ffb22a58f56fe364ce0c0b48b8cabdd204d4f920346c39f696fadd9ee8335e163a8eb8d0a770c2835d803f030c1f3f878
-DIST swipl-8.2.3.tar.gz 10999577 BLAKE2B 57cfa9f6fb97f0136a35da1850c7ae8da123d1c18fe6e18597d1b2131b7304a638d42d673efad2a01eaf3f9dad7b4754e6feb64917423abda002323bfc8dec8c SHA512 cd9ffc8a963682c0d02cec4b76338352459e004e07f3e5c0f02b3c2f9b19f23fe9639e037cf52531491a41c201113138f0b6a039d401e891ad5774383b0d852f
-DIST swipl-8.3.16.tar.gz 11123493 BLAKE2B 6d9566762b5d96a20a27dece39d895e2b29d3555dffe1d0495d8f8f579443ae2c37df2b0fe89c3fa6cc95743f55efdc6a4d6653e6cd1ba5ff8489181f8c7fc5a SHA512 ceaef49d29eac3a100e6d51e1bcc4e7925ce682ffda8bd2a668463b870a25e163c6d9e538c0cd46ffdc9a709c720ba9b31137a7c24a8087ea3bc0a1616304b00
-DIST swipl-8.3.17.tar.gz 11120834 BLAKE2B bc0c05a3305d30ec98f636e141b1d22e3ad06444ae98e7bb5b42a2a0e120effb68594f7c8af6da2fde915dfa679635c779a2a45144452e1b3598178b9e6095f5 SHA512 498fd807623d9ab596ce127a60430864faff6d803f63a77ef22fcbcd4e6ad02a9d6a528e0a782f68b9f92d3efd74838b95d72c1717b79000153f55ad4037b180
+DIST swipl-9.1.2.tar.gz 11827220 BLAKE2B e4bf40d1b4d0c48af5e630728208ca849b9a3d0f4129c827b98cd8d666b934218bbbee4c357b67cdd72b9e15046b70a873ffd9e31eaacac620a9aba6a7aec7fd SHA512 d47375c21ed33a2822b9df294a709141fc2e1f0aa61a297bd51a504f6f7859a1deb0ea6705d30b6f8198c71f440b176c7259bd83bff1ac5393ced77fdfbf564a
diff --git a/dev-lang/swi-prolog/files/swi-prolog-9.1.2-configure-clang16.patch b/dev-lang/swi-prolog/files/swi-prolog-9.1.2-configure-clang16.patch
new file mode 100644
index 000000000000..292728269526
--- /dev/null
+++ b/dev-lang/swi-prolog/files/swi-prolog-9.1.2-configure-clang16.patch
@@ -0,0 +1,61 @@
+https://bugs.gentoo.org/879657
+https://github.com/SWI-Prolog/swipl-devel/commit/2328d9d54c8aa368a4bf0165b1b811d1f31ba0f7
+https://github.com/SWI-Prolog/swipl-devel/commit/0d1088443348b71a3624835a19469e2b6cc7e284
+
+From 2328d9d54c8aa368a4bf0165b1b811d1f31ba0f7 Mon Sep 17 00:00:00 2001
+From: Florian Weimer <fweimer@redhat.com>
+Date: Tue, 10 Jan 2023 14:08:04 +0100
+Subject: [PATCH] cmake: Fix C99 compatibility issues in GCC built-in detection
+
+Future compilers may not support implicit ints or implicit
+function declarations, so avoid them, by using an explicit int
+type and including <alloca.h> for the alloca function.
+--- a/cmake/GCCBuiltins.cmake
++++ b/cmake/GCCBuiltins.cmake
+@@ -22,7 +22,7 @@ check_c_source_compiles(
+ "volatile int i=0; int main() { return 0; }"
+ HAVE_VOLATILE)
+ check_c_source_compiles(
+- "static inline foo() { return 0; } int main() { return foo(); }"
++ "static inline int foo() { return 0; } int main() { return foo(); }"
+ HAVE_INLINE)
+ check_c_source_compiles(
+ "int main() { void *p = &&lbl; goto *p; lbl: return 0; }"
+@@ -45,7 +45,7 @@ check_visibility()
+ # Builtin functions that lead to conflicts
+
+ check_c_source_compiles(
+- "int main() { char *s = alloca(10); return s!=0; }"
++ "#include <alloca.h>\nint main() { char *s = alloca(10); return s!=0; }"
+ HAVE_ALLOCA)
+ check_c_source_compiles(
+ "#include <math.h>\nint main() { double x; return signbit(x); }"
+
+From 0d1088443348b71a3624835a19469e2b6cc7e284 Mon Sep 17 00:00:00 2001
+From: Jan Wielemaker <J.Wielemaker@vu.nl>
+Date: Wed, 11 Jan 2023 13:30:34 +0100
+Subject: [PATCH] Cleanup some no longer used GCC __builtin checks.
+
+--- a/cmake/GCCBuiltins.cmake
++++ b/cmake/GCCBuiltins.cmake
+@@ -9,12 +9,6 @@ check_c_source_compiles(
+ check_c_source_compiles(
+ "int i=0; int main() { return __builtin_expect(i, 0) ? 0 : 1; }"
+ HAVE___BUILTIN_EXPECT)
+-check_c_source_compiles(
+- "int i=0; struct {int x[10];} st; int main() { return __builtin_choose_expr(1, i, st); }"
+- HAVE___BUILTIN_CHOOSE_EXPR)
+-check_c_source_compiles(
+- "int i=0; int main() { return __builtin_types_compatible_p(typeof(i), int); }"
+- HAVE___BUILTIN_TYPES_COMPATIBLE_P)
+ check_c_source_compiles(
+ "__thread int i=0; int main() { return 0; }"
+ HAVE___THREAD)
+@@ -48,5 +42,5 @@ check_c_source_compiles(
+ "#include <alloca.h>\nint main() { char *s = alloca(10); return s!=0; }"
+ HAVE_ALLOCA)
+ check_c_source_compiles(
+- "#include <math.h>\nint main() { double x; return signbit(x); }"
++ "#include <math.h>\nint main() { double x = 0.0; return signbit(x); }"
+ HAVE_SIGNBIT)
+
diff --git a/dev-lang/swi-prolog/metadata.xml b/dev-lang/swi-prolog/metadata.xml
index cf43740db6e7..b4ee8d1b32ed 100644
--- a/dev-lang/swi-prolog/metadata.xml
+++ b/dev-lang/swi-prolog/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>prolog@gentoo.org</email>
@@ -7,7 +7,9 @@
</maintainer>
<use>
<flag name="archive">Use libarchive for extension packs</flag>
- <flag name="uuid">Use ossp-uuid for UUID pack</flag>
+ <flag name="cli" restrict="&gt;=dev-lang/swi-prolog-8.5.20">Add support for CLI interfaces based on readline and libedit</flag>
+ <flag name="ipc" restrict="&gt;=dev-lang/swi-prolog-8.5.20">Add support for TIPC inter-process communication</flag>
+ <flag name="pgo" restrict="&gt;=dev-lang/swi-prolog-8.5.20">Optimize the build using Profile Guided Optimization (PGO)</flag>
<flag name="yaml">Use libyaml for YAML pack</flag>
</use>
</pkgmetadata>
diff --git a/dev-lang/swi-prolog/swi-prolog-8.2.1.ebuild b/dev-lang/swi-prolog/swi-prolog-8.2.1.ebuild
deleted file mode 100644
index dc429e1fd04a..000000000000
--- a/dev-lang/swi-prolog/swi-prolog-8.2.1.ebuild
+++ /dev/null
@@ -1,104 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit cmake-utils eutils flag-o-matic multilib
-
-PATCHSET_VER="0"
-
-DESCRIPTION="versatile implementation of the Prolog programming language"
-HOMEPAGE="https://www.swi-prolog.org/"
-SRC_URI="https://www.swi-prolog.org/download/stable/src/swipl-${PV}.tar.gz"
-
-LICENSE="BSD-2"
-SLOT="0"
-KEYWORDS="amd64 ppc x86 ~amd64-linux ~x86-linux ~ppc-macos"
-IUSE="archive berkdb debug doc +gmp java +libedit libressl minimal odbc pcre qt5 readline ssl test uuid X yaml"
-RESTRICT="!test? ( test )"
-
-RDEPEND="sys-libs/ncurses:=
- sys-libs/zlib
- archive? ( app-arch/libarchive )
- berkdb? ( >=sys-libs/db-4:= )
- odbc? ( dev-db/unixODBC )
- pcre? ( dev-libs/libpcre )
- readline? ( sys-libs/readline:= )
- libedit? ( dev-libs/libedit )
- gmp? ( dev-libs/gmp:0 )
- ssl? (
- !libressl? ( dev-libs/openssl:0 )
- libressl? ( dev-libs/libressl )
- )
- java? ( >=virtual/jdk-1.7:= )
- uuid? ( dev-libs/ossp-uuid )
- qt5? (
- dev-qt/qtwidgets:5
- dev-qt/qtgui:5
- )
- X? (
- virtual/jpeg:0
- x11-libs/libX11
- x11-libs/libXft
- x11-libs/libXinerama
- x11-libs/libXpm
- x11-libs/libXt
- x11-libs/libICE
- x11-libs/libSM )
- yaml? ( dev-libs/libyaml )"
-
-DEPEND="${RDEPEND}
- X? ( x11-base/xorg-proto )
- java? ( test? ( =dev-java/junit-3.8* ) )"
-
-S="${WORKDIR}/swipl-${PV}"
-BUILD_DIR="${S}/build"
-CMAKE_USE_DIR="${S}"
-
-src_prepare() {
- if [[ -d "${WORKDIR}"/${PV} ]] ; then
- eapply "${WORKDIR}"/${PV}
- fi
- eapply_user
-
- sed -i -e "s|\(SWIPL_INSTALL_PREFIX\) lib/.*)|\1 $(get_libdir)/swipl)|" CMakeLists.txt || die
- sed -i -e "s|\(SWIPL_INSTALL_CMAKE_CONFIG_DIR\) lib/|\1 $(get_libdir)/|" CMakeLists.txt || die
-
- cmake-utils_src_prepare
-}
-
-src_configure() {
- append-flags -fno-strict-aliasing
- use debug && append-flags -DO_DEBUG
-
- mycmakeargs=(
- -DSWIPL_INSTALL_PREFIX=$(get_libdir)/swipl
- -DUSE_GMP=$(usex gmp)
- -DINSTALL_DOCUMENTATION=$(use doc && usex archive)
- -DSWIPL_PACKAGES_BASIC=$(usex !minimal)
- -DSWIPL_PACKAGES_ARCHIVE=$(usex archive)
- -DSWIPL_PACKAGES_ODBC=$(usex odbc)
- -DSWIPL_PACKAGES_BDB=$(usex berkdb)
- -DSWIPL_PACKAGES_PCRE=$(usex pcre)
- -DSWIPL_PACKAGES_YAML=$(usex yaml)
- -DSWIPL_PACKAGES_SSL=$(usex ssl)
- -DSWIPL_PACKAGES_JAVA=$(usex java)
- -DSWIPL_PACKAGES_QT=$(usex qt5)
- -DSWIPL_PACKAGES_X=$(usex X)
- -DSWIPL_PACKAGES_TERM=$(if use libedit || use readline; then echo yes; else echo no; fi)
- )
-
- cmake-utils_src_configure
-}
-
-src_compile() {
- XDG_CONFIG_DIRS="${HOME}" \
- XDG_DATA_DIRS="${HOME}" \
- cmake-utils_src_compile
-}
-
-src_test() {
- USE_PUBLIC_NETWORK_TESTS=false \
- USE_ODBC_TESTS=false \
- cmake-utils_src_test -V
-}
diff --git a/dev-lang/swi-prolog/swi-prolog-8.2.2.ebuild b/dev-lang/swi-prolog/swi-prolog-8.2.2.ebuild
deleted file mode 100644
index 2b133f70327b..000000000000
--- a/dev-lang/swi-prolog/swi-prolog-8.2.2.ebuild
+++ /dev/null
@@ -1,105 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit cmake-utils eutils flag-o-matic multilib
-
-PATCHSET_VER="0"
-
-DESCRIPTION="versatile implementation of the Prolog programming language"
-HOMEPAGE="https://www.swi-prolog.org/"
-SRC_URI="https://www.swi-prolog.org/download/stable/src/swipl-${PV}.tar.gz
- https://dev.gentoo.org/~keri/distfiles/swi-prolog/${P}-gentoo-patchset-${PATCHSET_VER}.tar.gz"
-
-LICENSE="BSD-2"
-SLOT="0"
-KEYWORDS="amd64 ppc x86 ~amd64-linux ~x86-linux ~ppc-macos"
-IUSE="archive berkdb debug doc +gmp java +libedit libressl minimal odbc pcre qt5 readline ssl test uuid X yaml"
-RESTRICT="!test? ( test )"
-
-RDEPEND="sys-libs/ncurses:=
- sys-libs/zlib
- archive? ( app-arch/libarchive )
- berkdb? ( >=sys-libs/db-4:= )
- odbc? ( dev-db/unixODBC )
- pcre? ( dev-libs/libpcre )
- readline? ( sys-libs/readline:= )
- libedit? ( dev-libs/libedit )
- gmp? ( dev-libs/gmp:0 )
- ssl? (
- !libressl? ( dev-libs/openssl:0 )
- libressl? ( dev-libs/libressl )
- )
- java? ( >=virtual/jdk-1.7:= )
- uuid? ( dev-libs/ossp-uuid )
- qt5? (
- dev-qt/qtwidgets:5
- dev-qt/qtgui:5
- )
- X? (
- virtual/jpeg:0
- x11-libs/libX11
- x11-libs/libXft
- x11-libs/libXinerama
- x11-libs/libXpm
- x11-libs/libXt
- x11-libs/libICE
- x11-libs/libSM )
- yaml? ( dev-libs/libyaml )"
-
-DEPEND="${RDEPEND}
- X? ( x11-base/xorg-proto )
- java? ( test? ( =dev-java/junit-3.8* ) )"
-
-S="${WORKDIR}/swipl-${PV}"
-BUILD_DIR="${S}/build"
-CMAKE_USE_DIR="${S}"
-
-src_prepare() {
- if [[ -d "${WORKDIR}"/${PV} ]] ; then
- eapply "${WORKDIR}"/${PV}
- fi
- eapply_user
-
- sed -i -e "s|\(SWIPL_INSTALL_PREFIX\) lib/.*)|\1 $(get_libdir)/swipl)|" CMakeLists.txt || die
- sed -i -e "s|\(SWIPL_INSTALL_CMAKE_CONFIG_DIR\) lib/|\1 $(get_libdir)/|" CMakeLists.txt || die
-
- cmake-utils_src_prepare
-}
-
-src_configure() {
- append-flags -fno-strict-aliasing
- use debug && append-flags -DO_DEBUG
-
- mycmakeargs=(
- -DSWIPL_INSTALL_PREFIX=$(get_libdir)/swipl
- -DUSE_GMP=$(usex gmp)
- -DINSTALL_DOCUMENTATION=$(use doc && usex archive)
- -DSWIPL_PACKAGES_BASIC=$(usex !minimal)
- -DSWIPL_PACKAGES_ARCHIVE=$(usex archive)
- -DSWIPL_PACKAGES_ODBC=$(usex odbc)
- -DSWIPL_PACKAGES_BDB=$(usex berkdb)
- -DSWIPL_PACKAGES_PCRE=$(usex pcre)
- -DSWIPL_PACKAGES_YAML=$(usex yaml)
- -DSWIPL_PACKAGES_SSL=$(usex ssl)
- -DSWIPL_PACKAGES_JAVA=$(usex java)
- -DSWIPL_PACKAGES_QT=$(usex qt5)
- -DSWIPL_PACKAGES_X=$(usex X)
- -DSWIPL_PACKAGES_TERM=$(if use libedit || use readline; then echo yes; else echo no; fi)
- )
-
- cmake-utils_src_configure
-}
-
-src_compile() {
- XDG_CONFIG_DIRS="${HOME}" \
- XDG_DATA_DIRS="${HOME}" \
- cmake-utils_src_compile
-}
-
-src_test() {
- USE_PUBLIC_NETWORK_TESTS=false \
- USE_ODBC_TESTS=false \
- cmake-utils_src_test -V
-}
diff --git a/dev-lang/swi-prolog/swi-prolog-8.2.3.ebuild b/dev-lang/swi-prolog/swi-prolog-8.2.3.ebuild
deleted file mode 100644
index 801eae67bea6..000000000000
--- a/dev-lang/swi-prolog/swi-prolog-8.2.3.ebuild
+++ /dev/null
@@ -1,105 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit cmake-utils eutils flag-o-matic multilib
-
-PATCHSET_VER="0"
-
-DESCRIPTION="versatile implementation of the Prolog programming language"
-HOMEPAGE="https://www.swi-prolog.org/"
-SRC_URI="https://www.swi-prolog.org/download/stable/src/swipl-${PV}.tar.gz
- https://dev.gentoo.org/~keri/distfiles/swi-prolog/${P}-gentoo-patchset-${PATCHSET_VER}.tar.gz"
-
-LICENSE="BSD-2"
-SLOT="0"
-KEYWORDS="~amd64 ~ppc ~x86 ~amd64-linux ~x86-linux ~ppc-macos"
-IUSE="archive berkdb debug doc +gmp java +libedit libressl minimal odbc pcre qt5 readline ssl test uuid X yaml"
-RESTRICT="!test? ( test )"
-
-RDEPEND="sys-libs/ncurses:=
- sys-libs/zlib
- archive? ( app-arch/libarchive )
- berkdb? ( >=sys-libs/db-4:= )
- odbc? ( dev-db/unixODBC )
- pcre? ( dev-libs/libpcre )
- readline? ( sys-libs/readline:= )
- libedit? ( dev-libs/libedit )
- gmp? ( dev-libs/gmp:0 )
- ssl? (
- !libressl? ( dev-libs/openssl:0 )
- libressl? ( dev-libs/libressl )
- )
- java? ( >=virtual/jdk-1.7:= )
- uuid? ( dev-libs/ossp-uuid )
- qt5? (
- dev-qt/qtwidgets:5
- dev-qt/qtgui:5
- )
- X? (
- virtual/jpeg:0
- x11-libs/libX11
- x11-libs/libXft
- x11-libs/libXinerama
- x11-libs/libXpm
- x11-libs/libXt
- x11-libs/libICE
- x11-libs/libSM )
- yaml? ( dev-libs/libyaml )"
-
-DEPEND="${RDEPEND}
- X? ( x11-base/xorg-proto )
- java? ( test? ( =dev-java/junit-3.8* ) )"
-
-S="${WORKDIR}/swipl-${PV}"
-BUILD_DIR="${S}/build"
-CMAKE_USE_DIR="${S}"
-
-src_prepare() {
- if [[ -d "${WORKDIR}"/${PV} ]] ; then
- eapply "${WORKDIR}"/${PV}
- fi
- eapply_user
-
- sed -i -e "s|\(SWIPL_INSTALL_PREFIX\) lib/.*)|\1 $(get_libdir)/swipl)|" CMakeLists.txt || die
- sed -i -e "s|\(SWIPL_INSTALL_CMAKE_CONFIG_DIR\) lib/|\1 $(get_libdir)/|" CMakeLists.txt || die
-
- cmake-utils_src_prepare
-}
-
-src_configure() {
- append-flags -fno-strict-aliasing
- use debug && append-flags -DO_DEBUG
-
- mycmakeargs=(
- -DSWIPL_INSTALL_PREFIX=$(get_libdir)/swipl
- -DUSE_GMP=$(usex gmp)
- -DINSTALL_DOCUMENTATION=$(use doc && usex archive)
- -DSWIPL_PACKAGES_BASIC=$(usex !minimal)
- -DSWIPL_PACKAGES_ARCHIVE=$(usex archive)
- -DSWIPL_PACKAGES_ODBC=$(usex odbc)
- -DSWIPL_PACKAGES_BDB=$(usex berkdb)
- -DSWIPL_PACKAGES_PCRE=$(usex pcre)
- -DSWIPL_PACKAGES_YAML=$(usex yaml)
- -DSWIPL_PACKAGES_SSL=$(usex ssl)
- -DSWIPL_PACKAGES_JAVA=$(usex java)
- -DSWIPL_PACKAGES_QT=$(usex qt5)
- -DSWIPL_PACKAGES_X=$(usex X)
- -DSWIPL_PACKAGES_TERM=$(if use libedit || use readline; then echo yes; else echo no; fi)
- )
-
- cmake-utils_src_configure
-}
-
-src_compile() {
- XDG_CONFIG_DIRS="${HOME}" \
- XDG_DATA_DIRS="${HOME}" \
- cmake-utils_src_compile
-}
-
-src_test() {
- USE_PUBLIC_NETWORK_TESTS=false \
- USE_ODBC_TESTS=false \
- cmake-utils_src_test -V
-}
diff --git a/dev-lang/swi-prolog/swi-prolog-8.3.16.ebuild b/dev-lang/swi-prolog/swi-prolog-8.3.16.ebuild
deleted file mode 100644
index c9064992abbc..000000000000
--- a/dev-lang/swi-prolog/swi-prolog-8.3.16.ebuild
+++ /dev/null
@@ -1,104 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit cmake-utils eutils flag-o-matic multilib
-
-PATCHSET_VER="0"
-
-DESCRIPTION="versatile implementation of the Prolog programming language"
-HOMEPAGE="http://www.swi-prolog.org/"
-SRC_URI="http://www.swi-prolog.org/download/devel/src/swipl-${PV}.tar.gz"
-
-LICENSE="BSD-2"
-SLOT="0"
-KEYWORDS="~amd64 ~ppc ~x86 ~amd64-linux ~x86-linux ~ppc-macos"
-IUSE="archive berkdb debug doc +gmp java +libedit libressl minimal odbc pcre qt5 readline ssl test uuid X yaml"
-RESTRICT="!test? ( test )"
-
-RDEPEND="sys-libs/ncurses:=
- sys-libs/zlib
- archive? ( app-arch/libarchive )
- berkdb? ( >=sys-libs/db-4:= )
- odbc? ( dev-db/unixODBC )
- pcre? ( dev-libs/libpcre )
- readline? ( sys-libs/readline:= )
- libedit? ( dev-libs/libedit )
- gmp? ( dev-libs/gmp:0 )
- ssl? (
- !libressl? ( dev-libs/openssl:0 )
- libressl? ( dev-libs/libressl )
- )
- java? ( >=virtual/jdk-1.7:= )
- uuid? ( dev-libs/ossp-uuid )
- qt5? (
- dev-qt/qtwidgets:5
- dev-qt/qtgui:5
- )
- X? (
- virtual/jpeg:0
- x11-libs/libX11
- x11-libs/libXft
- x11-libs/libXinerama
- x11-libs/libXpm
- x11-libs/libXt
- x11-libs/libICE
- x11-libs/libSM )
- yaml? ( dev-libs/libyaml )"
-
-DEPEND="${RDEPEND}
- X? ( x11-base/xorg-proto )
- java? ( test? ( =dev-java/junit-3.8* ) )"
-
-S="${WORKDIR}/swipl-${PV}"
-BUILD_DIR="${S}/build"
-CMAKE_USE_DIR="${S}"
-
-src_prepare() {
- if [[ -d "${WORKDIR}"/${PV} ]] ; then
- eapply "${WORKDIR}"/${PV}
- fi
- eapply_user
-
- sed -i -e "s|\(SWIPL_INSTALL_PREFIX\) lib/.*)|\1 $(get_libdir)/swipl)|" CMakeLists.txt || die
- sed -i -e "s|\(SWIPL_INSTALL_CMAKE_CONFIG_DIR\) lib/|\1 $(get_libdir)/|" CMakeLists.txt || die
-
- cmake-utils_src_prepare
-}
-
-src_configure() {
- append-flags -fno-strict-aliasing
- use debug && append-flags -DO_DEBUG
-
- mycmakeargs=(
- -DSWIPL_INSTALL_PREFIX=$(get_libdir)/swipl
- -DUSE_GMP=$(usex gmp)
- -DINSTALL_DOCUMENTATION=$(use doc && usex archive)
- -DSWIPL_PACKAGES_BASIC=$(usex !minimal)
- -DSWIPL_PACKAGES_ARCHIVE=$(usex archive)
- -DSWIPL_PACKAGES_ODBC=$(usex odbc)
- -DSWIPL_PACKAGES_BDB=$(usex berkdb)
- -DSWIPL_PACKAGES_PCRE=$(usex pcre)
- -DSWIPL_PACKAGES_YAML=$(usex yaml)
- -DSWIPL_PACKAGES_SSL=$(usex ssl)
- -DSWIPL_PACKAGES_JAVA=$(usex java)
- -DSWIPL_PACKAGES_QT=$(usex qt5)
- -DSWIPL_PACKAGES_X=$(usex X)
- -DSWIPL_PACKAGES_TERM=$(if use libedit || use readline; then echo yes; else echo no; fi)
- )
-
- cmake-utils_src_configure
-}
-
-src_compile() {
- XDG_CONFIG_DIRS="${HOME}" \
- XDG_DATA_DIRS="${HOME}" \
- cmake-utils_src_compile
-}
-
-src_test() {
- USE_PUBLIC_NETWORK_TESTS=false \
- USE_ODBC_TESTS=false \
- cmake-utils_src_test -V
-}
diff --git a/dev-lang/swi-prolog/swi-prolog-8.3.17.ebuild b/dev-lang/swi-prolog/swi-prolog-8.3.17.ebuild
deleted file mode 100644
index c9064992abbc..000000000000
--- a/dev-lang/swi-prolog/swi-prolog-8.3.17.ebuild
+++ /dev/null
@@ -1,104 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit cmake-utils eutils flag-o-matic multilib
-
-PATCHSET_VER="0"
-
-DESCRIPTION="versatile implementation of the Prolog programming language"
-HOMEPAGE="http://www.swi-prolog.org/"
-SRC_URI="http://www.swi-prolog.org/download/devel/src/swipl-${PV}.tar.gz"
-
-LICENSE="BSD-2"
-SLOT="0"
-KEYWORDS="~amd64 ~ppc ~x86 ~amd64-linux ~x86-linux ~ppc-macos"
-IUSE="archive berkdb debug doc +gmp java +libedit libressl minimal odbc pcre qt5 readline ssl test uuid X yaml"
-RESTRICT="!test? ( test )"
-
-RDEPEND="sys-libs/ncurses:=
- sys-libs/zlib
- archive? ( app-arch/libarchive )
- berkdb? ( >=sys-libs/db-4:= )
- odbc? ( dev-db/unixODBC )
- pcre? ( dev-libs/libpcre )
- readline? ( sys-libs/readline:= )
- libedit? ( dev-libs/libedit )
- gmp? ( dev-libs/gmp:0 )
- ssl? (
- !libressl? ( dev-libs/openssl:0 )
- libressl? ( dev-libs/libressl )
- )
- java? ( >=virtual/jdk-1.7:= )
- uuid? ( dev-libs/ossp-uuid )
- qt5? (
- dev-qt/qtwidgets:5
- dev-qt/qtgui:5
- )
- X? (
- virtual/jpeg:0
- x11-libs/libX11
- x11-libs/libXft
- x11-libs/libXinerama
- x11-libs/libXpm
- x11-libs/libXt
- x11-libs/libICE
- x11-libs/libSM )
- yaml? ( dev-libs/libyaml )"
-
-DEPEND="${RDEPEND}
- X? ( x11-base/xorg-proto )
- java? ( test? ( =dev-java/junit-3.8* ) )"
-
-S="${WORKDIR}/swipl-${PV}"
-BUILD_DIR="${S}/build"
-CMAKE_USE_DIR="${S}"
-
-src_prepare() {
- if [[ -d "${WORKDIR}"/${PV} ]] ; then
- eapply "${WORKDIR}"/${PV}
- fi
- eapply_user
-
- sed -i -e "s|\(SWIPL_INSTALL_PREFIX\) lib/.*)|\1 $(get_libdir)/swipl)|" CMakeLists.txt || die
- sed -i -e "s|\(SWIPL_INSTALL_CMAKE_CONFIG_DIR\) lib/|\1 $(get_libdir)/|" CMakeLists.txt || die
-
- cmake-utils_src_prepare
-}
-
-src_configure() {
- append-flags -fno-strict-aliasing
- use debug && append-flags -DO_DEBUG
-
- mycmakeargs=(
- -DSWIPL_INSTALL_PREFIX=$(get_libdir)/swipl
- -DUSE_GMP=$(usex gmp)
- -DINSTALL_DOCUMENTATION=$(use doc && usex archive)
- -DSWIPL_PACKAGES_BASIC=$(usex !minimal)
- -DSWIPL_PACKAGES_ARCHIVE=$(usex archive)
- -DSWIPL_PACKAGES_ODBC=$(usex odbc)
- -DSWIPL_PACKAGES_BDB=$(usex berkdb)
- -DSWIPL_PACKAGES_PCRE=$(usex pcre)
- -DSWIPL_PACKAGES_YAML=$(usex yaml)
- -DSWIPL_PACKAGES_SSL=$(usex ssl)
- -DSWIPL_PACKAGES_JAVA=$(usex java)
- -DSWIPL_PACKAGES_QT=$(usex qt5)
- -DSWIPL_PACKAGES_X=$(usex X)
- -DSWIPL_PACKAGES_TERM=$(if use libedit || use readline; then echo yes; else echo no; fi)
- )
-
- cmake-utils_src_configure
-}
-
-src_compile() {
- XDG_CONFIG_DIRS="${HOME}" \
- XDG_DATA_DIRS="${HOME}" \
- cmake-utils_src_compile
-}
-
-src_test() {
- USE_PUBLIC_NETWORK_TESTS=false \
- USE_ODBC_TESTS=false \
- cmake-utils_src_test -V
-}
diff --git a/dev-lang/swi-prolog/swi-prolog-9.1.2-r1.ebuild b/dev-lang/swi-prolog/swi-prolog-9.1.2-r1.ebuild
new file mode 100644
index 000000000000..a776f624d4cb
--- /dev/null
+++ b/dev-lang/swi-prolog/swi-prolog-9.1.2-r1.ebuild
@@ -0,0 +1,177 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake desktop flag-o-matic java-pkg-opt-2 toolchain-funcs xdg
+
+PATCHSET_VER="0"
+
+MY_P="swipl-${PV}"
+DESCRIPTION="Versatile implementation of the Prolog programming language"
+HOMEPAGE="https://www.swi-prolog.org/"
+SRC_URI="https://www.swi-prolog.org/download/devel/src/${MY_P}.tar.gz"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="amd64 ~ppc x86 ~amd64-linux ~x86-linux ~ppc-macos"
+IUSE="X archive berkdb +cli debug doc +gmp gui +ipc java minimal odbc pcre pgo qt6 ssl test yaml"
+RESTRICT="!test? ( test )"
+
+# See cmake/PackageSelection.cmake and cmake/DocDepends.cmake
+REQUIRED_USE="
+ doc? ( archive )
+ minimal? ( !archive !doc !ipc !ssl !test )
+"
+
+COMMON_DEPEND="
+ sys-libs/ncurses:=
+ sys-libs/zlib:=
+ virtual/libcrypt:=
+ X? (
+ media-libs/freetype:2
+ media-libs/fontconfig:1.0
+ media-libs/libjpeg-turbo:=
+ x11-libs/libICE
+ x11-libs/libSM
+ x11-libs/libX11
+ x11-libs/libXft
+ x11-libs/libXinerama
+ x11-libs/libXpm
+ x11-libs/libXt
+ )
+ archive? ( app-arch/libarchive:= )
+ berkdb? ( >=sys-libs/db-4:= )
+ cli? (
+ dev-libs/libedit
+ sys-libs/readline:=
+ )
+ gmp? ( dev-libs/gmp:0= )
+ gui? (
+ !qt6? (
+ dev-qt/qtgui:5
+ dev-qt/qtwidgets:5
+ )
+ qt6? ( dev-qt/qtbase:6[gui,widgets] )
+ )
+ !minimal? ( dev-libs/ossp-uuid )
+ odbc? ( dev-db/unixODBC )
+ pcre? ( dev-libs/libpcre )
+ ssl? ( dev-libs/openssl:0= )
+ yaml? ( dev-libs/libyaml )
+"
+RDEPEND="${COMMON_DEPEND}
+ java? ( >=virtual/jre-1.8:* )
+"
+DEPEND="${COMMON_DEPEND}
+ X? ( x11-base/xorg-proto )
+ java? (
+ >=virtual/jdk-1.8:*
+ test? ( dev-java/junit:4 )
+ )
+"
+BDEPEND="virtual/pkgconfig"
+
+PATCHES=(
+ # Upstream in >= 9.1.3
+ "${FILESDIR}"/${P}-configure-clang16.patch
+)
+
+pkg_setup() {
+ java-pkg-opt-2_pkg_setup
+}
+
+src_prepare() {
+ if [[ -d "${WORKDIR}"/${PV} ]] ; then
+ eapply "${WORKDIR}"/${PV}
+ fi
+
+ sed \
+ -e "s|\(SWIPL_INSTALL_PREFIX\) lib/.*)|\1 $(get_libdir)/swipl)|" \
+ -e "s|\(SWIPL_INSTALL_CMAKE_CONFIG_DIR\) lib/|\1 $(get_libdir)/|" \
+ -i CMakeLists.txt || die
+
+ sed "s/ -Werror//g" \
+ -i cmake/GCCBuiltins.cmake \
+ -i cmake/Config.cmake \
+ -i packages/ssl/CMakeLists.txt || die
+
+ local ncurses_lib_flags=$($(tc-getPKG_CONFIG) --libs ncurses)
+ sed -i "/project(SWI-Prolog)/a set(CMAKE_REQUIRED_LIBRARIES \${CMAKE_REQUIRED_LIBRARIES} ${ncurses_lib_flags})" CMakeLists.txt || die
+ sed -i "s:\${CURSES_LIBRARIES}:${ncurses_lib_flags}:" src/CMakeLists.txt || die
+
+ java-pkg-opt-2_src_prepare
+ cmake_src_prepare
+}
+
+src_configure() {
+ # Lots of UB, see https://gcc.gnu.org/PR113521
+ filter-lto
+ append-flags -fno-strict-aliasing
+ use debug && append-flags -DO_DEBUG
+
+ if use pgo; then
+ CMAKE_BUILD_TYPE="PGO"
+ append-flags -Wno-error=coverage-mismatch
+ fi
+
+ local mycmakeargs=(
+ -DBUILD_TESTING=$(usex test)
+ -DINSTALL_DOCUMENTATION=$(usex doc)
+ -DSWIPL_INSTALL_PREFIX=$(get_libdir)/swipl
+ -DSWIPL_PACKAGES_ARCHIVE=$(usex archive)
+ -DSWIPL_PACKAGES_BASIC=$(usex !minimal)
+ -DSWIPL_PACKAGES_BDB=$(usex berkdb)
+ -DSWIPL_PACKAGES_JAVA=$(usex java)
+ -DSWIPL_PACKAGES_ODBC=$(usex odbc)
+ -DSWIPL_PACKAGES_PCRE=$(usex pcre)
+ -DSWIPL_PACKAGES_SSL=$(usex ssl)
+ -DSWIPL_PACKAGES_TERM=$(usex cli)
+ -DSWIPL_PACKAGES_TIPC=$(usex ipc)
+ -DSWIPL_PACKAGES_X=$(usex X)
+ -DSWIPL_PACKAGES_YAML=$(usex yaml)
+ -DUSE_GMP=$(usex gmp)
+ -DUSE_TCMALLOC=OFF
+ )
+
+ if use gui; then
+ mycmakeargs+=(
+ -DSWIPL_PACKAGES_QT=yes
+ $(cmake_use_find_package qt6 Qt6)
+ )
+ else
+ mycmakeargs+=( -DSWIPL_PACKAGES_QT=no )
+ fi
+
+ if use test && use java; then
+ mycmakeargs+=( -DJUNIT_JAR="${ESYSROOT}"/usr/share/junit-4/lib/junit.jar )
+ fi
+
+ export XDG_CONFIG_DIRS="${HOME}"
+ export XDG_DATA_DIRS="${HOME}"
+
+ cmake_src_configure
+}
+
+src_install() {
+ cmake_src_install
+
+ if use gui; then
+ doicon "${S}"/snap/gui/swipl.png
+ make_desktop_entry swipl-win "SWI-Prolog" swipl "Development"
+ fi
+}
+
+pkg_preinst() {
+ java-pkg-opt-2_pkg_preinst
+ use gui && xdg_pkg_preinst
+}
+
+pkg_postinst() {
+ use gui && xdg_pkg_postinst
+}
+
+pkg_postrm() {
+ use gui && xdg_pkg_postrm
+}
diff --git a/dev-lang/swig/Manifest b/dev-lang/swig/Manifest
index f6a629467024..09dc4fcf0f8b 100644
--- a/dev-lang/swig/Manifest
+++ b/dev-lang/swig/Manifest
@@ -1,3 +1,3 @@
-DIST swig-3.0.12.tar.gz 8149820 BLAKE2B 05ce913dedbbde26592619e0edc65050cb31a517f309c1188252cb8c276147cb28ebf4d8534c31b75c4ed8be5d42223b432a7318bf8eb5b2d4d528e5ff9a781b SHA512 5eaa2e06d8e4197fd02194051db1e518325dbb074a4c55a91099ad9c55193874f577764afc9029409a41bd520a95154095f26e33ef5add5c102bb2c1d98d33eb
-DIST swig-4.0.0.tar.gz 8052518 BLAKE2B a34eb17d795ba5b34ea7362f8f07d6a6e82fd4394a0159fcf608ffb27580f37fc722c4907f1fd6fa3322663662f8e11fecbcb2bc7b90405834ef35d6218d65c7 SHA512 c897b87fb8b21caf8d1bee2c39cb9675a3b0ee047110e808c310a2787f8b89585738726e9f517c64e9d2f1b8311136365c569528f399b444b1081f69689b7165
-DIST swig-4.0.2.tar.gz 8097014 BLAKE2B 4c36b7e9b9bf1663779aa31b0eda8a1fe443695d945bcc1642c3404b22e45440def85e58dd65dc18a2ca8c00ffdcfe0f1d75373b7becc0b0e5402fda90b8c29a SHA512 05e7da70ce6d9a733b96c0bcfa3c1b82765bd859f48c74759bbf4bb1467acb1809caa310cba5e2b3280cd704fca249eaa0624821dffae1d2a75097c7f55d14ed
+DIST swig-4.1.1.tar.gz 8600805 BLAKE2B 898d3405f20c3e49626fb808b568e77c69b81ec2401c0a0c406f9e7a3d7d218353dc8b8ae88a3d485ddfc3be659971b961ee2c89d5b0c75aed0688e0952fd208 SHA512 1cea1918455a75ebc9b2653dd1715bd5dcd974554955f324295c6a6f14c0a715651b221b85fad4a8af5197e0c75bfe7b590bc6ba7178c26245fbbd9a7e110100
+DIST swig-4.2.0.tar.gz 8339586 BLAKE2B 4f1c3c7d4b1e218b67a2d796d2171df73971036a433e5fb80233b3050f022d578efdff28fc44d98a6d176ec6270b4942f5f56e9a74bbd8b30d6836c76c620a04 SHA512 b7f508b25bc6e882ed6123f6c7ad12b02a7b74de09ac6e5789968e9c2f51407d1e3dafd5ea495087b4fb0f447ecce17e6070471479c67c4265166d8342a10862
+DIST swig-4.2.1.tar.gz 8364050 BLAKE2B 0acffd4794d09f2347d669d1460a794c03f136ab3ddc6623741e182ff52b6bf5f639c736e38540918ebb1abbe36c2ce1957aef8a429f1a716d9c5361175569bf SHA512 019dee5a46d57e1030eef47cd5d007ccaadbdcd4e53cd30d7c795f0118ecf4406a78185534502c81c5f6d7bac0713256e7e19b20b5a2d14e2c552219edbaf5cf
diff --git a/dev-lang/swig/files/swig-4.1.1-ccache-configure-clang16.patch b/dev-lang/swig/files/swig-4.1.1-ccache-configure-clang16.patch
new file mode 100644
index 000000000000..b2fefd1356fb
--- /dev/null
+++ b/dev-lang/swig/files/swig-4.1.1-ccache-configure-clang16.patch
@@ -0,0 +1,32 @@
+https://github.com/swig/swig/pull/2483
+
+From 784dfc917e99429bdbb70fb9dd80c16dfeb73659 Mon Sep 17 00:00:00 2001
+From: Florian Weimer <fweimer@redhat.com>
+Date: Thu, 12 Jan 2023 17:49:40 +0100
+Subject: [PATCH] CCache: Do not rely on C89-only features in configure.ac
+
+Add missing #include directives to obtain additional function
+prototypes. This avoids altering the result of this test with C99
+compilers which do not support implicit function declarations.
+--- a/CCache/configure.ac
++++ b/CCache/configure.ac
+@@ -63,6 +63,9 @@ AC_CACHE_CHECK([for C99 vsnprintf],ccache_cv_HAVE_C99_VSNPRINTF,[
+ AC_RUN_IFELSE([AC_LANG_SOURCE([[
+ #include <sys/types.h>
+ #include <stdarg.h>
++#include <stdio.h>
++#include <stdlib.h>
++#include <string.h>
+ void foo(const char *format, ...) {
+ va_list ap;
+ int len;
+@@ -77,7 +80,7 @@ void foo(const char *format, ...) {
+
+ exit(0);
+ }
+-main() { foo("hello"); }
++int main(void) { foo("hello"); }
+ ]])],[ccache_cv_HAVE_C99_VSNPRINTF=yes],[ccache_cv_HAVE_C99_VSNPRINTF=no],[ccache_cv_HAVE_C99_VSNPRINTF=cross])])
+ if test x"$ccache_cv_HAVE_C99_VSNPRINTF" = x"yes"; then
+ AC_DEFINE(HAVE_C99_VSNPRINTF, 1, [ ])
+
diff --git a/dev-lang/swig/metadata.xml b/dev-lang/swig/metadata.xml
index 6037d8308532..9643318f6cf3 100644
--- a/dev-lang/swig/metadata.xml
+++ b/dev-lang/swig/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>scheme@gentoo.org</email>
diff --git a/dev-lang/swig/swig-3.0.12.ebuild b/dev-lang/swig/swig-3.0.12.ebuild
deleted file mode 100644
index fc8b43deec07..000000000000
--- a/dev-lang/swig/swig-3.0.12.ebuild
+++ /dev/null
@@ -1,35 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-DESCRIPTION="Simplified Wrapper and Interface Generator"
-HOMEPAGE="http://www.swig.org/"
-SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
-
-LICENSE="GPL-3+ BSD BSD-2"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
-IUSE="ccache doc pcre"
-RESTRICT="test"
-
-DEPEND="pcre? ( dev-libs/libpcre )
- ccache? ( sys-libs/zlib )"
-RDEPEND="${DEPEND}"
-
-DOCS=( ANNOUNCE CHANGES CHANGES.current README TODO )
-
-src_configure() {
- econf \
- $(use_enable ccache) \
- $(use_with pcre)
-}
-
-src_install() {
- default
-
- if use doc; then
- docinto html
- dodoc -r Doc/{Devel,Manual}
- fi
-}
diff --git a/dev-lang/swig/swig-4.0.0.ebuild b/dev-lang/swig/swig-4.0.0.ebuild
deleted file mode 100644
index a9035ba0553e..000000000000
--- a/dev-lang/swig/swig-4.0.0.ebuild
+++ /dev/null
@@ -1,46 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit toolchain-funcs
-
-DESCRIPTION="Simplified Wrapper and Interface Generator"
-HOMEPAGE="http://www.swig.org/"
-SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
-
-LICENSE="GPL-3+ BSD BSD-2"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
-IUSE="ccache doc pcre"
-RESTRICT="test"
-
-DEPEND="pcre? ( dev-libs/libpcre )
- ccache? ( sys-libs/zlib )"
-RDEPEND="${DEPEND}"
-
-DOCS=( ANNOUNCE CHANGES CHANGES.current README TODO )
-
-src_prepare() {
- default
- # https://github.com/swig/swig/pull/1796
- sed -i \
- -e '/if pkg-config javascriptcoregtk-1.0/s:pkg-config:$PKGCONFIG:' \
- configure || die
-}
-
-src_configure() {
- econf \
- PKGCONFIG="$(tc-getPKG_CONFIG)" \
- $(use_enable ccache) \
- $(use_with pcre)
-}
-
-src_install() {
- default
-
- if use doc; then
- docinto html
- dodoc -r Doc/{Devel,Manual}
- fi
-}
diff --git a/dev-lang/swig/swig-4.0.2.ebuild b/dev-lang/swig/swig-4.0.2.ebuild
deleted file mode 100644
index 74f6f78e1b1a..000000000000
--- a/dev-lang/swig/swig-4.0.2.ebuild
+++ /dev/null
@@ -1,38 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit toolchain-funcs
-
-DESCRIPTION="Simplified Wrapper and Interface Generator"
-HOMEPAGE="http://www.swig.org/ https://github.com/swig/swig"
-SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
-
-LICENSE="GPL-3+ BSD BSD-2"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
-IUSE="ccache doc pcre"
-RESTRICT="test"
-
-DEPEND="pcre? ( dev-libs/libpcre )
- ccache? ( sys-libs/zlib )"
-RDEPEND="${DEPEND}"
-
-DOCS=( ANNOUNCE CHANGES CHANGES.current README TODO )
-
-src_configure() {
- econf \
- PKGCONFIG="$(tc-getPKG_CONFIG)" \
- $(use_enable ccache) \
- $(use_with pcre)
-}
-
-src_install() {
- default
-
- if use doc; then
- docinto html
- dodoc -r Doc/{Devel,Manual}
- fi
-}
diff --git a/dev-lang/swig/swig-4.1.1-r1.ebuild b/dev-lang/swig/swig-4.1.1-r1.ebuild
new file mode 100644
index 000000000000..fc66fd73dc95
--- /dev/null
+++ b/dev-lang/swig/swig-4.1.1-r1.ebuild
@@ -0,0 +1,61 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools toolchain-funcs
+
+DESCRIPTION="Simplified Wrapper and Interface Generator"
+HOMEPAGE="http://www.swig.org/ https://github.com/swig/swig"
+SRC_URI="https://downloads.sourceforge.net/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-3+ BSD BSD-2"
+SLOT="0"
+KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+IUSE="ccache doc pcre test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ pcre? ( dev-libs/libpcre2 )
+ ccache? ( sys-libs/zlib )
+"
+DEPEND="
+ ${RDEPEND}
+ test? ( dev-libs/boost )
+"
+BDEPEND="virtual/pkgconfig"
+
+DOCS=( ANNOUNCE CHANGES CHANGES.current README TODO )
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-4.1.1-ccache-configure-clang16.patch
+)
+
+src_prepare() {
+ default
+
+ # Only needed for Clang 16 patch
+ ln -s "${S}"/Tools CCache/ || die
+ AT_M4DIR="Tools/config" eautoreconf
+}
+
+src_configure() {
+ econf \
+ PKGCONFIG="$(tc-getPKG_CONFIG)" \
+ $(use_enable ccache) \
+ $(use_with pcre)
+}
+
+src_test() {
+ # The tests won't get run w/o an explicit call, broken Makefiles?
+ emake check
+}
+
+src_install() {
+ default
+
+ if use doc; then
+ docinto html
+ dodoc -r Doc/{Devel,Manual}
+ fi
+}
diff --git a/dev-lang/swig/swig-4.2.0.ebuild b/dev-lang/swig/swig-4.2.0.ebuild
new file mode 100644
index 000000000000..4e5082167be1
--- /dev/null
+++ b/dev-lang/swig/swig-4.2.0.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+DESCRIPTION="Simplified Wrapper and Interface Generator"
+HOMEPAGE="http://www.swig.org/ https://github.com/swig/swig"
+SRC_URI="https://downloads.sourceforge.net/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-3+ BSD BSD-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+IUSE="ccache doc pcre test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ pcre? ( dev-libs/libpcre2 )
+ ccache? ( sys-libs/zlib )
+"
+DEPEND="
+ ${RDEPEND}
+ test? ( dev-libs/boost )
+"
+BDEPEND="virtual/pkgconfig"
+
+DOCS=( ANNOUNCE CHANGES CHANGES.current README TODO )
+
+src_configure() {
+ econf \
+ PKGCONFIG="$(tc-getPKG_CONFIG)" \
+ $(use_enable ccache) \
+ $(use_with pcre)
+}
+
+src_test() {
+ # The tests won't get run w/o an explicit call, broken Makefiles?
+ emake check
+}
+
+src_install() {
+ default
+
+ if use doc; then
+ docinto html
+ dodoc -r Doc/{Devel,Manual}
+ fi
+}
diff --git a/dev-lang/swig/swig-4.2.1.ebuild b/dev-lang/swig/swig-4.2.1.ebuild
new file mode 100644
index 000000000000..9768e5632ec5
--- /dev/null
+++ b/dev-lang/swig/swig-4.2.1.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+DESCRIPTION="Simplified Wrapper and Interface Generator"
+HOMEPAGE="http://www.swig.org/ https://github.com/swig/swig"
+SRC_URI="https://downloads.sourceforge.net/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-3+ BSD BSD-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+IUSE="ccache doc pcre test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ pcre? ( dev-libs/libpcre2 )
+ ccache? ( sys-libs/zlib )
+"
+DEPEND="
+ ${RDEPEND}
+ test? ( dev-libs/boost )
+"
+BDEPEND="virtual/pkgconfig"
+
+DOCS=( ANNOUNCE CHANGES CHANGES.current README TODO )
+
+src_configure() {
+ # TODO: add USE for various langs? (https://bugs.gentoo.org/921504#c3)
+ econf \
+ PKGCONFIG="$(tc-getPKG_CONFIG)" \
+ --without-maximum-compile-warnings \
+ $(use_enable ccache) \
+ $(use_with pcre)
+}
+
+src_test() {
+ # The tests won't get run w/o an explicit call, broken Makefiles?
+ # java skipped for bug #921504
+ emake skip-java=true check
+}
+
+src_install() {
+ default
+
+ if use doc; then
+ docinto html
+ dodoc -r Doc/{Devel,Manual}
+ fi
+}
diff --git a/dev-lang/tcc/Manifest b/dev-lang/tcc/Manifest
index 170ccf6bd979..5d342ed19601 100644
--- a/dev-lang/tcc/Manifest
+++ b/dev-lang/tcc/Manifest
@@ -1 +1,2 @@
-DIST tcc-0.9.27.tar.bz2 634999 BLAKE2B 9a76dac9f54fa0b64a72e874cfec9a4bd9b938d244d064b2e76bd31acfb9e48fdbdb8895132634be1dee4302293405bf75606a6804c8178afa8fd30daa53b73a SHA512 835184292d97c07f0ff7b36ec550e855e649b04e23c7e2a1c706d223409eb60708dc1ae969f28eba45e56c8b96ae56936b93caf9d8a13ac5adf119014d5367a7
+DIST tcc-0.9.27_p20211022.tar.gz 893631 BLAKE2B f1a82498db65a9944f04a6c35897db6ceeea0e5d14ac383acc6b334fb2aa921a0e7b4badf647c101d064ceae1ee8d79ab91674a2d0faa2899b831a57e6148174 SHA512 5f40a0d31d63e876d1fb233758d9f58be2f14807bbc0847b7df3eb6bb8df0946100b58edb5a29caea8770201d02275daf0a3ca7668141151e931204ad7100fb3
+DIST tcc-0.9.27_p20230223.tar.gz 944179 BLAKE2B a8f77baf53846987f15a9005e100f109458e89805f0a6c7daafa55f8c22e0b47ca034cd8332839ef2a9e5840baa963e8a9185aa7fe4640ff89e5225f5be201b1 SHA512 335e40229572fa2dad82485d357349e26f4c999ea6622d3d3caa4b8eef357b2c5b56f76565e98073e57691b9adc919ded88ff015f9a95a86ce453392938b42f4
diff --git a/dev-lang/tcc/metadata.xml b/dev-lang/tcc/metadata.xml
index 4f503c94254e..1ab427e8f0b6 100644
--- a/dev-lang/tcc/metadata.xml
+++ b/dev-lang/tcc/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>dlan@gentoo.org</email>
diff --git a/dev-lang/tcc/tcc-0.9.27.ebuild b/dev-lang/tcc/tcc-0.9.27_p20211022.ebuild
index 7090fdeb01d1..c26113ad0aff 100644
--- a/dev-lang/tcc/tcc-0.9.27.ebuild
+++ b/dev-lang/tcc/tcc-0.9.27_p20211022.ebuild
@@ -1,26 +1,42 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI="6"
+EAPI=8
-inherit toolchain-funcs
+inherit flag-o-matic toolchain-funcs
+MY_COMMIT="16456168430c9e185dd94b8215aa77d02bbb8a2c"
DESCRIPTION="A very small C compiler for ix86/amd64"
-HOMEPAGE="https://bellard.org/tcc/"
-SRC_URI="https://download.savannah.gnu.org/releases/tinycc/${P}.tar.bz2"
+HOMEPAGE="https://bellard.org/tcc/ https://repo.or.cz/tinycc.git/"
+
+if [[ ${PV} == *9999* ]]; then
+ EGIT_REPO_URI="https://repo.or.cz/r/tinycc.git"
+ inherit git-r3
+elif [[ ${PV} == *_p* ]] ; then
+ SRC_URI="https://repo.or.cz/tinycc.git/snapshot/${MY_COMMIT}.tar.gz -> ${P}.tar.gz"
+ S="${WORKDIR}"/tinycc-1645616
+else
+ SRC_URI="https://download.savannah.gnu.org/releases/tinycc/${P}.tar.bz2"
+fi
LICENSE="LGPL-2.1"
SLOT="0"
-KEYWORDS="~amd64 ~x86 ~amd64-linux"
+if [[ ${PV} != *9999* ]] ; then
+ KEYWORDS="amd64 ~arm64 ~riscv ~x86 ~amd64-linux"
+fi
-DEPEND="dev-lang/perl" # doc generation
-RDEPEND=""
+BDEPEND="dev-lang/perl" # doc generation
IUSE="test"
RESTRICT="!test? ( test )"
src_prepare() {
+ default
+
# Don't strip
- sed -i -e 's|$(INSTALL) -s|$(INSTALL)|' Makefile || die
+ sed -i \
+ -e 's|$(INSTALL) -s|$(INSTALL)|' \
+ -e 's|STRIP_yes = -s|STRIP_yes =|' \
+ Makefile || die
# Fix examples
sed -i -e '1{
@@ -29,25 +45,44 @@ src_prepare() {
}' examples/ex*.c || die
sed -i -e '1s/$/ -lX11/' examples/ex4.c || die
+ # bug 888115
+ sed -i -e "s|/usr/local/bin/tcc|/usr/bin/tcc|g" tcc-doc.texi || die
+
# Fix texi2html invocation
sed -i -e 's/-number//' Makefile || die
sed -i -e 's/--sections//' Makefile || die
-
- eapply_user
}
src_configure() {
+ # fails tests
+ # https://bugs.gentoo.org/866815
+ #
+ # Also distributes static libraries:
+ # https://bugs.gentoo.org/926120
+ filter-lto
+
+ local libc
+
use test && unset CFLAGS LDFLAGS # Tests run with CC=tcc etc, they will fail hard otherwise
# better fixes welcome, it feels wrong to hack the env like this
+
+ use elibc_musl && libc=musl
+
# not autotools, so call configure directly
./configure --cc="$(tc-getCC)" \
+ ${libc:+--config-${libc}} \
--prefix="${EPREFIX}/usr" \
--libdir="${EPREFIX}/usr/$(get_libdir)" \
--docdir="${EPREFIX}/usr/share/doc/${PF}"
}
src_compile() {
- emake AR="$(tc-getAR)"
+ emake AR="$(tc-getAR)" LDFLAGS="${LDFLAGS}"
+}
+
+src_test() {
+ # this is using tcc bits that don't know as-needed etc.
+ TCCFLAGS="" emake test
}
src_install() {
@@ -58,8 +93,3 @@ src_install() {
exeinto /usr/share/doc/${PF}/examples
doexe examples/ex*.c
}
-
-src_test() {
- # this is using tcc bits that don't know as-needed etc.
- TCCFLAGS="" emake test
-}
diff --git a/dev-lang/tcc/tcc-0.9.27_p20230223.ebuild b/dev-lang/tcc/tcc-0.9.27_p20230223.ebuild
new file mode 100644
index 000000000000..700abda72d4c
--- /dev/null
+++ b/dev-lang/tcc/tcc-0.9.27_p20230223.ebuild
@@ -0,0 +1,95 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit flag-o-matic toolchain-funcs
+
+MY_COMMIT="29ae3ed4d5b83eec43598d6cd7949bccb41c8083"
+DESCRIPTION="A very small C compiler for ix86/amd64"
+HOMEPAGE="https://bellard.org/tcc/ https://repo.or.cz/tinycc.git/"
+
+if [[ ${PV} == *9999* ]]; then
+ EGIT_REPO_URI="https://repo.or.cz/r/tinycc.git"
+ inherit git-r3
+elif [[ ${PV} == *_p* ]] ; then
+ SRC_URI="https://repo.or.cz/tinycc.git/snapshot/${MY_COMMIT}.tar.gz -> ${P}.tar.gz"
+ S="${WORKDIR}"/tinycc-29ae3ed
+else
+ SRC_URI="https://download.savannah.gnu.org/releases/tinycc/${P}.tar.bz2"
+fi
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+if [[ ${PV} != *9999* ]] ; then
+ KEYWORDS="~amd64 ~arm64 ~riscv ~x86 ~amd64-linux"
+fi
+
+BDEPEND="dev-lang/perl" # doc generation
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+src_prepare() {
+ default
+
+ # Don't strip
+ sed -i \
+ -e 's|$(INSTALL) -s|$(INSTALL)|' \
+ -e 's|STRIP_yes = -s|STRIP_yes =|' \
+ Makefile || die
+
+ # Fix examples
+ sed -i -e '1{
+ i#! /usr/bin/tcc -run
+ /^#!/d
+ }' examples/ex*.c || die
+ sed -i -e '1s/$/ -lX11/' examples/ex4.c || die
+
+ # bug 888115
+ sed -i -e "s|/usr/local/bin/tcc|/usr/bin/tcc|g" tcc-doc.texi || die
+
+ # Fix texi2html invocation
+ sed -i -e 's/-number//' Makefile || die
+ sed -i -e 's/--sections//' Makefile || die
+}
+
+src_configure() {
+ # fails tests
+ # https://bugs.gentoo.org/866815
+ #
+ # Also distributes static libraries:
+ # https://bugs.gentoo.org/926120
+ filter-lto
+
+ local libc
+
+ use test && unset CFLAGS LDFLAGS # Tests run with CC=tcc etc, they will fail hard otherwise
+ # better fixes welcome, it feels wrong to hack the env like this
+
+ use elibc_musl && libc=musl
+
+ # not autotools, so call configure directly
+ ./configure --cc="$(tc-getCC)" \
+ ${libc:+--config-${libc}} \
+ --prefix="${EPREFIX}/usr" \
+ --libdir="${EPREFIX}/usr/$(get_libdir)" \
+ --docdir="${EPREFIX}/usr/share/doc/${PF}"
+}
+
+src_compile() {
+ emake AR="$(tc-getAR)" LDFLAGS="${LDFLAGS}"
+}
+
+src_test() {
+ # this is using tcc bits that don't know as-needed etc.
+ TCCFLAGS="" emake test
+}
+
+src_install() {
+ emake DESTDIR="${D}" install
+
+ dodoc Changelog README TODO VERSION
+ #dohtml tcc-doc.html
+ exeinto /usr/share/doc/${PF}/examples
+ doexe examples/ex*.c
+}
diff --git a/dev-lang/tcc/tcc-9999.ebuild b/dev-lang/tcc/tcc-9999.ebuild
index 4c61d36c9431..c9e9a83a18e4 100644
--- a/dev-lang/tcc/tcc-9999.ebuild
+++ b/dev-lang/tcc/tcc-9999.ebuild
@@ -1,35 +1,42 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI="6"
+EAPI=8
+inherit flag-o-matic toolchain-funcs
+
+MY_COMMIT="16456168430c9e185dd94b8215aa77d02bbb8a2c"
DESCRIPTION="A very small C compiler for ix86/amd64"
-HOMEPAGE="https://bellard.org/tcc/"
+HOMEPAGE="https://bellard.org/tcc/ https://repo.or.cz/tinycc.git/"
-if [[ $PV == *9999* ]]; then
+if [[ ${PV} == *9999* ]]; then
EGIT_REPO_URI="https://repo.or.cz/r/tinycc.git"
- KEYWORDS=""
- SRC_URI=""
- scm_eclass=git-r3
+ inherit git-r3
+elif [[ ${PV} == *_p* ]] ; then
+ SRC_URI="https://repo.or.cz/tinycc.git/snapshot/${MY_COMMIT}.tar.gz -> ${P}.tar.gz"
+ S="${WORKDIR}"/tinycc-1645616
else
- KEYWORDS="~amd64 ~x86 ~amd64-linux"
SRC_URI="https://download.savannah.gnu.org/releases/tinycc/${P}.tar.bz2"
fi
-inherit toolchain-funcs ${scm_eclass}
-
LICENSE="LGPL-2.1"
SLOT="0"
+if [[ ${PV} != *9999* ]] ; then
+ KEYWORDS="~amd64 ~arm64 ~riscv ~x86 ~amd64-linux"
+fi
-DEPEND="dev-lang/perl" # doc generation
-# Both tendra and tinycc install /usr/bin/tcc
-RDEPEND="!dev-lang/tendra"
+BDEPEND="dev-lang/perl" # doc generation
IUSE="test"
RESTRICT="!test? ( test )"
src_prepare() {
+ default
+
# Don't strip
- sed -i -e 's|$(INSTALL) -s|$(INSTALL)|' Makefile || die
+ sed -i \
+ -e 's|$(INSTALL) -s|$(INSTALL)|' \
+ -e 's|STRIP_yes = -s|STRIP_yes =|' \
+ Makefile || die
# Fix examples
sed -i -e '1{
@@ -38,25 +45,44 @@ src_prepare() {
}' examples/ex*.c || die
sed -i -e '1s/$/ -lX11/' examples/ex4.c || die
- # fix texi2html invocation
+ # bug 888115
+ sed -i -e "s|/usr/local/bin/tcc|/usr/bin/tcc|g" tcc-doc.texi || die
+
+ # Fix texi2html invocation
sed -i -e 's/-number//' Makefile || die
sed -i -e 's/--sections//' Makefile || die
-
- eapply_user
}
src_configure() {
+ # fails tests
+ # https://bugs.gentoo.org/866815
+ #
+ # Also distributes static libraries:
+ # https://bugs.gentoo.org/926120
+ filter-lto
+
+ local libc
+
use test && unset CFLAGS LDFLAGS # Tests run with CC=tcc etc, they will fail hard otherwise
# better fixes welcome, it feels wrong to hack the env like this
+
+ use elibc_musl && libc=musl
+
# not autotools, so call configure directly
./configure --cc="$(tc-getCC)" \
+ ${libc:+--config-${libc}} \
--prefix="${EPREFIX}/usr" \
--libdir="${EPREFIX}/usr/$(get_libdir)" \
--docdir="${EPREFIX}/usr/share/doc/${PF}"
}
src_compile() {
- emake AR="$(tc-getAR)"
+ emake AR="$(tc-getAR)" LDFLAGS="${LDFLAGS}"
+}
+
+src_test() {
+ # this is using tcc bits that don't know as-needed etc.
+ TCCFLAGS="" emake test
}
src_install() {
@@ -67,8 +93,3 @@ src_install() {
exeinto /usr/share/doc/${PF}/examples
doexe examples/ex*.c
}
-
-src_test() {
- # this is using tcc bits that don't know as-needed etc.
- TCCFLAGS="" emake test
-}
diff --git a/dev-lang/tcl/Manifest b/dev-lang/tcl/Manifest
index 818fcffed093..68931da00ce6 100644
--- a/dev-lang/tcl/Manifest
+++ b/dev-lang/tcl/Manifest
@@ -1,5 +1,4 @@
-DIST tcl-core8.6.10-src.tar.gz 6008840 BLAKE2B 592f708492e56da3577f190adc3da4f2979f32a570dfc29cb53fde58a83d804223dfe9527b76d094de3005a6e12dda73674573bab3af2e591b4573163b81b9c0 SHA512 de31ac8fc5226c831198af88befa05ccb1842dcfd209690e25b907f062033b3ae7a77bc12e85c4210ce85cfd7c598060e03fc81b0e624d422bfe4df655cc9068
DIST tcl-core8.6.11-src.tar.gz 6041050 BLAKE2B 9c41d5ae5d22627b903d18c5ca607d4a2647d7af65d3029a463cf571d3fbe0bd48e15fef643e81de94296777985a36530a83718d4eb7befca4bc107ab860cc0d SHA512 fe3556c37305e3856743e9a202a320d44b1b3cbc926a1b7a4449ae5baf2f8df92214a9aa06f0a87645d032857fb71458fc864ff007fd73da60463ae5001f2d3f
-DIST tcl-core8.6.8-src.tar.gz 5887483 BLAKE2B 2b8428652e451b817fe63a811f910001929cdcbc8a8361cdf4f7df8e13cbf9b18c94a91c22c0f09cc46dc0174a66c44774b485539a8f24c14faee6658547b6b8 SHA512 36e6079b582c205e8c89435b361ef96550541357f473aea2ca4e6f01bd84e50ebd1474a75a1ae90640b9a5b392fb01ddfa71f0fa28e409b3569d88c32b4ddb69
-DIST tcl-core8.6.9-src.tar.gz 5932010 BLAKE2B ddc0cff12aeeebbf8d1c799db9e154a9ecbe2a2e2afce97c6f15c408301b7a40119bd1c861aa724c178bd9abfe0616c7bcafd9cf6714ed49cf882c9085222cf3 SHA512 306a38a27729b764bae2eae6c4cdd8cd6aee5de6bd924d6a487c8691ee874e4459abc1fa785183c2f6ff4d2d57be98093dd7460c5a668cf994e8f1c31516ae67
-DIST tcl8.5.17-src.tar.gz 4546317 BLAKE2B 27031dd3bd5790d03692e77edf91eb7fae8a40d8d193d8c8ce4e79b21f90e683bfc9d5b71764760223987fb163be844e6096d0aea1058b8ce255731d97e2a0ea SHA512 ad5ddb4cd6378fd6bbea8cd85ceb1cf90392b2e8c49fbfb3e4b35c81d3ae3e3f087697c41fcba8c8e06de1d9e7539397e26d58b864dc01ba65abe4ba4efa9568
+DIST tcl-core8.6.12-src.tar.gz 6064625 BLAKE2B 30dc780562aa6955e2c417798cc96fabd23e947cee81146dc192156598e3c43f588864aab4392d62901b8964cf59bedb6cad1f064e32b03dd9733b3a0a7b5c8a SHA512 7144a50d19d3855edbda14b538cc94fe26c0dd357b979676c3fe02d599dab61ba777bf14f6aaebb63e238aeff1d0bad25ea7b0ff31b2398468f67fc0a305b9f3
+DIST tcl-core8.6.13-src.tar.gz 6370805 BLAKE2B f5af3c0fa2d52c09ab16578c9147cb5ac4a06b81882c49f1ef23642bed32adccbe2a5acbddc5d18bd1757e1991daf864707d842e675f92c6de70be6f4275b95e SHA512 c1c953ac0f9a530d8256514c0cb78f166d0063db725b87fa19272716a955cd390ff8f1c5f17e791cf463284d88bb136d61194779a913a6a78f46146d485c71ee
+DIST tcl-core8.6.14-src.tar.gz 7081644 BLAKE2B 7148c889954d78774c4352ceae5d814498a1670423a2b3ed288786dce97b87d42395b817ef92fc6561358d84736619ef03d1c2e2c502433c4b3f5eb7c80a62e8 SHA512 495b13af817c68d81533c45345d003efd711ddbc5c1a3d1fbbdb10452fa62d91e649f77835239e547355ade84abfea6ae843d2e76de6108532054170a672ddc0
diff --git a/dev-lang/tcl/files/tcl-8.5.13-multilib.patch b/dev-lang/tcl/files/tcl-8.5.13-multilib.patch
deleted file mode 100644
index 8c4bc7482189..000000000000
--- a/dev-lang/tcl/files/tcl-8.5.13-multilib.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/unix/configure.in
-+++ b/unix/configure.in
-@@ -645,7 +645,7 @@
-
- eval "TCL_LIB_FILE=${TCL_LIB_FILE}"
-
--TCL_LIBRARY='$(prefix)/lib/tcl$(VERSION)'
-+TCL_LIBRARY='$(libdir)/tcl$(VERSION)'
- PRIVATE_INCLUDE_DIR='$(includedir)'
- HTML_DIR='$(DISTDIR)/html'
-
diff --git a/dev-lang/tcl/files/tcl-8.5.14-conf.patch b/dev-lang/tcl/files/tcl-8.5.14-conf.patch
deleted file mode 100644
index a8b3aa021014..000000000000
--- a/dev-lang/tcl/files/tcl-8.5.14-conf.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/unix/tcl.m4
-+++ b/unix/tcl.m4
-@@ -1427,7 +1427,7 @@ dnl AC_CHECK_TOOL(AR, ar)
- # get rid of the warnings.
- #CFLAGS_OPTIMIZE="${CFLAGS_OPTIMIZE} -D__NO_STRING_INLINES -D__NO_MATH_INLINES"
-
-- SHLIB_LD='${CC} -shared ${CFLAGS} ${LDFLAGS}'
-+ SHLIB_LD='${CC} -shared ${CFLAGS} ${LDFLAGS} -fPIC -Wl,-soname,${@}'
- DL_OBJS="tclLoadDl.o"
- DL_LIBS="-ldl"
- LDFLAGS="$LDFLAGS -Wl,--export-dynamic"
diff --git a/dev-lang/tcl/files/tcl-8.6.12-configure-clang16.patch b/dev-lang/tcl/files/tcl-8.6.12-configure-clang16.patch
new file mode 100644
index 000000000000..8714faccbe1b
--- /dev/null
+++ b/dev-lang/tcl/files/tcl-8.6.12-configure-clang16.patch
@@ -0,0 +1,31 @@
+https://github.com/tcltk/tcl/commit/5eb33c5c7e9d6b703275b680f337691ecfe38f2a
+
+From 5eb33c5c7e9d6b703275b680f337691ecfe38f2a Mon Sep 17 00:00:00 2001
+From: "jan.nijtmans" <nijtmans@users.sourceforge.net>
+Date: Sun, 7 Nov 2021 21:34:08 +0000
+Subject: [PATCH] Fix [15845d9fd8]: unix/tcl.m4: implicit declaration of exit()
+ in timezone variable checks
+
+--- a/unix/tcl.m4
++++ b/unix/tcl.m4
+@@ -2349,7 +2349,8 @@ AC_DEFUN([SC_TIME_HANDLER], [
+ # (like convex) have timezone functions, etc.
+ #
+ AC_CACHE_CHECK([long timezone variable], tcl_cv_timezone_long, [
+- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <time.h>]],
++ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <time.h>
++#include <stdlib.h>]],
+ [[extern long timezone;
+ timezone += 1;
+ exit (0);]])],
+@@ -2361,7 +2362,8 @@ AC_DEFUN([SC_TIME_HANDLER], [
+ # On some systems (eg IRIX 6.2), timezone is a time_t and not a long.
+ #
+ AC_CACHE_CHECK([time_t timezone variable], tcl_cv_timezone_time, [
+- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <time.h>]],
++ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <time.h>
++#include <stdlib.h>]],
+ [[extern time_t timezone;
+ timezone += 1;
+ exit (0);]])],
+
diff --git a/dev-lang/tcl/files/tcl-8.6.13-tclConfig-TCL_PACKAGE_PATH-braces.patch b/dev-lang/tcl/files/tcl-8.6.13-tclConfig-TCL_PACKAGE_PATH-braces.patch
new file mode 100644
index 000000000000..2ae38234ca79
--- /dev/null
+++ b/dev-lang/tcl/files/tcl-8.6.13-tclConfig-TCL_PACKAGE_PATH-braces.patch
@@ -0,0 +1,16 @@
+https://bugs.gentoo.org/892029
+https://core.tcl-lang.org/tcltls/tktview?name=37bbdb9fb2
+--- a/unix/configure.in
++++ b/unix/configure.in
+@@ -866,9 +866,9 @@ if test "$FRAMEWORK_BUILD" = "1" ; then
+ test -z "$TCL_MODULE_PATH" && \
+ TCL_MODULE_PATH="~/Library/Tcl /Library/Tcl"
+ elif test "$prefix/lib" != "$libdir"; then
+- test -z "$TCL_PACKAGE_PATH" && TCL_PACKAGE_PATH="{${libdir}} {${prefix}/lib} ${TCL_PACKAGE_PATH}"
++ test -z "$TCL_PACKAGE_PATH" && TCL_PACKAGE_PATH="${libdir} ${prefix}/lib ${TCL_PACKAGE_PATH}"
+ else
+- test -z "$TCL_PACKAGE_PATH" && TCL_PACKAGE_PATH="{${prefix}/lib} ${TCL_PACKAGE_PATH}"
++ test -z "$TCL_PACKAGE_PATH" && TCL_PACKAGE_PATH="${prefix}/lib ${TCL_PACKAGE_PATH}"
+ fi
+
+ #--------------------------------------------------------------------
diff --git a/dev-lang/tcl/files/tcl-8.6.8-libieee.patch b/dev-lang/tcl/files/tcl-8.6.8-libieee.patch
deleted file mode 100644
index 942144e68c71..000000000000
--- a/dev-lang/tcl/files/tcl-8.6.8-libieee.patch
+++ /dev/null
@@ -1,15 +0,0 @@
---- a/unix/tcl.m4
-+++ b/unix/tcl.m4
-@@ -2470,12 +2470,9 @@
- #--------------------------------------------------------------------
- # On a few very rare systems, all of the libm.a stuff is
- # already in libc.a. Set compiler flags accordingly.
-- # Also, Linux requires the "ieee" library for math to work
-- # right (and it must appear before "-lm").
- #--------------------------------------------------------------------
-
- AC_CHECK_FUNC(sin, MATH_LIBS="", MATH_LIBS="-lm")
-- AC_CHECK_LIB(ieee, main, [MATH_LIBS="-lieee $MATH_LIBS"])
-
- #--------------------------------------------------------------------
- # Interactive UNIX requires -linet instead of -lsocket, plus it
diff --git a/dev-lang/tcl/metadata.xml b/dev-lang/tcl/metadata.xml
index cd751414a99b..609c89ab3a47 100644
--- a/dev-lang/tcl/metadata.xml
+++ b/dev-lang/tcl/metadata.xml
@@ -1,11 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>tcltk@gentoo.org</email>
- <name>TCL/TK Herd.</name>
+ <name>TCL/TK project</name>
</maintainer>
<upstream>
+ <remote-id type="cpe">cpe:/a:tcl:tcl</remote-id>
<remote-id type="sourceforge">tcl</remote-id>
+ <remote-id type="github">tcltk/tcl</remote-id>
</upstream>
</pkgmetadata>
diff --git a/dev-lang/tcl/tcl-8.5.17-r1.ebuild b/dev-lang/tcl/tcl-8.5.17-r1.ebuild
deleted file mode 100644
index 0b26a10bb60b..000000000000
--- a/dev-lang/tcl/tcl-8.5.17-r1.ebuild
+++ /dev/null
@@ -1,117 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-
-inherit autotools eutils flag-o-matic multilib toolchain-funcs versionator multilib-minimal
-
-MY_P="${PN}${PV/_beta/b}"
-
-DESCRIPTION="Tool Command Language"
-HOMEPAGE="http://www.tcl.tk/"
-SRC_URI="mirror://sourceforge/tcl/${MY_P}-src.tar.gz"
-
-LICENSE="tcltk"
-SLOT="0/8.5"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x86-solaris"
-IUSE="debug threads"
-
-RDEPEND=">=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}]"
-DEPEND="${RDEPEND}"
-
-SPARENT="${WORKDIR}/${MY_P}"
-S="${SPARENT}"/unix
-
-src_prepare() {
- epatch "${FILESDIR}"/${PN}-8.5.13-multilib.patch
-
- # Bug 125971
- epatch "${FILESDIR}"/${PN}-8.5.14-conf.patch
-
- # Bug 648570
- epatch "${FILESDIR}"/${PN}-8.6.8-libieee.patch
-
- # workaround stack check issues, bug #280934
- use hppa && append-cflags "-DTCL_NO_STACK_CHECK=1"
-
- tc-export CC
-
- sed \
- -e '/chmod/s:555:755:g' \
- -i Makefile.in || die
-
- eautoconf
- multilib_copy_sources
-}
-
-multilib_src_configure() {
- # We went ahead and deleted the whole compat/ subdir which means
- # the configure tests to detect broken versions need to pass (else
- # we'll fail to build). This comes up when cross-compiling, but
- # might as well get a minor configure speed up normally.
- export ac_cv_func_memcmp_working="yes"
- export tcl_cv_str{str,toul,tod}_unbroken="ok"
- export tcl_cv_strtod_buggy="no"
-
- econf \
- $(use_enable threads) \
- $(use_enable debug symbols)
-}
-
-multilib_src_install() {
- #short version number
- local v1=$(get_version_component_range 1-2)
- local mylibdir=$(get_libdir)
-
- S= default
-
- # fix the tclConfig.sh to eliminate refs to the build directory
- # and drop unnecessary -L inclusion to default system libdir
-
- sed \
- -e "/^TCL_BUILD_LIB_SPEC=/s:-L$(pwd) *::g" \
- -e "/^TCL_LIB_SPEC=/s:-L${EPREFIX}/usr/${mylibdir} *::g" \
- -e "/^TCL_SRC_DIR=/s:${SPARENT}:${EPREFIX}/usr/${mylibdir}/tcl${v1}/include:g" \
- -e "/^TCL_BUILD_STUB_LIB_SPEC=/s:-L$(pwd) *::g" \
- -e "/^TCL_STUB_LIB_SPEC=/s:-L${EPREFIX}/usr/${mylibdir} *::g" \
- -e "/^TCL_BUILD_STUB_LIB_PATH=/s:$(pwd):${EPREFIX}/usr/${mylibdir}:g" \
- -e "/^TCL_LIB_FILE=/s:'libtcl${v1}..TCL_DBGX..so':\"libtcl${v1}\$\{TCL_DBGX\}.so\":g" \
- -i "${ED}"/usr/${mylibdir}/tclConfig.sh || die
- if use prefix && [[ ${CHOST} != *-darwin* && ${CHOST} != *-mint* ]] ; then
- sed \
- -e "/^TCL_CC_SEARCH_FLAGS=/s|'$|:${EPREFIX}/usr/${mylibdir}'|g" \
- -e "/^TCL_LD_SEARCH_FLAGS=/s|'$|:${EPREFIX}/usr/${mylibdir}'|" \
- -i "${ED}"/usr/${mylibdir}/tclConfig.sh || die
- fi
-
- # install private headers
- insinto /usr/${mylibdir}/tcl${v1}/include/unix
- doins *.h
- insinto /usr/${mylibdir}/tcl${v1}/include/generic
- doins "${SPARENT}"/generic/*.h
- rm -f "${ED}"/usr/${mylibdir}/tcl${v1}/include/generic/{tcl,tclDecls,tclPlatDecls}.h || die
-
- # install symlink for libraries
- dosym libtcl${v1}$(get_libname) /usr/${mylibdir}/libtcl$(get_libname)
- dosym libtclstub${v1}.a /usr/${mylibdir}/libtclstub.a
-
- if multilib_is_native_abi; then
- dosym tclsh${v1} /usr/bin/tclsh
- dodoc "${SPARENT}"/{ChangeLog*,README,changes}
- fi
-}
-
-pkg_postinst() {
- for version in ${REPLACING_VERSIONS}; do
- if ! version_is_at_least 8.5 ${version}; then
- echo
- ewarn "You're upgrading from <${P}, you must recompile the other"
- ewarn "packages on your system that link with tcl after the upgrade"
- ewarn "completes. To perform this action, please run revdep-rebuild"
- ewarn "in package app-portage/gentoolkit."
- ewarn "If you have dev-lang/tk and dev-tcltk/tclx installed you should"
- ewarn "upgrade them before this recompilation, too,"
- echo
- fi
- done
-}
diff --git a/dev-lang/tcl/tcl-8.6.11.ebuild b/dev-lang/tcl/tcl-8.6.11.ebuild
index 5d871ca4d7c9..2d6f828f15db 100644
--- a/dev-lang/tcl/tcl-8.6.11.ebuild
+++ b/dev-lang/tcl/tcl-8.6.11.ebuild
@@ -1,19 +1,19 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
-inherit autotools flag-o-matic multilib-minimal toolchain-funcs
+inherit autotools flag-o-matic multilib-minimal multilib toolchain-funcs
MY_P="${PN}${PV}"
DESCRIPTION="Tool Command Language"
HOMEPAGE="http://www.tcl.tk/"
-SRC_URI="mirror://sourceforge/tcl/${PN}-core${PV}-src.tar.gz"
+SRC_URI="https://downloads.sourceforge.net/tcl/${PN}-core${PV}-src.tar.gz"
LICENSE="tcltk"
SLOT="0/8.6"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
IUSE="debug +threads"
RDEPEND=">=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}]"
@@ -96,7 +96,7 @@ multilib_src_install() {
-e "/^TCL_BUILD_STUB_LIB_PATH=/s:$(pwd):${EPREFIX}/usr/${mylibdir}:g" \
-e "/^TCL_LIBW_FILE=/s:'libtcl${v1}..TCL_DBGX..so':\"libtcl${v1}\$\{TCL_DBGX\}.so\":g" \
-i "${ED}"/usr/${mylibdir}/tclConfig.sh || die
- if use prefix && [[ ${CHOST} != *-darwin* && ${CHOST} != *-mint* ]] ; then
+ if use prefix && [[ ${CHOST} != *-darwin* ]] ; then
sed \
-e "/^TCL_CC_SEARCH_FLAGS=/s|'$|:${EPREFIX}/usr/${mylibdir}'|g" \
-e "/^TCL_LD_SEARCH_FLAGS=/s|'$|:${EPREFIX}/usr/${mylibdir}'|" \
diff --git a/dev-lang/tcl/tcl-8.6.10.ebuild b/dev-lang/tcl/tcl-8.6.12-r1.ebuild
index b7e25fa284dd..dc338439cca2 100644
--- a/dev-lang/tcl/tcl-8.6.10.ebuild
+++ b/dev-lang/tcl/tcl-8.6.12-r1.ebuild
@@ -1,19 +1,21 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
-inherit autotools flag-o-matic multilib-minimal toolchain-funcs
+# Please bump with dev-lang/tk!
+
+inherit autotools flag-o-matic multilib-minimal multilib toolchain-funcs
MY_P="${PN}${PV}"
DESCRIPTION="Tool Command Language"
HOMEPAGE="http://www.tcl.tk/"
-SRC_URI="mirror://sourceforge/tcl/${PN}-core${PV}-src.tar.gz"
+SRC_URI="https://downloads.sourceforge.net/tcl/${PN}-core${PV}-src.tar.gz"
LICENSE="tcltk"
SLOT="0/8.6"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
IUSE="debug +threads"
RDEPEND=">=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}]"
@@ -23,9 +25,10 @@ SPARENT="${WORKDIR}/${MY_P}"
S="${SPARENT}"/unix
PATCHES=(
- "${FILESDIR}"/${P}-multilib.patch
+ "${FILESDIR}"/${PN}-8.6.10-multilib.patch
"${FILESDIR}"/${PN}-8.6.8-conf.patch # Bug 125971
"${FILESDIR}"/${PN}-8.6.9-include-spec.patch # Bug 731120
+ "${FILESDIR}"/${P}-configure-clang16.patch
)
src_prepare() {
@@ -96,7 +99,7 @@ multilib_src_install() {
-e "/^TCL_BUILD_STUB_LIB_PATH=/s:$(pwd):${EPREFIX}/usr/${mylibdir}:g" \
-e "/^TCL_LIBW_FILE=/s:'libtcl${v1}..TCL_DBGX..so':\"libtcl${v1}\$\{TCL_DBGX\}.so\":g" \
-i "${ED}"/usr/${mylibdir}/tclConfig.sh || die
- if use prefix && [[ ${CHOST} != *-darwin* && ${CHOST} != *-mint* ]] ; then
+ if use prefix && [[ ${CHOST} != *-darwin* ]] ; then
sed \
-e "/^TCL_CC_SEARCH_FLAGS=/s|'$|:${EPREFIX}/usr/${mylibdir}'|g" \
-e "/^TCL_LD_SEARCH_FLAGS=/s|'$|:${EPREFIX}/usr/${mylibdir}'|" \
@@ -119,18 +122,3 @@ multilib_src_install() {
dodoc "${SPARENT}"/{ChangeLog*,README.md,changes}
fi
}
-
-pkg_postinst() {
- for version in ${REPLACING_VERSIONS}; do
- if ver_test 8.6 -lt ${version}; then
- echo
- ewarn "You're upgrading from <${P}, you must recompile the other"
- ewarn "packages on your system that link with tcl after the upgrade"
- ewarn "completes. To perform this action, please run revdep-rebuild"
- ewarn "in package app-portage/gentoolkit."
- ewarn "If you have dev-lang/tk and dev-tcltk/tclx installed you should"
- ewarn "upgrade them before this recompilation, too,"
- echo
- fi
- done
-}
diff --git a/dev-lang/tcl/tcl-8.6.9-r1.ebuild b/dev-lang/tcl/tcl-8.6.13-r1.ebuild
index 14d838f95f99..7b512fba6d5c 100644
--- a/dev-lang/tcl/tcl-8.6.9-r1.ebuild
+++ b/dev-lang/tcl/tcl-8.6.13-r1.ebuild
@@ -1,19 +1,21 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
-inherit autotools flag-o-matic multilib-minimal toolchain-funcs
+# Please bump with dev-lang/tk!
+
+inherit autotools flag-o-matic multilib-minimal multilib toolchain-funcs
MY_P="${PN}${PV}"
DESCRIPTION="Tool Command Language"
HOMEPAGE="http://www.tcl.tk/"
-SRC_URI="mirror://sourceforge/tcl/${PN}-core${PV}-src.tar.gz"
+SRC_URI="https://downloads.sourceforge.net/tcl/${PN}-core${PV}-src.tar.gz"
-LICENSE="tcltk"
+LICENSE="tcltk Spencer-99"
SLOT="0/8.6"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
IUSE="debug +threads"
RDEPEND=">=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}]"
@@ -23,12 +25,19 @@ SPARENT="${WORKDIR}/${MY_P}"
S="${SPARENT}"/unix
PATCHES=(
- "${FILESDIR}"/${PN}-8.5.13-multilib.patch
+ "${FILESDIR}"/${PN}-8.6.10-multilib.patch
"${FILESDIR}"/${PN}-8.6.8-conf.patch # Bug 125971
"${FILESDIR}"/${PN}-8.6.9-include-spec.patch # Bug 731120
+ "${FILESDIR}"/${PN}-8.6.13-tclConfig-TCL_PACKAGE_PATH-braces.patch # Bug 892029
+)
+
+QA_CONFIG_IMPL_DECL_SKIP=(
+ stat64 opendir64 rewinddir64 closedir64 # used to test for Large File Support
)
src_prepare() {
+ # By dropping the compat directory a lot of licensing and attribution burden
+ # (BSD-3, zlib,...) is lifted from the user
find \
"${SPARENT}"/compat/* \
"${SPARENT}"/doc/try.n \
@@ -38,6 +47,12 @@ src_prepare() {
default
popd &>/dev/null || die
+ # httpold tests require netowk
+ rm ../tests/httpold.test \
+ ../tests/env.test \
+ ../tests/http.test \
+ || die
+
# workaround stack check issues, bug #280934
use hppa && append-cflags "-DTCL_NO_STACK_CHECK=1"
@@ -90,7 +105,7 @@ multilib_src_install() {
-e "/^TCL_BUILD_STUB_LIB_PATH=/s:$(pwd):${EPREFIX}/usr/${mylibdir}:g" \
-e "/^TCL_LIBW_FILE=/s:'libtcl${v1}..TCL_DBGX..so':\"libtcl${v1}\$\{TCL_DBGX\}.so\":g" \
-i "${ED}"/usr/${mylibdir}/tclConfig.sh || die
- if use prefix && [[ ${CHOST} != *-darwin* && ${CHOST} != *-mint* ]] ; then
+ if use prefix && [[ ${CHOST} != *-darwin* ]] ; then
sed \
-e "/^TCL_CC_SEARCH_FLAGS=/s|'$|:${EPREFIX}/usr/${mylibdir}'|g" \
-e "/^TCL_LD_SEARCH_FLAGS=/s|'$|:${EPREFIX}/usr/${mylibdir}'|" \
@@ -110,21 +125,6 @@ multilib_src_install() {
if multilib_is_native_abi; then
dosym tclsh${v1} /usr/bin/tclsh
- dodoc "${SPARENT}"/{ChangeLog*,README,changes}
+ dodoc "${SPARENT}"/{ChangeLog*,README.md,changes}
fi
}
-
-pkg_postinst() {
- for version in ${REPLACING_VERSIONS}; do
- if ver_test 8.6 -lt ${version}; then
- echo
- ewarn "You're upgrading from <${P}, you must recompile the other"
- ewarn "packages on your system that link with tcl after the upgrade"
- ewarn "completes. To perform this action, please run revdep-rebuild"
- ewarn "in package app-portage/gentoolkit."
- ewarn "If you have dev-lang/tk and dev-tcltk/tclx installed you should"
- ewarn "upgrade them before this recompilation, too,"
- echo
- fi
- done
-}
diff --git a/dev-lang/tcl/tcl-8.6.8.ebuild b/dev-lang/tcl/tcl-8.6.14.ebuild
index ed39cbd358ed..1fdc204c1fca 100644
--- a/dev-lang/tcl/tcl-8.6.8.ebuild
+++ b/dev-lang/tcl/tcl-8.6.14.ebuild
@@ -1,19 +1,21 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=6
+EAPI=7
-inherit autotools eutils flag-o-matic multilib multilib-minimal toolchain-funcs versionator
+# Please bump with dev-lang/tk!
+
+inherit autotools flag-o-matic multilib-minimal multilib toolchain-funcs
MY_P="${PN}${PV}"
DESCRIPTION="Tool Command Language"
HOMEPAGE="http://www.tcl.tk/"
-SRC_URI="mirror://sourceforge/tcl/${PN}-core${PV}-src.tar.gz"
+SRC_URI="https://downloads.sourceforge.net/tcl/${PN}-core${PV}-src.tar.gz"
-LICENSE="tcltk"
+LICENSE="tcltk Spencer-99"
SLOT="0/8.6"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
IUSE="debug +threads"
RDEPEND=">=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}]"
@@ -23,21 +25,40 @@ SPARENT="${WORKDIR}/${MY_P}"
S="${SPARENT}"/unix
PATCHES=(
- "${FILESDIR}"/${PN}-8.5.13-multilib.patch
+ "${FILESDIR}"/${PN}-8.6.10-multilib.patch
"${FILESDIR}"/${PN}-8.6.8-conf.patch # Bug 125971
- "${FILESDIR}"/${PN}-8.6.8-libieee.patch
+ "${FILESDIR}"/${PN}-8.6.9-include-spec.patch # Bug 731120
+ "${FILESDIR}"/${PN}-8.6.13-tclConfig-TCL_PACKAGE_PATH-braces.patch # Bug 892029
+)
+
+QA_CONFIG_IMPL_DECL_SKIP=(
+ stat64 opendir64 rewinddir64 closedir64 # used to test for Large File Support
)
src_prepare() {
+ # By dropping the compat directory a lot of licensing and attribution burden
+ # (BSD-3, zlib,...) is lifted from the user
find \
"${SPARENT}"/compat/* \
"${SPARENT}"/doc/try.n \
-delete || die
+ # Drop -Werror
+ sed -i \
+ -e "s: -Werror::g" \
+ dltest/Makefile.in \
+ || die
+
pushd "${SPARENT}" &>/dev/null || die
default
popd &>/dev/null || die
+ # httpold tests require netowk
+ rm ../tests/httpold.test \
+ ../tests/env.test \
+ ../tests/http.test \
+ || die
+
# workaround stack check issues, bug #280934
use hppa && append-cflags "-DTCL_NO_STACK_CHECK=1"
@@ -74,7 +95,7 @@ multilib_src_configure() {
multilib_src_install() {
#short version number
- local v1=$(get_version_component_range 1-2)
+ local v1=$(ver_cut 1-2)
local mylibdir=$(get_libdir)
S= default
@@ -88,9 +109,9 @@ multilib_src_install() {
-e "/^TCL_BUILD_STUB_LIB_SPEC=/s:-L$(pwd) *::g" \
-e "/^TCL_STUB_LIB_SPEC=/s:-L${EPREFIX}/usr/${mylibdir} *::g" \
-e "/^TCL_BUILD_STUB_LIB_PATH=/s:$(pwd):${EPREFIX}/usr/${mylibdir}:g" \
- -e "/^TCL_LIB_FILE=/s:'libtcl${v1}..TCL_DBGX..so':\"libtcl${v1}\$\{TCL_DBGX\}.so\":g" \
+ -e "/^TCL_LIBW_FILE=/s:'libtcl${v1}..TCL_DBGX..so':\"libtcl${v1}\$\{TCL_DBGX\}.so\":g" \
-i "${ED}"/usr/${mylibdir}/tclConfig.sh || die
- if use prefix && [[ ${CHOST} != *-darwin* && ${CHOST} != *-mint* ]] ; then
+ if use prefix && [[ ${CHOST} != *-darwin* ]] ; then
sed \
-e "/^TCL_CC_SEARCH_FLAGS=/s|'$|:${EPREFIX}/usr/${mylibdir}'|g" \
-e "/^TCL_LD_SEARCH_FLAGS=/s|'$|:${EPREFIX}/usr/${mylibdir}'|" \
@@ -110,21 +131,6 @@ multilib_src_install() {
if multilib_is_native_abi; then
dosym tclsh${v1} /usr/bin/tclsh
- dodoc "${SPARENT}"/{ChangeLog*,README,changes}
+ dodoc "${SPARENT}"/{ChangeLog*,README.md,changes}
fi
}
-
-pkg_postinst() {
- for version in ${REPLACING_VERSIONS}; do
- if ! version_is_at_least 8.6 ${version}; then
- echo
- ewarn "You're upgrading from <${P}, you must recompile the other"
- ewarn "packages on your system that link with tcl after the upgrade"
- ewarn "completes. To perform this action, please run revdep-rebuild"
- ewarn "in package app-portage/gentoolkit."
- ewarn "If you have dev-lang/tk and dev-tcltk/tclx installed you should"
- ewarn "upgrade them before this recompilation, too,"
- echo
- fi
- done
-}
diff --git a/dev-lang/teyjus/files/50teyjus-gentoo.el b/dev-lang/teyjus/files/50teyjus-gentoo.el
deleted file mode 100644
index 7e05cdec7aec..000000000000
--- a/dev-lang/teyjus/files/50teyjus-gentoo.el
+++ /dev/null
@@ -1,3 +0,0 @@
-;;; teyjus site-lisp configuration
-
-(add-to-list 'load-path "@SITELISP@")
diff --git a/dev-lang/teyjus/files/teyjus-2.1-p004-Renaming-ccode_stubs-for-compilation.patch b/dev-lang/teyjus/files/teyjus-2.1-p004-Renaming-ccode_stubs-for-compilation.patch
new file mode 100644
index 000000000000..739653c9ea93
--- /dev/null
+++ b/dev-lang/teyjus/files/teyjus-2.1-p004-Renaming-ccode_stubs-for-compilation.patch
@@ -0,0 +1,65 @@
+commit e63f40aa9f1d0ea5e7bac41aae5e479c3616545c (HEAD -> master, origin/master, origin/HEAD)
+Author: Giselle Reis <giselle.mnr@gmail.com>
+Date: Fri Jul 26 15:57:18 2019 +0300
+
+ Renaming ccode_stubs for compilation
+
+ Based on the fix at
+ https://github.com/teyjus/teyjus/issues/112#issuecomment-272336299
+
+ Fixes #118.
+
+diff --git a/source/OMakefile b/source/OMakefile
+index e6bd37e..87b9bc5 100644
+--- a/source/OMakefile
++++ b/source/OMakefile
+@@ -88,7 +88,7 @@ FNT_ML[] =
+ $(FNT)/parseargs
+
+ FNT_C[] =
+- $(FNT)/ccode_stubs
++ $(FNT)/ccode_stubs_c
+ $(FNT)/front_c
+ $(FNT)/query_c
+ $(FNT)/readterm_c
+@@ -100,6 +100,7 @@ FNT_ML_TO_C[] =
+ $(FNT)/front
+ $(FNT)/readterm
+ $(FNT)/simerrors
++ $(FNT)/ccode_stubs
+
+ SIM_C[] =
+ $(SIM)/abstmachine
+diff --git a/source/front/README b/source/front/README
+index 10608a3..d4d3f10 100644
+--- a/source/front/README
++++ b/source/front/README
+@@ -60,10 +60,10 @@ query_c.h{c}
+ Defines C functions invoked from query.ml for solving queries or display
+ answer substitutions.
+
+-ccode_stubs.mli
+-===============
++ccode_stubs.ml
++==============
+ Interface declaration for the invocation of C functions from OCaml code.
+
+-ccode_stubs.c
+-==============
++ccode_stubs_c.c
++===============
+ Interface functions for the invocation of C functions from OCaml code.
+diff --git a/source/front/makefile b/source/front/makefile
+index c607ba1..92dfd2c 100644
+--- a/source/front/makefile
++++ b/source/front/makefile
+@@ -1,6 +1,6 @@
+ tjsim:
+- ocamake parseargs.ml parseargs.mli simulatorfront.ml module.ml module.mli query.ml query.mli front.ml front.mli readterm.ml readterm.mli ccode_stubs.mli simerrors.mli simerrors.ml ../compiler/*.ml ../compiler/*.mli ../loader/*.ml ../loader/*.mli -lp ccode_stubs.o front_c.o query_c.o ../tables/*.o ../system/*.o ../simulator/*.o ../simulator/builtins/*.o -opt -o tjsim
++ ocamake parseargs.ml parseargs.mli simulatorfront.ml module.ml module.mli query.ml query.mli front.ml front.mli readterm.ml readterm.mli ccode_stubs.ml simerrors.mli simerrors.ml ../compiler/*.ml ../compiler/*.mli ../loader/*.ml ../loader/*.mli -lp ccode_stubs_c.o front_c.o query_c.o ../tables/*.o ../system/*.o ../simulator/*.o ../simulator/builtins/*.o -opt -o tjsim
+
+
+ clean:
+- rm *.cmx ../compiler/*.cmx ../disassembler/*.cmx ../myloader/*.cmx
+\ No newline at end of file
++ rm *.cmx ../compiler/*.cmx ../disassembler/*.cmx ../myloader/*.cmx
diff --git a/dev-lang/teyjus/files/teyjus-2.1-p005-Unbundle-ocaml-header-files.patch b/dev-lang/teyjus/files/teyjus-2.1-p005-Unbundle-ocaml-header-files.patch
new file mode 100644
index 000000000000..11351755e465
--- /dev/null
+++ b/dev-lang/teyjus/files/teyjus-2.1-p005-Unbundle-ocaml-header-files.patch
@@ -0,0 +1,44 @@
+commit 7371d8e75ce11c825a79614c44d70316759b16c3
+Author: Mark Wright <gienah@gentoo.org>
+Date: Sun Jul 17 20:08:37 2022 +1000
+
+ include ocaml system header files instead of old bundled ocaml header files
+
+diff --git a/source/front/ccode_stubs_c.c b/source/front/ccode_stubs_c.c
+index f1a62a7..f5f9042 100644
+--- a/source/front/ccode_stubs_c.c
++++ b/source/front/ccode_stubs_c.c
+@@ -21,10 +21,10 @@
+ #include "../simulator/builtins/readterm.h"
+ #include "front_c.h"
+ #include "query_c.h"
+-#include "caml/mlvalues.h"
+-#include "caml/memory.h"
+-#include "caml/alloc.h"
+-#include "caml/custom.h"
++#include <caml/mlvalues.h>
++#include <caml/memory.h>
++#include <caml/alloc.h>
++#include <caml/custom.h>
+
+ /***************************************************************************/
+ /* front */
+diff --git a/source/front/linker_c.c b/source/front/linker_c.c
+index d9cb1bc..0c173cd 100644
+--- a/source/front/linker_c.c
++++ b/source/front/linker_c.c
+@@ -20,10 +20,10 @@
+
+ #include "../linker/module.h"
+ #include "../linker/linker_message.h"
+-#include "caml/mlvalues.h"
+-#include "caml/memory.h"
+-#include "caml/alloc.h"
+-#include "caml/custom.h"
++#include <caml/mlvalues.h>
++#include <caml/memory.h>
++#include <caml/alloc.h>
++#include <caml/custom.h>
+
+ value FRONT_link(value mod_str, value verb)
+ {
diff --git a/dev-lang/teyjus/files/teyjus-2.1-p006-Version.patch b/dev-lang/teyjus/files/teyjus-2.1-p006-Version.patch
new file mode 100644
index 000000000000..d2ba3758315b
--- /dev/null
+++ b/dev-lang/teyjus/files/teyjus-2.1-p006-Version.patch
@@ -0,0 +1,13 @@
+# https://github.com/teyjus/teyjus/issues/117 Version number not updated in release 2.1
+
+--- teyjus-2.1-orig/source/front/parseargs.ml 2015-07-06 08:07:17.000000000 +1000
++++ teyjus-2.1/source/front/parseargs.ml 2022-07-17 13:47:19.844819942 +1000
+@@ -24,7 +24,7 @@
+ in
+ List.flatten (List.map seperate dualSpecList)
+
+-let version = "2.0-b2"
++let version = "2.1"
+
+ let printVersion () =
+ print_endline ("Teyjus version " ^ version) ;
diff --git a/dev-lang/teyjus/metadata.xml b/dev-lang/teyjus/metadata.xml
index 472f7ac2b56a..1efa8c64ff3b 100644
--- a/dev-lang/teyjus/metadata.xml
+++ b/dev-lang/teyjus/metadata.xml
@@ -1,10 +1,7 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="person">
- <email>gienah@gentoo.org</email>
- <name>Mark Wright</name>
- </maintainer>
+ <!-- maintainer-needed -->
<longdescription lang="en">
The Teyjus system is an efficient implementation of the higher-order
logic programming language Lambda Prolog. The main strength of Lambda
diff --git a/dev-lang/teyjus/teyjus-2.1-r1.ebuild b/dev-lang/teyjus/teyjus-2.1-r2.ebuild
index b95680891d7d..6c07d0332e1b 100644
--- a/dev-lang/teyjus/teyjus-2.1-r1.ebuild
+++ b/dev-lang/teyjus/teyjus-2.1-r2.ebuild
@@ -1,22 +1,20 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI="7"
+EAPI=8
-inherit elisp-common multilib
+inherit elisp-common
DESCRIPTION="Higher-order logic programming language Lambda Prolog"
-HOMEPAGE="http://teyjus.cs.umn.edu/"
+HOMEPAGE="https://teyjus.cs.umn.edu/"
SRC_URI="https://github.com/teyjus/teyjus/archive/v${PV}.tar.gz -> ${P}.tar.gz"
SLOT="0/${PV}"
-KEYWORDS="~amd64 ~x86"
LICENSE="GPL-3"
-IUSE="emacs examples +ocamlopt"
+KEYWORDS="~amd64 ~x86"
+IUSE="emacs examples"
-RDEPEND=">=sys-devel/binutils-2.17:*
- >=sys-devel/gcc-2.95.3:*
- >=dev-lang/ocaml-3.10[ocamlopt?]
+RDEPEND="dev-lang/ocaml[ocamlopt]
emacs? ( >=app-editors/emacs-23.1:* )"
DEPEND="${RDEPEND}
app-text/dos2unix
@@ -26,10 +24,20 @@ SITEFILE=50${PN}-gentoo.el
PATCHES=( "${FILESDIR}/${P}-p001-Fixes-arity-for-pervasive-modulo-operation.patch"
"${FILESDIR}/${P}-p002-Add-string-literals-from-proper-character-groups.patch"
- "${FILESDIR}/${P}-p003-Removing-deprecated-function-String.set.patch")
+ "${FILESDIR}/${P}-p003-Removing-deprecated-function-String.set.patch"
+ "${FILESDIR}/${P}-p004-Renaming-ccode_stubs-for-compilation.patch"
+ "${FILESDIR}/${P}-p005-Unbundle-ocaml-header-files.patch"
+ "${FILESDIR}/${P}-p006-Version.patch" )
src_prepare() {
- find . -type f -exec dos2unix {} \;
+ rm -rf source/front/caml \
+ || die "Could not remove bundled ocaml header files"
+ find . -type f -exec dos2unix --quiet {} \; \
+ || die "Could not convert files from DOS to Unix format"
+ mv source/front/ccode_stubs.c source/front/ccode_stubs_c.c \
+ || die "Could not rename source/front/ccode_stubs.c to source/front/ccode_stubs_c.c"
+ mv source/front/ccode_stubs.mli source/front/ccode_stubs.ml \
+ || die "Could not rename source/front/ccode_stubs.mli to source/front/ccode_stubs.ml"
default
local cflags=""
for i in ${CFLAGS}
@@ -41,21 +49,18 @@ src_prepare() {
do
lflags="${lflags} -cclib ${i}"
done
- sed -e "s@\(OCAMLFLAGS= -w -A\)@\1 ${cflags}${lflags}@" \
- -e "s@\(CFLAGS +=\) -g@\1 ${CFLAGS}\nLDFLAGS += ${LDFLAGS}@" \
+ local bs="LDFLAGS += ${LDFLAGS}\n"
+ bs+="CC = ${CC:-gcc}\n"
+ bs+="CPP = ${CPP:-cpp}\n"
+ bs+="LD = ${LD:-ld}\n"
+ bs+="AR(name) =\n"
+ bs+=" return(${AR:-ar} cq \$(name))\n"
+ bs+="AS = ${AS:-as}\n"
+ bs+="RANLIB = ${RANLIB:-ranlib}"
+ sed -e "s@\(OCAMLFLAGS= -w -A\)@\1 -cc ${CC:-gcc} ${cflags}${lflags}@" \
+ -e "s@\(CFLAGS +=\) -g@\1 ${CFLAGS}\n${bs}@" \
-i "${S}/source/OMakefile" \
- || die "Could not set flags in ${S}/teyjus/source/OMakefile"
- if has_version ">=dev-lang/ocaml-4.03.0"; then
- # bug 591368
- pushd "${S}/source" || die
- sed -e 's@$(FNT)/ccode_stubs@$(FNT)/ccode_stubs_c@' \
- -e 's@\(FNT_ML_TO_C\[\] =\)@\1\n $(FNT)/ccode_stubs@' \
- -i OMakefile || die
- cd "${S}/source/front" || die
- mv ccode_stubs.mli ccode_stubs.ml || die
- mv ccode_stubs.c ccode_stubs_c.c || die
- popd || die
- fi
+ || die "Could not set flags in ${S}/source/OMakefile"
}
src_compile() {
@@ -69,7 +74,6 @@ src_compile() {
}
ins_example_dir() {
- dodir "/usr/share/${PN}/examples/${1}"
insinto "/usr/share/${PN}/examples/${1}"
cd "${S}/examples/${1}"
doins *
@@ -84,10 +88,7 @@ src_install() {
dodoc README.md QUICKSTART
if use emacs ; then
elisp-install ${PN} emacs/*.{el,elc}
- cp "${FILESDIR}"/${SITEFILE} "${S}"
- sed -e 's@/usr/bin/tjcc@'${EPREFIX}/usr/bin/tjcc'@' -i ${SITEFILE} \
- || die "Could not set tjcc executable path in emacs site file"
- elisp-site-file-install ${SITEFILE}
+ elisp-make-site-file "${SITEFILE}"
fi
if use examples; then
ins_example_dir "handbook/logic"
diff --git a/dev-lang/teyjus/teyjus-2.1.ebuild b/dev-lang/teyjus/teyjus-2.1.ebuild
deleted file mode 100644
index a571b19301d1..000000000000
--- a/dev-lang/teyjus/teyjus-2.1.ebuild
+++ /dev/null
@@ -1,110 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="6"
-
-inherit elisp-common multilib versionator
-
-DESCRIPTION="Higher-order logic programming language Lambda Prolog"
-HOMEPAGE="http://teyjus.cs.umn.edu/"
-SRC_URI="https://github.com/teyjus/teyjus/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-
-SLOT="0/${PV}"
-KEYWORDS="~amd64 ~x86"
-LICENSE="GPL-3"
-IUSE="emacs examples +ocamlopt"
-
-RDEPEND=">=sys-devel/binutils-2.17:*
- >=sys-devel/gcc-2.95.3:*
- >=dev-lang/ocaml-3.10[ocamlopt?]
- emacs? ( >=app-editors/emacs-23.1:* )"
-DEPEND="${RDEPEND}
- dev-util/omake"
-
-SITEFILE=50${PN}-gentoo.el
-
-src_prepare() {
- default
- local cflags=""
- for i in ${CFLAGS}
- do
- cflags="${cflags} -ccopt ${i}"
- done
- local lflags=""
- for i in ${LDFLAGS}
- do
- lflags="${lflags} -cclib ${i}"
- done
- sed -e "s@\(OCAMLFLAGS= -w -A\)@\1 ${cflags}${lflags}@" \
- -e "s@\(CFLAGS +=\) -g@\1 ${CFLAGS}\nLDFLAGS += ${LDFLAGS}@" \
- -i "${S}/source/OMakefile" \
- || die "Could not set flags in ${S}/teyjus/source/OMakefile"
- if has_version ">=dev-lang/ocaml-4.03.0"; then
- # bug 591368
- pushd "${S}/source" || die
- sed -e 's@$(FNT)/ccode_stubs@$(FNT)/ccode_stubs_c@' \
- -e 's@\(FNT_ML_TO_C\[\] =\)@\1\n $(FNT)/ccode_stubs@' \
- -i OMakefile || die
- cd "${S}/source/front" || die
- mv ccode_stubs.mli ccode_stubs.ml || die
- mv ccode_stubs.c ccode_stubs_c.c || die
- popd || die
- fi
-}
-
-src_compile() {
- addpredict "/usr/$(get_libdir)/omake/Pervasives.omc"
- addpredict "/usr/$(get_libdir)/omake/build/C.omc"
- addpredict "/usr/$(get_libdir)/omake/build/Common.omc"
- addpredict "/usr/$(get_libdir)/omake/configure/Configure.omc"
- addpredict "/usr/$(get_libdir)/omake/build/OCaml.omc"
- omake --verbose all || die "omake all failed"
- if use emacs ; then
- pushd "${S}/emacs" || die "Could change directory to emacs"
- elisp-compile *.el || die "emacs elisp compile failed"
- popd
- fi
-}
-
-ins_example_dir() {
- dodir "/usr/share/${PN}/examples/${1}"
- insinto "/usr/share/${PN}/examples/${1}"
- cd "${S}/examples/${1}"
- doins *
-}
-
-src_install() {
- newbin source/tjcc.opt tjcc
- newbin source/tjdepend.opt tjdepend
- newbin source/tjdis.opt tjdis
- newbin source/tjlink.opt tjlink
- newbin source/tjsim.opt tjsim
- dodoc README.md QUICKSTART
- if use emacs ; then
- elisp-install ${PN} emacs/*.{el,elc}
- cp "${FILESDIR}"/${SITEFILE} "${S}"
- sed -e 's@/usr/bin/tjcc@'${EPREFIX}/usr/bin/tjcc'@' -i ${SITEFILE} \
- || die "Could not set tjcc executable path in emacs site file"
- elisp-site-file-install ${SITEFILE}
- fi
- if use examples; then
- ins_example_dir "handbook/logic"
- ins_example_dir "handbook/progs"
- ins_example_dir "misc"
- ins_example_dir "ndprover"
- ins_example_dir "pcf"
- fi
-}
-
-pkg_postinst() {
- if use emacs; then
- elisp-site-regen
- ewarn "For teyjus emacs, add this line to ~/.emacs"
- ewarn ""
- ewarn "(require 'teyjus)"
- fi
-}
-
-pkg_postrm() {
- use emacs && elisp-site-regen
-}
diff --git a/dev-lang/tk/Manifest b/dev-lang/tk/Manifest
index d61cb3f94dea..1bdce3e0a7bd 100644
--- a/dev-lang/tk/Manifest
+++ b/dev-lang/tk/Manifest
@@ -1,7 +1,4 @@
-DIST tk8.5.17-src.tar.gz 4095985 BLAKE2B 4cbb140c30ca717ee499b9ad9e1a3df27a470a78613edbaec425c39afaa41d59276bbe487933a4e77a9722fcafa9113b203cf5c828660bdeb38f667c3263c3cd SHA512 ddadc738c2567e35d1257b59212c8a0eb70a1bf041d986bc6df3b841b51d934d79a0ef389c928223a64516a92cae3357b2c789edca9c8a626ff4c1cf320c4f4f
-DIST tk8.6.10-src.tar.gz 4444764 BLAKE2B f56647e005778c802352aee0257c0a8f5e0014c9d21362592f08030252d83141cca385f0fb95c0e7e930016255c3b2cef49a65064e056a877214b7d7a1a01246 SHA512 d12ef3a5bde9e10209a24e9f978bd23360a979d8fa70a859cf750a79ca51067a11ef6df7589303b52fe2a2baed4083583ddaa19e2c7cb433ea523639927f1be5
-DIST tk8.6.11-src.tar.gz 4496914 BLAKE2B c3050a48d5cb3bd3095b2c439b3d33992551f953a981bf23eedbf774368b383abc77fb3156aa4bcaae658d0706495cff03536ab8258f9d824ff8f4325b36cc38 SHA512 2e11490f2f51ef7e723661dd91c95622234fb97850e80d8ecd564be8c28f7c8fb0334a97cf8267af9d68f63e4adea887a1a4eec8d2e807d6a970b5912f99d3f2
DIST tk8.6.11.1-src.tar.gz 4496008 BLAKE2B d7bae2fa535411ad8620ec81cdc0b34a1206fed82f50dbd98d3977af46ac43f794166cb7029f274f7903228c62ce83dfbd56cea06669ff1e382b185d733b0792 SHA512 e2a1d27ba63601731d43c4c4e2b658771a14afd97ef8231f8bc7854e762b83a42f23b8db600e4b4a4a14ae6fc97378d0b9a9a180ae09308b9d12436ec2b176c4
-DIST tk8.6.8-src.tar.gz 4319854 BLAKE2B 167c5dc6c32e49653c04bc067c3d75df022ca230657be32797021b0e2f7748215d9ad0493c8020b8d1be1f005b9b2d561339a6a0b209721c0d05dd222d47d377 SHA512 d0d30637b733fb0b0d38461b6d872934c04af422fcdb7ec41a72331b2529cc94414e6f441f95a98642d69505e4f41469847fedd1cbe58bd08cdd818fcabd1db9
-DIST tk8.6.9-src.tar.gz 4364606 BLAKE2B 9c96d977aa72dcc0c8d2a570d644284a1eef217ef082d8a78461bdcb4845e206ccad59cb5bc21ef80e32ea19951fa3a845e45059bb9eaf0756f128a95530260c SHA512 654d73aad006e628110057681477b958b7ec0a42287bc78259fb4b84635e7ebe757e69099d66c0c73479bc506ca66fa5baf13f13b0f403d60b2c54fd48a4a686
-DIST tk8.6.9.1-src.tar.gz 4364603 BLAKE2B 3d96637ceadc28977f8b4532be071907d64f11bd22881baf02aa6fa2778b607437edce8f1ed02e7011bcf78468128f7bfe81ee6dac9bd73a796e7fefae130dcf SHA512 b9c811ffc8326331ae03c6fb25ea71f7a5eaeebd9d5a16a51a1671d0f0422268bd351b077e17ae925f0a7eddac9642aa640658615c52d4269c299373af031a92
+DIST tk8.6.12-src.tar.gz 4515393 BLAKE2B 328522b7e1b4d291863db01ac93e18630f3984459d145a11d742f912a40d5634ffe4608760ce45f444903d45fb707bb48ecc3586913f0c2fde4664a402f6b862 SHA512 afe51eb3e2071640ebc57f9ee6979fe91ee7856df8d3c9d55ae70c470cdae2306d2feeb791f46258f529a5c4a07b53974a7574cf3594818cd4e99077b30c697b
+DIST tk8.6.13-src.tar.gz 4546848 BLAKE2B 5f00cf64feb7c7eb6739303c857dfabff4cbf4148c65462c2a5cc49cc8010fba950ffa7043101e98ded543a6c6e9b925dc1ee0e6e9031a240ae29b918f81060a SHA512 719aa6776bfdc814f817919a265d3f9d847782c9f0a5fc5c2ab139beeba921e6fde8c66e7e836d78f86f53c98a7df0e587f0b2f4b08cc5ce12eecbb7f1ab71a5
+DIST tk8.6.14-src.tar.gz 4510695 BLAKE2B 00b83a87b65317ca32228a11014bd9fe7cffb92089e152ca63a1e02ff23a5fc132b9336618f361692aa94ebf9e023cef492fafe39d51b9111feaec4934e8ae42 SHA512 756903dfa56cf77c7934bb3680c9bef6027f99196f4e6a2e823b85c342ca860cbb4b42154f576cc88f7f1265d28ce2d84ab5f52f848b16cca0cf9af4c770183f
diff --git a/dev-lang/tk/files/tk-8.5.11-fedora-xft.patch b/dev-lang/tk/files/tk-8.5.11-fedora-xft.patch
deleted file mode 100644
index 67640db085f1..000000000000
--- a/dev-lang/tk/files/tk-8.5.11-fedora-xft.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- tk8.5.9/unix/configure.in.old 2010-09-02 20:12:14.000000000 +0200
-+++ tk8.5.9/unix/configure.in 2011-02-17 13:32:22.719116636 +0100
-@@ -530,8 +530,8 @@
- XFT_LIBS=`xft-config --libs 2>/dev/null` || found_xft="no"
- if test "$found_xft" = "no" ; then
- found_xft=yes
-- XFT_CFLAGS=`pkg-config --cflags xft 2>/dev/null` || found_xft="no"
-- XFT_LIBS=`pkg-config --libs xft 2>/dev/null` || found_xft="no"
-+ XFT_CFLAGS=`pkg-config --cflags xft freetype2 2>/dev/null` || found_xft="no"
-+ XFT_LIBS=`pkg-config --libs xft freetype2 2>/dev/null` || found_xft="no"
- fi
- AC_MSG_RESULT([$found_xft])
- dnl make sure that compiling against Xft header file doesn't bomb
diff --git a/dev-lang/tk/files/tk-8.5.13-multilib.patch b/dev-lang/tk/files/tk-8.5.13-multilib.patch
deleted file mode 100644
index db3d8cc00817..000000000000
--- a/dev-lang/tk/files/tk-8.5.13-multilib.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Naur tk8.4.11.orig/unix/configure.in tk8.4.11/unix/configure.in
---- tk8.4.11.orig/unix/configure.in 2005-06-30 01:43:10.000000000 +0900
-+++ tk8.4.11/unix/configure.in 2005-07-02 23:22:16.000000000 +0900
-@@ -393,7 +393,7 @@
- TCL_STUB_FLAGS="-DUSE_TCL_STUBS"
- fi
-
--TK_LIBRARY='$(prefix)/lib/tk$(VERSION)'
-+TK_LIBRARY='$(libdir)/tk$(VERSION)'
- PRIVATE_INCLUDE_DIR='$(includedir)'
- HTML_DIR='$(DISTDIR)/html'
- TK_PKG_DIR='tk$(VERSION)$(TK_DBGX)'
diff --git a/dev-lang/tk/files/tk-8.5.14-conf.patch b/dev-lang/tk/files/tk-8.5.14-conf.patch
deleted file mode 100644
index 553f93f9b7dc..000000000000
--- a/dev-lang/tk/files/tk-8.5.14-conf.patch
+++ /dev/null
@@ -1,16 +0,0 @@
- unix/tcl.m4 | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/unix/tcl.m4 b/unix/tcl.m4
-index 3974753..9c36eb5 100644
---- a/unix/tcl.m4
-+++ b/unix/tcl.m4
-@@ -1420,7 +1420,7 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [
- # get rid of the warnings.
- #CFLAGS_OPTIMIZE="${CFLAGS_OPTIMIZE} -D__NO_STRING_INLINES -D__NO_MATH_INLINES"
-
-- SHLIB_LD='${CC} -shared ${CFLAGS} ${LDFLAGS}'
-+ SHLIB_LD='${CC} -shared ${CFLAGS} ${LDFLAGS} -Wl,-soname,${@}'
- DL_OBJS="tclLoadDl.o"
- DL_LIBS="-ldl"
- LDFLAGS="$LDFLAGS -Wl,--export-dynamic"
diff --git a/dev-lang/tk/files/tk-8.6.10-test.patch b/dev-lang/tk/files/tk-8.6.10-test.patch
deleted file mode 100644
index 89dcbabfbdc0..000000000000
--- a/dev-lang/tk/files/tk-8.6.10-test.patch
+++ /dev/null
@@ -1,527 +0,0 @@
---- a/tests/ttk/entry.test 2020-12-26 18:46:45.262306641 +0100
-+++ b/tests/ttk/entry.test 2020-12-26 18:47:00.246040124 +0100
-@@ -111,34 +111,34 @@
- set result [.e xview]
- } -result {0.0 0.5}
-
--test entry-3.3 "xview" -body {
-+test entry-3.3 "xview" -constraints knownBug -body {
- .e delete 0 end;
- .e insert end abcdefghijklmnopqrstuvwxyz
- .e xview end
- set result [.e index @0]
- } -result {7}
-
--test entry-3.4 "xview" -body {
-+test entry-3.4 "xview" -constraints knownBug -body {
- .e delete 0 end;
- .e insert end abcdefghijklmnopqrstuvwxyz
- .e xview moveto 1.0
- set result [.e index @0]
- } -result {7}
-
--test entry-3.5 "xview" -body {
-+test entry-3.5 "xview" -constraints knownBug -body {
- .e delete 0 end;
- .e insert end abcdefghijklmnopqrstuvwxyz
- .e xview scroll 5 units
- set result [.e index @0]
- } -result {5}
-
--test entry-3.6 "xview" -body {
-+test entry-3.6 "xview" -constraints knownBug -body {
- .e delete 0 end;
- .e insert end [string repeat abcdefghijklmnopqrstuvwxyz 5]
- .e xview scroll 2 pages
- set result [.e index @0]
- } -result {40}
-
- test entry-3.last "Series 3 cleanup" -body {
- destroy .e
- }
---- a/tests/bind.test 2020-12-26 18:48:21.586593331 +0100
-+++ b/tests/bind.test 2020-12-26 18:48:50.134085486 +0100
-@@ -639,7 +639,7 @@
- } -cleanup {
- destroy .t.f
- } -result {Keycolon Releasecolon}
--test bind-13.14 {Tk_BindEvent procedure: invalid key detail} -setup {
-+test bind-13.14 {Tk_BindEvent procedure: invalid key detail} -constraints knownBug -setup {
- frame .t.f -class Test -width 150 -height 100
- pack .t.f
- focus -force .t.f
-@@ -3536,7 +3536,7 @@
- destroy .t.f
- } -returnCodes error -result {bad window name/identifier "xyz"}
-
--test bind-22.66 {HandleEventGenerate: options <Key> -root [winfo id .t]} -setup {
-+test bind-22.66 {HandleEventGenerate: options <Key> -root [winfo id .t]} -constraints knownBug -setup {
- frame .t.f -class Test -width 150 -height 100
- pack .t.f
- focus -force .t.f
---- a/tests/ttk/spinbox.test 2020-12-26 18:49:19.967554727 +0100
-+++ b/tests/ttk/spinbox.test 2020-12-26 18:49:58.015877788 +0100
-@@ -136,7 +136,7 @@
- destroy .sb
- } -returnCodes error -result {bad validate "bogus": must be all, key, focus, focusin, focusout, or none}
-
--test spinbox-1.8.4 "-validate option: " -setup {
-+test spinbox-1.8.4 "-validate option: " -constraints knownBug -setup {
- set ::spinbox_test {}
- ttk::spinbox .sb -from 0 -to 100
- } -body {
---- a/tests/canvText.test 2020-12-26 18:57:00.520357006 +0100
-+++ b/tests/canvText.test 2020-12-26 19:02:44.545236036 +0100
-@@ -921,7 +921,7 @@
- destroy .c
- } -result {{Yeah } Yeah- 4 4}
-
--test canvText-20.1 {angled text bounding box} -setup {
-+test canvText-20.1 {angled text bounding box} -constraints knownBug -setup {
- destroy .c
- canvas .c
- proc transpose {bbox} {
---- a/tests/focus.test 2020-12-26 19:03:59.769904923 +0100
-+++ b/tests/focus.test 2020-12-26 19:11:21.583080155 +0100
-@@ -73,7 +73,7 @@
- }
-
-
--test focus-1.1 {Tk_FocusCmd procedure} -constraints unix -body {
-+test focus-1.1 {Tk_FocusCmd procedure} -constraints knownBug -body {
- focusClear
- focus
- } -result {}
-@@ -83,7 +83,7 @@
- focus .alt.b
- focus
- } -result {}
--test focus-1.3 {Tk_FocusCmd procedure} -constraints unix -body {
-+test focus-1.3 {Tk_FocusCmd procedure} -constraints knownBug -body {
- focusClear
- focus .t.b3
- focus
-@@ -145,7 +145,7 @@
- focus -displayof .lousy
- } -returnCodes error -result {bad window path name ".lousy"}
- test focus-1.12 {Tk_FocusCmd procedure, -displayof option} -constraints {
-- unix
-+ knownBug
- } -body {
- focusClear
- focus .t
-@@ -308,7 +308,7 @@
- } .t.b1}
-
- test focus-2.6 {TkFocusFilterEvent procedure, FocusIn events} -constraints {
-- unix testwrapper
-+ knownBug
- } -body {
- focus .t.b1
- focus .
-@@ -320,7 +320,7 @@
- list $x $focusInfo
- } -result {.t.b1 {press .t.b1 x}}
- test focus-2.7 {TkFocusFilterEvent procedure, FocusOut events} -constraints {
-- unix testwrapper
-+ knownBug
- } -body {
- set result {}
- foreach detail {NotifyAncestor NotifyInferior NotifyNonlinear
-@@ -341,7 +341,7 @@
- focus
- } -result {.t.b1}
- test focus-2.9 {TkFocusFilterEvent procedure, FocusOut events} -constraints {
-- unix testwrapper
-+ knownBug
- } -body {
- focus .t.b1
- event gen [testwrapper .] <FocusOut> -detail NotifyAncestor
-@@ -348,7 +348,7 @@
- focus
- } -result {}
- test focus-2.10 {TkFocusFilterEvent procedure, Enter events} -constraints {
-- unix testwrapper
-+ knownBug
- } -body {
- set result {}
- focus .t.b1
-@@ -410,7 +410,7 @@
- destroy .t2
- } -result {}
- test focus-2.15 {TkFocusFilterEvent procedure, Leave events} -constraints {
-- unix testwrapper
-+ knownBug
- } -body {
- set result {}
- focus .t.b1
-@@ -426,7 +426,7 @@
- return $result
- } -result {{} .t.b1 {} {} {}}
- test focus-2.16 {TkFocusFilterEvent procedure, Leave events} -constraints {
-- unix testwrapper
-+ knownBug
- } -body {
- focusClear
- focus .t.b1
-@@ -440,7 +440,7 @@
- out .t NotifyVirtual
- }
- test focus-2.17 {TkFocusFilterEvent procedure, Leave events} -constraints {
-- unix testwrapper
-+ knownBug
- } -body {
- focusClear
- focus .t.b1
-@@ -508,7 +508,7 @@
- destroy .t2
- } -result {}
- test focus-3.5 {SetFocus procedure, generating events} -constraints {
-- unix testwrapper
-+ knownBug
- } -body {
- focusSetup
- focusClear
-@@ -548,7 +548,7 @@
-
-
- test focus-4.1 {TkFocusDeadWindow procedure} -constraints {
-- unix testwrapper
-+ knownBug
- } -body {
- focusSetup
- update
-@@ -599,7 +599,7 @@
-
- # Test 5.1 fails (before and after update)
- test focus-5.1 {ChangeXFocus procedure, don't take focus unless have it} -constraints {
-- unix testwrapper secureserver
-+ knownBug
- } -body {
- setupbg
- focusSetup
-@@ -622,7 +622,7 @@
-
- fixfocus
- test focus-6.1 {miscellaneous - embedded application in same process} -constraints {
-- unix testwrapper
-+ knownBug
- } -setup {
- eval interp delete [interp slaves]
- } -body {
-@@ -677,7 +677,7 @@
- } -result {{.t.f2.e1 {} {focus out .t.f2.e1 NotifyNonlinear} {focus out .t.f2 NotifyNonlinearVirtual} {focus in .t.f1 NotifyNonlinear} | {focus out .t.f1 NotifyNonlinear} {focus in .t.f2 NotifyNonlinearVirtual} {focus in .t.f2.e1 NotifyNonlinear}} {{focus in . NotifyVirtual} {focus in .e1 NotifyAncestor} | {focus out .e1 NotifyAncestor} {focus out . NotifyVirtual}}}
-
- test focus-6.2 {miscellaneous - embedded application in different process} -constraints {
-- unix testwrapper
-+ knownBug
- } -body {
- setupbg
- toplevel .t
---- a/tests/font.test 2020-12-26 19:15:55.199228774 +0100
-+++ b/tests/font.test 2020-12-26 19:18:05.414951407 +0100
-@@ -134,7 +134,7 @@
- # not (objc > 3) so objPtr = NULL
- lindex [font actual {-family times}] 0
- } -result {-family}
--test font-4.9 {font command: actual} -constraints {unix noExceed} -body {
-+test font-4.9 {font command: actual} -constraints {knownBug} -body {
- # (objc > 3) so objPtr = objv[3 + skip]
- string tolower [font actual {-family times} -family]
- } -result {times}
-@@ -399,7 +399,7 @@
- # (tkfont == NULL)
- font measure "\{xyz" abc
- } -returnCodes error -result "font \"{xyz\" doesn't exist"
--test font-9.5 {font command: measure} -body {
-+test font-9.5 {font command: measure} -constraints knownBug -body {
- # Tk_TextWidth()
- expr {[font measure $fixed "abcdefg"] == [font measure $fixed "a"]*7 }
- } -result 1
-@@ -450,7 +450,7 @@
- # (Tcl_GetIndexFromObj() != TCL_OK)
- font metrics $fixed -xyz
- } -returnCodes error -result {bad metric "-xyz": must be -ascent, -descent, -linespace, or -fixed}
--test font-10.9 {font command: metrics: get individual metrics} -body {
-+test font-10.9 {font command: metrics: get individual metrics} -constraints knownBug -body {
- font metrics $fixed -ascent
- font metrics $fixed -descent
- font metrics $fixed -linespace
-@@ -921,7 +921,7 @@
- }
- } -result {LucidaBright}
- test font-21.6 {Tk_PostscriptFontName procedure: spaces} -constraints {
-- x11
-+ knownBug
- } -body {
- psfontname "{new century schoolbook} 10"
- } -result {NewCenturySchlbk-Roman}
---- a/tests/main.test.old 2020-12-26 19:27:49.188791206 +0100
-+++ b/tests/main.test 2020-12-26 19:28:40.782897366 +0100
-@@ -91,7 +91,7 @@
- removeFile script
- } -returnCodes ok -result {-enc utf-8 script}
-
--test main-3.1 {Tk_ParseArgv: -help option} -constraints unix -body {
-+test main-3.1 {Tk_ParseArgv: -help option} -constraints knownBug -body {
- # Run only on unix as Win32 pops up native dialog
- exec [interpreter] -help
- } -returnCodes error -match glob -result {% application-specific initialization failed: Command-specific options:*}
---- a/tests/pack.test 2020-12-26 19:29:47.742736743 +0100
-+++ b/tests/pack.test 2020-12-26 19:30:50.867642152 +0100
-@@ -1551,7 +1551,7 @@
-
-
- test pack-18.1 {unmap slaves when master unmapped} -constraints {
-- tempNotPc
-+ knownBug
- } -setup {
- eval destroy [winfo child .pack]
- } -body {
-@@ -1575,7 +1575,7 @@
- update
- lappend result [winfo ismapped .pack.a]
- } -result {1 0 200 75 0 1}
--test pack-18.2 {unmap slaves when master unmapped} -setup {
-+test pack-18.2 {unmap slaves when master unmapped} -constraints knownBug -setup {
- eval destroy [winfo child .pack]
- } -body {
-
---- a/tests/place.test 2020-12-26 20:20:26.508256229 +0100
-+++ b/tests/place.test 2020-12-26 20:21:00.213678014 +0100
-@@ -259,7 +259,7 @@
- } -result {30 60}
-
-
--test place-8.1 {MasterStructureProc, mapping and unmapping slaves} -setup {
-+test place-8.1 {MasterStructureProc, mapping and unmapping slaves} -constraints knownBug -setup {
- place forget .t.f2
- place forget .t.f
- } -body {
-@@ -276,7 +276,7 @@
- update
- lappend result [winfo ismapped .t.f2]
- } -result {1 0 40 30 0 1}
--test place-8.2 {MasterStructureProc, mapping and unmapping slaves} -setup {
-+test place-8.2 {MasterStructureProc, mapping and unmapping slaves} -constraints knownBug -setup {
- place forget .t.f2
- place forget .t.f
- } -body {
---- a/tests/scrollbar.test 2020-12-26 20:24:21.356505305 +0100
-+++ b/tests/scrollbar.test 2020-12-26 20:26:32.214409209 +0100
-@@ -270,15 +270,9 @@
- format {%.6g} [.s fraction 4 21]
- } [format %.6g [expr {(21.0 - ([winfo height .s] - [getTroughSize .s])/2.0) \
- /([getTroughSize .s] - 1)}]]
--test scrollbar-3.36 {ScrollbarWidgetCmd procedure, "fraction" option} x11 {
-- format {%.6g} [.s fraction 4 179]
--} {1}
- test scrollbar-3.37 {ScrollbarWidgetCmd procedure, "fraction" option} {testmetrics} {
- format {%.6g} [.s fraction 4 [expr {200 - [testmetrics cyvscroll .s]}]]
- } {1}
--test scrollbar-3.38 {ScrollbarWidgetCmd procedure, "fraction" option} x11 {
-- format {%.6g} [.s fraction 4 178]
--} {0.993711}
- test scrollbar-3.39 {ScrollbarWidgetCmd procedure, "fraction" option} {testmetrics win} {
- expr {
- [format {%.6g} [.s fraction 4 [expr {200 - [testmetrics cyvscroll .s] - 2}]]]
-@@ -491,9 +485,6 @@
- # macOS scrollbars have no arrows nowadays
- .s identify 8 4
- } {trough1}
--test scrollbar-6.12.1 {ScrollbarPosition procedure} x11 {
-- .s identify 8 19
--} {arrow1}
- test scrollbar-6.12.2 {ScrollbarPosition procedure} aqua {
- # macOS scrollbars have no arrows nowadays
- .s identify 8 19
-@@ -549,9 +540,6 @@
- .s identify [expr {[winfo width .s] / 2}] [expr {[winfo height .s]
- - [testmetrics cyvscroll .s] - 1}]
- } {trough2}
--test scrollbar-6.29.1 {ScrollbarPosition procedure} x11 {
-- .s identify 8 180
--} {arrow2}
- test scrollbar-6.29.2 {ScrollbarPosition procedure} aqua {
- # macOS scrollbars have no arrows nowadays
- .s identify 8 180
-@@ -573,9 +561,6 @@
- test scrollbar-6.34 {ScrollbarPosition procedure} unix {
- .s identify 4 100
- } {trough2}
--test scrollbar-6.35 {ScrollbarPosition procedure} unix {
-- .s identify 18 100
--} {trough2}
- test scrollbar-6.37 {ScrollbarPosition procedure} win {
- .s identify 0 100
- } {trough2}
-@@ -612,9 +597,6 @@
- .t.s identify [expr {int(.4 / [.t.s delta 1 0]) + [testmetrics cxhscroll .t.s]
- - 1}] [expr {[winfo height .t.s] / 2}]
- } {slider}
--test scrollbar-6.44 {ScrollbarPosition procedure} unix {
-- .t.s identify 100 18
--} {trough2}
- test scrollbar-6.46 {ScrollbarPosition procedure} win {
- .t.s identify 100 [expr {[winfo height .t.s] - 1}]
- } {trough2}
---- a/tests/send.test 2020-12-26 22:31:48.460395767 +0100
-+++ b/tests/send.test 2020-12-26 22:32:55.577225240 +0100
-@@ -522,10 +522,6 @@
- set x
- } {1 {target application died}}
-
--test send-11.1 {AppendPropCarefully and AppendErrorProc procedures} {secureserver testsend} {
-- testsend prop root InterpRegistry "0x21447 dummy\n"
-- list [catch {send dummy foo} msg] $msg
--} {1 {no application named "dummy"}}
- test send-11.2 {AppendPropCarefully and AppendErrorProc procedures} {secureserver testsend} {
- testsend prop comm Comm "c\n-r0x123 44\n-n tktest\n-s concat a b c\n"
- update
---- a/tests/text.test 2020-12-26 22:33:20.794786722 +0100
-+++ b/tests/text.test 2020-12-26 22:35:03.560000413 +0100
-@@ -6682,7 +6682,7 @@
- } -cleanup {
- destroy .t
- } -result {no_<<Selection>>_event_fired}
--test text-27.15d {<<Selection>> virtual event on <Delete> with cursor inside selection} -body {
-+test text-27.15d {<<Selection>> virtual event on <Delete> with cursor inside selection} -constraints knownBug -body {
- pack [text .t]
- .t insert end "There is a selection in this text widget,\n"
- .t insert end "and it will be impacted by the <Delete> event received.\n"
---- a/tests/unixEmbed.test 2020-12-26 22:51:50.192506259 +0100
-+++ b/tests/unixEmbed.test 2020-12-26 22:52:21.590963386 +0100
-@@ -1086,7 +1086,7 @@
- } -result {{} {{key b}}}
-
- test unixEmbed-8.1 {TkpClaimFocus procedure} -constraints {
-- unix notAqua
-+ knownBug
- } -setup {
- deleteWindows
- } -body {
---- a/tests/textWind.test 2020-12-26 23:02:18.379690140 +0100
-+++ b/tests/textWind.test 2020-12-26 23:02:51.948113638 +0100
-@@ -790,7 +790,7 @@
- {{can't embed .t relative to .t}} \
- [list [expr {$padx+5*$fixedWidth}] [expr {$pady+($fixedHeight/2)}] 0 0]]
-
--test textWind-10.7 {EmbWinLayoutProc procedure, error in creating window} -setup {
-+test textWind-10.7 {EmbWinLayoutProc procedure, error in creating window} -constraints knownBug -setup {
- .t delete 1.0 end
- destroy .t2
- proc bgerror args {
---- a/tests/winWm.test 2020-12-26 23:03:20.701619782 +0100
-+++ b/tests/winWm.test 2020-12-26 23:03:46.991168197 +0100
-@@ -532,7 +532,7 @@
- destroy .tx .t .sd
- } -result {ok}
-
--test winWm-9.2 "check wm forget for unmapped parent (#3205464,#2967911)" -setup {
-+test winWm-9.2 "check wm forget for unmapped parent (#3205464,#2967911)" -constraints knownBug -setup {
- destroy .t
- toplevel .t
- set winwm92 {}
---- a/tests/winfo.test 2020-12-26 23:04:34.411353552 +0100
-+++ b/tests/winfo.test 2020-12-26 23:05:25.199480886 +0100
-@@ -291,7 +291,7 @@
- test winfo-9.3 {"winfo viewable" command} -body {
- winfo viewable .
- } -result {1}
--test winfo-9.4 {"winfo viewable" command} -body {
-+test winfo-9.4 {"winfo viewable" command} -constraints knownBug -body {
- wm iconify .
- winfo viewable .
- } -cleanup {
-@@ -320,7 +320,7 @@
- } -cleanup {
- deleteWindows
- } -result {0 0}
--test winfo-9.7 {"winfo viewable" command} -setup {
-+test winfo-9.7 {"winfo viewable" command} -constraints knownBug -setup {
- deleteWindows
- } -body {
- frame .f1 -width 100 -height 100 -relief raised -bd 2
---- a/tests/wm.test 2020-12-26 23:06:24.946454094 +0100
-+++ b/tests/wm.test 2020-12-26 23:09:41.055082358 +0100
-@@ -805,7 +805,7 @@
- destroy .t2 .r.f
- } -result {can't iconify .t2: it is an embedded window}
-
--test wm-iconify-3.1 {iconify behavior} -body {
-+test wm-iconify-3.1 {iconify behavior} -constraints knownBug -body {
- toplevel .t2
- wm geom .t2 -0+0
- update
-@@ -1413,7 +1413,7 @@
-
- deleteWindows
-
--test wm-stackorder-3.1 {unmapped toplevel} -body {
-+test wm-stackorder-3.1 {unmapped toplevel} -constraints knownBug -body {
- toplevel .t1 ; update
- toplevel .t2 ; update
- wm iconify .t1
-@@ -1523,7 +1523,7 @@
- destroy .t
- } -result {.t .}
- test wm-stackorder-5.2 {A normal toplevel can't be raised above an \
-- overrideredirect toplevel on unix} -constraints x11 -body {
-+ overrideredirect toplevel on unix} -constraints knownBug -body {
- toplevel .t
- tkwait visibility .t
- wm overrideredirect .t 1
-@@ -1722,7 +1722,7 @@
- } -result {withdrawn 0 normal 1}
-
- test wm-transient-4.1 {transient toplevel is withdrawn
-- when mapped if master is iconic} -body {
-+ when mapped if master is iconic} -constraints knownBug -body {
- toplevel .master
- wm iconify .master
- update
-@@ -1734,7 +1734,7 @@
- deleteWindows
- } -result {withdrawn 0}
- test wm-transient-4.2 {already mapped transient toplevel
-- is withdrawn if master is iconic} -body {
-+ is withdrawn if master is iconic} -constraints knownBug -body {
- toplevel .master
- raiseDelay
- wm iconify .master
-@@ -1748,7 +1748,7 @@
- deleteWindows
- } -result {withdrawn 0}
- test wm-transient-4.3 {iconify/deiconify on the master
-- does a withdraw/deiconify on the transient} -setup {
-+ does a withdraw/deiconify on the transient} -constraints knownBug -setup {
- set results [list]
- } -body {
- toplevel .master
-@@ -1924,7 +1924,7 @@
- deleteWindows
- }
-
--test wm-transient-8.1 {transient to withdrawn window, Bug 1163496} -setup {
-+test wm-transient-8.1 {transient to withdrawn window, Bug 1163496} -constraints knownBug -setup {
- deleteWindows
- set result {}
- } -body {
-@@ -2001,7 +2001,7 @@
- } -cleanup {
- deleteWindows
- } -result {iconic}
--test wm-state-2.8 {state change after map} -body {
-+test wm-state-2.8 {state change after map} -constraints knownBug -body {
- toplevel .t
- update
- wm state .t iconic
-@@ -2009,7 +2009,7 @@
- } -cleanup {
- deleteWindows
- } -result {iconic}
--test wm-state-2.9 {state change after map} -body {
-+test wm-state-2.9 {state change after map} -constraints knownBug -body {
- toplevel .t
- update
- wm iconify .t
diff --git a/dev-lang/tk/files/tk-8.6.12-test.patch b/dev-lang/tk/files/tk-8.6.12-test.patch
new file mode 100644
index 000000000000..231265f464e4
--- /dev/null
+++ b/dev-lang/tk/files/tk-8.6.12-test.patch
@@ -0,0 +1,31 @@
+--- a/tests/font.test 2020-12-26 19:15:55.199228774 +0100
++++ b/tests/font.test 2020-12-26 19:18:05.414951407 +0100
+@@ -399,7 +399,7 @@
+ # (tkfont == NULL)
+ font measure "\{xyz" abc
+ } -returnCodes error -result "font \"{xyz\" doesn't exist"
+-test font-9.5 {font command: measure} -body {
++test font-9.5 {font command: measure} -constraints knownBug -body {
+ # Tk_TextWidth()
+ expr {[font measure $fixed "abcdefg"] == [font measure $fixed "a"]*7 }
+ } -result 1
+@@ -450,7 +450,7 @@
+ # (Tcl_GetIndexFromObj() != TCL_OK)
+ font metrics $fixed -xyz
+ } -returnCodes error -result {bad metric "-xyz": must be -ascent, -descent, -linespace, or -fixed}
+-test font-10.9 {font command: metrics: get individual metrics} -body {
++test font-10.9 {font command: metrics: get individual metrics} -constraints knownBug -body {
+ font metrics $fixed -ascent
+ font metrics $fixed -descent
+ font metrics $fixed -linespace
+--- a/tests/scrollbar.test 2021-12-12 10:20:06.460611347 +0100
++++ b/tests/scrollbar.test 2021-12-12 10:21:12.204503285 +0100
+@@ -717,7 +717,7 @@
+ destroy .t .s
+ } -result {5.0}
+
+-test scrollbar-10.2.1 {<MouseWheel> event on scrollbar} -constraints {notAqua} -setup {
++test scrollbar-10.2.1 {<MouseWheel> event on scrollbar} -constraints knownBug -setup {
+ destroy .t .s
+ } -body {
+ pack [text .t -xscrollcommand {.s set} -wrap none] -side top
diff --git a/dev-lang/tk/files/tk-8.6.13-test.patch b/dev-lang/tk/files/tk-8.6.13-test.patch
new file mode 100644
index 000000000000..c239ba79ef2f
--- /dev/null
+++ b/dev-lang/tk/files/tk-8.6.13-test.patch
@@ -0,0 +1,50 @@
+--- a/tests/textDisp.test 2022-11-23 08:26:53.070121316 +0100
++++ b/tests/textDisp.test 2022-11-23 08:35:58.527988892 +0100
+@@ -2303,10 +2303,10 @@
+ }
+ lequal [.t index @0,0] $expected
+ } {1}
+-test textDisp-16.17 {TkTextYviewCmd procedure, "moveto" option} {
++test textDisp-16.17 {TkTextYviewCmd procedure, "moveto" option} -constraints {knownBug} -body {
+ .t yview moveto .755
+ .t index @0,0
+-} {151.80}
++} -result {151.80}
+ test textDisp-16.18 {TkTextYviewCmd procedure, "moveto" roundoff} {
+ catch {destroy .top1}
+ toplevel .top1
+--- a/tests/ttk/entry.test 2022-11-23 08:44:49.647148945 +0100
++++ b/tests/ttk/entry.test 2022-11-23 08:51:48.524180822 +0100
+@@ -127,28 +127,28 @@
+ set result [.e xview]
+ } -result {0.0 0.5}
+
+-test entry-3.3 "xview" -body {
++test entry-3.3 "xview" -constraints knownBug -body {
+ .e delete 0 end;
+ .e insert end abcdefghijklmnopqrstuvwxyz
+ .e xview end
+ set result [.e index @0]
+ } -result 7
+
+-test entry-3.4 "xview" -body {
++test entry-3.4 "xview" -constraints knownBug -body {
+ .e delete 0 end;
+ .e insert end abcdefghijklmnopqrstuvwxyz
+ .e xview moveto 1.0
+ set result [.e index @0]
+ } -result 7
+
+-test entry-3.5 "xview" -body {
++test entry-3.5 "xview" -constraints knownBug -body {
+ .e delete 0 end;
+ .e insert end abcdefghijklmnopqrstuvwxyz
+ .e xview scroll 5 units
+ set result [.e index @0]
+ } -result 5
+
+-test entry-3.6 "xview" -body {
++test entry-3.6 "xview" -constraints knownBug -body {
+ .e delete 0 end;
+ .e insert end [string repeat abcdefghijklmnopqrstuvwxyz 5]
+ .e xview scroll 2 pages
diff --git a/dev-lang/tk/files/tk-8.6.14-test.patch b/dev-lang/tk/files/tk-8.6.14-test.patch
new file mode 100644
index 000000000000..a59f9d4e6861
--- /dev/null
+++ b/dev-lang/tk/files/tk-8.6.14-test.patch
@@ -0,0 +1,49 @@
+--- a/tests/textDisp.test 2024-03-10 14:25:29.581307116 +0100
++++ b/tests/textDisp.test 2024-03-10 14:26:46.022318200 +0100
+@@ -2314,11 +2314,6 @@
+ }
+ lequal [.t index @0,0] $expected
+ } {1}
+-test textDisp-16.17 {TkTextYviewCmd procedure, "moveto" option} haveBigFontTwiceLargerThanTextFont {
+-# constrained because text tagged with the big font plays a role
+- .t yview moveto .755
+- .t index @0,0
+-} {151.80}
+ test textDisp-16.18 {TkTextYviewCmd procedure, "moveto" roundoff} {
+ catch {destroy .top1}
+ toplevel .top1
+--- a/tests/ttk/entry.test 2022-11-23 08:44:49.647148945 +0100
++++ b/tests/ttk/entry.test 2022-11-23 08:51:48.524180822 +0100
+@@ -127,28 +127,28 @@
+ set result [.e xview]
+ } -result {0.0 0.5}
+
+-test entry-3.3 "xview" -body {
++test entry-3.3 "xview" -constraints knownBug -body {
+ .e delete 0 end;
+ .e insert end abcdefghijklmnopqrstuvwxyz
+ .e xview end
+ set result [.e index @0]
+ } -result 7
+
+-test entry-3.4 "xview" -body {
++test entry-3.4 "xview" -constraints knownBug -body {
+ .e delete 0 end;
+ .e insert end abcdefghijklmnopqrstuvwxyz
+ .e xview moveto 1.0
+ set result [.e index @0]
+ } -result 7
+
+-test entry-3.5 "xview" -body {
++test entry-3.5 "xview" -constraints knownBug -body {
+ .e delete 0 end;
+ .e insert end abcdefghijklmnopqrstuvwxyz
+ .e xview scroll 5 units
+ set result [.e index @0]
+ } -result 5
+
+-test entry-3.6 "xview" -body {
++test entry-3.6 "xview" -constraints knownBug -body {
+ .e delete 0 end;
+ .e insert end [string repeat abcdefghijklmnopqrstuvwxyz 5]
+ .e xview scroll 2 pages
diff --git a/dev-lang/tk/files/tk-8.6.8-libieee.patch b/dev-lang/tk/files/tk-8.6.8-libieee.patch
deleted file mode 100644
index 942144e68c71..000000000000
--- a/dev-lang/tk/files/tk-8.6.8-libieee.patch
+++ /dev/null
@@ -1,15 +0,0 @@
---- a/unix/tcl.m4
-+++ b/unix/tcl.m4
-@@ -2470,12 +2470,9 @@
- #--------------------------------------------------------------------
- # On a few very rare systems, all of the libm.a stuff is
- # already in libc.a. Set compiler flags accordingly.
-- # Also, Linux requires the "ieee" library for math to work
-- # right (and it must appear before "-lm").
- #--------------------------------------------------------------------
-
- AC_CHECK_FUNC(sin, MATH_LIBS="", MATH_LIBS="-lm")
-- AC_CHECK_LIB(ieee, main, [MATH_LIBS="-lieee $MATH_LIBS"])
-
- #--------------------------------------------------------------------
- # Interactive UNIX requires -linet instead of -lsocket, plus it
diff --git a/dev-lang/tk/metadata.xml b/dev-lang/tk/metadata.xml
index ec2fb390faa4..911d255862a1 100644
--- a/dev-lang/tk/metadata.xml
+++ b/dev-lang/tk/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>tcltk@gentoo.org</email>
@@ -7,5 +7,6 @@
</maintainer>
<upstream>
<remote-id type="sourceforge">tcl</remote-id>
+ <remote-id type="github">tcltk/tk</remote-id>
</upstream>
</pkgmetadata>
diff --git a/dev-lang/tk/tk-8.5.17-r1.ebuild b/dev-lang/tk/tk-8.5.17-r1.ebuild
deleted file mode 100644
index 8d2d501f43f1..000000000000
--- a/dev-lang/tk/tk-8.5.17-r1.ebuild
+++ /dev/null
@@ -1,127 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-
-inherit autotools eutils multilib prefix toolchain-funcs versionator virtualx
-
-MY_P="${PN}${PV/_beta/b}"
-
-DESCRIPTION="Tk Widget Set"
-HOMEPAGE="http://www.tcl.tk/"
-SRC_URI="mirror://sourceforge/tcl/${MY_P}-src.tar.gz"
-
-LICENSE="tcltk"
-SLOT="0/8.5"
-KEYWORDS="~alpha amd64 arm ~hppa ~ia64 ~mips ppc ppc64 s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-IUSE="debug threads truetype aqua xscreensaver"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- !aqua? (
- media-libs/fontconfig
- media-libs/freetype:2
- x11-libs/libX11
- x11-libs/libXt
- truetype? ( x11-libs/libXft )
- xscreensaver? ( x11-libs/libXScrnSaver )
- )
- ~dev-lang/tcl-${PV}:0="
-DEPEND="${RDEPEND}
- !aqua? ( x11-base/xorg-proto )"
-
-SPARENT="${WORKDIR}/${MY_P}"
-S="${SPARENT}"/unix
-
-src_prepare() {
- epatch \
- "${FILESDIR}"/${PN}-8.5.11-fedora-xft.patch \
- "${FILESDIR}"/${PN}-8.5.13-multilib.patch
-
- epatch "${FILESDIR}"/${PN}-8.4.15-aqua.patch
- eprefixify Makefile.in
-
- # Bug 125971
- epatch "${FILESDIR}"/${PN}-8.5.14-conf.patch
-
- # Bug 648570
- epatch "${FILESDIR}"/${PN}-8.6.8-libieee.patch
-
- # Make sure we use the right pkg-config, and link against fontconfig
- # (since the code base uses Fc* functions).
- sed \
- -e 's/FT_New_Face/XftFontOpen/g' \
- -e "s:\<pkg-config\>:$(tc-getPKG_CONFIG):" \
- -e 's:xft freetype2:xft freetype2 fontconfig:' \
- -i configure.in || die
- rm -f configure || die
-
- sed \
- -e '/chmod/s:555:755:g' \
- -i Makefile.in || die
-
- tc-export CC
-
- eautoconf
-}
-
-src_configure() {
- local mylibdir=$(get_libdir)
-
- econf \
- --with-tcl="${EPREFIX}/usr/${mylibdir}" \
- $(use_enable threads) \
- $(use_enable aqua) \
- $(use_enable truetype xft) \
- $(use_enable xscreensaver xss) \
- $(use_enable debug symbols)
-}
-
-src_test() {
- Xemake test
-}
-
-src_install() {
- #short version number
- local v1=$(get_version_component_range 1-2)
- local mylibdir=$(get_libdir)
-
- S= default
-
- # normalize $S path, bug #280766 (pkgcore)
- local nS="$(cd "${S}"; pwd)"
-
- # fix the tkConfig.sh to eliminate refs to the build directory
- # and drop unnecessary -L inclusion to default system libdir
-
- sed \
- -e "/^TK_BUILD_LIB_SPEC=/s:-L${SPARENT}.*unix *::g" \
- -e "/^TK_LIB_SPEC=/s:-L${EPREFIX}/usr/${mylibdir} *::g" \
- -e "/^TK_SRC_DIR=/s:${SPARENT}:${EPREFIX}/usr/${mylibdir}/tk${v1}/include:g" \
- -e "/^TK_BUILD_STUB_LIB_SPEC=/s:-L${SPARENT}.*unix *::g" \
- -e "/^TK_STUB_LIB_SPEC=/s:-L${EPREFIX}/usr/${mylibdir} *::g" \
- -e "/^TK_BUILD_STUB_LIB_PATH=/s:${SPARENT}.*unix:${EPREFIX}/usr/${mylibdir}:g" \
- -e "/^TK_LIB_FILE=/s:'libtk${v1}..TK_DBGX..so':\"libk${v1}\$\{TK_DBGX\}.so\":g" \
- -i "${ED}"/usr/${mylibdir}/tkConfig.sh || die
- if use prefix && [[ ${CHOST} != *-darwin* && ${CHOST} != *-mint* ]] ; then
- sed \
- -e "/^TK_CC_SEARCH_FLAGS=/s|'$|:${EPREFIX}/usr/${mylibdir}'|g" \
- -e "/^TK_LD_SEARCH_FLAGS=/s|'$|:${EPREFIX}/usr/${mylibdir}'|" \
- -i "${ED}"/usr/${mylibdir}/tkConfig.sh || die
- fi
-
- # install private headers
- insinto /usr/${mylibdir}/tk${v1}/include/unix
- doins "${S}"/*.h
- insinto /usr/${mylibdir}/tk${v1}/include/generic
- doins "${SPARENT}"/generic/*.h
- rm -f "${ED}"/usr/${mylibdir}/tk${v1}/include/generic/{tk,tkDecls,tkPlatDecls}.h || die
-
- # install symlink for libraries
- dosym libtk${v1}$(get_libname) /usr/${mylibdir}/libtk$(get_libname)
- dosym libtkstub${v1}.a /usr/${mylibdir}/libtkstub.a
-
- dosym wish${v1} /usr/bin/wish
-
- dodoc "${SPARENT}"/{ChangeLog*,README,changes}
-}
diff --git a/dev-lang/tk/tk-8.6.11.1.ebuild b/dev-lang/tk/tk-8.6.11.1.ebuild
index f033c912f9c6..46d20b9ce8f8 100644
--- a/dev-lang/tk/tk-8.6.11.1.ebuild
+++ b/dev-lang/tk/tk-8.6.11.1.ebuild
@@ -1,19 +1,19 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
-inherit autotools multilib-minimal prefix toolchain-funcs virtualx
+inherit autotools multilib-minimal multilib prefix toolchain-funcs virtualx
MY_P="${PN}${PV/_beta/b}"
DESCRIPTION="Tk Widget Set"
-HOMEPAGE="http://www.tcl.tk/"
-SRC_URI="mirror://sourceforge/tcl/${MY_P}-src.tar.gz"
+HOMEPAGE="https://www.tcl.tk/"
+SRC_URI="https://downloads.sourceforge.net/tcl/${MY_P}-src.tar.gz"
LICENSE="tcltk"
SLOT="0/8.6"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
IUSE="debug +threads truetype aqua xscreensaver"
RESTRICT="!test? ( test )"
@@ -28,7 +28,7 @@ RDEPEND="
~dev-lang/tcl-$(ver_cut 1-3):0=[${MULTILIB_USEDEP}]"
DEPEND="${RDEPEND}
!aqua? ( x11-base/xorg-proto )"
-
+BDEPEND="virtual/pkgconfig"
# Not bumped to 8.6
#RESTRICT=test
@@ -121,7 +121,7 @@ multilib_src_install() {
-e "/^TK_BUILD_STUB_LIB_PATH=/s:${S}-\w*\.\w*:${EPREFIX}/usr/${mylibdir}:g" \
-e "/^TK_LIB_FILE=/s:'libtk${v1}..TK_DBGX..so':\"libk${v1}\$\{TK_DBGX\}.so\":g" \
-i "${ED}"/usr/${mylibdir}/tkConfig.sh || die
- if use prefix && [[ ${CHOST} != *-darwin* && ${CHOST} != *-mint* ]] ; then
+ if use prefix && [[ ${CHOST} != *-darwin* ]] ; then
sed \
-e "/^TK_CC_SEARCH_FLAGS=/s|'$|:${EPREFIX}/usr/${mylibdir}'|g" \
-e "/^TK_LD_SEARCH_FLAGS=/s|'$|:${EPREFIX}/usr/${mylibdir}'|" \
diff --git a/dev-lang/tk/tk-8.6.11.ebuild b/dev-lang/tk/tk-8.6.12.ebuild
index 741a2f709920..6c69461061e1 100644
--- a/dev-lang/tk/tk-8.6.11.ebuild
+++ b/dev-lang/tk/tk-8.6.12.ebuild
@@ -1,19 +1,21 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
-inherit autotools multilib-minimal prefix toolchain-funcs virtualx
+# Please bump with dev-lang/tcl!
+
+inherit autotools multilib-minimal multilib prefix toolchain-funcs virtualx
MY_P="${PN}${PV/_beta/b}"
DESCRIPTION="Tk Widget Set"
-HOMEPAGE="http://www.tcl.tk/"
-SRC_URI="mirror://sourceforge/tcl/${MY_P}-src.tar.gz"
+HOMEPAGE="https://www.tcl.tk/"
+SRC_URI="https://downloads.sourceforge.net/tcl/${MY_P}-src.tar.gz"
LICENSE="tcltk"
SLOT="0/8.6"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
IUSE="debug +threads truetype aqua xscreensaver"
RESTRICT="!test? ( test )"
@@ -28,7 +30,7 @@ RDEPEND="
~dev-lang/tcl-$(ver_cut 1-3):0=[${MULTILIB_USEDEP}]"
DEPEND="${RDEPEND}
!aqua? ( x11-base/xorg-proto )"
-
+BDEPEND="virtual/pkgconfig"
# Not bumped to 8.6
#RESTRICT=test
@@ -39,7 +41,7 @@ PATCHES=(
"${FILESDIR}"/${PN}-8.6.10-multilib.patch
"${FILESDIR}"/${PN}-8.4.15-aqua.patch
"${FILESDIR}"/${PN}-8.6.9-conf.patch # Bug 125971
- "${FILESDIR}"/${P}-test.patch
+ "${FILESDIR}"/${PN}-8.6.12-test.patch
)
src_prepare() {
@@ -121,7 +123,7 @@ multilib_src_install() {
-e "/^TK_BUILD_STUB_LIB_PATH=/s:${S}-\w*\.\w*:${EPREFIX}/usr/${mylibdir}:g" \
-e "/^TK_LIB_FILE=/s:'libtk${v1}..TK_DBGX..so':\"libk${v1}\$\{TK_DBGX\}.so\":g" \
-i "${ED}"/usr/${mylibdir}/tkConfig.sh || die
- if use prefix && [[ ${CHOST} != *-darwin* && ${CHOST} != *-mint* ]] ; then
+ if use prefix && [[ ${CHOST} != *-darwin* ]] ; then
sed \
-e "/^TK_CC_SEARCH_FLAGS=/s|'$|:${EPREFIX}/usr/${mylibdir}'|g" \
-e "/^TK_LD_SEARCH_FLAGS=/s|'$|:${EPREFIX}/usr/${mylibdir}'|" \
diff --git a/dev-lang/tk/tk-8.6.9.1.ebuild b/dev-lang/tk/tk-8.6.13.ebuild
index 3dfd46f07414..bb0336787554 100644
--- a/dev-lang/tk/tk-8.6.9.1.ebuild
+++ b/dev-lang/tk/tk-8.6.13.ebuild
@@ -1,19 +1,21 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
-inherit autotools multilib-minimal prefix toolchain-funcs virtualx
+# Please bump with dev-lang/tcl!
+
+inherit autotools multilib-minimal multilib prefix toolchain-funcs virtualx
MY_P="${PN}${PV/_beta/b}"
DESCRIPTION="Tk Widget Set"
-HOMEPAGE="http://www.tcl.tk/"
-SRC_URI="mirror://sourceforge/tcl/${MY_P}-src.tar.gz"
+HOMEPAGE="https://www.tcl.tk/"
+SRC_URI="https://downloads.sourceforge.net/tcl/${MY_P}-src.tar.gz"
LICENSE="tcltk"
SLOT="0/8.6"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
IUSE="debug +threads truetype aqua xscreensaver"
RESTRICT="!test? ( test )"
@@ -28,7 +30,7 @@ RDEPEND="
~dev-lang/tcl-$(ver_cut 1-3):0=[${MULTILIB_USEDEP}]"
DEPEND="${RDEPEND}
!aqua? ( x11-base/xorg-proto )"
-
+BDEPEND="virtual/pkgconfig"
# Not bumped to 8.6
#RESTRICT=test
@@ -36,10 +38,15 @@ SPARENT="${WORKDIR}/${PN}$(ver_cut 1-3 ${PV})"
S="${SPARENT}"/unix
PATCHES=(
- "${FILESDIR}"/${PN}-8.5.11-fedora-xft.patch
- "${FILESDIR}"/${PN}-8.5.13-multilib.patch
+ "${FILESDIR}"/${PN}-8.6.10-multilib.patch
"${FILESDIR}"/${PN}-8.4.15-aqua.patch
"${FILESDIR}"/${PN}-8.6.9-conf.patch # Bug 125971
+ "${FILESDIR}"/${PN}-8.6.12-test.patch
+ "${FILESDIR}"/${PN}-8.6.13-test.patch
+)
+
+QA_CONFIG_IMPL_DECL_SKIP=(
+ stat64 opendir64 rewinddir64 closedir64 # used to test for Large File Support
)
src_prepare() {
@@ -96,7 +103,7 @@ multilib_src_configure() {
}
multilib_src_test() {
- virtx emake test
+ CI=1 virtx emake test
}
multilib_src_install() {
@@ -121,7 +128,7 @@ multilib_src_install() {
-e "/^TK_BUILD_STUB_LIB_PATH=/s:${S}-\w*\.\w*:${EPREFIX}/usr/${mylibdir}:g" \
-e "/^TK_LIB_FILE=/s:'libtk${v1}..TK_DBGX..so':\"libk${v1}\$\{TK_DBGX\}.so\":g" \
-i "${ED}"/usr/${mylibdir}/tkConfig.sh || die
- if use prefix && [[ ${CHOST} != *-darwin* && ${CHOST} != *-mint* ]] ; then
+ if use prefix && [[ ${CHOST} != *-darwin* ]] ; then
sed \
-e "/^TK_CC_SEARCH_FLAGS=/s|'$|:${EPREFIX}/usr/${mylibdir}'|g" \
-e "/^TK_LD_SEARCH_FLAGS=/s|'$|:${EPREFIX}/usr/${mylibdir}'|" \
@@ -141,6 +148,6 @@ multilib_src_install() {
if multilib_is_native_abi; then
dosym wish${v1} /usr/bin/wish
- dodoc "${SPARENT}"/{ChangeLog*,README,changes}
+ dodoc "${SPARENT}"/{ChangeLog*,README.md,changes}
fi
}
diff --git a/dev-lang/tk/tk-8.6.10.ebuild b/dev-lang/tk/tk-8.6.14.ebuild
index 4502071389cb..bff605af2593 100644
--- a/dev-lang/tk/tk-8.6.10.ebuild
+++ b/dev-lang/tk/tk-8.6.14.ebuild
@@ -1,19 +1,21 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
-inherit autotools multilib-minimal prefix toolchain-funcs virtualx
+# Please bump with dev-lang/tcl!
+
+inherit autotools multilib-minimal multilib prefix toolchain-funcs virtualx
MY_P="${PN}${PV/_beta/b}"
DESCRIPTION="Tk Widget Set"
-HOMEPAGE="http://www.tcl.tk/"
-SRC_URI="mirror://sourceforge/tcl/${MY_P}-src.tar.gz"
+HOMEPAGE="https://www.tcl.tk/"
+SRC_URI="https://downloads.sourceforge.net/tcl/${MY_P}-src.tar.gz"
LICENSE="tcltk"
SLOT="0/8.6"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
IUSE="debug +threads truetype aqua xscreensaver"
RESTRICT="!test? ( test )"
@@ -28,7 +30,7 @@ RDEPEND="
~dev-lang/tcl-$(ver_cut 1-3):0=[${MULTILIB_USEDEP}]"
DEPEND="${RDEPEND}
!aqua? ( x11-base/xorg-proto )"
-
+BDEPEND="virtual/pkgconfig"
# Not bumped to 8.6
#RESTRICT=test
@@ -36,12 +38,17 @@ SPARENT="${WORKDIR}/${PN}$(ver_cut 1-3 ${PV})"
S="${SPARENT}"/unix
PATCHES=(
- "${FILESDIR}"/${P}-multilib.patch
+ "${FILESDIR}"/${PN}-8.6.10-multilib.patch
"${FILESDIR}"/${PN}-8.4.15-aqua.patch
"${FILESDIR}"/${PN}-8.6.9-conf.patch # Bug 125971
+ "${FILESDIR}"/${PN}-8.6.12-test.patch
"${FILESDIR}"/${P}-test.patch
)
+QA_CONFIG_IMPL_DECL_SKIP=(
+ stat64 opendir64 readdir64 rewinddir64 closedir64 # used on AIX
+)
+
src_prepare() {
find \
"${SPARENT}"/compat/* \
@@ -49,13 +56,6 @@ src_prepare() {
pushd "${SPARENT}" &>/dev/null || die
default
-
- # failing test too big to be adapted
- rm tests/textDisp.test \
- tests/unixFont.test \
- tests/unixWm.test \
- || die
-
popd &>/dev/null || die
eprefixify Makefile.in
@@ -103,7 +103,7 @@ multilib_src_configure() {
}
multilib_src_test() {
- virtx emake test
+ CI=1 virtx emake test
}
multilib_src_install() {
@@ -128,7 +128,7 @@ multilib_src_install() {
-e "/^TK_BUILD_STUB_LIB_PATH=/s:${S}-\w*\.\w*:${EPREFIX}/usr/${mylibdir}:g" \
-e "/^TK_LIB_FILE=/s:'libtk${v1}..TK_DBGX..so':\"libk${v1}\$\{TK_DBGX\}.so\":g" \
-i "${ED}"/usr/${mylibdir}/tkConfig.sh || die
- if use prefix && [[ ${CHOST} != *-darwin* && ${CHOST} != *-mint* ]] ; then
+ if use prefix && [[ ${CHOST} != *-darwin* ]] ; then
sed \
-e "/^TK_CC_SEARCH_FLAGS=/s|'$|:${EPREFIX}/usr/${mylibdir}'|g" \
-e "/^TK_LD_SEARCH_FLAGS=/s|'$|:${EPREFIX}/usr/${mylibdir}'|" \
diff --git a/dev-lang/tk/tk-8.6.8.ebuild b/dev-lang/tk/tk-8.6.8.ebuild
deleted file mode 100644
index 46072ae5d35f..000000000000
--- a/dev-lang/tk/tk-8.6.8.ebuild
+++ /dev/null
@@ -1,147 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit autotools eutils multilib multilib-minimal prefix toolchain-funcs versionator virtualx
-
-MY_P="${PN}${PV/_beta/b}"
-
-DESCRIPTION="Tk Widget Set"
-HOMEPAGE="http://www.tcl.tk/"
-SRC_URI="mirror://sourceforge/tcl/${MY_P}-src.tar.gz"
-
-LICENSE="tcltk"
-SLOT="0/8.6"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-IUSE="debug +threads truetype aqua xscreensaver"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- !aqua? (
- >=media-libs/fontconfig-2.10.92[${MULTILIB_USEDEP}]
- >=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}]
- >=x11-libs/libXt-1.1.4[${MULTILIB_USEDEP}]
- truetype? ( >=x11-libs/libXft-2.3.1-r1[${MULTILIB_USEDEP}] )
- xscreensaver? ( >=x11-libs/libXScrnSaver-1.2.2-r1[${MULTILIB_USEDEP}] )
- )
- ~dev-lang/tcl-${PV}:0=[${MULTILIB_USEDEP}]"
-DEPEND="${RDEPEND}
- !aqua? ( x11-base/xorg-proto )"
-
-# Not bumped to 8.6
-#RESTRICT=test
-
-SPARENT="${WORKDIR}/${MY_P}"
-S="${SPARENT}"/unix
-
-PATCHES=(
- "${FILESDIR}"/${PN}-8.5.11-fedora-xft.patch
- "${FILESDIR}"/${PN}-8.5.13-multilib.patch
- "${FILESDIR}"/${PN}-8.4.15-aqua.patch
- "${FILESDIR}"/${PN}-8.5.14-conf.patch # Bug 125971
- "${FILESDIR}"/${PN}-8.6.8-libieee.patch
-)
-
-src_prepare() {
- find \
- "${SPARENT}"/compat/* \
- -delete || die
-
- pushd "${SPARENT}" &>/dev/null || die
- default
- popd &>/dev/null || die
- eprefixify Makefile.in
-
- # Make sure we use the right pkg-config, and link against fontconfig
- # (since the code base uses Fc* functions).
- sed \
- -e 's/FT_New_Face/XftFontOpen/g' \
- -e "s:\<pkg-config\>:$(tc-getPKG_CONFIG):" \
- -e 's:xft freetype2:xft freetype2 fontconfig:' \
- -i configure.in || die
- rm configure || die
-
- tc-export CC
-
- sed \
- -e '/chmod/s:555:755:g' \
- -i Makefile.in || die
-
- sed \
- -e 's:-O[2s]\?::g' \
- -i tcl.m4 || die
-
- mv configure.{in,ac} || die
-
- eautoconf
-
- multilib_copy_sources
-}
-
-multilib_src_configure() {
- if tc-is-cross-compiler ; then
- export ac_cv_func_strtod=yes
- export tcl_cv_strtod_buggy=1
- fi
-
- local mylibdir=$(get_libdir)
-
- econf \
- --with-tcl="${EPREFIX}/usr/${mylibdir}" \
- $(use_enable threads) \
- $(use_enable aqua) \
- $(use_enable truetype xft) \
- $(use_enable xscreensaver xss) \
- $(use_enable debug symbols)
-}
-
-multilib_src_test() {
- virtx emake test
-}
-
-multilib_src_install() {
- #short version number
- local v1=$(get_version_component_range 1-2)
- local mylibdir=$(get_libdir)
-
- S= default
-
- # normalize $S path, bug #280766 (pkgcore)
- local nS="$(cd "${S}"; pwd)"
-
- # fix the tkConfig.sh to eliminate refs to the build directory
- # and drop unnecessary -L inclusion to default system libdir
-
- sed \
- -e "/^TK_BUILD_LIB_SPEC=/s:-L${S}-\w*\.\w* ::g" \
- -e "/^TK_LIB_SPEC=/s:-L${EPREFIX}/usr/${mylibdir} *::g" \
- -e "/^TK_SRC_DIR=/s:${SPARENT}:${EPREFIX}/usr/${mylibdir}/tk${v1}/include:g" \
- -e "/^TK_BUILD_STUB_LIB_SPEC=/s:-L${S}-\w*\.\w* *::g" \
- -e "/^TK_STUB_LIB_SPEC=/s:-L${EPREFIX}/usr/${mylibdir} *::g" \
- -e "/^TK_BUILD_STUB_LIB_PATH=/s:${S}-\w*\.\w*:${EPREFIX}/usr/${mylibdir}:g" \
- -e "/^TK_LIB_FILE=/s:'libtk${v1}..TK_DBGX..so':\"libk${v1}\$\{TK_DBGX\}.so\":g" \
- -i "${ED}"/usr/${mylibdir}/tkConfig.sh || die
- if use prefix && [[ ${CHOST} != *-darwin* && ${CHOST} != *-mint* ]] ; then
- sed \
- -e "/^TK_CC_SEARCH_FLAGS=/s|'$|:${EPREFIX}/usr/${mylibdir}'|g" \
- -e "/^TK_LD_SEARCH_FLAGS=/s|'$|:${EPREFIX}/usr/${mylibdir}'|" \
- -i "${ED}"/usr/${mylibdir}/tkConfig.sh || die
- fi
-
- # install private headers
- insinto /usr/${mylibdir}/tk${v1}/include/unix
- doins "${S}"/*.h
- insinto /usr/${mylibdir}/tk${v1}/include/generic
- doins "${SPARENT}"/generic/*.h
- rm -f "${ED}"/usr/${mylibdir}/tk${v1}/include/generic/{tk,tkDecls,tkPlatDecls}.h || die
-
- # install symlink for libraries
- dosym libtk${v1}$(get_libname) /usr/${mylibdir}/libtk$(get_libname)
- dosym libtkstub${v1}.a /usr/${mylibdir}/libtkstub.a
-
- if multilib_is_native_abi; then
- dosym wish${v1} /usr/bin/wish
- dodoc "${SPARENT}"/{ChangeLog*,README,changes}
- fi
-}
diff --git a/dev-lang/tk/tk-8.6.9.ebuild b/dev-lang/tk/tk-8.6.9.ebuild
deleted file mode 100644
index 1564ef0f84db..000000000000
--- a/dev-lang/tk/tk-8.6.9.ebuild
+++ /dev/null
@@ -1,146 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit autotools multilib-minimal prefix toolchain-funcs virtualx
-
-MY_P="${PN}${PV/_beta/b}"
-
-DESCRIPTION="Tk Widget Set"
-HOMEPAGE="http://www.tcl.tk/"
-SRC_URI="mirror://sourceforge/tcl/${MY_P}-src.tar.gz"
-
-LICENSE="tcltk"
-SLOT="0/8.6"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-IUSE="debug +threads truetype aqua xscreensaver"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- !aqua? (
- >=media-libs/fontconfig-2.10.92[${MULTILIB_USEDEP}]
- >=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}]
- >=x11-libs/libXt-1.1.4[${MULTILIB_USEDEP}]
- truetype? ( >=x11-libs/libXft-2.3.1-r1[${MULTILIB_USEDEP}] )
- xscreensaver? ( >=x11-libs/libXScrnSaver-1.2.2-r1[${MULTILIB_USEDEP}] )
- )
- ~dev-lang/tcl-${PV}:0=[${MULTILIB_USEDEP}]"
-DEPEND="${RDEPEND}
- !aqua? ( x11-base/xorg-proto )"
-
-# Not bumped to 8.6
-#RESTRICT=test
-
-SPARENT="${WORKDIR}/${MY_P}"
-S="${SPARENT}"/unix
-
-PATCHES=(
- "${FILESDIR}"/${PN}-8.5.11-fedora-xft.patch
- "${FILESDIR}"/${PN}-8.5.13-multilib.patch
- "${FILESDIR}"/${PN}-8.4.15-aqua.patch
- "${FILESDIR}"/${P}-conf.patch # Bug 125971
-)
-
-src_prepare() {
- find \
- "${SPARENT}"/compat/* \
- -delete || die
-
- pushd "${SPARENT}" &>/dev/null || die
- default
- popd &>/dev/null || die
- eprefixify Makefile.in
-
- # Make sure we use the right pkg-config, and link against fontconfig
- # (since the code base uses Fc* functions).
- sed \
- -e 's/FT_New_Face/XftFontOpen/g' \
- -e "s:\<pkg-config\>:$(tc-getPKG_CONFIG):" \
- -e 's:xft freetype2:xft freetype2 fontconfig:' \
- -i configure.in || die
- rm configure || die
-
- tc-export CC
-
- sed \
- -e '/chmod/s:555:755:g' \
- -i Makefile.in || die
-
- sed \
- -e 's:-O[2s]\?::g' \
- -i tcl.m4 || die
-
- mv configure.{in,ac} || die
-
- eautoconf
-
- multilib_copy_sources
-}
-
-multilib_src_configure() {
- if tc-is-cross-compiler ; then
- export ac_cv_func_strtod=yes
- export tcl_cv_strtod_buggy=1
- fi
-
- local mylibdir=$(get_libdir)
-
- econf \
- --with-tcl="${EPREFIX}/usr/${mylibdir}" \
- $(use_enable threads) \
- $(use_enable aqua) \
- $(use_enable truetype xft) \
- $(use_enable xscreensaver xss) \
- $(use_enable debug symbols)
-}
-
-multilib_src_test() {
- virtx emake test
-}
-
-multilib_src_install() {
- #short version number
- local v1=$(ver_cut 1-2)
- local mylibdir=$(get_libdir)
-
- S= default
-
- # normalize $S path, bug #280766 (pkgcore)
- local nS="$(cd "${S}"; pwd)"
-
- # fix the tkConfig.sh to eliminate refs to the build directory
- # and drop unnecessary -L inclusion to default system libdir
-
- sed \
- -e "/^TK_BUILD_LIB_SPEC=/s:-L${S}-\w*\.\w* ::g" \
- -e "/^TK_LIB_SPEC=/s:-L${EPREFIX}/usr/${mylibdir} *::g" \
- -e "/^TK_SRC_DIR=/s:${SPARENT}:${EPREFIX}/usr/${mylibdir}/tk${v1}/include:g" \
- -e "/^TK_BUILD_STUB_LIB_SPEC=/s:-L${S}-\w*\.\w* *::g" \
- -e "/^TK_STUB_LIB_SPEC=/s:-L${EPREFIX}/usr/${mylibdir} *::g" \
- -e "/^TK_BUILD_STUB_LIB_PATH=/s:${S}-\w*\.\w*:${EPREFIX}/usr/${mylibdir}:g" \
- -e "/^TK_LIB_FILE=/s:'libtk${v1}..TK_DBGX..so':\"libk${v1}\$\{TK_DBGX\}.so\":g" \
- -i "${ED}"/usr/${mylibdir}/tkConfig.sh || die
- if use prefix && [[ ${CHOST} != *-darwin* && ${CHOST} != *-mint* ]] ; then
- sed \
- -e "/^TK_CC_SEARCH_FLAGS=/s|'$|:${EPREFIX}/usr/${mylibdir}'|g" \
- -e "/^TK_LD_SEARCH_FLAGS=/s|'$|:${EPREFIX}/usr/${mylibdir}'|" \
- -i "${ED}"/usr/${mylibdir}/tkConfig.sh || die
- fi
-
- # install private headers
- insinto /usr/${mylibdir}/tk${v1}/include/unix
- doins "${S}"/*.h
- insinto /usr/${mylibdir}/tk${v1}/include/generic
- doins "${SPARENT}"/generic/*.h
- rm -f "${ED}"/usr/${mylibdir}/tk${v1}/include/generic/{tk,tkDecls,tkPlatDecls}.h || die
-
- # install symlink for libraries
- dosym libtk${v1}$(get_libname) /usr/${mylibdir}/libtk$(get_libname)
- dosym libtkstub${v1}.a /usr/${mylibdir}/libtkstub.a
-
- if multilib_is_native_abi; then
- dosym wish${v1} /usr/bin/wish
- dodoc "${SPARENT}"/{ChangeLog*,README,changes}
- fi
-}
diff --git a/dev-lang/tuprolog/Manifest b/dev-lang/tuprolog/Manifest
index 3153148ca024..de0037b24b81 100644
--- a/dev-lang/tuprolog/Manifest
+++ b/dev-lang/tuprolog/Manifest
@@ -1,3 +1,2 @@
-DIST tuprolog-3.1.0.tar.gz 7201383 BLAKE2B 9d8b610240611cd5b3d0dae104a44c72bb5e7c0512e4dbf3e178204d9d36e461219cd869ca1e16e3054ca3e1ee34d3b2c6fa5c659df16f54e3266c7c826af8d6 SHA512 1093e29a79964cb3991326da14f020cdc8ff64f2444c84dbb6b22aa5c4ecbf48f74dbc26af0af949ccc31020573ce5908684af794db4654fb475efa697a82cbf
DIST tuprolog-3.2.0-gentoo-patchset-0.tar.gz 1813 BLAKE2B 4ed7ffbb752a821a2b2842cfdbc1f4ec92d14b35a1c5a722207b45ec9dbdc44588acc010fb6386e8ed2e7d30d3bc8d425f0f74e8cc953cb7afad8305904e1499 SHA512 454757fc01f3f697510426e7a2a41b57350c1e3f980e381e197616e10eaf88339155226096f1d417397b9bc6f4964a45b3d547c6794ad23a4a014b06212b08f0
DIST tuprolog-3.2.0.tar.gz 6242286 BLAKE2B 77a3d3f886673aca72fffd9bb60657efcbe7ea5bb0f84eea7a72df513295d572c8116472f8d544240fac676ac9a6a0fcecfc3166e6426ef7d8af80eac4ba8d85 SHA512 e27bd989d66bae26c646cb69670fb75232ebdd18d1dbb9d600f9847921ecd56d17221736b3ec15c087857509272ce89af8bc44924130430db3860870a06bb499
diff --git a/dev-lang/tuprolog/files/tuprolog-3.1.0-no-ikvm.patch b/dev-lang/tuprolog/files/tuprolog-3.1.0-no-ikvm.patch
deleted file mode 100644
index eb20dacd4430..000000000000
--- a/dev-lang/tuprolog/files/tuprolog-3.1.0-no-ikvm.patch
+++ /dev/null
@@ -1,137 +0,0 @@
-diff -urN tuprolog-3.1.0.orig/src/alice/tuprolog/LibraryManager.java tuprolog-3.1.0/src/alice/tuprolog/LibraryManager.java
---- tuprolog-3.1.0.orig/src/alice/tuprolog/LibraryManager.java 2017-10-08 17:06:55.710627376 +0200
-+++ tuprolog-3.1.0/src/alice/tuprolog/LibraryManager.java 2017-10-08 17:18:20.817598723 +0200
-@@ -9,11 +9,11 @@
- import java.net.URL;
- import java.net.URLClassLoader;
- import java.util.*;
--import cli.System.Reflection.Assembly;
-+//import cli.System.Reflection.Assembly;
-
- import alice.tuprolog.event.LibraryEvent;
- import alice.tuprolog.event.WarningEvent;
--import alice.util.AssemblyCustomClassLoader;
-+//import alice.util.AssemblyCustomClassLoader;
-
- /**
- * @author Alex Benini
-@@ -179,31 +179,7 @@
- } else
- // .NET
- {
-- Assembly asm = null;
-- boolean classFound = false;
-- className = "cli."
-- + className.substring(0, className.indexOf(","))
-- .trim();
-- for (int i = 0; i < paths.length; i++)
-- {
-- try
-- {
-- asm = Assembly.LoadFrom(paths[i]);
-- loader = new AssemblyCustomClassLoader(asm, urls);
-- lib = (Library) Class.forName(className, true, loader).newInstance();
-- if (lib != null)
-- {
-- classFound = true;
-- break;
-- }
-- } catch (Exception e)
-- {
-- e.printStackTrace();
-- continue;
-- }
-- }
-- if (!classFound)
-- throw new InvalidLibraryException(className, -1, -1);
-+ throw new InvalidLibraryException(className, -1, -1);
- }
- }
-
-@@ -462,4 +438,4 @@
- return optimizedDirectory;
- }
-
--}
-\ Manca newline alla fine del file
-+}
-diff -urN tuprolog-3.1.0.orig/src/alice/tuprologx/ide/LibraryManager.java tuprolog-3.1.0/src/alice/tuprologx/ide/LibraryManager.java
---- tuprolog-3.1.0.orig/src/alice/tuprologx/ide/LibraryManager.java 2017-10-08 17:06:55.796627373 +0200
-+++ tuprolog-3.1.0/src/alice/tuprologx/ide/LibraryManager.java 2017-10-08 17:20:18.378593806 +0200
-@@ -19,7 +19,7 @@
-
- import alice.tuprolog.*;
- import alice.tuprolog.InvalidLibraryException;
--import alice.util.AssemblyCustomClassLoader;
-+//import alice.util.AssemblyCustomClassLoader;
-
- import java.io.File;
- import java.net.URL;
-@@ -27,7 +27,7 @@
- import java.util.ArrayList;
- import java.util.Hashtable;
- import java.util.StringTokenizer;
--import cli.System.Reflection.Assembly;
-+//import cli.System.Reflection.Assembly;
-
- /**
- * A dynamic manager for tuProlog libraries.
-@@ -156,10 +156,7 @@
- // .NET
- if(System.getProperty("java.vm.name").equals("IKVM.NET"))
- {
-- Assembly asm = Assembly.LoadFrom(file.getPath());
-- loader = new AssemblyCustomClassLoader(asm, new URL[]{url});
-- libraryClassname = "cli." + libraryClassname.substring(0,
-- libraryClassname.indexOf(",")).trim();
-+ throw new InvalidLibraryException(libraryClassname,-1,-1);
- }
- // JVM
- else
-diff -urN tuprolog-3.1.0.orig/src/alice/util/AssemblyCustomClassLoader.java tuprolog-3.1.0/src/alice/util/AssemblyCustomClassLoader.java
---- tuprolog-3.1.0.orig/src/alice/util/AssemblyCustomClassLoader.java 2017-10-08 17:06:55.863627370 +0200
-+++ tuprolog-3.1.0/src/alice/util/AssemblyCustomClassLoader.java 1970-01-01 01:00:00.000000000 +0100
-@@ -1,21 +0,0 @@
--package alice.util;
--
--import java.net.URL;
--
--public class AssemblyCustomClassLoader extends java.net.URLClassLoader
--{
-- public AssemblyCustomClassLoader(cli.System.Reflection.Assembly asm, URL[] urls)
-- {
-- super(new java.net.URL[0], new ikvm.runtime.AssemblyClassLoader(asm));
-- // explicitly calling addURL() is safer than passing it to the super constructor,
-- // because this class loader instance may be used during the URL construction.
-- for (URL url : urls) {
-- addURL(url);
-- }
-- }
--
-- public void addUrl(URL url)
-- {
-- addURL(url);
-- }
--}
-\ Manca newline alla fine del file
-diff -urN tuprolog-3.1.0.orig/src/alice/util/proxyGenerator/Generator.java tuprolog-3.1.0/src/alice/util/proxyGenerator/Generator.java
---- tuprolog-3.1.0.orig/src/alice/util/proxyGenerator/Generator.java 2017-10-08 17:06:55.877627369 +0200
-+++ tuprolog-3.1.0/src/alice/util/proxyGenerator/Generator.java 2017-10-08 17:18:20.819598723 +0200
-@@ -1,7 +1,7 @@
- package alice.util.proxyGenerator;
- import javax.tools.*;
-
--import cli.System.Reflection.Assembly;
-+//import cli.System.Reflection.Assembly;
-
- import java.lang.reflect.*;
- import java.util.*;
-@@ -29,7 +29,7 @@
- }
-
- if(System.getProperty("java.vm.name").equals("IKVM.NET"))
-- ikvm.runtime.Startup.addBootClassPathAssemby(Assembly.Load("IKVM.OpenJDK.Tools"));
-+ throw new UnsupportedOperationException("IKVM.NET not supported!");
-
- jc = ToolProvider.getSystemJavaCompiler();
- if (jc == null) {
diff --git a/dev-lang/tuprolog/files/tuprolog-3.1.0-test-suite.patch b/dev-lang/tuprolog/files/tuprolog-3.1.0-test-suite.patch
deleted file mode 100644
index 5be70460b6d2..000000000000
--- a/dev-lang/tuprolog/files/tuprolog-3.1.0-test-suite.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- tuprolog-3.1.0.orig/test/unit/alice/tuprolog/TuPrologTestSuite.java 2020-07-18 15:41:48.236891336 +0200
-+++ tuprolog-3.1.0/test/unit/alice/tuprolog/TuPrologTestSuite.java 2020-07-18 15:42:11.458890364 +0200
-@@ -22,10 +22,8 @@
- ParserTestCase.class,
- SpyEventTestCase.class,
- VarTestCase.class,
-- TestVarIsEqual.class,
- JavaDynamicClassLoaderTestCase.class,
- ISOIOLibraryTestCase.class,
-- SocketLibTestCase.class,
- ThreadLibraryTestCase.class
- })
- public class TuPrologTestSuite {}
diff --git a/dev-lang/tuprolog/metadata.xml b/dev-lang/tuprolog/metadata.xml
index fe29a2cf16ab..38196d8729a4 100644
--- a/dev-lang/tuprolog/metadata.xml
+++ b/dev-lang/tuprolog/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>prolog@gentoo.org</email>
diff --git a/dev-lang/tuprolog/tuprolog-3.1.0-r1.ebuild b/dev-lang/tuprolog/tuprolog-3.1.0-r1.ebuild
deleted file mode 100644
index bed6ee1726c0..000000000000
--- a/dev-lang/tuprolog/tuprolog-3.1.0-r1.ebuild
+++ /dev/null
@@ -1,67 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit eutils java-pkg-2 java-ant-2
-
-DESCRIPTION="tuProlog is a light-weight Prolog for Internet applications and infrastructures"
-HOMEPAGE="http://tuprolog.unibo.it/"
-SRC_URI="https://dev.gentoo.org/~keri/distfiles/tuprolog/${P}.tar.gz"
-
-LICENSE="LGPL-3 BSD"
-SLOT="0"
-KEYWORDS="amd64 x86"
-IUSE="doc examples test"
-RESTRICT="!test? ( test )"
-
-RDEPEND=">=virtual/jdk-1.8:=
- dev-java/javassist:3
- dev-java/commons-lang:3.1"
-
-DEPEND="${RDEPEND}
- dev-java/ant-core
- test? (
- dev-java/ant-junit4:0
- dev-java/junit:4
- dev-java/hamcrest-core:1.3
- )"
-
-S="${WORKDIR}"/${P}
-
-EANT_GENTOO_CLASSPATH="javassist:3,commons-lang-3.1"
-
-src_prepare() {
- eapply "${FILESDIR}"/${P}-no-ikvm.patch
- eapply "${FILESDIR}"/${P}-test-suite.patch
- eapply_user
-
- cp "${FILESDIR}"/build-3.x.xml "${S}"/build.xml || die
-}
-
-src_compile() {
- eant jar $(use_doc)
-}
-
-src_test() {
- cd "${S}"/dist
- java-pkg_jar-from junit:4
- java-pkg_jar-from hamcrest-core:1.3
- cd "${S}"
- ANT_TASKS="ant-junit4" eant test || die "eant test failed"
-}
-
-src_install() {
- java-pkg_dojar dist/${PN}.jar
- java-pkg_dojar dist/2p.jar
-
- if use doc ; then
- java-pkg_dohtml -r docs/* || die
- dodoc doc/tuprolog-guide.pdf
- fi
-
- if use examples ; then
- docinto examples
- dodoc doc/examples/*.pl
- fi
-}
diff --git a/dev-lang/tuprolog/tuprolog-3.2.0.ebuild b/dev-lang/tuprolog/tuprolog-3.2.0-r2.ebuild
index 0dcda3ed7c64..4f1069f34211 100644
--- a/dev-lang/tuprolog/tuprolog-3.2.0.ebuild
+++ b/dev-lang/tuprolog/tuprolog-3.2.0-r2.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-inherit eutils java-pkg-2 java-ant-2
+inherit java-pkg-2 java-ant-2
PATCHSET_VER="0"
@@ -14,26 +14,26 @@ SRC_URI="https://dev.gentoo.org/~keri/distfiles/tuprolog/${P}.tar.gz
LICENSE="LGPL-3 BSD"
SLOT="0"
-KEYWORDS="~amd64 ~x86"
+KEYWORDS="amd64 x86"
IUSE="doc examples test"
RESTRICT="!test? ( test )"
-RDEPEND=">=virtual/jdk-1.8:=
+RDEPEND="virtual/jdk:1.8
dev-java/javassist:3
- dev-java/commons-lang:3.1
- dev-java/gson:2.6"
+ dev-java/commons-lang:3.6
+ dev-java/gson:0"
DEPEND="${RDEPEND}
- dev-java/ant-core
+ >=dev-java/ant-1.10.14
test? (
- dev-java/ant-junit4:0
+ >=dev-java/ant-1.10.14:0[junit4]
dev-java/junit:4
- dev-java/hamcrest-core:1.3
+ dev-java/hamcrest:0
)"
S="${WORKDIR}"/${P}
-EANT_GENTOO_CLASSPATH="javassist:3,commons-lang:3.1,gson:2.6"
+EANT_GENTOO_CLASSPATH="javassist:3,commons-lang:3.6,gson"
PATCHES=( "${WORKDIR}/${PV}" )
@@ -50,9 +50,9 @@ src_compile() {
src_test() {
cd "${S}"/dist
java-pkg_jar-from junit:4
- java-pkg_jar-from hamcrest-core:1.3
+ java-pkg_jar-from hamcrest
cd "${S}"
- ANT_TASKS="ant-junit4" eant test || die "eant test failed"
+ eant test || die "eant test failed"
}
src_install() {
diff --git a/dev-lang/typescript/Manifest b/dev-lang/typescript/Manifest
new file mode 100644
index 000000000000..c2fbcf27f1df
--- /dev/null
+++ b/dev-lang/typescript/Manifest
@@ -0,0 +1,5 @@
+DIST typescript-5.3.3.tgz 5761919 BLAKE2B 629d2d97a9d57f63cd693a6d77cc385058778c4e4de6002f5e2646c64d1b8ff80386290435b2c838f647bc76f626e4dfd9613e1237d53fa5e4b98f503fbdf9ea SHA512 a5759cadac4cd2ec404beb4dd001bf045d93caa9873b4d78674ef452c27ea45bd8b914aaf0a1fc0e65a99db5ded2910f0c75d957715c01b2648a3279a0d1275b
+DIST typescript-5.4.2.tgz 5824544 BLAKE2B a22ecc8a17be22da10263746537d5ce0a0af359866773d6d4d081332a82436c734628d0d89134db63f46fae57f62f6e674f420cea2fff902c1be1a25307b03d8 SHA512 fb6fe0d0576cd444653fa26c6a44100d78d975930cfabaa96a61592442a1e24c13227de20e480ab5bcb409e35de404cd678472d5ac75e53331d16d95fa68a2cd
+DIST typescript-5.4.3.tgz 5824407 BLAKE2B c985361a7248f87437bd3df1ce7a66cb6c409b91718fd874f4a51cbff91d7b1bcf91034d1bcfbd3e469e168c4e2571892b28ac74edcdd04fc12c3391925dfb49 SHA512 2ab3dddcf29a08bafbf0c6a5822c099c0db9366f070267703779985186601bfc22cc8a3d11a8a7355408f7fc836afb5515137687793cb9fdc62c7ba10cc8041e
+DIST typescript-5.4.4.tgz 5825725 BLAKE2B 98ebd2f2c3472b7944009f672d647d34540b3cb331fb02d41069df572dc10a0f19c08aee7a12c0536e6d3895502e4a8c11b8ff0c1dcb2d58e0398795f2ce50fe SHA512 74613656ff1ca55bf0dbcbfc1c23eac9bd3c1336c1511c43a6e849bd3aeeb128547c69e11c169f0ec2dd4b5121871c8be8125013ed9c4f77433c0bfe310ea82f
+DIST typescript-5.4.5.tgz 5825770 BLAKE2B aea24c0924b2a0b0d01face2ce6be4e7fac85c2205cb0ecde492c5301f83d55fd8cd501326bd47f90cd78abf48c7aaf0381b13fc8242f3d2f9235e6051860b2b SHA512 bdc23852946083cd68211505c11d164881cab75d6727b48056560d22ef90a6a7b25cffa0a50272fd9e3e174686c5213832ac23c97bd6fd3ce090b031d80187c1
diff --git a/dev-lang/typescript/metadata.xml b/dev-lang/typescript/metadata.xml
new file mode 100644
index 000000000000..c9f2e5b5a6f4
--- /dev/null
+++ b/dev-lang/typescript/metadata.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+
+<pkgmetadata>
+ <maintainer type="person">
+ <email>xgqt@gentoo.org</email>
+ <name>Maciej Barć</name>
+ </maintainer>
+ <longdescription>
+ TypeScript is a language for application-scale JavaScript. TypeScript adds
+ optional types to JavaScript that support tools for large-scale JavaScript
+ applications for any browser, for any host, on any OS. TypeScript compiles
+ to readable, standards-based JavaScript
+ </longdescription>
+ <upstream>
+ <bugs-to>https://github.com/microsoft/TypeScript/issues/</bugs-to>
+ <remote-id type="github">microsoft/TypeScript</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-lang/typescript/typescript-5.3.3.ebuild b/dev-lang/typescript/typescript-5.3.3.ebuild
new file mode 100644
index 000000000000..761177a3441e
--- /dev/null
+++ b/dev-lang/typescript/typescript-5.3.3.ebuild
@@ -0,0 +1,39 @@
+# Copyright 2021-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="Superset of JavaScript with optional static typing, classes and interfaces"
+HOMEPAGE="https://www.typescriptlang.org/
+ https://github.com/microsoft/TypeScript/"
+SRC_URI="https://registry.npmjs.org/${PN}/-/${P}.tgz"
+S="${WORKDIR}"/package
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 ~arm64 ~ppc64"
+
+RDEPEND="net-libs/nodejs"
+BDEPEND=">=net-libs/nodejs-16[npm]"
+
+src_compile() {
+ # Skip, nothing to compile here.
+ :
+}
+
+src_install() {
+ local myopts=(
+ --audit false
+ --color false
+ --foreground-scripts
+ --global
+ --offline
+ --omit dev
+ --prefix "${ED}"/usr
+ --progress false
+ --verbose
+ )
+ npm ${myopts[@]} install "${DISTDIR}"/${P}.tgz || die "npm install failed"
+
+ dodoc *.md *.txt
+}
diff --git a/dev-lang/typescript/typescript-5.4.2.ebuild b/dev-lang/typescript/typescript-5.4.2.ebuild
new file mode 100644
index 000000000000..761177a3441e
--- /dev/null
+++ b/dev-lang/typescript/typescript-5.4.2.ebuild
@@ -0,0 +1,39 @@
+# Copyright 2021-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="Superset of JavaScript with optional static typing, classes and interfaces"
+HOMEPAGE="https://www.typescriptlang.org/
+ https://github.com/microsoft/TypeScript/"
+SRC_URI="https://registry.npmjs.org/${PN}/-/${P}.tgz"
+S="${WORKDIR}"/package
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 ~arm64 ~ppc64"
+
+RDEPEND="net-libs/nodejs"
+BDEPEND=">=net-libs/nodejs-16[npm]"
+
+src_compile() {
+ # Skip, nothing to compile here.
+ :
+}
+
+src_install() {
+ local myopts=(
+ --audit false
+ --color false
+ --foreground-scripts
+ --global
+ --offline
+ --omit dev
+ --prefix "${ED}"/usr
+ --progress false
+ --verbose
+ )
+ npm ${myopts[@]} install "${DISTDIR}"/${P}.tgz || die "npm install failed"
+
+ dodoc *.md *.txt
+}
diff --git a/dev-lang/typescript/typescript-5.4.3.ebuild b/dev-lang/typescript/typescript-5.4.3.ebuild
new file mode 100644
index 000000000000..761177a3441e
--- /dev/null
+++ b/dev-lang/typescript/typescript-5.4.3.ebuild
@@ -0,0 +1,39 @@
+# Copyright 2021-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="Superset of JavaScript with optional static typing, classes and interfaces"
+HOMEPAGE="https://www.typescriptlang.org/
+ https://github.com/microsoft/TypeScript/"
+SRC_URI="https://registry.npmjs.org/${PN}/-/${P}.tgz"
+S="${WORKDIR}"/package
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 ~arm64 ~ppc64"
+
+RDEPEND="net-libs/nodejs"
+BDEPEND=">=net-libs/nodejs-16[npm]"
+
+src_compile() {
+ # Skip, nothing to compile here.
+ :
+}
+
+src_install() {
+ local myopts=(
+ --audit false
+ --color false
+ --foreground-scripts
+ --global
+ --offline
+ --omit dev
+ --prefix "${ED}"/usr
+ --progress false
+ --verbose
+ )
+ npm ${myopts[@]} install "${DISTDIR}"/${P}.tgz || die "npm install failed"
+
+ dodoc *.md *.txt
+}
diff --git a/dev-lang/typescript/typescript-5.4.4.ebuild b/dev-lang/typescript/typescript-5.4.4.ebuild
new file mode 100644
index 000000000000..761177a3441e
--- /dev/null
+++ b/dev-lang/typescript/typescript-5.4.4.ebuild
@@ -0,0 +1,39 @@
+# Copyright 2021-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="Superset of JavaScript with optional static typing, classes and interfaces"
+HOMEPAGE="https://www.typescriptlang.org/
+ https://github.com/microsoft/TypeScript/"
+SRC_URI="https://registry.npmjs.org/${PN}/-/${P}.tgz"
+S="${WORKDIR}"/package
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 ~arm64 ~ppc64"
+
+RDEPEND="net-libs/nodejs"
+BDEPEND=">=net-libs/nodejs-16[npm]"
+
+src_compile() {
+ # Skip, nothing to compile here.
+ :
+}
+
+src_install() {
+ local myopts=(
+ --audit false
+ --color false
+ --foreground-scripts
+ --global
+ --offline
+ --omit dev
+ --prefix "${ED}"/usr
+ --progress false
+ --verbose
+ )
+ npm ${myopts[@]} install "${DISTDIR}"/${P}.tgz || die "npm install failed"
+
+ dodoc *.md *.txt
+}
diff --git a/dev-lang/typescript/typescript-5.4.5.ebuild b/dev-lang/typescript/typescript-5.4.5.ebuild
new file mode 100644
index 000000000000..2be080b52222
--- /dev/null
+++ b/dev-lang/typescript/typescript-5.4.5.ebuild
@@ -0,0 +1,39 @@
+# Copyright 2021-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="Superset of JavaScript with optional static typing, classes and interfaces"
+HOMEPAGE="https://www.typescriptlang.org/
+ https://github.com/microsoft/TypeScript/"
+SRC_URI="https://registry.npmjs.org/${PN}/-/${P}.tgz"
+S="${WORKDIR}"/package
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~ppc64"
+
+RDEPEND="net-libs/nodejs"
+BDEPEND=">=net-libs/nodejs-16[npm]"
+
+src_compile() {
+ # Skip, nothing to compile here.
+ :
+}
+
+src_install() {
+ local myopts=(
+ --audit false
+ --color false
+ --foreground-scripts
+ --global
+ --offline
+ --omit dev
+ --prefix "${ED}"/usr
+ --progress false
+ --verbose
+ )
+ npm ${myopts[@]} install "${DISTDIR}"/${P}.tgz || die "npm install failed"
+
+ dodoc *.md *.txt
+}
diff --git a/dev-lang/uasm/Manifest b/dev-lang/uasm/Manifest
new file mode 100644
index 000000000000..bb9b666ccfbf
--- /dev/null
+++ b/dev-lang/uasm/Manifest
@@ -0,0 +1 @@
+DIST uasm-2.56.2.tar.gz 1243830 BLAKE2B dcc0948d92cdd5972a6698e721a6ccc6a54926ef94778438cf9a88a6e41ebc652d5230003f689d4278bd1e48959dd04595c602427287a48c551d7b847be665f0 SHA512 1f6c1037909d012f3293985c4e0516f4b61497de23cac6bbb58db735efb512599c0bba5d60d8ce999e6afc57e44484a094bf10f0ee185a51afd826f5541c9337
diff --git a/dev-lang/uasm/files/build-fix.patch b/dev-lang/uasm/files/build-fix.patch
new file mode 100644
index 000000000000..6870528ef87f
--- /dev/null
+++ b/dev-lang/uasm/files/build-fix.patch
@@ -0,0 +1,179 @@
+Fixes various build issues with newer clang
+https://bugs.gentoo.org/927802
+
+From b6457542bd56507cb2b659d50772f87cc66d6ea3 Mon Sep 17 00:00:00 2001
+From: NRK <nrk@disroot.org>
+Date: Mon, 1 Apr 2024 15:29:47 +0000
+Subject: [PATCH 1/4] Add missing includes
+
+---
+ assemble.c | 2 +-
+ codegenv2.c | 2 ++
+ 2 files changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/assemble.c b/assemble.c
+index 2ce0e14..a9f2899 100644
+--- a/assemble.c
++++ b/assemble.c
+@@ -43,7 +43,7 @@
+ #include "lqueue.h"
+ #include "orgfixup.h"
+ #include "macrolib.h"
+-//#include "simd.h"
++#include "simd.h"
+
+ #if DLLIMPORT
+ #include "mangle.h"
+diff --git a/codegenv2.c b/codegenv2.c
+index 6bcc08d..7063c27 100644
+--- a/codegenv2.c
++++ b/codegenv2.c
+@@ -1,6 +1,7 @@
+
+ #include "codegenv2.h"
+
++#include <ctype.h>
+ #include <time.h>
+ #include "globals.h"
+ #include "parser.h"
+@@ -12,6 +13,7 @@
+ #include "types.h"
+ #include "macro.h"
+ #include "listing.h"
++#include "input.h"
+
+ #define OutputCodeByte( x ) OutputByte( x )
+
+--
+2.42.0
+
+
+From bc4ffb4ac77f97b42f7d83cae0f0ea7a59c5b6be Mon Sep 17 00:00:00 2001
+From: NRK <nrk@disroot.org>
+Date: Mon, 1 Apr 2024 15:36:14 +0000
+Subject: [PATCH 2/4] Add missing prototypes
+
+ref: https://github.com/Terraspace/UASM/pull/186
+---
+ H/globals.h | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/H/globals.h b/H/globals.h
+index e202c50..7320cb9 100644
+--- a/H/globals.h
++++ b/H/globals.h
+@@ -49,6 +49,7 @@
+ #endif
+ #define _ltoa ltoa
+ #define _strupr strupr
++extern char *strupr(char *);
+
+ #elif defined(__POCC__)
+
+@@ -946,4 +947,11 @@ extern char *num2hex64(uint_64 value, char *buffer);
+ extern char *ConvertSectionName( const struct asym *, enum seg_type *pst, char *buffer );
+ extern void RewindToWin64(void);
+
++extern void CreateMacroLibCases64(void);
++extern void CreateMacroLibCases32(void);
++extern void OutputInterleavedBytes(const unsigned char *pbytes, int len, struct fixup *fixup);
++extern void SymSimd(struct dsym *sym);
++extern void RunLineQueue( void );
++extern ret_code BackPatch( struct asym *sym );
++
+ #endif
+--
+2.42.0
+
+
+From d4d625d009dfc7ab91136516aafb4fc706d0c1ab Mon Sep 17 00:00:00 2001
+From: NRK <nrk@disroot.org>
+Date: Mon, 1 Apr 2024 15:40:30 +0000
+Subject: [PATCH 3/4] Fix incompatible assignment of `void *` to `uint32_t`
+
+---
+ macho64.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/macho64.c b/macho64.c
+index 8e74842..8b81d5e 100644
+--- a/macho64.c
++++ b/macho64.c
+@@ -725,7 +725,7 @@ static ret_code macho_write_module( struct module_info *modinfo )
+ mm.header.cputype = CPU_TYPE_X86_64;
+ mm.header.cpusubtype = CPU_SUBTYPE_LITTLE_ENDIAN | CPU_SUBTYPE_X86_64_ALL;
+ mm.header.filetype = MH_OBJECT;
+- mm.header.flags = NULL;
++ mm.header.flags = 0;
+
+ macho_build_structures(modinfo, mm);
+ }
+--
+2.42.0
+
+
+From 0108e8754737c9ceac0314c8f70da8c9f4bd2095 Mon Sep 17 00:00:00 2001
+From: NRK <nrk@disroot.org>
+Date: Mon, 1 Apr 2024 15:54:02 +0000
+Subject: [PATCH 4/4] Fix incompatible function pointer
+
+---
+ proc.c | 16 ++++++++++++++--
+ 1 file changed, 14 insertions(+), 2 deletions(-)
+
+diff --git a/proc.c b/proc.c
+index fdd8b49..80e8674 100644
+--- a/proc.c
++++ b/proc.c
+@@ -162,10 +162,12 @@ struct delphicall_conv {
+
+
+ static int ms32_pcheck(struct dsym *, struct dsym *, int *);
++static int ms32_syspcheck(struct dsym *, struct dsym *, int *, int *);
+ static void ms32_return(struct dsym *, char *);
+
+ #if OWFC_SUPPORT
+ static int watc_pcheck(struct dsym *, struct dsym *, int *);
++static int watc_syspcheck(struct dsym *, struct dsym *, int *, int *);
+ static void watc_return(struct dsym *, char *);
+ #endif
+
+@@ -212,9 +214,9 @@ static const struct vectorcall_conv vectorcall_tab[] = {
+ };
+
+ static const struct sysvcall_conv sysvcall_tab[] = {
+- { ms32_pcheck, ms32_return }, /* FCT_MSC */
++ { ms32_syspcheck, ms32_return }, /* FCT_MSC */
+ #if OWFC_SUPPORT
+- { watc_pcheck, watc_return }, /* FCT_WATCOMC */
++ { watc_syspcheck, watc_return }, /* FCT_WATCOMC */
+ #endif
+ #if SYSV_SUPPORT
+ { sysv_pcheck, sysv_return } /* FCT_WIN64 / SYSTEMV */
+@@ -380,6 +382,11 @@ static int watc_pcheck(struct dsym *proc, struct dsym *paranode, int *used)
+ return(1);
+ }
+
++static int watc_syspcheck(struct dsym *proc, struct dsym *paranode, int *used, int *vecused)
++{
++ return watc_pcheck(proc, paranode, used);
++}
++
+ static void watc_return(struct dsym *proc, char *buffer)
+ /********************************************************/
+ {
+@@ -433,6 +440,11 @@ static int ms32_pcheck(struct dsym *proc, struct dsym *paranode, int *used)
+ return(1);
+ }
+
++static int ms32_syspcheck(struct dsym *proc, struct dsym *paranode, int *used, int *vecused)
++{
++ return ms32_pcheck(proc, paranode, used);
++}
++
+ static void ms32_return(struct dsym *proc, char *buffer)
+ /********************************************************/
+ {
+--
+2.42.0
+
diff --git a/dev-lang/uasm/metadata.xml b/dev-lang/uasm/metadata.xml
new file mode 100644
index 000000000000..33becdeb8c4e
--- /dev/null
+++ b/dev-lang/uasm/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <email>nrk@disroot.org</email>
+ </maintainer>
+ <maintainer type="person">
+ <email>arthurzam@gentoo.org</email>
+ <name>Arthur Zamarin</name>
+ </maintainer>
+ <maintainer type="person">
+ <email>sam@gentoo.org</email>
+ <name>Sam James</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">Terraspace/UASM</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-lang/uasm/uasm-2.56.2.ebuild b/dev-lang/uasm/uasm-2.56.2.ebuild
new file mode 100644
index 000000000000..8210588c135e
--- /dev/null
+++ b/dev-lang/uasm/uasm-2.56.2.ebuild
@@ -0,0 +1,41 @@
+# Copyright 2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs flag-o-matic
+
+DESCRIPTION="UASM is a free MASM-compatible assembler"
+HOMEPAGE="https://www.terraspace.co.uk/uasm.html"
+SRC_URI="https://github.com/Terraspace/UASM/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/UASM-${PV}"
+
+LICENSE="Watcom-1.0"
+SLOT="0"
+KEYWORDS="~amd64"
+PATCHES=(
+ "${FILESDIR}/build-fix.patch"
+)
+
+src_prepare() {
+ default
+ # don't strip binary
+ sed -i gccLinux64.mak -e 's/ -s / /g' || die
+}
+
+src_compile() {
+ # Bug: https://github.com/Terraspace/UASM/issues/143
+ append-cflags -fcommon
+ # https://github.com/Terraspace/UASM/issues/197
+ append-cflags -Wno-error=incompatible-pointer-types
+
+ emake -f gccLinux64.mak \
+ CC="$(tc-getCC)" \
+ CFLAGS="${CFLAGS}" \
+ LDFLAGS="${LDFLAGS}"
+}
+
+src_install() {
+ dobin GccUnixR/uasm
+ dodoc *.txt Doc/*.txt
+}
diff --git a/dev-lang/vala/Manifest b/dev-lang/vala/Manifest
index 35863f573b42..647b70e51a11 100644
--- a/dev-lang/vala/Manifest
+++ b/dev-lang/vala/Manifest
@@ -1,12 +1,2 @@
-DIST vala-0.36.20.tar.xz 2918672 BLAKE2B 9c2c46992444fafd173f767a4a10ac185b0c49db0ede3cb52dec10da08ab3370adb4445087b24c91c9126e8586418a149ac783b3de92cac6c4badd488f3dc56f SHA512 21ca0573a2f9d945a362f7f15da7db25532fd7b19a0aa0442243b95df0568b7a88ae94d0659af44f6f57e364f4370de361102e7e46a070487985e7cb5d81277c
-DIST vala-0.40.20.tar.xz 3443256 BLAKE2B 4cb53448ffabd29ea2c1411d019aa3749be113371e411d90803aa77a5ba19790d3766dae43af58a107680acc04870b30670fd53d4ce239de8d15dd79571cadfb SHA512 767f156c85bd901e6e672439c2bf7fdfe60e4f7b088ca89f8787179e57b42904c92749ca8bd79c1e4319ec998e0e3f6bd6f13ed679be1f5240041f797657eb36
-DIST vala-0.40.23.tar.xz 3462092 BLAKE2B 49eb5f7205d59b0806e807fc0f99771ace4d188222be60f12ef2f503bf8da9116ee7eedb742a6e50400655ae86d1eeb383f3b8ac1832e82f2787b0162c2a4dc2 SHA512 9d5638d44d8a42124fefd02b66454d19cc5d24291ec1525e1fd9c1c8df814d55d2bdc6f5be0168639a8712766cb4828abf3ae70ebfc9e0a72393dd584c25853d
-DIST vala-0.40.24.tar.xz 3484308 BLAKE2B eb31444099c55b41ac2a2aa5be40eb3bc767e08d0670f2a36d51317cfd39a4a601578561863687385b8a922232909b5d8fb85a842e414aace077290070044100 SHA512 c10e9e51b5854d2f0087ce8a9eac561fbc22785bb719bf96936c69187550b2cb92ceafb5fd9df85b4eaa49f5c1f77c660de305d0cee944c216850c80c5f4cc65
-DIST vala-0.44.11.tar.xz 3370248 BLAKE2B c111b6175e6339148e30bedc77f62a9ef3ec912ad0621c9303fc5dba31694173b49ccc433d3681303d64a1e442ed9b7b064f27931369cb13fa028bfc25ffa3c9 SHA512 6111699039ed37084426d7603b82dfa9bd497c66ba7353ee22e8541bf15a2cbb634d315593c093f18c20bac877ae34884e5b570cd25237ce12aa73e941c4c540
-DIST vala-0.46.10.tar.xz 3417400 BLAKE2B 2f78de3e198f994a148e7ed4c82ef2417b70c19af3ce1874ee80aa7d0160691a50db24ad4898a04520e91d67a41bb508d3854ac2f4d90d2507a5a6558854716c SHA512 ae3734036f6a1b7088bac45083b75a49eee76947219f530493f81aa4ee60807cfa5424cf1b982d8d8f28f56119d66f06a9150b67884d80dd4b6724e152e32e62
-DIST vala-0.46.13.tar.xz 3434196 BLAKE2B 49b7e0b776e185653c1b8c00747a150ceb42cf89006fd55d37e3efd0824dace379d2c72cdb45d481b0545d0b4b37299bc6161b2d083d3221d2d8d8ca7c10d6dc SHA512 6d8d1acebf4706346d5dc986f5c900cfda929ca59ca3f3907cff56892a496bf524b1f74032ac6c8587b236a473124e15c6f83f949636e28141a55c8abeddf004
-DIST vala-0.48.11.tar.xz 3487944 BLAKE2B fe47bba9ddb31c469d63d9ca32d631901d59db19c417d864088bc33aa2845d388e762ecc39b2d9574aafbfc501eb61abb3604e07754b2d8eff63d23c53f1eb84 SHA512 6ddad88ab4d2a34352be9ce0a0c13dc3382ebcb494c08e2531a0195aad21a80db70e7dc3ffd2d27ef03a4ca30ac2bf31869521489ffd95fc520c4085362fc5e7
-DIST vala-0.48.12.tar.xz 3492200 BLAKE2B 0a401ac4349dc1c628fa608b5a89504583d6d2bb05ca74eb507e766cca418121e14adfe6e8cfeb8f42212c717280b9b91426309df415d869896654be626c46c5 SHA512 da7becf8b92985a07b139651c14bd41ec86aed3e2b610029d2b376f70335c98607f39de4a1fa4efe9d51e6088edd4c13d22431cada389679d55f684ad548f4d1
-DIST vala-0.48.6.tar.xz 3451004 BLAKE2B 9c880cff885b934e1d82d21285839e040addecb0b3ce81936d5be118a951bd219eea2b8381ea42f13e6e858a1937a3789a3dee6d067735e5ee21eaced38b4646 SHA512 220a916d42cbae3853afdd7c35a72afb446a92fca039d8c660a478fd793686a0c82cbaf90a7c94ae182c1f41eec6df1aedb804013ab38e6e4bcc6d26e40e5375
-DIST vala-0.48.9.tar.xz 3472540 BLAKE2B 1c85b5d9a1f3819d5b26b521c7da423adee313b2acacb354e324abd9ccf24707dcfcd1a455bab867043f674c4daa5f1a62210847ac271dfce09a288651220f53 SHA512 076fcbea34dde1a84c15e4e2b6acd009c2fea578d48eb28a99a604eb4edc8bb53ac6883ca93ec906968d43d4b341707abc730d6ac8a7b3682a2fa5f0030d5256
-DIST vala-0.50.2.tar.xz 3514208 BLAKE2B f2f7e86b90ac1245d593ba82204667a830843e2fdb8e9a5afaa44453a146461f0ce2b9f9338ef4743bc6055bbce6c023ae92f0bf2ca66757cddd7fc3d7a4db63 SHA512 77069b53037adcd4c3fed2dc4a5c740216b950c52e8a0ed777a5cf9a5d9f078d0abbc4dbce08e122817cd3de0ac75ebd150b0f6f0b0cf4a09cb4a46f96bf4c3e
+DIST vala-0.56.16.tar.xz 4013716 BLAKE2B 509809a93c70fd6a153fc188aaa3d85cbcc8d37649711ea32521505eb0bdc3fe824d90c538aaa7a7caa1c4faaea9053693b28ae54bdd6c212539a70300f2c33e SHA512 99f69c3c7a5ed89923b55cf035c6d9a5867577b2ecff92dddf5f21aaad1281786e5fcd775833b0f251417caf857f5fe7efbf134fbded427a7b29fa3acb00203a
+DIST vala-0.56.17.tar.xz 4016576 BLAKE2B c4b8d5b7c810893728f82d2cbbf2f0dd70ad17bd4eeb323ab5d31d99f37b5a5508b7d2447f0249f3a925013d7110bb6f145b32c833b990b15f18d9949035293f SHA512 61df98ba6b15d589a1864598a6f69cc3bee9154ba65270fc3a2fb1d0c3a68c32c29b572bcc26d6616d3fa23d53fb41710af3636125507864dd17f47cf27d4723
diff --git a/dev-lang/vala/files/0.40-Allow-disabling-the-build-of-valadoc.patch b/dev-lang/vala/files/0.40-Allow-disabling-the-build-of-valadoc.patch
deleted file mode 100644
index 55bcb7d63b05..000000000000
--- a/dev-lang/vala/files/0.40-Allow-disabling-the-build-of-valadoc.patch
+++ /dev/null
@@ -1,184 +0,0 @@
-From 1dae711f17473e12c822a657ffca02abee27b3a2 Mon Sep 17 00:00:00 2001
-From: Rico Tzschichholz <ricotz@ubuntu.com>
-Date: Sun, 27 Aug 2017 16:03:03 +0200
-Subject: [PATCH] build: Allow disabling the build of valadoc
-
-Allow disabling build of valadoc with configure option --disable-valadoc
-
-Fixes https://gitlab.gnome.org/GNOME/vala/issues/596
----
- Makefile.am | 10 +++++++++
- configure.ac | 59 ++++++++++++++++++++++++++-----------------------
- doc/Makefile.am | 17 +++++++++++++-
- 3 files changed, 57 insertions(+), 29 deletions(-)
-
-diff --git a/Makefile.am b/Makefile.am
-index 88bef90ed..e4d46741f 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -13,9 +13,19 @@ SUBDIRS = \
- doc \
- gobject-introspection \
- vapigen \
-+ $(NULL)
-+
-+if ENABLE_VALADOC
-+SUBDIRS += \
- libvaladoc \
- valadoc \
- $(NULL)
-+endif
-+
-+DISTCHECK_CONFIGURE_FLAGS = \
-+ --enable-valadoc \
-+ --enable-unversioned \
-+ $(NULL)
-
- if ENABLE_UNVERSIONED
- aclocaldir = $(datadir)/aclocal
-diff --git a/configure.ac b/configure.ac
-index 88ca0f94b..9d1c97417 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -119,35 +119,38 @@ PKG_CHECK_MODULES(GMODULE, gmodule-2.0 >= $GLIB_REQUIRED)
- AC_SUBST(GMODULE_CFLAGS)
- AC_SUBST(GMODULE_LIBS)
-
--PKG_CHECK_MODULES(LIBGVC, libgvc >= $LIBGVC_REQUIRED)
--AC_MSG_CHECKING([for CGRAPH])
--cgraph_tmp_LIBADD="$LIBADD"
--cgraph_tmp_CFLAGS="$CFLAGS"
--LIBADD="$LIBADD $LIBGVC_LIBS"
--CFLAGS="$CFLAGS $LIBGVC_CFLAGS"
--AC_RUN_IFELSE(
-- [AC_LANG_SOURCE([
-- #include <gvc.h>
--
-- int main(void) {
-- #ifdef WITH_CGRAPH
-- return 0;
-- #else
-- return -1;
-- #endif
-- }
-- ])], [
-- AC_MSG_RESULT([yes])
-- VALAFLAGS="$VALAFLAGS -D WITH_CGRAPH"
-- have_cgraph=yes
-- ], [
-- AC_MSG_RESULT([no])
-- have_cgraph=no
-- ]
--)
--LIBADD="$cgraph_tmp_LIBADD"
--CFLAGS="$cgraph_tmp_CFLAGS"
-+AC_ARG_ENABLE(valadoc, AS_HELP_STRING([--disable-valadoc], [Disable valadoc]), enable_valadoc=$enableval, enable_valadoc=yes)
-+if test x$enable_valadoc = xyes; then
-+ PKG_CHECK_MODULES(LIBGVC, libgvc >= $LIBGVC_REQUIRED)
-+ AC_MSG_CHECKING([for CGRAPH])
-+ cgraph_tmp_LIBADD="$LIBADD"
-+ cgraph_tmp_CFLAGS="$CFLAGS"
-+ LIBADD="$LIBADD $LIBGVC_LIBS"
-+ CFLAGS="$CFLAGS $LIBGVC_CFLAGS"
-+ AC_RUN_IFELSE(
-+ [AC_LANG_SOURCE([
-+ #include <gvc.h>
-+ int main(void) {
-+ #ifdef WITH_CGRAPH
-+ return 0;
-+ #else
-+ return -1;
-+ #endif
-+ }
-+ ])], [
-+ AC_MSG_RESULT([yes])
-+ VALAFLAGS="$VALAFLAGS -D WITH_CGRAPH"
-+ have_cgraph=yes
-+ ], [
-+ AC_MSG_RESULT([no])
-+ have_cgraph=no
-+ ]
-+ )
-+ LIBADD="$cgraph_tmp_LIBADD"
-+ CFLAGS="$cgraph_tmp_CFLAGS"
-+fi
- AM_CONDITIONAL(HAVE_CGRAPH, test "$have_cgraph" = "yes")
-+AM_CONDITIONAL(ENABLE_VALADOC, test x$enable_valadoc = xyes)
-
- AC_PATH_PROG([XSLTPROC], [xsltproc], :)
- AM_CONDITIONAL(HAVE_XSLTPROC, test "$XSLTPROC" != :)
-diff --git a/doc/Makefile.am b/doc/Makefile.am
-index 758ad733a..b79f229c4 100644
---- a/doc/Makefile.am
-+++ b/doc/Makefile.am
-@@ -6,11 +6,16 @@ SUBDIRS = \
-
- dist_man_MANS = \
- valac.1 \
-- valadoc.1 \
- vala-gen-introspect.1 \
- vapigen.1 \
- $(NULL)
-
-+if ENABLE_VALADOC
-+dist_man_MANS += \
-+ valadoc.1 \
-+ $(NULL)
-+endif
-+
- EXTRA_DIST = \
- valac.h2m \
- valadoc.h2m \
-@@ -19,7 +24,11 @@ EXTRA_DIST = \
- $(NULL)
-
- if HAVE_HELP2MAN
-+if ENABLE_VALADOC
- manpages: valac.1 valadoc.1 vala-gen-introspect.1 vapigen.1
-+else
-+manpages: valac.1 vala-gen-introspect.1 vapigen.1
-+endif
- @rm $^
- $(MAKE) $(AM_MAKEFLAGS) $^
-
-@@ -28,11 +37,13 @@ valac.1:
- --include $(srcdir)/valac.h2m \
- --libtool --no-info \
- --output=$@
-+if ENABLE_VALADOC
- valadoc.1:
- $(HELP2MAN) $(top_builddir)/valadoc/valadoc \
- --include $(srcdir)/valadoc.h2m \
- --libtool --no-info \
- --output=$@
-+endif
- vala-gen-introspect.1:
- $(HELP2MAN) $(top_builddir)/gobject-introspection/gen-introspect \
- --include $(srcdir)/vala-gen-introspect.h2m \
-@@ -49,12 +60,15 @@ endif
- if ENABLE_UNVERSIONED
- install-data-hook:
- cd $(DESTDIR)$(man1dir) && $(LN_S) -f valac@PACKAGE_SUFFIX@.1 valac.1
-+if ENABLE_VALADOC
- cd $(DESTDIR)$(man1dir) && $(LN_S) -f valadoc@PACKAGE_SUFFIX@.1 valadoc.1
-+endif
- cd $(DESTDIR)$(man1dir) && $(LN_S) -f vala-gen-introspect@PACKAGE_SUFFIX@.1 vala-gen-introspect.1
- cd $(DESTDIR)$(man1dir) && $(LN_S) -f vapigen@PACKAGE_SUFFIX@.1 vapigen.1
- endif
-
-
-+if ENABLE_VALADOC
- COMMON_VALADOCFLAGS = \
- --force \
- --verbose \
-@@ -130,6 +144,7 @@ internal-apis/valadoc: $(valadoc_VALASOURCES) internal-apis/codegen
- @touch $@
-
- internal-api-docs: internal-apis/gee internal-apis/vala internal-apis/ccode internal-apis/codegen internal-apis/valadoc
-+endif
-
- clean-local:
- rm -rf $(builddir)/internal-apis
---
-2.20.1
-
diff --git a/dev-lang/vala/files/0.40-valadoc-doclets-data-parallel-installable.patch b/dev-lang/vala/files/0.40-valadoc-doclets-data-parallel-installable.patch
deleted file mode 100644
index 1c9b44677e1e..000000000000
--- a/dev-lang/vala/files/0.40-valadoc-doclets-data-parallel-installable.patch
+++ /dev/null
@@ -1,212 +0,0 @@
-From 3dc5768c045c400ff522b8a510b789001aa93df4 Mon Sep 17 00:00:00 2001
-From: Gilles Dartiguelongue <eva@gentoo.org>
-Date: Fri, 4 Jan 2019 11:31:14 +0100
-Subject: [PATCH 2/2] Make valadoc doclets & data parallel installable
-
----
- libvaladoc/Makefile.am | 12 ++++++++++--
- valadoc/Makefile.am | 7 ++++++-
- valadoc/doclets/devhelp/Makefile.am | 11 ++++++++---
- valadoc/doclets/gtkdoc/Makefile.am | 11 ++++++++---
- valadoc/doclets/html/Makefile.am | 11 ++++++++---
- valadoc/icons/Makefile.am | 4 ++++
- valadoc/tests/Makefile.am | 7 ++++++-
- 7 files changed, 50 insertions(+), 13 deletions(-)
-
-diff --git a/libvaladoc/Makefile.am b/libvaladoc/Makefile.am
-index f3f790e76..86875631b 100644
---- a/libvaladoc/Makefile.am
-+++ b/libvaladoc/Makefile.am
-@@ -3,8 +3,6 @@ include $(top_srcdir)/Makefile.common
- NULL =
-
- AM_CFLAGS = \
-- -DPACKAGE_ICONDIR=\"$(datadir)/valadoc/icons/\" \
-- -DPACKAGE_DATADIR=\"$(libdir)/valadoc\" \
- -DPACKAGE_VERSION=\"$(VERSION)\" \
- $(COVERAGE_CFLAGS) \
- $(LIBGVC_CFLAGS) \
-@@ -16,6 +14,16 @@ AM_CFLAGS = \
- -I$(top_srcdir)/codegen \
- $(NULL)
-
-+if ENABLE_UNVERSIONED
-+AM_CFLAGS += \
-+ -DPACKAGE_ICONDIR=\"$(datadir)/valadoc/icons/\" \
-+ -DPACKAGE_DATADIR=\"$(libdir)/valadoc\"
-+else
-+AM_CFLAGS += \
-+ -DPACKAGE_ICONDIR=\"$(datadir)/valadoc@PACKAGE_SUFFIX@/icons/\" \
-+ -DPACKAGE_DATADIR=\"$(libdir)/valadoc@PACKAGE_SUFFIX@\"
-+endif
-+
- AM_VALAFLAGS = \
- $(NULL)
-
-diff --git a/valadoc/Makefile.am b/valadoc/Makefile.am
-index 33f3a9375..2f3dec848 100644
---- a/valadoc/Makefile.am
-+++ b/valadoc/Makefile.am
-@@ -9,7 +9,6 @@ SUBDIRS = \
- $(NULL)
-
- AM_CFLAGS = \
-- -DPACKAGE_DATADIR=\"$(libdir)/valadoc\" \
- -DPACKAGE_VERSION=\"$(VERSION)\" \
- -I$(top_srcdir)/libvaladoc/ \
- -I$(top_srcdir)/gee \
-@@ -22,6 +21,12 @@ AM_CFLAGS = \
- $(LIBGVC_CFLAGS) \
- $(NULL)
-
-+if ENABLE_UNVERSIONED
-+AM_CFLAGS += -DPACKAGE_DATADIR=\"$(libdir)/valadoc\"
-+else
-+AM_CFLAGS += -DPACKAGE_DATADIR=\"$(libdir)/valadoc@PACKAGE_SUFFIX@\"
-+endif
-+
- BUILT_SOURCES = valadoc.vala.stamp
-
- bin_PROGRAMS = valadoc
-diff --git a/valadoc/doclets/devhelp/Makefile.am b/valadoc/doclets/devhelp/Makefile.am
-index 5783c0b5a..afbb8f7f9 100644
---- a/valadoc/doclets/devhelp/Makefile.am
-+++ b/valadoc/doclets/devhelp/Makefile.am
-@@ -3,7 +3,6 @@ include $(top_srcdir)/Makefile.common
- NULL =
-
- AM_CFLAGS = \
-- -DPACKAGE_ICONDIR=\"$(datadir)/valadoc/icons/\" \
- -I$(top_srcdir)/gee/ \
- -I$(top_srcdir)/vala/ \
- -I$(top_srcdir)/libvaladoc/ \
-@@ -12,12 +11,18 @@ AM_CFLAGS = \
- $(LIBGVC_CFLAGS) \
- $(NULL)
-
-+if ENABLE_UNVERSIONED
-+AM_CFLAGS += -DPACKAGE_ICONDIR=\"$(datadir)/valadoc/icons/\"
-+docletdir = $(libdir)/valadoc/doclets/devhelp
-+else
-+AM_CFLAGS += -DPACKAGE_ICONDIR=\"$(datadir)/valadoc@PACKAGE_SUFFIX@/icons/\"
-+docletdir = $(libdir)/valadoc@PACKAGE_SUFFIX@/doclets/devhelp
-+endif
-+
- BUILT_SOURCES = libdoclet.vala.stamp
-
- doclet_LTLIBRARIES = libdoclet.la
-
--docletdir = $(libdir)/valadoc/doclets/devhelp
--
- libdoclet_la_LDFLAGS = -module -avoid-version -no-undefined
-
- libdoclet_la_VALASOURCES = \
-diff --git a/valadoc/doclets/gtkdoc/Makefile.am b/valadoc/doclets/gtkdoc/Makefile.am
-index 763e46932..f689018ce 100644
---- a/valadoc/doclets/gtkdoc/Makefile.am
-+++ b/valadoc/doclets/gtkdoc/Makefile.am
-@@ -3,7 +3,6 @@ include $(top_srcdir)/Makefile.common
- NULL =
-
- AM_CFLAGS = \
-- -DPACKAGE_ICONDIR=\"$(datadir)/valadoc/icons/\" \
- -I$(top_srcdir)/gee/ \
- -I$(top_srcdir)/vala/ \
- -I$(top_srcdir)/libvaladoc/ \
-@@ -12,12 +11,18 @@ AM_CFLAGS = \
- $(LIBGVC_CFLAGS) \
- $(NULL)
-
-+if ENABLE_UNVERSIONED
-+AM_CFLAGS += -DPACKAGE_ICONDIR=\"$(datadir)/valadoc/icons/\"
-+docletdir = $(libdir)/valadoc/doclets/gtkdoc
-+else
-+AM_CFLAGS += -DPACKAGE_ICONDIR=\"$(datadir)/valadoc@PACKAGE_SUFFIX@/icons/\"
-+docletdir = $(libdir)/valadoc@PACKAGE_SUFFIX@/doclets/gtkdoc
-+endif
-+
- BUILT_SOURCES = libdoclet.vala.stamp
-
- doclet_LTLIBRARIES = libdoclet.la
-
--docletdir = $(libdir)/valadoc/doclets/gtkdoc
--
- libdoclet_la_LDFLAGS = -module -avoid-version -no-undefined
-
- libdoclet_la_VALASOURCES = \
-diff --git a/valadoc/doclets/html/Makefile.am b/valadoc/doclets/html/Makefile.am
-index 885fbfbab..855184020 100644
---- a/valadoc/doclets/html/Makefile.am
-+++ b/valadoc/doclets/html/Makefile.am
-@@ -3,7 +3,6 @@ include $(top_srcdir)/Makefile.common
- NULL =
-
- AM_CFLAGS = \
-- -DPACKAGE_ICONDIR=\"$(datadir)/valadoc/icons/\" \
- -I$(top_srcdir)/gee/ \
- -I$(top_srcdir)/vala/ \
- -I$(top_srcdir)/libvaladoc/ \
-@@ -12,12 +11,18 @@ AM_CFLAGS = \
- $(LIBGVC_CFLAGS) \
- $(NULL)
-
-+if ENABLE_UNVERSIONED
-+AM_CFLAGS += -DPACKAGE_ICONDIR=\"$(datadir)/valadoc/icons/\"
-+docletdir = $(libdir)/valadoc/doclets/html
-+else
-+AM_CFLAGS += -DPACKAGE_ICONDIR=\"$(datadir)/valadoc@PACKAGE_SUFFIX@/icons/\"
-+docletdir = $(libdir)/valadoc@PACKAGE_SUFFIX@/doclets/html
-+endif
-+
- BUILT_SOURCES = libdoclet.vala.stamp
-
- doclet_LTLIBRARIES = libdoclet.la
-
--docletdir = $(libdir)/valadoc/doclets/html
--
- libdoclet_la_LDFLAGS = -module -avoid-version -no-undefined
-
- libdoclet_la_VALASOURCES = \
-diff --git a/valadoc/icons/Makefile.am b/valadoc/icons/Makefile.am
-index 454bdba7c..668956f3b 100644
---- a/valadoc/icons/Makefile.am
-+++ b/valadoc/icons/Makefile.am
-@@ -1,6 +1,10 @@
- NULL =
-
-+if ENABLE_UNVERSIONED
- iconsdir = $(datadir)/valadoc/icons
-+else
-+iconsdir = $(datadir)/valadoc@PACKAGE_SUFFIX@/icons
-+endif
-
- dist_icons_DATA = \
- abstractclass.png \
-diff --git a/valadoc/tests/Makefile.am b/valadoc/tests/Makefile.am
-index e40cc1ca3..2bca58128 100644
---- a/valadoc/tests/Makefile.am
-+++ b/valadoc/tests/Makefile.am
-@@ -22,7 +22,6 @@ check-TESTS: $(TESTS)
- G_DEBUG=fatal_warnings $(builddir)/driver
-
- AM_CFLAGS = \
-- -DPACKAGE_DATADIR=\"$(libdir)/valadoc\" \
- -DPACKAGE_VERSION=\"$(VERSION)\" \
- -DTOP_SRC_DIR=\"$(abs_top_srcdir)\" \
- -I$(top_srcdir)/libvaladoc/ \
-@@ -36,6 +35,12 @@ AM_CFLAGS = \
- $(LIBGVC_CFLAGS) \
- $(NULL)
-
-+if ENABLE_UNVERSIONED
-+AM_CFLAGS += -DPACKAGE_DATADIR=\"$(libdir)/valadoc\"
-+else
-+AM_CFLAGS += -DPACKAGE_DATADIR=\"$(libdir)/valadoc@PACKAGE_SUFFIX@\"
-+endif
-+
- BUILT_SOURCES = driver.vala.stamp
-
- check_PROGRAMS = driver
---
-2.20.1
-
diff --git a/dev-lang/vala/files/0.44-valadoc-doclets-data-parallel-installable.patch b/dev-lang/vala/files/0.44-valadoc-doclets-data-parallel-installable.patch
deleted file mode 100644
index 8ab9e4401e90..000000000000
--- a/dev-lang/vala/files/0.44-valadoc-doclets-data-parallel-installable.patch
+++ /dev/null
@@ -1,207 +0,0 @@
-From 543a835b7027e7f79d1fe882cbd06137b6c6aa3b Mon Sep 17 00:00:00 2001
-From: Mart Raudsepp <leio@gentoo.org>
-Date: Sat, 27 Jul 2019 20:20:45 +0300
-Subject: [PATCH] build: Make valadoc doclets & data parallel installable
-
----
- libvaladoc/Makefile.am | 7 ++++++-
- valadoc/Makefile.am | 7 ++++++-
- valadoc/doclets/devhelp/Makefile.am | 11 ++++++++---
- valadoc/doclets/gtkdoc/Makefile.am | 11 ++++++++---
- valadoc/doclets/html/Makefile.am | 11 ++++++++---
- valadoc/icons/Makefile.am | 4 ++++
- valadoc/tests/Makefile.am | 7 ++++++-
- 7 files changed, 46 insertions(+), 12 deletions(-)
-
-diff --git a/libvaladoc/Makefile.am b/libvaladoc/Makefile.am
-index 0ad42cb32..e8e6704ac 100644
---- a/libvaladoc/Makefile.am
-+++ b/libvaladoc/Makefile.am
-@@ -4,7 +4,6 @@ NULL =
-
- AM_CFLAGS = \
- -DG_LOG_DOMAIN=\"valadoc\" \
-- -DPACKAGE_VALADOC_LIBDIR=\"$(libdir)/valadoc\" \
- -DPACKAGE_VERSION=\"$(VERSION)\" \
- $(COVERAGE_CFLAGS) \
- $(LIBGVC_CFLAGS) \
-@@ -16,6 +15,12 @@ AM_CFLAGS = \
- -I$(top_srcdir)/codegen \
- $(NULL)
-
-+if ENABLE_UNVERSIONED
-+AM_CFLAGS += -DPACKAGE_VALADOC_LIBDIR=\"$(libdir)/valadoc\"
-+else
-+AM_CFLAGS += -DPACKAGE_VALADOC_LIBDIR=\"$(libdir)/valadoc@PACKAGE_SUFFIX@\"
-+endif
-+
- AM_VALAFLAGS = \
- $(NULL)
-
-diff --git a/valadoc/Makefile.am b/valadoc/Makefile.am
-index 26028f5e3..60712cf00 100644
---- a/valadoc/Makefile.am
-+++ b/valadoc/Makefile.am
-@@ -10,7 +10,6 @@ SUBDIRS = \
-
- AM_CFLAGS = \
- -DG_LOG_DOMAIN=\"valadoc\" \
-- -DPACKAGE_VALADOC_LIBDIR=\"$(libdir)/valadoc\" \
- -DPACKAGE_VERSION=\"$(VERSION)\" \
- -I$(top_srcdir)/libvaladoc/ \
- -I$(top_srcdir)/gee \
-@@ -23,6 +22,12 @@ AM_CFLAGS = \
- $(LIBGVC_CFLAGS) \
- $(NULL)
-
-+if ENABLE_UNVERSIONED
-+AM_CFLAGS += -DPACKAGE_VALADOC_LIBDIR=\"$(libdir)/valadoc\"
-+else
-+AM_CFLAGS += -DPACKAGE_VALADOC_LIBDIR=\"$(libdir)/valadoc@PACKAGE_SUFFIX@\"
-+endif
-+
- BUILT_SOURCES = valadoc.vala.stamp
-
- bin_PROGRAMS = valadoc
-diff --git a/valadoc/doclets/devhelp/Makefile.am b/valadoc/doclets/devhelp/Makefile.am
-index b151eb371..435e87235 100644
---- a/valadoc/doclets/devhelp/Makefile.am
-+++ b/valadoc/doclets/devhelp/Makefile.am
-@@ -4,7 +4,6 @@ NULL =
-
- AM_CFLAGS = \
- -DG_LOG_DOMAIN=\"valadoc-devhelp\" \
-- -DPACKAGE_VALADOC_ICONDIR=\"$(datadir)/valadoc/icons/\" \
- -I$(top_srcdir)/gee/ \
- -I$(top_srcdir)/vala/ \
- -I$(top_srcdir)/libvaladoc/ \
-@@ -13,12 +12,18 @@ AM_CFLAGS = \
- $(LIBGVC_CFLAGS) \
- $(NULL)
-
-+if ENABLE_UNVERSIONED
-+AM_CFLAGS += -DPACKAGE_VALADOC_ICONDIR=\"$(datadir)/valadoc/icons/\"
-+docletdir = $(libdir)/valadoc/doclets/devhelp
-+else
-+AM_CFLAGS += -DPACKAGE_VALADOC_ICONDIR=\"$(datadir)/valadoc@PACKAGE_SUFFIX@/icons/\"
-+docletdir = $(libdir)/valadoc@PACKAGE_SUFFIX@/doclets/devhelp
-+endif
-+
- BUILT_SOURCES = libdoclet.vala.stamp
-
- doclet_LTLIBRARIES = libdoclet.la
-
--docletdir = $(libdir)/valadoc/doclets/devhelp
--
- libdoclet_la_LDFLAGS = -module -avoid-version -no-undefined
-
- libdoclet_la_VALASOURCES = \
-diff --git a/valadoc/doclets/gtkdoc/Makefile.am b/valadoc/doclets/gtkdoc/Makefile.am
-index 74d3c5702..0ee8695bd 100644
---- a/valadoc/doclets/gtkdoc/Makefile.am
-+++ b/valadoc/doclets/gtkdoc/Makefile.am
-@@ -4,7 +4,6 @@ NULL =
-
- AM_CFLAGS = \
- -DG_LOG_DOMAIN=\"valadoc-gtkdoc\" \
-- -DPACKAGE_VALADOC_ICONDIR=\"$(datadir)/valadoc/icons/\" \
- -I$(top_srcdir)/gee/ \
- -I$(top_srcdir)/vala/ \
- -I$(top_srcdir)/libvaladoc/ \
-@@ -13,12 +12,18 @@ AM_CFLAGS = \
- $(LIBGVC_CFLAGS) \
- $(NULL)
-
-+if ENABLE_UNVERSIONED
-+AM_CFLAGS += -DPACKAGE_VALADOC_ICONDIR=\"$(datadir)/valadoc/icons/\"
-+docletdir = $(libdir)/valadoc/doclets/gtkdoc
-+else
-+AM_CFLAGS += -DPACKAGE_VALADOC_ICONDIR=\"$(datadir)/valadoc@PACKAGE_SUFFIX@/icons/\"
-+docletdir = $(libdir)/valadoc@PACKAGE_SUFFIX@/doclets/gtkdoc
-+endif
-+
- BUILT_SOURCES = libdoclet.vala.stamp
-
- doclet_LTLIBRARIES = libdoclet.la
-
--docletdir = $(libdir)/valadoc/doclets/gtkdoc
--
- libdoclet_la_LDFLAGS = -module -avoid-version -no-undefined
-
- libdoclet_la_VALASOURCES = \
-diff --git a/valadoc/doclets/html/Makefile.am b/valadoc/doclets/html/Makefile.am
-index 7541cc3f8..7ceebe4fa 100644
---- a/valadoc/doclets/html/Makefile.am
-+++ b/valadoc/doclets/html/Makefile.am
-@@ -4,7 +4,6 @@ NULL =
-
- AM_CFLAGS = \
- -DG_LOG_DOMAIN=\"valadoc-html\" \
-- -DPACKAGE_VALADOC_ICONDIR=\"$(datadir)/valadoc/icons/\" \
- -I$(top_srcdir)/gee/ \
- -I$(top_srcdir)/vala/ \
- -I$(top_srcdir)/libvaladoc/ \
-@@ -13,12 +12,18 @@ AM_CFLAGS = \
- $(LIBGVC_CFLAGS) \
- $(NULL)
-
-+if ENABLE_UNVERSIONED
-+AM_CFLAGS += -DPACKAGE_VALADOC_ICONDIR=\"$(datadir)/valadoc/icons/\"
-+docletdir = $(libdir)/valadoc/doclets/html
-+else
-+AM_CFLAGS += -DPACKAGE_VALADOC_ICONDIR=\"$(datadir)/valadoc@PACKAGE_SUFFIX@/icons/\"
-+docletdir = $(libdir)/valadoc@PACKAGE_SUFFIX@/doclets/html
-+endif
-+
- BUILT_SOURCES = libdoclet.vala.stamp
-
- doclet_LTLIBRARIES = libdoclet.la
-
--docletdir = $(libdir)/valadoc/doclets/html
--
- libdoclet_la_LDFLAGS = -module -avoid-version -no-undefined
-
- libdoclet_la_VALASOURCES = \
-diff --git a/valadoc/icons/Makefile.am b/valadoc/icons/Makefile.am
-index 454bdba7c..668956f3b 100644
---- a/valadoc/icons/Makefile.am
-+++ b/valadoc/icons/Makefile.am
-@@ -1,6 +1,10 @@
- NULL =
-
-+if ENABLE_UNVERSIONED
- iconsdir = $(datadir)/valadoc/icons
-+else
-+iconsdir = $(datadir)/valadoc@PACKAGE_SUFFIX@/icons
-+endif
-
- dist_icons_DATA = \
- abstractclass.png \
-diff --git a/valadoc/tests/Makefile.am b/valadoc/tests/Makefile.am
-index b49de43cb..b32615b50 100644
---- a/valadoc/tests/Makefile.am
-+++ b/valadoc/tests/Makefile.am
-@@ -22,7 +22,6 @@ check-TESTS: $(TESTS)
- G_DEBUG=fatal_warnings $(builddir)/driver
-
- AM_CFLAGS = \
-- -DPACKAGE_VALADOC_LIBDIR=\"$(libdir)/valadoc\" \
- -DPACKAGE_VERSION=\"$(VERSION)\" \
- -DTOP_SRC_DIR=\"$(abs_top_srcdir)\" \
- -I$(top_srcdir)/libvaladoc/ \
-@@ -36,6 +35,12 @@ AM_CFLAGS = \
- $(LIBGVC_CFLAGS) \
- $(NULL)
-
-+if ENABLE_UNVERSIONED
-+AM_CFLAGS += -DPACKAGE_VALADOC_LIBDIR=\"$(libdir)/valadoc\"
-+else
-+AM_CFLAGS += -DPACKAGE_VALADOC_LIBDIR=\"$(libdir)/valadoc@PACKAGE_SUFFIX@\"
-+endif
-+
- BUILT_SOURCES = driver.vala.stamp
-
- check_PROGRAMS = driver
---
-2.20.1
-
diff --git a/dev-lang/vala/metadata.xml b/dev-lang/vala/metadata.xml
index a6cf4ba175a4..f70d60eaeb64 100644
--- a/dev-lang/vala/metadata.xml
+++ b/dev-lang/vala/metadata.xml
@@ -1,11 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="project">
- <email>gnome@gentoo.org</email>
- <name>Gentoo GNOME Desktop</name>
- </maintainer>
- <use>
- <flag name="valadoc">Installs valadoc documentation generation tool</flag>
- </use>
+ <maintainer type="project">
+ <email>gnome@gentoo.org</email>
+ <name>Gentoo GNOME Desktop</name>
+ </maintainer>
+ <use>
+ <flag name="valadoc">Installs valadoc documentation generation tool</flag>
+ </use>
+ <upstream>
+ <remote-id type="gnome-gitlab">GNOME/vala</remote-id>
+ </upstream>
</pkgmetadata>
diff --git a/dev-lang/vala/vala-0.36.20.ebuild b/dev-lang/vala/vala-0.36.20.ebuild
deleted file mode 100644
index f4c64cea1459..000000000000
--- a/dev-lang/vala/vala-0.36.20.ebuild
+++ /dev/null
@@ -1,38 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-inherit gnome2
-
-DESCRIPTION="Compiler for the GObject type system"
-HOMEPAGE="https://wiki.gnome.org/Projects/Vala"
-
-LICENSE="LGPL-2.1"
-SLOT="0.36"
-KEYWORDS="~alpha amd64 arm ~arm64 hppa ~ia64 ~mips ppc ppc64 s390 sparc x86 ~x86-linux"
-IUSE="test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- >=dev-libs/glib-2.32:2
- >=dev-libs/vala-common-${PV}
-"
-DEPEND="${RDEPEND}
- !${CATEGORY}/${PN}:0
- dev-libs/libxslt
- sys-devel/flex
- virtual/pkgconfig
- virtual/yacc
- test? (
- dev-libs/dbus-glib
- >=dev-libs/glib-2.26:2
- dev-libs/gobject-introspection )
-"
-
-src_configure() {
- # weasyprint enables generation of PDF from HTML
- gnome2_src_configure \
- --disable-unversioned \
- VALAC=: \
- WEASYPRINT=:
-}
diff --git a/dev-lang/vala/vala-0.40.23.ebuild b/dev-lang/vala/vala-0.40.23.ebuild
deleted file mode 100644
index f0b64e970c76..000000000000
--- a/dev-lang/vala/vala-0.40.23.ebuild
+++ /dev/null
@@ -1,54 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-GNOME2_EAUTORECONF="yes"
-
-inherit gnome2
-
-DESCRIPTION="Compiler for the GObject type system"
-HOMEPAGE="https://wiki.gnome.org/Projects/Vala"
-
-LICENSE="LGPL-2.1"
-SLOT="0.40"
-KEYWORDS="~alpha amd64 arm ~arm64 hppa ~ia64 ~mips ppc ppc64 s390 sparc x86 ~x86-linux"
-IUSE="test valadoc"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- >=dev-libs/glib-2.40.0:2
- >=dev-libs/vala-common-${PV}
- valadoc? ( >=media-gfx/graphviz-2.16 )
-"
-DEPEND="${RDEPEND}
- !${CATEGORY}/${PN}:0
- dev-libs/libxslt
- sys-devel/flex
- virtual/pkgconfig
- virtual/yacc
- test? (
- dev-libs/dbus-glib
- >=dev-libs/glib-2.26:2
- dev-libs/gobject-introspection )
-"
-
-PATCHES=(
- # From master
- "${FILESDIR}"/0.40-Allow-disabling-the-build-of-valadoc.patch
- # Add missing bits to make valadoc parallel installable
- "${FILESDIR}"/0.40-valadoc-doclets-data-parallel-installable.patch
-)
-
-src_configure() {
- # weasyprint enables generation of PDF from HTML
- gnome2_src_configure \
- --disable-unversioned \
- $(use_enable valadoc) \
- VALAC=: \
- WEASYPRINT=:
-}
-
-src_install() {
- default
- find "${D}" -name "*.la" -delete || die
-}
diff --git a/dev-lang/vala/vala-0.40.24.ebuild b/dev-lang/vala/vala-0.40.24.ebuild
deleted file mode 100644
index 661aaba47561..000000000000
--- a/dev-lang/vala/vala-0.40.24.ebuild
+++ /dev/null
@@ -1,54 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-GNOME2_EAUTORECONF="yes"
-
-inherit gnome2
-
-DESCRIPTION="Compiler for the GObject type system"
-HOMEPAGE="https://wiki.gnome.org/Projects/Vala"
-
-LICENSE="LGPL-2.1"
-SLOT="0.40"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~x86-linux"
-IUSE="test valadoc"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- >=dev-libs/glib-2.40.0:2
- >=dev-libs/vala-common-${PV}
- valadoc? ( >=media-gfx/graphviz-2.16 )
-"
-DEPEND="${RDEPEND}
- !${CATEGORY}/${PN}:0
- dev-libs/libxslt
- sys-devel/flex
- virtual/pkgconfig
- virtual/yacc
- test? (
- dev-libs/dbus-glib
- >=dev-libs/glib-2.26:2
- dev-libs/gobject-introspection )
-"
-
-PATCHES=(
- # From master
- "${FILESDIR}"/0.40-Allow-disabling-the-build-of-valadoc.patch
- # Add missing bits to make valadoc parallel installable
- "${FILESDIR}"/0.40-valadoc-doclets-data-parallel-installable.patch
-)
-
-src_configure() {
- # weasyprint enables generation of PDF from HTML
- gnome2_src_configure \
- --disable-unversioned \
- $(use_enable valadoc) \
- VALAC=: \
- WEASYPRINT=:
-}
-
-src_install() {
- default
- find "${D}" -name "*.la" -delete || die
-}
diff --git a/dev-lang/vala/vala-0.46.10.ebuild b/dev-lang/vala/vala-0.46.10.ebuild
deleted file mode 100644
index b1b925c97f91..000000000000
--- a/dev-lang/vala/vala-0.46.10.ebuild
+++ /dev/null
@@ -1,49 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit gnome2
-
-DESCRIPTION="Compiler for the GObject type system"
-HOMEPAGE="https://wiki.gnome.org/Projects/Vala"
-
-LICENSE="LGPL-2.1+"
-SLOT="0.46"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 s390 sparc x86 ~x86-linux"
-IUSE="test valadoc"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- >=dev-libs/glib-2.48.0:2
- >=dev-libs/vala-common-${PV}
- valadoc? ( >=media-gfx/graphviz-2.16 )
- !<net-libs/libsoup-2.66.2[vala]
-" # Older libsoup generates a libsoup-2.4.vapi that isn't fine for vala:0.46 anymore
-# We block here, so libsoup[vala] consumers wouldn't have to >= it, which would be bad
-# as the newer is not required with older vala when those are picked instead of 0.46.
-# vala-0.45.91 ships a broken libsoup-2.4.vapi copy too, but that'll be fixed by 0.45.92
-DEPEND="${RDEPEND}
- dev-libs/libxslt
- sys-devel/flex
- virtual/pkgconfig
- virtual/yacc
- test? (
- dev-libs/dbus-glib
- >=dev-libs/glib-2.26:2
- dev-libs/gobject-introspection )
-"
-
-src_configure() {
- # weasyprint enables generation of PDF from HTML
- gnome2_src_configure \
- --disable-unversioned \
- $(use_enable valadoc) \
- VALAC=: \
- WEASYPRINT=:
-}
-
-src_install() {
- default
- find "${D}" -name "*.la" -delete || die
-}
diff --git a/dev-lang/vala/vala-0.46.13.ebuild b/dev-lang/vala/vala-0.46.13.ebuild
deleted file mode 100644
index b6264069e4ac..000000000000
--- a/dev-lang/vala/vala-0.46.13.ebuild
+++ /dev/null
@@ -1,49 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit gnome2
-
-DESCRIPTION="Compiler for the GObject type system"
-HOMEPAGE="https://wiki.gnome.org/Projects/Vala"
-
-LICENSE="LGPL-2.1+"
-SLOT="0.46"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 s390 sparc x86 ~x86-linux"
-IUSE="test valadoc"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- >=dev-libs/glib-2.48.0:2
- >=dev-libs/vala-common-${PV}
- valadoc? ( >=media-gfx/graphviz-2.16 )
- !<net-libs/libsoup-2.66.2[vala]
-" # Older libsoup generates a libsoup-2.4.vapi that isn't fine for vala:0.46 anymore
-# We block here, so libsoup[vala] consumers wouldn't have to >= it, which would be bad
-# as the newer is not required with older vala when those are picked instead of 0.46.
-# vala-0.45.91 ships a broken libsoup-2.4.vapi copy too, but that'll be fixed by 0.45.92
-DEPEND="${RDEPEND}
- dev-libs/libxslt
- sys-devel/flex
- virtual/pkgconfig
- virtual/yacc
- test? (
- dev-libs/dbus-glib
- >=dev-libs/glib-2.26:2
- dev-libs/gobject-introspection )
-"
-
-src_configure() {
- # weasyprint enables generation of PDF from HTML
- gnome2_src_configure \
- --disable-unversioned \
- $(use_enable valadoc) \
- VALAC=: \
- WEASYPRINT=:
-}
-
-src_install() {
- default
- find "${D}" -name "*.la" -delete || die
-}
diff --git a/dev-lang/vala/vala-0.48.11.ebuild b/dev-lang/vala/vala-0.48.11.ebuild
deleted file mode 100644
index 1f7c05bd15c1..000000000000
--- a/dev-lang/vala/vala-0.48.11.ebuild
+++ /dev/null
@@ -1,49 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit gnome2
-
-DESCRIPTION="Compiler for the GObject type system"
-HOMEPAGE="https://wiki.gnome.org/Projects/Vala"
-
-LICENSE="LGPL-2.1+"
-SLOT="0.48"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~x86-linux"
-IUSE="test valadoc"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- >=dev-libs/glib-2.48.0:2
- >=dev-libs/vala-common-${PV}
- valadoc? ( >=media-gfx/graphviz-2.16 )
- !<net-libs/libsoup-2.66.2[vala]
-" # Older libsoup generates a libsoup-2.4.vapi that isn't fine for vala:0.46 anymore
-# We block here, so libsoup[vala] consumers wouldn't have to >= it, which would be bad
-# as the newer is not required with older vala when those are picked instead of 0.46.
-# vala-0.45.91 ships a broken libsoup-2.4.vapi copy too, but that'll be fixed by 0.45.92
-DEPEND="${RDEPEND}
- dev-libs/libxslt
- sys-devel/flex
- virtual/pkgconfig
- virtual/yacc
- test? (
- dev-libs/dbus-glib
- >=dev-libs/glib-2.26:2
- dev-libs/gobject-introspection )
-"
-
-src_configure() {
- # weasyprint enables generation of PDF from HTML
- gnome2_src_configure \
- --disable-unversioned \
- $(use_enable valadoc) \
- VALAC=: \
- WEASYPRINT=:
-}
-
-src_install() {
- default
- find "${D}" -name "*.la" -delete || die
-}
diff --git a/dev-lang/vala/vala-0.48.12.ebuild b/dev-lang/vala/vala-0.48.12.ebuild
deleted file mode 100644
index 1f7c05bd15c1..000000000000
--- a/dev-lang/vala/vala-0.48.12.ebuild
+++ /dev/null
@@ -1,49 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit gnome2
-
-DESCRIPTION="Compiler for the GObject type system"
-HOMEPAGE="https://wiki.gnome.org/Projects/Vala"
-
-LICENSE="LGPL-2.1+"
-SLOT="0.48"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~x86-linux"
-IUSE="test valadoc"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- >=dev-libs/glib-2.48.0:2
- >=dev-libs/vala-common-${PV}
- valadoc? ( >=media-gfx/graphviz-2.16 )
- !<net-libs/libsoup-2.66.2[vala]
-" # Older libsoup generates a libsoup-2.4.vapi that isn't fine for vala:0.46 anymore
-# We block here, so libsoup[vala] consumers wouldn't have to >= it, which would be bad
-# as the newer is not required with older vala when those are picked instead of 0.46.
-# vala-0.45.91 ships a broken libsoup-2.4.vapi copy too, but that'll be fixed by 0.45.92
-DEPEND="${RDEPEND}
- dev-libs/libxslt
- sys-devel/flex
- virtual/pkgconfig
- virtual/yacc
- test? (
- dev-libs/dbus-glib
- >=dev-libs/glib-2.26:2
- dev-libs/gobject-introspection )
-"
-
-src_configure() {
- # weasyprint enables generation of PDF from HTML
- gnome2_src_configure \
- --disable-unversioned \
- $(use_enable valadoc) \
- VALAC=: \
- WEASYPRINT=:
-}
-
-src_install() {
- default
- find "${D}" -name "*.la" -delete || die
-}
diff --git a/dev-lang/vala/vala-0.48.6.ebuild b/dev-lang/vala/vala-0.48.6.ebuild
deleted file mode 100644
index ee886530ce85..000000000000
--- a/dev-lang/vala/vala-0.48.6.ebuild
+++ /dev/null
@@ -1,49 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit gnome2
-
-DESCRIPTION="Compiler for the GObject type system"
-HOMEPAGE="https://wiki.gnome.org/Projects/Vala"
-
-LICENSE="LGPL-2.1+"
-SLOT="0.48"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 s390 sparc x86 ~x86-linux"
-IUSE="test valadoc"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- >=dev-libs/glib-2.48.0:2
- >=dev-libs/vala-common-${PV}
- valadoc? ( >=media-gfx/graphviz-2.16 )
- !<net-libs/libsoup-2.66.2[vala]
-" # Older libsoup generates a libsoup-2.4.vapi that isn't fine for vala:0.46 anymore
-# We block here, so libsoup[vala] consumers wouldn't have to >= it, which would be bad
-# as the newer is not required with older vala when those are picked instead of 0.46.
-# vala-0.45.91 ships a broken libsoup-2.4.vapi copy too, but that'll be fixed by 0.45.92
-DEPEND="${RDEPEND}
- dev-libs/libxslt
- sys-devel/flex
- virtual/pkgconfig
- virtual/yacc
- test? (
- dev-libs/dbus-glib
- >=dev-libs/glib-2.26:2
- dev-libs/gobject-introspection )
-"
-
-src_configure() {
- # weasyprint enables generation of PDF from HTML
- gnome2_src_configure \
- --disable-unversioned \
- $(use_enable valadoc) \
- VALAC=: \
- WEASYPRINT=:
-}
-
-src_install() {
- default
- find "${D}" -name "*.la" -delete || die
-}
diff --git a/dev-lang/vala/vala-0.48.9.ebuild b/dev-lang/vala/vala-0.48.9.ebuild
deleted file mode 100644
index 4aab4255e294..000000000000
--- a/dev-lang/vala/vala-0.48.9.ebuild
+++ /dev/null
@@ -1,49 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit gnome2
-
-DESCRIPTION="Compiler for the GObject type system"
-HOMEPAGE="https://wiki.gnome.org/Projects/Vala"
-
-LICENSE="LGPL-2.1+"
-SLOT="0.48"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 s390 sparc x86 ~x86-linux"
-IUSE="test valadoc"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- >=dev-libs/glib-2.48.0:2
- >=dev-libs/vala-common-${PV}
- valadoc? ( >=media-gfx/graphviz-2.16 )
- !<net-libs/libsoup-2.66.2[vala]
-" # Older libsoup generates a libsoup-2.4.vapi that isn't fine for vala:0.46 anymore
-# We block here, so libsoup[vala] consumers wouldn't have to >= it, which would be bad
-# as the newer is not required with older vala when those are picked instead of 0.46.
-# vala-0.45.91 ships a broken libsoup-2.4.vapi copy too, but that'll be fixed by 0.45.92
-DEPEND="${RDEPEND}
- dev-libs/libxslt
- sys-devel/flex
- virtual/pkgconfig
- virtual/yacc
- test? (
- dev-libs/dbus-glib
- >=dev-libs/glib-2.26:2
- dev-libs/gobject-introspection )
-"
-
-src_configure() {
- # weasyprint enables generation of PDF from HTML
- gnome2_src_configure \
- --disable-unversioned \
- $(use_enable valadoc) \
- VALAC=: \
- WEASYPRINT=:
-}
-
-src_install() {
- default
- find "${D}" -name "*.la" -delete || die
-}
diff --git a/dev-lang/vala/vala-0.50.2.ebuild b/dev-lang/vala/vala-0.50.2.ebuild
deleted file mode 100644
index c1a73c907f81..000000000000
--- a/dev-lang/vala/vala-0.50.2.ebuild
+++ /dev/null
@@ -1,49 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit gnome2
-
-DESCRIPTION="Compiler for the GObject type system"
-HOMEPAGE="https://wiki.gnome.org/Projects/Vala"
-
-LICENSE="LGPL-2.1+"
-SLOT="0.50"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~x86-linux"
-IUSE="test valadoc"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- >=dev-libs/glib-2.48.0:2
- >=dev-libs/vala-common-${PV}
- valadoc? ( >=media-gfx/graphviz-2.16 )
- !<net-libs/libsoup-2.66.2[vala]
-" # Older libsoup generates a libsoup-2.4.vapi that isn't fine for vala:0.46 anymore
-# We block here, so libsoup[vala] consumers wouldn't have to >= it, which would be bad
-# as the newer is not required with older vala when those are picked instead of 0.46.
-# vala-0.45.91 ships a broken libsoup-2.4.vapi copy too, but that'll be fixed by 0.45.92
-DEPEND="${RDEPEND}
- dev-libs/libxslt
- sys-devel/flex
- virtual/pkgconfig
- virtual/yacc
- test? (
- dev-libs/dbus-glib
- >=dev-libs/glib-2.26:2
- dev-libs/gobject-introspection )
-"
-
-src_configure() {
- # weasyprint enables generation of PDF from HTML
- gnome2_src_configure \
- --disable-unversioned \
- $(use_enable valadoc) \
- VALAC=: \
- WEASYPRINT=:
-}
-
-src_install() {
- default
- find "${D}" -name "*.la" -delete || die
-}
diff --git a/dev-lang/vala/vala-0.44.11.ebuild b/dev-lang/vala/vala-0.56.16.ebuild
index ad3b31d0343f..3968a764f030 100644
--- a/dev-lang/vala/vala-0.44.11.ebuild
+++ b/dev-lang/vala/vala-0.56.16.ebuild
@@ -1,41 +1,37 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=6
-GNOME2_EAUTORECONF="yes"
+EAPI=8
inherit gnome2
DESCRIPTION="Compiler for the GObject type system"
-HOMEPAGE="https://wiki.gnome.org/Projects/Vala"
+HOMEPAGE="https://wiki.gnome.org/Projects/Vala https://gitlab.gnome.org/GNOME/vala"
LICENSE="LGPL-2.1+"
-SLOT="0.44"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 s390 sparc x86 ~x86-linux"
+SLOT="0.56"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x86-linux"
IUSE="test valadoc"
RESTRICT="!test? ( test )"
RDEPEND="
- >=dev-libs/glib-2.40.0:2
+ >=dev-libs/glib-2.48.0:2
>=dev-libs/vala-common-${PV}
valadoc? ( >=media-gfx/graphviz-2.16 )
"
DEPEND="${RDEPEND}
- !${CATEGORY}/${PN}:0
- dev-libs/libxslt
- sys-devel/flex
- virtual/pkgconfig
- virtual/yacc
+ dev-libs/gobject-introspection
test? (
dev-libs/dbus-glib
>=dev-libs/glib-2.26:2
- dev-libs/gobject-introspection )
+ )
+"
+BDEPEND="
+ dev-libs/libxslt
+ app-alternatives/lex
+ virtual/pkgconfig
+ app-alternatives/yacc
"
-
-PATCHES=(
- # Add missing bits to make valadoc parallel installable
- "${FILESDIR}"/0.44-valadoc-doclets-data-parallel-installable.patch
-)
src_configure() {
# weasyprint enables generation of PDF from HTML
diff --git a/dev-lang/vala/vala-0.40.20.ebuild b/dev-lang/vala/vala-0.56.17.ebuild
index e38c24e44f45..76d20709710d 100644
--- a/dev-lang/vala/vala-0.40.20.ebuild
+++ b/dev-lang/vala/vala-0.56.17.ebuild
@@ -1,43 +1,37 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=6
-GNOME2_EAUTORECONF="yes"
+EAPI=8
inherit gnome2
DESCRIPTION="Compiler for the GObject type system"
-HOMEPAGE="https://wiki.gnome.org/Projects/Vala"
+HOMEPAGE="https://wiki.gnome.org/Projects/Vala https://gitlab.gnome.org/GNOME/vala"
-LICENSE="LGPL-2.1"
-SLOT="0.40"
-KEYWORDS="~alpha amd64 arm ~arm64 hppa ~ia64 ~mips ppc ppc64 s390 sparc x86 ~x86-linux"
+LICENSE="LGPL-2.1+"
+SLOT="0.56"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x86-linux"
IUSE="test valadoc"
RESTRICT="!test? ( test )"
RDEPEND="
- >=dev-libs/glib-2.40.0:2
+ >=dev-libs/glib-2.48.0:2
>=dev-libs/vala-common-${PV}
valadoc? ( >=media-gfx/graphviz-2.16 )
"
DEPEND="${RDEPEND}
- !${CATEGORY}/${PN}:0
- dev-libs/libxslt
- sys-devel/flex
- virtual/pkgconfig
- virtual/yacc
+ dev-libs/gobject-introspection
test? (
dev-libs/dbus-glib
>=dev-libs/glib-2.26:2
- dev-libs/gobject-introspection )
+ )
+"
+BDEPEND="
+ dev-libs/libxslt
+ app-alternatives/lex
+ virtual/pkgconfig
+ app-alternatives/yacc
"
-
-PATCHES=(
- # From master
- "${FILESDIR}"/0.40-Allow-disabling-the-build-of-valadoc.patch
- # Add missing bits to make valadoc parallel installable
- "${FILESDIR}"/0.40-valadoc-doclets-data-parallel-installable.patch
-)
src_configure() {
# weasyprint enables generation of PDF from HTML
diff --git a/dev-lang/whitespace/metadata.xml b/dev-lang/whitespace/metadata.xml
index b7878815d80d..bd23b0d24791 100644
--- a/dev-lang/whitespace/metadata.xml
+++ b/dev-lang/whitespace/metadata.xml
@@ -1,8 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>haskell@gentoo.org</email>
<name>Gentoo Haskell</name>
</maintainer>
+ <upstream>
+ <remote-id type="github">haroldl/whitespace-nd</remote-id>
+ </upstream>
</pkgmetadata>
diff --git a/dev-lang/whitespace/whitespace-0.4.ebuild b/dev-lang/whitespace/whitespace-0.4.ebuild
index 1efe97570ebb..f414d74d0276 100644
--- a/dev-lang/whitespace/whitespace-0.4.ebuild
+++ b/dev-lang/whitespace/whitespace-0.4.ebuild
@@ -1,7 +1,7 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
# ebuild generated by hackport 0.6.7.9999
@@ -14,7 +14,7 @@ SRC_URI="https://hackage.haskell.org/package/${P}/${P}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
-KEYWORDS="~amd64 ~x86"
+KEYWORDS="amd64 ~x86"
IUSE=""
RDEPEND="dev-haskell/random:=
diff --git a/dev-lang/xsb/Manifest b/dev-lang/xsb/Manifest
index 1e5e68514cc4..a2c29a0ff808 100644
--- a/dev-lang/xsb/Manifest
+++ b/dev-lang/xsb/Manifest
@@ -1,2 +1,4 @@
+DIST XSB-4-0-0.tar.gz 15340635 BLAKE2B 4832185a64c6c5786ae78e111c25cd3a5ffc2f80aec9c0c83f030ead482868c77b0d7abbfdf0d113b56fea395eb7e69ca2970a82ea70004fb78c0bf4de258a9d SHA512 fed1e0db4874db2508e0c1e716be20cbfbc4f7ed4c16e0b220750cfb3dfceb78bbdce0f8564b68c400af1bc2b8f9e3b35014e8849bba1705bddfab824f41e816
DIST XSB38.tar.gz 13830570 BLAKE2B 60a6ab38435348d09e2d08bc65ca62c06b38495b72f40a6f3f10fe8d23949bfed0c580c9be0c8304d8a88a53b227bb695870b558d67f33a47543de6c1529180f SHA512 457c691450afcf3ed4e2fffc28deaef0949ef4bbf6fd69b504acc6507fbb144f2c6e427a25da2b6346b15b82e803c02d1b6962af698d16c1fcb9a3d56160ea30
-DIST xsb-3.8.0-gentoo-patchset-3.tar.gz 7297 BLAKE2B b3da3b4458e6e97c32fc6318bfa95d9755398572b85fe10a00af327c7cf940e18b8ae49cd2543544b363daf39bdc9db3963487e134c3a1b3a31c05344ed927fd SHA512 96064c2a27c4570b213613b97386bed1dac8082881794b7e18e5ae9ee9c28af78412c793b1fe26a293664ba88236257fbb3804cdda63799fff6fb72ca498b4a4
+DIST xsb-3.8.0-gentoo-patchset-5.tar.gz 7748 BLAKE2B 291beb7a2bf567708119eb200e06fd0d6ac976b5eaea9646d9b5fe9fe67908e01f48b1e55e36fc98f7fe75ee4b654422bc0f9c565e00ac75fe36cccd0439bc2b SHA512 cd3762545bb0b0c5532607741f5946658cacf062c21913c8261988a2162ab848d860ae5a0d11d7a4b8b36994f7fbc91c6e6b4fa607e8cc6ebed434dbf421dec1
+DIST xsb-4.0.0-gentoo-patchset-3.tar.gz 10487 BLAKE2B 37253b8e5bfd36cdf51f231e75215ea31d50f121e3c8b1126adfbc8998622f2a4ebdb976b3c67c13738095fd4b23b35e166a895c4ee038b1cae7ad962684ce86 SHA512 51738e5dd64711f42e5c8d831c955c533dbe900a129cc0e7eb5d393ef13d7b6206e5e9fc0e90b1422adb2d8c00ec870a50164d420a02da23770ba0ad3350b10b
diff --git a/dev-lang/xsb/metadata.xml b/dev-lang/xsb/metadata.xml
index cabb7385917b..0c9d339b5d33 100644
--- a/dev-lang/xsb/metadata.xml
+++ b/dev-lang/xsb/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>prolog@gentoo.org</email>
@@ -8,4 +8,7 @@
<upstream>
<remote-id type="sourceforge">xsb</remote-id>
</upstream>
+ <use>
+ <flag name="mariadb">Enable support for the mariadb database backend</flag>
+ </use>
</pkgmetadata>
diff --git a/dev-lang/xsb/xsb-3.8.0.ebuild b/dev-lang/xsb/xsb-3.8.0.ebuild
index 5c18dc3bfc1e..7ab720531788 100644
--- a/dev-lang/xsb/xsb-3.8.0.ebuild
+++ b/dev-lang/xsb/xsb-3.8.0.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
-PATCHSET_VER="3"
+PATCHSET_VER="5"
inherit autotools java-pkg-opt-2
@@ -19,7 +19,7 @@ IUSE="curl debug iodbc java mysql odbc pcre threads xml"
RDEPEND="curl? ( net-misc/curl )
iodbc? ( dev-db/libiodbc )
- java? ( >=virtual/jdk-1.4:= )
+ java? ( >=virtual/jdk-1.8:* )
mysql? ( dev-db/mysql-connector-c:0= )
odbc? ( dev-db/unixODBC )
pcre? ( dev-libs/libpcre )
diff --git a/dev-lang/xsb/xsb-4.0.0.ebuild b/dev-lang/xsb/xsb-4.0.0.ebuild
new file mode 100644
index 000000000000..6739cc6695c0
--- /dev/null
+++ b/dev-lang/xsb/xsb-4.0.0.ebuild
@@ -0,0 +1,212 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PATCHSET_VER="3"
+
+inherit autotools java-pkg-opt-2
+
+DESCRIPTION="XSB is a logic programming and deductive database system"
+HOMEPAGE="http://xsb.sourceforge.net"
+SRC_URI="https://downloads.sourceforge.net/xsb/XSB-$(ver_rs 1-3 -).tar.gz
+ https://dev.gentoo.org/~keri/distfiles/xsb/${P}-gentoo-patchset-${PATCHSET_VER}.tar.gz"
+
+LICENSE="GPL-2 LGPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="curl debug iodbc java mariadb mysql odbc pcre threads xml"
+
+RDEPEND="curl? ( net-misc/curl )
+ iodbc? ( dev-db/libiodbc )
+ java? ( >=virtual/jdk-1.8:* )
+ mariadb? ( dev-db/mariadb-connector-c:= )
+ mysql? ( dev-db/mysql-connector-c:0= )
+ odbc? ( dev-db/unixODBC )
+ pcre? ( dev-libs/libpcre )
+ xml? ( dev-libs/libxml2 )"
+
+DEPEND="${RDEPEND}"
+
+S="${WORKDIR}"/XSB
+
+PATCHES=( "${WORKDIR}/${PV}" )
+
+src_prepare() {
+ default
+ cd "${S}"/build
+ eautoconf
+
+ if use mariadb ; then
+ sed -i \
+ -e "s:mysqlclient:mariadb:" \
+ -e "s:mysql_config:mariadb_config:" \
+ "${S}"/packages/dbdrivers/mysql/configure \
+ "${S}"/packages/dbdrivers/mysql/mysql_driver_config.P
+ fi
+
+ find "${S}"/packages -name Installation_summary \
+ | xargs rm -f || die
+}
+
+src_configure() {
+ cd "${S}"/build
+
+ econf \
+ --prefix=/usr/$(get_libdir) \
+ --disable-optimization \
+ --disable-ccmpl \
+ --without-smodels \
+ $(use_with odbc) \
+ $(use_with iodbc) \
+ $(use_enable threads mt) \
+ $(use_enable debug)
+
+ if use curl ; then
+ cd "${S}"/packages/curl
+ econf
+ fi
+
+ if use mysql || use mariadb ; then
+ local impl=$(usex mariadb mariadb mysql)
+ cd "${S}"/packages/dbdrivers/mysql
+ econf \
+ --with-mysql-incdir=/usr/include/${impl}
+ fi
+
+ if use odbc ; then
+ cd "${S}"/packages/dbdrivers/odbc
+ econf
+ fi
+
+ if use pcre ; then
+ cd "${S}"/packages/pcre
+ econf
+ fi
+
+ if use xml ; then
+ cd "${S}"/packages/xpath
+ econf
+ fi
+}
+
+src_compile() {
+ cd "${S}"/build
+
+ default
+
+ # All XSB Packages are compiled using a single Prolog engine.
+ # Consequently they must all be compiled using a single make job.
+
+ cd "${S}"/packages
+ rm -f *.xwam
+ emake -j1
+
+ if use curl ; then
+ emake -j1 curl
+ emake -j1 sgml
+ if use xml ; then
+ emake -j1 xpath
+ fi
+ fi
+
+ if use mysql || use mariadb ; then
+ emake -j1 mysql
+ fi
+
+ if use odbc ; then
+ emake -j1 odbc
+ fi
+
+ if use pcre ; then
+ emake -j1 pcre
+ fi
+}
+
+src_install() {
+ cd "${S}"/build
+ default
+
+ local XSB_INSTALL_DIR=/usr/$(get_libdir)/xsb-${PV}
+ dosym ${XSB_INSTALL_DIR}/bin/xsb /usr/bin/xsb
+
+ cd "${S}"/packages
+ local PACKAGES=${XSB_INSTALL_DIR}/packages
+ insinto ${PACKAGES}
+ doins *.xwam
+
+ insinto ${PACKAGES}/chr
+ doins chr/*.xwam
+
+ insinto ${PACKAGES}/clpqr
+ doins clpqr/*.xwam
+
+ insinto ${PACKAGES}/gap
+ doins gap/*.xwam
+
+ insinto ${PACKAGES}/justify
+ doins justify/*.xwam
+ doins justify/*.H
+
+ insinto ${PACKAGES}/regmatch
+ doins regmatch/*.xwam
+ insinto ${PACKAGES}/regmatch/cc
+ doins regmatch/cc/*.H
+
+ insinto ${PACKAGES}/slx
+ doins slx/*.xwam
+
+ insinto ${PACKAGES}/wildmatch
+ doins wildmatch/*.xwam
+ insinto ${PACKAGES}/wildmatch/cc
+ doins wildmatch/cc/*.H
+
+ if use curl ; then
+ insinto ${PACKAGES}/curl
+ doins curl/*.xwam
+ insinto ${PACKAGES}/curl/cc
+ doins curl/cc/*.H
+ insinto ${PACKAGES}/sgml
+ doins sgml/*.xwam
+ insinto ${PACKAGES}/sgml/cc
+ doins sgml/cc/*.H
+ insinto ${PACKAGES}/sgml/cc/dtd
+ doins sgml/cc/dtd/*
+ if use xml ; then
+ insinto ${PACKAGES}/xpath
+ doins xpath/*xwam
+ insinto ${PACKAGES}/xpath/cc
+ doins xpath/cc/*.H
+ fi
+ fi
+
+ if use mysql || use mariadb || use odbc ; then
+ insinto ${PACKAGES}/dbdrivers
+ doins dbdrivers/*.xwam
+ doins dbdrivers/*.H
+ insinto ${PACKAGES}/dbdrivers/cc
+ doins dbdrivers/cc/*.H
+ if use mysql || use mariadb ; then
+ insinto ${PACKAGES}/dbdrivers/mysql
+ doins dbdrivers/mysql/*.xwam
+ insinto ${PACKAGES}/dbdrivers/mysql/cc
+ doins dbdrivers/mysql/cc/*.H
+ fi
+ if use odbc ; then
+ insinto ${PACKAGES}/dbdrivers/odbc
+ doins dbdrivers/odbc/*.xwam
+ insinto ${PACKAGES}/dbdrivers/odbc/cc
+ doins dbdrivers/odbc/cc/*.H
+ fi
+ fi
+
+ if use pcre ; then
+ insinto ${PACKAGES}/pcre
+ doins pcre/*.xwam
+ insinto ${PACKAGES}/pcre/cc
+ doins pcre/cc/*.H
+ fi
+
+ cd "${S}"
+ dodoc FAQ README
+}
diff --git a/dev-lang/yap/Manifest b/dev-lang/yap/Manifest
index bacd4a12df44..5b4517297f5b 100644
--- a/dev-lang/yap/Manifest
+++ b/dev-lang/yap/Manifest
@@ -1,2 +1,4 @@
-DIST YAP-6.3.4.tar.gz 11007893 BLAKE2B d8024fb68269bbb4f9a434e2be13b4a42aa250f7e6505ef8f6e4c76d50510e04e9a2985796ce66b1d426a877646eafeecb30774c353f5a820c32dc3cbdf20b1c SHA512 67884b98bbc564f23f88cbb1462127a47f3d0602ac347d1c8b0857e5d8ebd9d0ca28770229a6beb52493c6c3256b6cdf8dad25ed2963c64102093f70c4c20a3a
-DIST yap-6.3.4-gentoo-patchset-0.tar.gz 5165 BLAKE2B 1f6c9f91f2d2c0e9488f26e1a8079a40ed30c1c83c7171024dd0c0115874e336bbdfa449246e363d0030bd05dc0d86e9efa19cc2fdc4d04b96faeb33b9ade9d0 SHA512 a2a39869042cb647dc022b34a4dd0881a6a35ad0bf88527380d6d74e5307f9dd0ab5feea8e9e922524e3dce39132ab6c8cadd78f92735e2c368d7b277cbe6944
+DIST yap-5bebd8e3aae655690ddf33dfb32289766910fa25.tar.gz 17378041 BLAKE2B ff474ec1edc9bab493cd441c99e3b646f786e59662a4d398f7ac0fe0039ae99ccbab3700b1d0405dcda84bd292a5101fcde63fd1471fc19cd0d1fa37d2eebe1f SHA512 b61033f0ed3994533a056ba8b0dd7f103df2707355cad7e010babbbcf9e9415b65e5b1d294b9f9698d8c61d4c399ae8c1eea0a79dcbb7c33e841ac71645433c5
+DIST yap-7.0.1-gentoo-patchset-0.tar.gz 2390 BLAKE2B 2e7dbfe6dc8ea60c8a7ee056707e87f205076a7413d48b04f2ce1a997ce59b87d98f3f2994f93c6bb1e9933f94a02823cc729a0954739b9c38502a03894b05d8 SHA512 3f4364ab4fd887b8cfde6916257a517e7632585df9e501092ac1abc0f7f3fd7de97770a840d7279b5e89e1930b3dab0569e25636c1fb1acfc11f810c56681b45
+DIST yap-7.1.0-gentoo-patchset-3.tar.gz 4353 BLAKE2B 90c4750517189b3492fde0afde3da587a60f5aa98138a9b0626789dd79ce76981a9278706c510f0870595613e51c7c7be296fc9195618ef7ed6d3c4977191be9 SHA512 2effb29eebdf25996b10dacb625497159c880dc3c5e58e99cdd215bf3df744e3c504262b4fe4fe3e1eea7ec2e132c68b8dbe4633ac3c625efb6343f3fe5b87c4
+DIST yap-77bb2ba5eadfb95b67abccd22b298cfb75dd3328.tar.gz 15121857 BLAKE2B 0a38a1f302108a93cdc7b31fadb44823f1660e65bf3bb1910988afe81e313e6690094550c9eb4a6cfba322cd40b0cfb5ec853b350988ca123507fda362de118d SHA512 56da8cb9e56cb23d2592ba92b0b4cbd323e491767a121ca88896d2744737bef9d4a63f3b80b36fd52b1ead84a075d270060777fef85dff3ef36403a84c96b9fb
diff --git a/dev-lang/yap/metadata.xml b/dev-lang/yap/metadata.xml
index ee1b7050451c..828646c52426 100644
--- a/dev-lang/yap/metadata.xml
+++ b/dev-lang/yap/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>prolog@gentoo.org</email>
diff --git a/dev-lang/yap/yap-6.3.4.ebuild b/dev-lang/yap/yap-6.3.4.ebuild
deleted file mode 100644
index 07e979dd23ee..000000000000
--- a/dev-lang/yap/yap-6.3.4.ebuild
+++ /dev/null
@@ -1,132 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-MY_P=YAP-${PV}
-
-PYTHON_COMPAT=( python3_{6,7,8} )
-
-inherit cmake-utils eutils flag-o-matic multilib python-r1
-
-PATCHSET_VER="0"
-
-DESCRIPTION="YAP is a high-performance Prolog compiler"
-HOMEPAGE="http://www.dcc.fc.up.pt/~vsc/Yap/"
-SRC_URI="https://github.com/vscosta/yap-6.3/archive/YAP-${PV}.tar.gz
- https://dev.gentoo.org/~keri/distfiles/yap/${P}-gentoo-patchset-${PATCHSET_VER}.tar.gz"
-
-LICENSE="Artistic LGPL-2"
-SLOT="0"
-KEYWORDS="amd64 x86"
-IUSE="R debug doc examples gmp java mpi mysql odbc postgres python raptor readline sqlite ssl static threads xml"
-
-REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
-
-RDEPEND="dev-libs/libutf8proc
- sys-libs/zlib
- gmp? ( dev-libs/gmp:0 )
- java? ( >=virtual/jdk-1.7:= )
- mpi? ( virtual/mpi )
- mysql? ( dev-db/mysql-connector-c:0= )
- odbc? ( dev-db/unixODBC )
- postgres? ( dev-db/postgresql:= )
- R? ( dev-lang/R )
- python? ( ${PYTHON_DEPS} )
- raptor? ( media-libs/raptor )
- readline? ( sys-libs/readline:= sys-libs/ncurses:= )
- sqlite? ( dev-db/sqlite )
- ssl? ( dev-libs/openssl )
- xml? ( dev-libs/libxml2 )"
-
-DEPEND="${RDEPEND}
- doc? ( app-doc/doxygen[dot] )
- java? ( dev-lang/swig )
- python? ( dev-lang/swig )"
-
-S="${WORKDIR}"/yap-6.3-${MY_P}
-BUILD_DIR="${S}"/build
-CMAKE_USE_DIR="${S}"
-
-src_prepare() {
- if [[ -d "${WORKDIR}"/${PV} ]] ; then
- eapply "${WORKDIR}"/${PV}
- fi
- eapply_user
-
- sed -i \
- -e "s|\(set ( libdir \"\${exec_prefix}\)/lib\")|\1/$(get_libdir)\")|" \
- -e "s|\(set ( dlls \"\${exec_prefix}\)/lib/Yap\")|\1/$(get_libdir)/Yap\")|" \
- -e "s|\(set ( docdir \"\${exec_prefix}/share/doc\)/Yap\")|\1/${PF}\")|" \
- CMakeLists.txt || die
- rm -rf "${S}"/yap || die "failed to remove yap xcode project"
-
- cmake-utils_src_prepare
-}
-
-src_configure() {
- append-flags -fno-strict-aliasing -fcommon -fno-inline-small-functions
-
- local mycmakeargs=(
- -DWITH_YAP_STATIC=$(usex static)
- -DWITH_Threads=$(usex threads)
- -DWITH_GMP=$(usex gmp)
- -DWITH_Readline=$(usex readline)
- -DCMAKE_DISABLE_FIND_PACKAGE_OpenSSL=$(usex !ssl)
- -DWITH_MPI=$(usex mpi)
- -DWITH_ODBC=$(usex odbc)
- -DWITH_MySQL=$(usex mysql)
- -DWITH_PostgreSQL=$(usex postgres)
- -DWITH_Sqlite3=$(usex sqlite)
- -DWITH_JNI=$(usex java)
- -DCMAKE_DISABLE_FIND_PACKAGE_Java=$(usex !java)
- -DWITH_PythonInterp=$(usex python)
- -DWITH_PythonLibs=$(usex python)
- -DWITH_SWIG=$(if use java || use python; then echo yes; else echo no; fi)
- -DWITH_R=$(usex R)
- -DWITH_RAPTOR=$(usex raptor)
- -DWITH_LibXml2=$(usex xml)
- -DWITH_DOCUMENTATION=$(usex doc)
- -DWITH_CUDD=no
- -DWITH_Gecode=no
- -DWITH_Matlab=no
- )
-
- cmake-utils_src_configure
-}
-
-src_compile() {
- cmake-utils_src_compile
-
- if use doc ; then
- cmake-utils_src_compile doc
- fi
-}
-
-src_test() {
- # libtai package contains check.c which confuses the default
- # src_test() function
- true
-}
-
-src_install() {
- cmake-utils_src_install
-
- dodoc changes*.html README
-
- if use examples ; then
- docinto /usr/share/doc/${PF}/examples/chr
- dodoc packages/chr/Examples/*
- if use java ; then
- docinto /usr/share/doc/${PF}/examples/jpl/prolog
- dodoc packages/jpl/jpl/examples/prolog/*
- docinto /usr/share/doc/${PF}/examples/jpl/java
- dodoc packages/jpl/jpl/examples/java/README
- dodoc -r packages/jpl/jpl/examples/java/*/*.{java,pl}
- fi
- if use mpi ; then
- docinto /usr/share/doc/${PF}/examples/mpi
- dodoc library/mpi/examples/*.pl
- fi
- fi
-}
diff --git a/dev-lang/yap/yap-7.0.1.ebuild b/dev-lang/yap/yap-7.0.1.ebuild
new file mode 100644
index 000000000000..7b54cb699e8e
--- /dev/null
+++ b/dev-lang/yap/yap-7.0.1.ebuild
@@ -0,0 +1,105 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PV_COMMIT=5bebd8e3aae655690ddf33dfb32289766910fa25
+
+PYTHON_COMPAT=( python3_{9..11} )
+
+inherit cmake flag-o-matic python-single-r1
+
+PATCHSET_VER="0"
+
+DESCRIPTION="YAP is a high-performance Prolog compiler"
+HOMEPAGE="http://www.dcc.fc.up.pt/~vsc/Yap/"
+SRC_URI="https://github.com/vscosta/yap/archive/${PV_COMMIT}.tar.gz -> ${PN}-${PV_COMMIT}.tar.gz
+ https://dev.gentoo.org/~keri/distfiles/yap/${P}-gentoo-patchset-${PATCHSET_VER}.tar.gz"
+
+LICENSE="Artistic LGPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~x86"
+IUSE="R debug doc examples java mpi mysql odbc postgres python raptor readline sqlite static threads xml"
+
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+RDEPEND="dev-libs/libutf8proc
+ sys-libs/zlib
+ dev-libs/gmp:0
+ java? ( >=virtual/jdk-1.8:* )
+ mpi? ( virtual/mpi )
+ mysql? ( dev-db/mysql-connector-c:0= )
+ odbc? ( dev-db/unixODBC )
+ postgres? ( dev-db/postgresql:= )
+ R? ( dev-lang/R )
+ python? (
+ ${PYTHON_DEPS}
+ dev-python/wheel
+ dev-python/numpy
+ )
+ raptor? ( media-libs/raptor )
+ readline? ( sys-libs/readline:= sys-libs/ncurses:= )
+ sqlite? ( dev-db/sqlite )
+ xml? ( dev-libs/libxml2 )"
+
+DEPEND="${RDEPEND}
+ doc? ( app-text/doxygen[dot] )
+ java? ( dev-lang/swig )
+ python? ( dev-lang/swig )"
+
+src_unpack() {
+ default
+ mv "${WORKDIR}"/yap-${PV_COMMIT} "${WORKDIR}"/${P} || die
+}
+
+src_prepare() {
+ if [[ -d "${WORKDIR}"/${PV} ]] ; then
+ eapply "${WORKDIR}"/${PV}
+ fi
+
+ cmake_src_prepare
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DWITH_YAP_STATIC=$(usex static)
+ -DWITH_THREADED_CODE=$(usex threads)
+ -DWITH_READLINE=$(usex readline)
+ -DWITH_MPI=$(usex mpi)
+ -DWITH_ODBC=$(usex odbc)
+ -DWITH_MYSQL=$(usex mysql)
+ -DWITH_POSTGRES=$(usex postgres)
+ -DWITH_SQLITE3=$(usex sqlite)
+ -DWITH_JAVA=$(usex java)
+ -DWITH_PYTHON=$(usex python)
+ -DWITH_SWIG=$(if use java || use python; then echo yes; else echo no; fi)
+ -DWITH_R=$(usex R)
+ -DWITH_Raptor2=$(usex raptor)
+ -DWITH_XML=$(usex xml)
+ -DWITH_XML2=$(if use raptor && use xml; then echo yes; else echo no; fi)
+ -DWITH_DOCS=$(usex doc)
+ -DWITH_CUDD=no
+ -DWITH_GECODE=no
+ )
+
+ use python && mycmakeargs+=( -DPython3_EXECUTABLE="${PYTHON}" )
+
+ cmake_src_configure
+}
+
+src_compile() {
+ cmake_src_compile
+
+ if use doc; then
+ cmake_src_compile doxygen
+ fi
+}
+
+src_install() {
+ cmake_src_install
+
+ dodoc README
+ if use doc; then
+ dodoc -r "${BUILD_DIR}"/html
+ fi
+}
diff --git a/dev-lang/yap/yap-7.1.0.ebuild b/dev-lang/yap/yap-7.1.0.ebuild
new file mode 100644
index 000000000000..f02988538996
--- /dev/null
+++ b/dev-lang/yap/yap-7.1.0.ebuild
@@ -0,0 +1,105 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PV_COMMIT=77bb2ba5eadfb95b67abccd22b298cfb75dd3328
+
+PYTHON_COMPAT=( python3_{9..11} )
+
+inherit cmake flag-o-matic python-single-r1
+
+PATCHSET_VER="3"
+
+DESCRIPTION="YAP is a high-performance Prolog compiler"
+HOMEPAGE="http://www.dcc.fc.up.pt/~vsc/Yap/"
+SRC_URI="https://github.com/vscosta/yap/archive/${PV_COMMIT}.tar.gz -> ${PN}-${PV_COMMIT}.tar.gz
+ https://dev.gentoo.org/~keri/distfiles/yap/${P}-gentoo-patchset-${PATCHSET_VER}.tar.gz"
+
+LICENSE="Artistic LGPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="R debug doc examples java mpi mysql odbc postgres python raptor readline sqlite static threads xml"
+
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+RDEPEND="dev-libs/libutf8proc
+ sys-libs/zlib
+ dev-libs/gmp:0[cxx]
+ java? ( >=virtual/jdk-1.8:* )
+ mpi? ( virtual/mpi )
+ mysql? ( dev-db/mysql-connector-c:0= )
+ odbc? ( dev-db/unixODBC )
+ postgres? ( dev-db/postgresql:= )
+ R? ( dev-lang/R )
+ python? (
+ ${PYTHON_DEPS}
+ dev-python/wheel
+ dev-python/numpy
+ )
+ raptor? ( media-libs/raptor )
+ readline? ( sys-libs/readline:= sys-libs/ncurses:= )
+ sqlite? ( dev-db/sqlite )
+ xml? ( dev-libs/libxml2 )"
+
+DEPEND="${RDEPEND}
+ doc? ( app-text/doxygen[dot] )
+ java? ( dev-lang/swig )
+ python? ( >=dev-lang/swig-4.0.0 )"
+
+src_unpack() {
+ default
+ mv "${WORKDIR}"/yap-${PV_COMMIT} "${WORKDIR}"/${P} || die
+}
+
+src_prepare() {
+ if [[ -d "${WORKDIR}"/${PV} ]] ; then
+ eapply "${WORKDIR}"/${PV}
+ fi
+
+ cmake_src_prepare
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DWITH_YAP_STATIC=$(usex static)
+ -DWITH_THREADED_CODE=$(usex threads)
+ -DWITH_READLINE=$(usex readline)
+ -DWITH_MPI=$(usex mpi)
+ -DWITH_ODBC=$(usex odbc)
+ -DWITH_MYSQL=$(usex mysql)
+ -DWITH_POSTGRES=$(usex postgres)
+ -DWITH_SQLITE3=$(usex sqlite)
+ -DWITH_Java=$(usex java)
+ -DWITH_Python3=$(usex python)
+ -DWITH_SWIG=$(if use java || use python; then echo yes; else echo no; fi)
+ -DWITH_R=$(usex R)
+ -DWITH_Raptor2=$(usex raptor)
+ -DWITH_XML=$(usex xml)
+ -DWITH_LibXml2=$(if use raptor && use xml; then echo yes; else echo no; fi)
+ -DWITH_DOCS=$(usex doc)
+ -DWITH_CUDD=no
+ -DWITH_Gecode=no
+ )
+
+ use python && mycmakeargs+=( -DPython3_EXECUTABLE="${PYTHON}" )
+
+ cmake_src_configure
+}
+
+src_compile() {
+ cmake_src_compile
+
+ if use doc; then
+ cmake_src_compile docs
+ fi
+}
+
+src_install() {
+ cmake_src_install
+
+ dodoc README
+ if use doc; then
+ dodoc -r "${BUILD_DIR}"/html
+ fi
+}
diff --git a/dev-lang/yasm/metadata.xml b/dev-lang/yasm/metadata.xml
index d50bc759d0bb..ea7db489d69f 100644
--- a/dev-lang/yasm/metadata.xml
+++ b/dev-lang/yasm/metadata.xml
@@ -1,8 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
-<maintainer type="project">
- <email>base-system@gentoo.org</email>
- <name>Gentoo Base System</name>
- </maintainer>
+ <maintainer type="project">
+ <email>base-system@gentoo.org</email>
+ <name>Gentoo Base System</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">yasm/yasm</remote-id>
+ <remote-id type="cpe">cpe:/a:yasm_project:yasm</remote-id>
+ </upstream>
</pkgmetadata>
diff --git a/dev-lang/yasm/yasm-1.3.0-r1.ebuild b/dev-lang/yasm/yasm-1.3.0-r1.ebuild
index 1b5a01d49a79..4d76cccfeeb9 100644
--- a/dev-lang/yasm/yasm-1.3.0-r1.ebuild
+++ b/dev-lang/yasm/yasm-1.3.0-r1.ebuild
@@ -10,7 +10,7 @@ if [[ ${PV} == 9999* ]] ; then
inherit autotools git-r3
else
SRC_URI="https://www.tortall.net/projects/yasm/releases/${P}.tar.gz"
- KEYWORDS="amd64 ~arm64 ~ppc64 x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris ~x86-solaris"
+ KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos ~x64-solaris"
fi
DESCRIPTION="An assembler for x86 and x86_64 instruction sets"
diff --git a/dev-lang/zig-bin/Manifest b/dev-lang/zig-bin/Manifest
new file mode 100644
index 000000000000..7ce5d4b9c74c
--- /dev/null
+++ b/dev-lang/zig-bin/Manifest
@@ -0,0 +1,12 @@
+DIST zig-linux-aarch64-0.10.1.tar.xz 40321280 BLAKE2B 39abefb80d540d52333ec76203893630ac5df2a784684397033e9ac766f67c4512be71513ebb80faac6c5ebaa2a737859b7bc27b82797232cf97d87d91e8492e SHA512 44dd15b1b2d7bc85a4f8e8171ae5c51122be352249273091b499de5a392c72e262585f981908afd1718a41fa7e67b36f1b65c6cacbf8e9f226a687bd85b7edc6
+DIST zig-linux-aarch64-0.11.0.tar.xz 41492432 BLAKE2B fd4e1f242475bfdc94f418817d2f1b256ebdc7e29b94e7629f54c241b7a1df273a2c776ab29dad645af041b5cfb0e7d1b0a922bb04a82553604076d36e957580 SHA512 07a026958cac0f1674496f8a1fd3a3dfcd79274d1a25c87e4123b74a437f332bbea4097320da7f83d67626fb9d6e9fe1d78e917522debb8873f7c40938031e63
+DIST zig-linux-armv7a-0.10.1.tar.xz 50718132 BLAKE2B 76ef431ef8957272b992f6b861913a961d348120106a7f4b77d1f6b2a042dd8904a1ac744ab6b02b78681eef68af4143372e5315cd113d40711bd26fc78e6632 SHA512 4ec3ccd7ac980bfd9fc7a2f6b2301051d3df43b00143914d869389fc44b48916820d996e27cb922dac152228c4b04a0cce51f7b125317de85440a5479fe8ff7d
+DIST zig-linux-armv7a-0.11.0.tar.xz 42240664 BLAKE2B 0d301c1a2fa2ddcddccf37333418ceea06b48539548e533a20c098021fba12c1bfe467d0c8dd3d9207c6d129e4de8c47c436a39f7fd6165a0c6ad5a679ca5f50 SHA512 f4235418b3251d03727ba85a6002f6561f20b095a9fddf92ff126a20f49d17533d15d7e0f570ea734e40a1a76dd1b8a4bca78ad6ab3846aeb5f90dc812586008
+DIST zig-linux-i386-0.10.1.tar.xz 48367388 BLAKE2B 482ec9e42d9036177f41c459faf82c79ba525f35ed14150d97af9110efab3e9894b8c64f92f9257b224893179134e43306c985ad6a04ae6a7d427d14ef4e7a3f SHA512 97345a8f7f15a83e51635ec667e869833a597511a1b004fa4ab19d78ad234e05e8344823e0c623510c7c5dbeef447d13636223e8d339f6d53f2eca053852a8d3
+DIST zig-linux-powerpc-0.11.0.tar.xz 44539972 BLAKE2B b713c23f537c8f47be7aae7bf0609d056dc6817aac207ba39df0a53d1c391f1c64bc05edbb53fb5584c60cd6963f35fa56448440c5065dc21b5cf978fbb0bbb4 SHA512 faabbbae501b56c91fec036c209a6d6aea0c974749a777eb13f273e06fde960c7b2a2b29caf83a43fef740652db313933b3eeb72a9c0445ad412a7f8023da3af
+DIST zig-linux-powerpc64le-0.11.0.tar.xz 44656184 BLAKE2B 597947c4bee73847abf0941819477bf8a47a4d019a8060e79133e3d01b43325c0acfae7a8d57a4d84e1cd9dfe63b3439fac4e4372d6b538e9992a9364d65ee73 SHA512 fc1dbe9115e2f92f03a6934d32c65d1de4cbe0cf070d6f468632c906966048400a806d8ec8540fde7a1b195a8ae8238fde5ddd94c2d54a0af70d9060d006cf89
+DIST zig-linux-riscv64-0.10.1.tar.xz 42196008 BLAKE2B a7ae37b1d1db1281b09bbd7e35ecaf390bbe28774bd1a4fa76b4468255be19b07fb514326d48576946f3c4eb04dcef34d6ab14f550407aa33803754fabbd848c SHA512 1a1da96924fa4a16a53721017eadc3363859a4f53671e27b11588200d0302d9065de9ba517ad40940aad98725e617cf853f2e83f732a4e23c33deacb99487ad0
+DIST zig-linux-riscv64-0.11.0.tar.xz 43532324 BLAKE2B f82a7a32b94a084767fa205bf8b66371bfebd4753f647930a5689d727a2211c9cd37f76a855732356a220a64515f8146c5b450207be59854f08132ccf178d23c SHA512 f2ab35c6a7c3452a5dd825d03fa8b5329786a705dbc04260980fefc64e24f4d61cb22c95c10b9952cbc58bdd8741503aa98ad8ed4a8c0a0e856a0e8ba9eb1ca7
+DIST zig-linux-x86-0.11.0.tar.xz 49824456 BLAKE2B 4a9b4c9551ffe555d1283c9d5aab6649fc5ea5807b9465d18c10cae622beca23df114ab4f503b9d86e14ce26cbf6ac07df8e60521fbc2c3784c9d25eeabf852d SHA512 aaa2adb128ae0cc8e6f43323b78dc60699b80f56b0e1be7524ac7e9ac71513229c4224d2ef7d63fedb74c513c31d5614fe34cbcfb0cc4bb268952427d082594f
+DIST zig-linux-x86_64-0.10.1.tar.xz 44085596 BLAKE2B d689a469dbbe790593a561dd4df01c506212754c48be7de03773c7e690cbab197af10d639e80148f3343204ddf9ecfe09a88a62fb6ef63a262bcc2dd79fecd34 SHA512 1cf88a492b1a47800e213b8801477f4ffabf269f960d27d1849c5aec805b5db3768c83d4daa4a738532b1b7367e8c6812e3eea47c205ea732d7a6269a47e16dc
+DIST zig-linux-x86_64-0.11.0.tar.xz 44961892 BLAKE2B b0780573dbd372c7a9efec32e6860050b15603a80e00e64757a6c09a02757febc14d3df32ff089f418996fb55bf6fb50774393037f86cbecd49f06c250e5bbe3 SHA512 992e49a28edc9bed44c124a887c4700e707c2eef6a6f3adb551c568103242c3a5304af00d95994a511670c2099f476aa5068eef538f6065afe9bc149c88887b9
diff --git a/dev-lang/zig-bin/files/zig-0.10.1-musl-1.2.4-lfs64.patch b/dev-lang/zig-bin/files/zig-0.10.1-musl-1.2.4-lfs64.patch
new file mode 100644
index 000000000000..05a550a7920e
--- /dev/null
+++ b/dev-lang/zig-bin/files/zig-0.10.1-musl-1.2.4-lfs64.patch
@@ -0,0 +1,220 @@
+From https://github.com/ziglang/zig/commit/b20ccff515364cdb8f3e733cc950e53ab77656db Mon Sep 17 00:00:00 2001
+From: Andrew Kelley <andrew@ziglang.org>
+Date: Mon, 19 Jun 2023 15:17:01 -0700
+Subject: [PATCH] std.os: update logic for 64-bit symbol choice
+
+musl v1.2.4 dropped the "64"-suffixed aliases for legacy "LFS64" ("large
+file support") interfaces, so this commit changes the corresponding Zig
+logic to call the correct names.
+--- a/lib/std/os.zig
++++ b/lib/std/os.zig
+@@ -890,10 +890,7 @@ pub fn pread(fd: fd_t, buf: []u8, offset: u64) PReadError!usize {
+ };
+ const adjusted_len = @min(max_count, buf.len);
+
+- const pread_sym = if (builtin.os.tag == .linux and builtin.link_libc)
+- system.pread64
+- else
+- system.pread;
++ const pread_sym = if (lfs64_abi) system.pread64 else system.pread;
+
+ const ioffset = @bitCast(i64, offset); // the OS treats this as unsigned
+ while (true) {
+@@ -966,10 +963,7 @@ pub fn ftruncate(fd: fd_t, length: u64) TruncateError!void {
+ }
+
+ while (true) {
+- const ftruncate_sym = if (builtin.os.tag == .linux and builtin.link_libc)
+- system.ftruncate64
+- else
+- system.ftruncate;
++ const ftruncate_sym = if (lfs64_abi) system.ftruncate64 else system.ftruncate;
+
+ const ilen = @bitCast(i64, length); // the OS treats this as unsigned
+ switch (errno(ftruncate_sym(fd, ilen))) {
+@@ -1034,10 +1028,7 @@ pub fn preadv(fd: fd_t, iov: []const iovec, offset: u64) PReadError!usize {
+
+ const iov_count = math.cast(u31, iov.len) orelse math.maxInt(u31);
+
+- const preadv_sym = if (builtin.os.tag == .linux and builtin.link_libc)
+- system.preadv64
+- else
+- system.preadv;
++ const preadv_sym = if (lfs64_abi) system.preadv64 else system.preadv;
+
+ const ioffset = @bitCast(i64, offset); // the OS treats this as unsigned
+ while (true) {
+@@ -1311,10 +1302,7 @@ pub fn pwrite(fd: fd_t, bytes: []const u8, offset: u64) PWriteError!usize {
+ };
+ const adjusted_len = @min(max_count, bytes.len);
+
+- const pwrite_sym = if (builtin.os.tag == .linux and builtin.link_libc)
+- system.pwrite64
+- else
+- system.pwrite;
++ const pwrite_sym = if (lfs64_abi) system.pwrite64 else system.pwrite;
+
+ const ioffset = @bitCast(i64, offset); // the OS treats this as unsigned
+ while (true) {
+@@ -1400,10 +1388,7 @@ pub fn pwritev(fd: fd_t, iov: []const iovec_const, offset: u64) PWriteError!usiz
+ }
+ }
+
+- const pwritev_sym = if (builtin.os.tag == .linux and builtin.link_libc)
+- system.pwritev64
+- else
+- system.pwritev;
++ const pwritev_sym = if (lfs64_abi) system.pwritev64 else system.pwritev;
+
+ const iov_count = if (iov.len > IOV_MAX) IOV_MAX else @intCast(u31, iov.len);
+ const ioffset = @bitCast(i64, offset); // the OS treats this as unsigned
+@@ -1514,10 +1499,7 @@ pub fn openZ(file_path: [*:0]const u8, flags: u32, perm: mode_t) OpenError!fd_t
+ return open(mem.sliceTo(file_path, 0), flags, perm);
+ }
+
+- const open_sym = if (builtin.os.tag == .linux and builtin.link_libc)
+- system.open64
+- else
+- system.open;
++ const open_sym = if (lfs64_abi) system.open64 else system.open;
+
+ while (true) {
+ const rc = open_sym(file_path, flags, perm);
+@@ -1730,10 +1712,7 @@ pub fn openatZ(dir_fd: fd_t, file_path: [*:0]const u8, flags: u32, mode: mode_t)
+ return openat(dir_fd, mem.sliceTo(file_path, 0), flags, mode);
+ }
+
+- const openat_sym = if (builtin.os.tag == .linux and builtin.link_libc)
+- system.openat64
+- else
+- system.openat;
++ const openat_sym = if (lfs64_abi) system.openat64 else system.openat;
+
+ while (true) {
+ const rc = openat_sym(dir_fd, file_path, flags, mode);
+@@ -4117,10 +4096,7 @@ pub fn fstat(fd: fd_t) FStatError!Stat {
+ @compileError("fstat is not yet implemented on Windows");
+ }
+
+- const fstat_sym = if (builtin.os.tag == .linux and builtin.link_libc)
+- system.fstat64
+- else
+- system.fstat;
++ const fstat_sym = if (lfs64_abi) system.fstat64 else system.fstat;
+
+ var stat = mem.zeroes(Stat);
+ switch (errno(fstat_sym(fd, &stat))) {
+@@ -4176,10 +4152,7 @@ pub fn fstatatZ(dirfd: fd_t, pathname: [*:0]const u8, flags: u32) FStatAtError!S
+ return fstatatWasi(dirfd, mem.sliceTo(pathname), flags);
+ }
+
+- const fstatat_sym = if (builtin.os.tag == .linux and builtin.link_libc)
+- system.fstatat64
+- else
+- system.fstatat;
++ const fstatat_sym = if (lfs64_abi) system.fstatat64 else system.fstatat;
+
+ var stat = mem.zeroes(Stat);
+ switch (errno(fstatat_sym(dirfd, pathname, &stat, flags))) {
+@@ -4416,10 +4389,7 @@ pub fn mmap(
+ fd: fd_t,
+ offset: u64,
+ ) MMapError![]align(mem.page_size) u8 {
+- const mmap_sym = if (builtin.os.tag == .linux and builtin.link_libc)
+- system.mmap64
+- else
+- system.mmap;
++ const mmap_sym = if (lfs64_abi) system.mmap64 else system.mmap;
+
+ const ioffset = @bitCast(i64, offset); // the OS treats this as unsigned
+ const rc = mmap_sym(ptr, length, prot, flags, fd, ioffset);
+@@ -4823,10 +4793,7 @@ pub fn lseek_SET(fd: fd_t, offset: u64) SeekError!void {
+ }
+ }
+
+- const lseek_sym = if (builtin.os.tag == .linux and builtin.link_libc)
+- system.lseek64
+- else
+- system.lseek;
++ const lseek_sym = if (lfs64_abi) system.lseek64 else system.lseek;
+
+ const ioffset = @bitCast(i64, offset); // the OS treats this as unsigned
+ switch (errno(lseek_sym(fd, ioffset, SEEK.SET))) {
+@@ -4870,10 +4837,7 @@ pub fn lseek_CUR(fd: fd_t, offset: i64) SeekError!void {
+ else => |err| return unexpectedErrno(err),
+ }
+ }
+- const lseek_sym = if (builtin.os.tag == .linux and builtin.link_libc)
+- system.lseek64
+- else
+- system.lseek;
++ const lseek_sym = if (lfs64_abi) system.lseek64 else system.lseek;
+
+ const ioffset = @bitCast(i64, offset); // the OS treats this as unsigned
+ switch (errno(lseek_sym(fd, ioffset, SEEK.CUR))) {
+@@ -4917,10 +4881,7 @@ pub fn lseek_END(fd: fd_t, offset: i64) SeekError!void {
+ else => |err| return unexpectedErrno(err),
+ }
+ }
+- const lseek_sym = if (builtin.os.tag == .linux and builtin.link_libc)
+- system.lseek64
+- else
+- system.lseek;
++ const lseek_sym = if (lfs64_abi) system.lseek64 else system.lseek;
+
+ const ioffset = @bitCast(i64, offset); // the OS treats this as unsigned
+ switch (errno(lseek_sym(fd, ioffset, SEEK.END))) {
+@@ -4964,10 +4925,7 @@ pub fn lseek_CUR_get(fd: fd_t) SeekError!u64 {
+ else => |err| return unexpectedErrno(err),
+ }
+ }
+- const lseek_sym = if (builtin.os.tag == .linux and builtin.link_libc)
+- system.lseek64
+- else
+- system.lseek;
++ const lseek_sym = if (lfs64_abi) system.lseek64 else system.lseek;
+
+ const rc = lseek_sym(fd, 0, SEEK.CUR);
+ switch (errno(rc)) {
+@@ -6169,10 +6127,7 @@ pub fn sendfile(
+ // TODO we should not need this cast; improve return type of @min
+ const adjusted_count = @intCast(usize, adjusted_count_tmp);
+
+- const sendfile_sym = if (builtin.link_libc)
+- system.sendfile64
+- else
+- system.sendfile;
++ const sendfile_sym = if (lfs64_abi) system.sendfile64 else system.sendfile;
+
+ while (true) {
+ var offset: off_t = @bitCast(off_t, in_offset);
+@@ -7050,10 +7005,7 @@ pub fn prctl(option: PR, args: anytype) PrctlError!u31 {
+ pub const GetrlimitError = UnexpectedError;
+
+ pub fn getrlimit(resource: rlimit_resource) GetrlimitError!rlimit {
+- const getrlimit_sym = if (builtin.os.tag == .linux and builtin.link_libc)
+- system.getrlimit64
+- else
+- system.getrlimit;
++ const getrlimit_sym = if (lfs64_abi) system.getrlimit64 else system.getrlimit;
+
+ var limits: rlimit = undefined;
+ switch (errno(getrlimit_sym(resource, &limits))) {
+@@ -7067,10 +7019,7 @@ pub fn getrlimit(resource: rlimit_resource) GetrlimitError!rlimit {
+ pub const SetrlimitError = error{ PermissionDenied, LimitTooBig } || UnexpectedError;
+
+ pub fn setrlimit(resource: rlimit_resource, limits: rlimit) SetrlimitError!void {
+- const setrlimit_sym = if (builtin.os.tag == .linux and builtin.link_libc)
+- system.setrlimit64
+- else
+- system.setrlimit;
++ const setrlimit_sym = if (lfs64_abi) system.setrlimit64 else system.setrlimit;
+
+ switch (errno(setrlimit_sym(resource, &limits))) {
+ .SUCCESS => return,
+@@ -7339,3 +7288,5 @@ pub fn ptrace(request: u32, pid: pid_t, addr: usize, signal: usize) PtraceError!
+ },
+ };
+ }
++
++const lfs64_abi = builtin.os.tag == .linux and builtin.link_libc and builtin.abi.isGnu();
diff --git a/dev-lang/zig-bin/files/zig-0.11.0-first-try-getconf.patch b/dev-lang/zig-bin/files/zig-0.11.0-first-try-getconf.patch
new file mode 100644
index 000000000000..5a63e9e74ad9
--- /dev/null
+++ b/dev-lang/zig-bin/files/zig-0.11.0-first-try-getconf.patch
@@ -0,0 +1,113 @@
+From: Eric Joldasov <bratishkaerik@getgoogleoff.me>
+
+Based on https://github.com/ziglang/zig/pull/12567 and https://github.com/ziglang/zig/pull/17671
+with small fixes, all ported to 0.11.0.
+
+First try `getconf GNU_LIBC_VERSION` to detect glibc version,
+If there are any errors, skip to the upstream logic.
+
+Also fix glibc version parsing: if version string does not contain third (patch) component, "std.SemanticVersion.parse" returns parsing error.
+For example, this currently happens with "GLIBC_2.37" or "glibc 2.37" inputs.
+To fix this, we use copy-pasted "std.zig.CrossTarget.parse" function here, that sets omitted patch component to 0.
+
+After applying this patch, both `zig build-exe --show-builtin` and `zig env` show correct version on my default/linux/amd64/17.1/desktop/plasma :
+glibc 2.37.
+
+Bug: https://bugs.gentoo.org/914731
+Bug: https://bugs.gentoo.org/914101
+
+diff --git a/lib/std/zig/system/NativeTargetInfo.zig b/lib/std/zig/system/NativeTargetInfo.zig
+index 99a1a8f2e..0250db968 100644
+--- a/lib/std/zig/system/NativeTargetInfo.zig
++++ b/lib/std/zig/system/NativeTargetInfo.zig
+@@ -19,6 +19,32 @@ dynamic_linker: DynamicLinker = DynamicLinker{},
+
+ pub const DynamicLinker = Target.DynamicLinker;
+
++// Copy-pasted from `std.zig.CrossTarget.parse` to avoid introducing unexpected new public function as part of standard library.
++/// Parses a version with an omitted patch component, such as "1.0",
++/// which SemanticVersion.parse is not capable of.
++fn parseWithOptionalPatchField(ver: []const u8) error{ InvalidVersion, Overflow }!std.SemanticVersion {
++ const parseVersionComponent = struct {
++ fn parseVersionComponent(component: []const u8) !usize {
++ return std.fmt.parseUnsigned(usize, component, 10) catch |err| {
++ switch (err) {
++ error.InvalidCharacter => return error.InvalidVersion,
++ error.Overflow => return error.Overflow,
++ }
++ };
++ }
++ }.parseVersionComponent;
++ var version_components = mem.splitScalar(u8, ver, '.');
++ const major = version_components.first();
++ const minor = version_components.next() orelse return error.InvalidVersion;
++ const patch = version_components.next() orelse "0";
++ if (version_components.next() != null) return error.InvalidVersion;
++ return .{
++ .major = try parseVersionComponent(major),
++ .minor = try parseVersionComponent(minor),
++ .patch = try parseVersionComponent(patch),
++ };
++}
++
+ pub const DetectError = error{
+ FileSystem,
+ SystemResources,
+@@ -307,6 +333,39 @@ fn detectAbiAndDynamicLinker(
+ }
+ const ld_info_list = ld_info_list_buffer[0..ld_info_list_len];
+
++ if (is_linux and !os_is_non_native and cross_target.glibc_version == null) try_getconf: {
++ var buf: [4096]u8 = undefined;
++ var fba = std.heap.FixedBufferAllocator.init(&buf);
++ const allocator = fba.allocator();
++
++ const getconf = std.process.Child.exec(.{
++ .allocator = allocator,
++ .argv = &.{ "getconf", "GNU_LIBC_VERSION" },
++ .max_output_bytes = 1024,
++ }) catch break :try_getconf;
++ if (!std.mem.startsWith(u8, getconf.stdout, "glibc ")) break :try_getconf;
++ const version_string = std.mem.trim(u8, getconf.stdout["glibc ".len..], &std.ascii.whitespace);
++ const glibc_version = parseWithOptionalPatchField(version_string) catch break :try_getconf;
++
++ var os_with_glibc = os;
++ os_with_glibc.version_range.linux.glibc = glibc_version;
++
++ const target: Target = .{
++ .cpu = cpu,
++ .os = os_with_glibc,
++ .abi = .gnu,
++ .ofmt = cross_target.ofmt orelse Target.ObjectFormat.default(os_with_glibc.tag, cpu.arch),
++ };
++ const result: NativeTargetInfo = .{
++ .target = target,
++ .dynamic_linker = if (cross_target.dynamic_linker.get() == null)
++ target.standardDynamicLinkerPath()
++ else
++ cross_target.dynamic_linker,
++ };
++ return result;
++ }
++
+ // Best case scenario: the executable is dynamically linked, and we can iterate
+ // over our own shared objects and find a dynamic linker.
+ const elf_file = blk: {
+@@ -563,7 +622,7 @@ fn glibcVerFromSoFile(file: fs.File) !std.SemanticVersion {
+ while (it.next()) |s| {
+ if (mem.startsWith(u8, s, "GLIBC_2.")) {
+ const chopped = s["GLIBC_".len..];
+- const ver = std.SemanticVersion.parse(chopped) catch |err| switch (err) {
++ const ver = parseWithOptionalPatchField(chopped) catch |err| switch (err) {
+ error.Overflow => return error.InvalidGnuLibCVersion,
+ error.InvalidVersion => return error.InvalidGnuLibCVersion,
+ };
+@@ -586,7 +645,7 @@ fn glibcVerFromLinkName(link_name: []const u8, prefix: []const u8) !std.Semantic
+ }
+ // chop off "libc-" and ".so"
+ const link_name_chopped = link_name[prefix.len .. link_name.len - suffix.len];
+- return std.SemanticVersion.parse(link_name_chopped) catch |err| switch (err) {
++ return parseWithOptionalPatchField(link_name_chopped) catch |err| switch (err) {
+ error.Overflow => return error.InvalidGnuLibCVersion,
+ error.InvalidVersion => return error.InvalidGnuLibCVersion,
+ };
diff --git a/dev-lang/zig-bin/metadata.xml b/dev-lang/zig-bin/metadata.xml
new file mode 100644
index 000000000000..d99b9ef02762
--- /dev/null
+++ b/dev-lang/zig-bin/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <email>bratishkaerik@landless-city.net</email>
+ <name>Eric Joldasov</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">ziglang/zig</remote-id>
+ <bugs-to>https://github.com/ziglang/zig/issues</bugs-to>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-lang/zig-bin/zig-bin-0.10.1-r3.ebuild b/dev-lang/zig-bin/zig-bin-0.10.1-r3.ebuild
new file mode 100644
index 000000000000..b5dcb9e26682
--- /dev/null
+++ b/dev-lang/zig-bin/zig-bin-0.10.1-r3.ebuild
@@ -0,0 +1,75 @@
+# Copyright 2022-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="A robust, optimal, and maintainable programming language"
+HOMEPAGE="https://ziglang.org/"
+SRC_URI="
+ amd64? ( https://ziglang.org/download/${PV}/zig-linux-x86_64-${PV}.tar.xz )
+ arm? ( https://ziglang.org/download/${PV}/zig-linux-armv7a-${PV}.tar.xz )
+ arm64? ( https://ziglang.org/download/${PV}/zig-linux-aarch64-${PV}.tar.xz )
+ riscv? ( https://ziglang.org/download/${PV}/zig-linux-riscv64-${PV}.tar.xz )
+ x86? ( https://ziglang.org/download/${PV}/zig-linux-i386-${PV}.tar.xz )"
+
+# project itself: MIT
+# There are bunch of projects under "lib/" folder that are needed for cross-compilation.
+# Files that are unnecessary for cross-compilation are removed by upstream
+# and therefore their licenses (if any special) are not included.
+# lib/libunwind: Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )
+# lib/libcxxabi: Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )
+# lib/libcxx: Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )
+# lib/libc/wasi: || ( Apache-2.0-with-LLVM-exceptions Apache-2.0 MIT BSD-2 ) public-domain
+# lib/libc/musl: MIT BSD-2
+# lib/libc/mingw: ZPL public-domain BSD-2 ISC HPND
+# lib/libc/glibc: BSD HPND ISC inner-net LGPL-2.1+
+LICENSE="MIT Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT ) || ( Apache-2.0-with-LLVM-exceptions Apache-2.0 MIT BSD-2 ) public-domain BSD-2 ZPL ISC HPND BSD inner-net LGPL-2.1+"
+SLOT="$(ver_cut 1-2)"
+KEYWORDS="-* ~amd64 ~arm ~arm64 ~riscv ~x86"
+IUSE="doc"
+
+IDEPEND="app-eselect/eselect-zig"
+# 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}/zig-0.10.1-musl-1.2.4-lfs64.patch"
+)
+
+QA_PREBUILT="opt/${P}/zig"
+
+src_unpack() {
+ unpack ${A}
+
+ mv "${WORKDIR}/"* "${S}" || die
+}
+
+src_install() {
+ insinto /opt/
+
+ use doc && local HTML_DOCS=( "doc/langref.html" "doc/std/" )
+ einstalldocs
+ rm -r ./doc/ || die
+
+ doins -r "${S}"
+ fperms 0755 "/opt/${P}/zig"
+ dosym -r "/opt/${P}/zig" "/usr/bin/zig-bin-${PV}"
+}
+
+pkg_postinst() {
+ eselect zig update ifunset
+
+ elog "0.10.1 release uses self-hosted compiler by default and fixes some bugs from 0.10.0"
+ elog "But your code still can be un-compilable since some features still not implemented or bugs not fixed"
+ elog "Upstream recommends:"
+ elog " * Using old compiler if experiencing such breakage (flag '-fstage1')"
+ elog " * Waiting for release 0.11.0 with old compiler removed (these changes are already merged in 9999)"
+ elog "Also see: https://ziglang.org/download/0.10.0/release-notes.html#Self-Hosted-Compiler"
+ elog "and https://ziglang.org/download/0.10.0/release-notes.html#How-to-Upgrade"
+}
+
+pkg_postrm() {
+ eselect zig update ifunset
+}
diff --git a/dev-lang/zig-bin/zig-bin-0.11.0-r1.ebuild b/dev-lang/zig-bin/zig-bin-0.11.0-r1.ebuild
new file mode 100644
index 000000000000..92775c190670
--- /dev/null
+++ b/dev-lang/zig-bin/zig-bin-0.11.0-r1.ebuild
@@ -0,0 +1,69 @@
+# Copyright 2022-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="A robust, optimal, and maintainable programming language"
+HOMEPAGE="https://ziglang.org/"
+SRC_URI="
+ amd64? ( https://ziglang.org/download/${PV}/zig-linux-x86_64-${PV}.tar.xz )
+ arm? ( https://ziglang.org/download/${PV}/zig-linux-armv7a-${PV}.tar.xz )
+ arm64? ( https://ziglang.org/download/${PV}/zig-linux-aarch64-${PV}.tar.xz )
+ ppc? ( https://ziglang.org/download/${PV}/zig-linux-powerpc-${PV}.tar.xz )
+ ppc64? ( https://ziglang.org/download/${PV}/zig-linux-powerpc64le-${PV}.tar.xz )
+ riscv? ( https://ziglang.org/download/${PV}/zig-linux-riscv64-${PV}.tar.xz )
+ x86? ( https://ziglang.org/download/${PV}/zig-linux-x86-${PV}.tar.xz )"
+
+# project itself: MIT
+# There are bunch of projects under "lib/" folder that are needed for cross-compilation.
+# Files that are unnecessary for cross-compilation are removed by upstream
+# and therefore their licenses (if any special) are not included.
+# lib/libunwind: Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )
+# lib/libcxxabi: Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )
+# lib/libcxx: Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )
+# lib/libc/wasi: || ( Apache-2.0-with-LLVM-exceptions Apache-2.0 MIT BSD-2 ) public-domain
+# lib/libc/musl: MIT BSD-2
+# lib/libc/mingw: ZPL public-domain BSD-2 ISC HPND
+# lib/libc/glibc: BSD HPND ISC inner-net LGPL-2.1+
+LICENSE="MIT Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT ) || ( Apache-2.0-with-LLVM-exceptions Apache-2.0 MIT BSD-2 ) public-domain BSD-2 ZPL ISC HPND BSD inner-net LGPL-2.1+"
+SLOT="$(ver_cut 1-2)"
+KEYWORDS="-* ~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86"
+IUSE="doc"
+
+IDEPEND="app-eselect/eselect-zig"
+# 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}/zig-0.11.0-first-try-getconf.patch"
+)
+
+QA_PREBUILT="opt/${P}/zig"
+
+src_unpack() {
+ unpack ${A}
+
+ mv "${WORKDIR}/"* "${S}" || die
+}
+
+src_install() {
+ insinto /opt/
+
+ use doc && local HTML_DOCS=( "doc/langref.html" "doc/std/" )
+ einstalldocs
+ rm -r ./doc/ || die
+
+ doins -r "${S}"
+ fperms 0755 "/opt/${P}/zig"
+ dosym -r "/opt/${P}/zig" "/usr/bin/zig-bin-${PV}"
+}
+
+pkg_postinst() {
+ eselect zig update ifunset
+}
+
+pkg_postrm() {
+ eselect zig update ifunset
+}
diff --git a/dev-lang/zig/Manifest b/dev-lang/zig/Manifest
index 681529cf54ae..0041c029d4ff 100644
--- a/dev-lang/zig/Manifest
+++ b/dev-lang/zig/Manifest
@@ -1 +1 @@
-DIST zig-0.5.0.tar.gz 15743912 BLAKE2B 1a28dffebc24200cf51e1d94ff7203c8de5641e1a299eff58e808a5a8f3257fc8ff771699a0f90733702b90e5536990adc5bf41b973b4ea642081ef788f7a83d SHA512 9fc2ef827421e54e8db98ce3474ba3bbe9119b0b9aa30b4edd78d73277d2384067b5c78f4ebbca350a97ac230131e7f71e6d54c1e75fc74e1833ce6c51c402df
+DIST zig-0.11.0.tar.xz 15275316 BLAKE2B 603e4995a36d214ba71cf05b719a04732c8927995c8207ab8fdd574dca3410cdc5ccc8f6aa9964807afc04a5cbce1a3910a6cde4cf12e585cdf7684833217eb2 SHA512 c19a8ae6d440a16dd5e77941fc77c036d1f284f1784376625e63b65f30b4acad62f9f4217bc818c401f88c2c33f8722f26fc467c3e23c29a89178c4b1882d1c4
diff --git a/dev-lang/zig/files/zig-0.11.0-first-try-getconf.patch b/dev-lang/zig/files/zig-0.11.0-first-try-getconf.patch
new file mode 100644
index 000000000000..5a63e9e74ad9
--- /dev/null
+++ b/dev-lang/zig/files/zig-0.11.0-first-try-getconf.patch
@@ -0,0 +1,113 @@
+From: Eric Joldasov <bratishkaerik@getgoogleoff.me>
+
+Based on https://github.com/ziglang/zig/pull/12567 and https://github.com/ziglang/zig/pull/17671
+with small fixes, all ported to 0.11.0.
+
+First try `getconf GNU_LIBC_VERSION` to detect glibc version,
+If there are any errors, skip to the upstream logic.
+
+Also fix glibc version parsing: if version string does not contain third (patch) component, "std.SemanticVersion.parse" returns parsing error.
+For example, this currently happens with "GLIBC_2.37" or "glibc 2.37" inputs.
+To fix this, we use copy-pasted "std.zig.CrossTarget.parse" function here, that sets omitted patch component to 0.
+
+After applying this patch, both `zig build-exe --show-builtin` and `zig env` show correct version on my default/linux/amd64/17.1/desktop/plasma :
+glibc 2.37.
+
+Bug: https://bugs.gentoo.org/914731
+Bug: https://bugs.gentoo.org/914101
+
+diff --git a/lib/std/zig/system/NativeTargetInfo.zig b/lib/std/zig/system/NativeTargetInfo.zig
+index 99a1a8f2e..0250db968 100644
+--- a/lib/std/zig/system/NativeTargetInfo.zig
++++ b/lib/std/zig/system/NativeTargetInfo.zig
+@@ -19,6 +19,32 @@ dynamic_linker: DynamicLinker = DynamicLinker{},
+
+ pub const DynamicLinker = Target.DynamicLinker;
+
++// Copy-pasted from `std.zig.CrossTarget.parse` to avoid introducing unexpected new public function as part of standard library.
++/// Parses a version with an omitted patch component, such as "1.0",
++/// which SemanticVersion.parse is not capable of.
++fn parseWithOptionalPatchField(ver: []const u8) error{ InvalidVersion, Overflow }!std.SemanticVersion {
++ const parseVersionComponent = struct {
++ fn parseVersionComponent(component: []const u8) !usize {
++ return std.fmt.parseUnsigned(usize, component, 10) catch |err| {
++ switch (err) {
++ error.InvalidCharacter => return error.InvalidVersion,
++ error.Overflow => return error.Overflow,
++ }
++ };
++ }
++ }.parseVersionComponent;
++ var version_components = mem.splitScalar(u8, ver, '.');
++ const major = version_components.first();
++ const minor = version_components.next() orelse return error.InvalidVersion;
++ const patch = version_components.next() orelse "0";
++ if (version_components.next() != null) return error.InvalidVersion;
++ return .{
++ .major = try parseVersionComponent(major),
++ .minor = try parseVersionComponent(minor),
++ .patch = try parseVersionComponent(patch),
++ };
++}
++
+ pub const DetectError = error{
+ FileSystem,
+ SystemResources,
+@@ -307,6 +333,39 @@ fn detectAbiAndDynamicLinker(
+ }
+ const ld_info_list = ld_info_list_buffer[0..ld_info_list_len];
+
++ if (is_linux and !os_is_non_native and cross_target.glibc_version == null) try_getconf: {
++ var buf: [4096]u8 = undefined;
++ var fba = std.heap.FixedBufferAllocator.init(&buf);
++ const allocator = fba.allocator();
++
++ const getconf = std.process.Child.exec(.{
++ .allocator = allocator,
++ .argv = &.{ "getconf", "GNU_LIBC_VERSION" },
++ .max_output_bytes = 1024,
++ }) catch break :try_getconf;
++ if (!std.mem.startsWith(u8, getconf.stdout, "glibc ")) break :try_getconf;
++ const version_string = std.mem.trim(u8, getconf.stdout["glibc ".len..], &std.ascii.whitespace);
++ const glibc_version = parseWithOptionalPatchField(version_string) catch break :try_getconf;
++
++ var os_with_glibc = os;
++ os_with_glibc.version_range.linux.glibc = glibc_version;
++
++ const target: Target = .{
++ .cpu = cpu,
++ .os = os_with_glibc,
++ .abi = .gnu,
++ .ofmt = cross_target.ofmt orelse Target.ObjectFormat.default(os_with_glibc.tag, cpu.arch),
++ };
++ const result: NativeTargetInfo = .{
++ .target = target,
++ .dynamic_linker = if (cross_target.dynamic_linker.get() == null)
++ target.standardDynamicLinkerPath()
++ else
++ cross_target.dynamic_linker,
++ };
++ return result;
++ }
++
+ // Best case scenario: the executable is dynamically linked, and we can iterate
+ // over our own shared objects and find a dynamic linker.
+ const elf_file = blk: {
+@@ -563,7 +622,7 @@ fn glibcVerFromSoFile(file: fs.File) !std.SemanticVersion {
+ while (it.next()) |s| {
+ if (mem.startsWith(u8, s, "GLIBC_2.")) {
+ const chopped = s["GLIBC_".len..];
+- const ver = std.SemanticVersion.parse(chopped) catch |err| switch (err) {
++ const ver = parseWithOptionalPatchField(chopped) catch |err| switch (err) {
+ error.Overflow => return error.InvalidGnuLibCVersion,
+ error.InvalidVersion => return error.InvalidGnuLibCVersion,
+ };
+@@ -586,7 +645,7 @@ fn glibcVerFromLinkName(link_name: []const u8, prefix: []const u8) !std.Semantic
+ }
+ // chop off "libc-" and ".so"
+ const link_name_chopped = link_name[prefix.len .. link_name.len - suffix.len];
+- return std.SemanticVersion.parse(link_name_chopped) catch |err| switch (err) {
++ return parseWithOptionalPatchField(link_name_chopped) catch |err| switch (err) {
+ error.Overflow => return error.InvalidGnuLibCVersion,
+ error.InvalidVersion => return error.InvalidGnuLibCVersion,
+ };
diff --git a/dev-lang/zig/metadata.xml b/dev-lang/zig/metadata.xml
index 486ff3e79f03..2364982009cc 100644
--- a/dev-lang/zig/metadata.xml
+++ b/dev-lang/zig/metadata.xml
@@ -1,11 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <!-- maintainer-needed -->
+ <maintainer type="person" proxied="yes">
+ <email>bratishkaerik@landless-city.net</email>
+ <name>Eric Joldasov</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
<use>
- <flag name="experimental">Enable builds that do not support all of LLVM's target architectures</flag>
+ <flag name="llvm">Build with LLVM backend and extensions enabled.</flag>
</use>
<upstream>
<remote-id type="github">ziglang/zig</remote-id>
+ <bugs-to>https://github.com/ziglang/zig/issues</bugs-to>
</upstream>
</pkgmetadata>
diff --git a/dev-lang/zig/zig-0.11.0-r1.ebuild b/dev-lang/zig/zig-0.11.0-r1.ebuild
new file mode 100644
index 000000000000..633b6e1c6399
--- /dev/null
+++ b/dev-lang/zig/zig-0.11.0-r1.ebuild
@@ -0,0 +1,177 @@
+# Copyright 2019-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LLVM_MAX_SLOT=16
+inherit edo cmake llvm check-reqs toolchain-funcs
+
+DESCRIPTION="A robust, optimal, and maintainable programming language"
+HOMEPAGE="https://ziglang.org/"
+if [[ ${PV} == 9999 ]]; then
+ EGIT_REPO_URI="https://github.com/ziglang/zig.git"
+ inherit git-r3
+else
+ SRC_URI="https://ziglang.org/download/${PV}/${P}.tar.xz"
+ KEYWORDS="~amd64 ~arm ~arm64"
+fi
+
+# project itself: MIT
+# There are bunch of projects under "lib/" folder that are needed for cross-compilation.
+# Files that are unnecessary for cross-compilation are removed by upstream
+# and therefore their licenses (if any special) are not included.
+# lib/libunwind: Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )
+# lib/libcxxabi: Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )
+# lib/libcxx: Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )
+# lib/libc/wasi: || ( Apache-2.0-with-LLVM-exceptions Apache-2.0 MIT BSD-2 ) public-domain
+# lib/libc/musl: MIT BSD-2
+# lib/libc/mingw: ZPL public-domain BSD-2 ISC HPND
+# lib/libc/glibc: BSD HPND ISC inner-net LGPL-2.1+
+LICENSE="MIT Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT ) || ( Apache-2.0-with-LLVM-exceptions Apache-2.0 MIT BSD-2 ) public-domain BSD-2 ZPL ISC HPND BSD inner-net LGPL-2.1+"
+SLOT="$(ver_cut 1-2)"
+IUSE="doc"
+
+BUILD_DIR="${S}/build"
+
+# Zig requires zstd and zlib compression support in LLVM, if using LLVM backend.
+# (non-LLVM backends don't require these)
+# They are not required "on their own", so please don't add them here.
+# You can check https://github.com/ziglang/zig-bootstrap in future, to see
+# options that are passed to LLVM CMake building (excluding "static" ofc).
+DEPEND="
+ sys-devel/clang:${LLVM_MAX_SLOT}=
+ sys-devel/lld:${LLVM_MAX_SLOT}=
+ sys-devel/llvm:${LLVM_MAX_SLOT}=[zstd]
+"
+
+RDEPEND="
+ ${DEPEND}
+"
+
+IDEPEND="app-eselect/eselect-zig"
+
+# see https://github.com/ziglang/zig/issues/3382
+# For now, Zig Build System doesn't support enviromental CFLAGS/LDFLAGS/etc.
+QA_FLAGS_IGNORED="usr/.*/zig/${PV}/bin/zig"
+
+# Since commit https://github.com/ziglang/zig/commit/e7d28344fa3ee81d6ad7ca5ce1f83d50d8502118
+# Zig uses self-hosted compiler only
+CHECKREQS_MEMORY="4G"
+
+PATCHES=(
+ "${FILESDIR}/zig-0.11.0-first-try-getconf.patch"
+)
+
+llvm_check_deps() {
+ has_version "sys-devel/clang:${LLVM_SLOT}"
+}
+
+ctarget_to_zigtarget() {
+ # Zig's Target Format: arch-os-abi
+ local CTARGET="${CTARGET:-${CHOST}}"
+
+ local ZIG_ARCH
+ case "${CTARGET%%-*}" in
+ i?86) ZIG_ARCH=x86;;
+ sparcv9) ZIG_ARCH=sparc64;;
+ *) ZIG_ARCH="${CTARGET%%-*}";; # Same as in CHOST
+ esac
+
+ local ZIG_OS
+ case "${CTARGET}" in
+ *linux*) ZIG_OS=linux;;
+ *apple*) ZIG_OS=macos;;
+ esac
+
+ local ZIG_ABI
+ case "${CTARGET##*-}" in
+ gnu) ZIG_ABI=gnu;;
+ solaris*) ZIG_OS=solaris ZIG_ABI=none;;
+ darwin*) ZIG_ABI=none;;
+ *) ZIG_ABI="${CTARGET##*-}";; # Same as in CHOST
+ esac
+
+ echo "${ZIG_ARCH}-${ZIG_OS}-${ZIG_ABI}"
+}
+
+get_zig_mcpu() {
+ local ZIG_DEFAULT_MCPU=native
+ tc-is-cross-compiler && ZIG_DEFAULT_MCPU=baseline
+ echo "${ZIG_MCPU:-${ZIG_DEFAULT_MCPU}}"
+}
+
+get_zig_target() {
+ local ZIG_DEFAULT_TARGET=native
+ tc-is-cross-compiler && ZIG_DEFAULT_TARGET="$(ctarget_to_zigtarget)"
+ echo "${ZIG_TARGET:-${ZIG_DEFAULT_TARGET}}"
+}
+
+pkg_setup() {
+ llvm_pkg_setup
+ check-reqs_pkg_setup
+}
+
+src_configure() {
+ # Useful for debugging and a little bit more deterministic.
+ export ZIG_LOCAL_CACHE_DIR="${T}/zig-local-cache"
+ export ZIG_GLOBAL_CACHE_DIR="${T}/zig-global-cache"
+
+ local mycmakeargs=(
+ -DZIG_USE_CCACHE=OFF
+ -DZIG_SHARED_LLVM=ON
+ -DZIG_TARGET_TRIPLE="$(get_zig_target)"
+ -DZIG_TARGET_MCPU="$(get_zig_mcpu)"
+ -DZIG_USE_LLVM_CONFIG=ON
+ -DCMAKE_PREFIX_PATH="$(get_llvm_prefix ${LLVM_MAX_SLOT})"
+ -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/$(get_libdir)/zig/${PV}"
+ )
+
+ cmake_src_configure
+}
+
+src_compile() {
+ cmake_src_compile
+
+ "${BUILD_DIR}/stage3/bin/zig" env || die "Zig compilation failed"
+
+ if use doc; then
+ cd "${BUILD_DIR}" || die
+ edo ./stage3/bin/zig build std-docs --prefix "${S}/docgen/"
+ edo ./stage3/bin/zig build langref --prefix "${S}/docgen/"
+ fi
+}
+
+src_test() {
+ cd "${BUILD_DIR}" || die
+ local ZIG_TEST_ARGS="-Dstatic-llvm=false -Denable-llvm -Dskip-non-native \
+ -Doptimize=ReleaseSafe -Dtarget=$(get_zig_target) -Dcpu=$(get_zig_mcpu)"
+ local ZIG_TEST_STEPS=(
+ test-cases test-fmt test-behavior test-compiler-rt test-universal-libc test-compare-output
+ test-standalone test-c-abi test-link test-stack-traces test-cli test-asm-link test-translate-c
+ test-run-translated-c test-std
+ )
+
+ local step
+ for step in "${ZIG_TEST_STEPS[@]}" ; do
+ edob ./stage3/bin/zig build ${step} ${ZIG_TEST_ARGS}
+ done
+}
+
+src_install() {
+ use doc && local HTML_DOCS=( "docgen/doc/langref.html" "docgen/doc/std" )
+ cmake_src_install
+
+ cd "${ED}/usr/$(get_libdir)/zig/${PV}/" || die
+ mv lib/zig/ lib2/ || die
+ rm -rf lib/ || die
+ mv lib2/ lib/ || die
+ dosym -r "/usr/$(get_libdir)/zig/${PV}/bin/zig" "/usr/bin/zig-${PV}"
+}
+
+pkg_postinst() {
+ eselect zig update ifunset
+}
+
+pkg_postrm() {
+ eselect zig update ifunset
+}
diff --git a/dev-lang/zig/zig-0.5.0.ebuild b/dev-lang/zig/zig-0.5.0.ebuild
deleted file mode 100644
index 223f162cfd9c..000000000000
--- a/dev-lang/zig/zig-0.5.0.ebuild
+++ /dev/null
@@ -1,61 +0,0 @@
-# Copyright 2019-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit cmake llvm
-
-DESCRIPTION="A robust, optimal, and maintainable programming language"
-HOMEPAGE="https://ziglang.org/"
-LICENSE="MIT"
-SLOT="0"
-IUSE="+experimental"
-
-if [[ ${PV} == 9999 ]]; then
- EGIT_REPO_URI="https://github.com/ziglang/zig.git"
- inherit git-r3
-else
- SRC_URI="https://github.com/ziglang/zig/archive/${PV}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="~amd64"
-fi
-
-ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM BPF Hexagon Lanai Mips MSP430 NVPTX
- PowerPC Sparc SystemZ WebAssembly X86 XCore )
-ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" )
-# According to zig's author, zig builds that do not support all targets are not
-# supported by the upstream project.
-LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]}
-
-RDEPEND="
- sys-devel/llvm:9
- !experimental? ( sys-devel/llvm:9[${LLVM_TARGET_USEDEPS// /,}] )
- sys-devel/clang:9
-"
-
-DEPEND="${RDEPEND}"
-
-LLVM_MAX_SLOT=9
-
-llvm_check_deps() {
- has_version "sys-devel/clang:${LLVM_SLOT}"
-}
-
-src_prepare() {
- if use experimental; then
- sed -i '/^NEED_TARGET(/d' cmake/Findllvm.cmake || die "unable to modify cmake/Findllvm.cmake"
- fi
-
- sed -i 's/--prefix "${CMAKE_INSTALL_PREFIX}"/--prefix ".\/${CMAKE_INSTALL_PREFIX}"/' CMakeLists.txt || \
- die "unable to fix install path"
-
- cmake_src_prepare
-}
-
-src_configure() {
- local mycmakeargs=(
- -DCLANG_INCLUDE_DIRS="$(llvm-config --includedir)"
- -DCLANG_LIBDIRS="$(llvm-config --libdir)"
- )
-
- cmake_src_configure
-}
diff --git a/dev-lang/zig/zig-9999.ebuild b/dev-lang/zig/zig-9999.ebuild
index 223f162cfd9c..d3ce3edd625b 100644
--- a/dev-lang/zig/zig-9999.ebuild
+++ b/dev-lang/zig/zig-9999.ebuild
@@ -1,61 +1,225 @@
-# Copyright 2019-2020 Gentoo Authors
+# Copyright 2019-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-inherit cmake llvm
+LLVM_COMPAT=( 17 )
+LLVM_OPTIONAL=1
+
+inherit check-reqs cmake edo llvm-r1 toolchain-funcs
DESCRIPTION="A robust, optimal, and maintainable programming language"
HOMEPAGE="https://ziglang.org/"
-LICENSE="MIT"
-SLOT="0"
-IUSE="+experimental"
-
if [[ ${PV} == 9999 ]]; then
EGIT_REPO_URI="https://github.com/ziglang/zig.git"
inherit git-r3
else
- SRC_URI="https://github.com/ziglang/zig/archive/${PV}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="~amd64"
+ SRC_URI="https://ziglang.org/download/${PV}/${P}.tar.xz"
+ KEYWORDS="~amd64 ~arm ~arm64"
fi
-ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM BPF Hexagon Lanai Mips MSP430 NVPTX
- PowerPC Sparc SystemZ WebAssembly X86 XCore )
-ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" )
-# According to zig's author, zig builds that do not support all targets are not
-# supported by the upstream project.
-LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]}
+# project itself: MIT
+# There are bunch of projects under "lib/" folder that are needed for cross-compilation.
+# Files that are unnecessary for cross-compilation are removed by upstream
+# and therefore their licenses (if any special) are not included.
+# lib/libunwind: Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )
+# lib/libcxxabi: Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )
+# lib/libcxx: Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )
+# lib/libc/wasi: || ( Apache-2.0-with-LLVM-exceptions Apache-2.0 MIT BSD-2 ) public-domain
+# lib/libc/musl: MIT BSD-2
+# lib/libc/mingw: ZPL public-domain BSD-2 ISC HPND
+# lib/libc/glibc: BSD HPND ISC inner-net LGPL-2.1+
+LICENSE="MIT Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT ) || ( Apache-2.0-with-LLVM-exceptions Apache-2.0 MIT BSD-2 ) public-domain BSD-2 ZPL ISC HPND BSD inner-net LGPL-2.1+"
+SLOT="$(ver_cut 1-2)"
+IUSE="doc +llvm"
+REQUIRED_USE="
+ !llvm? ( !doc )
+ llvm? ( ${LLVM_REQUIRED_USE} )
+"
+
+BUILD_DIR="${S}/build"
+
+# Zig requires zstd and zlib compression support in LLVM, if using LLVM backend.
+# (non-LLVM backends don't require these)
+# They are not required "on their own", so please don't add them here.
+# You can check https://github.com/ziglang/zig-bootstrap in future, to see
+# options that are passed to LLVM CMake building (excluding "static" ofc).
+DEPEND="
+ llvm? (
+ $(llvm_gen_dep '
+ sys-devel/clang:${LLVM_SLOT}
+ sys-devel/lld:${LLVM_SLOT}
+ sys-devel/llvm:${LLVM_SLOT}[zstd]
+ ')
+ )
+"
RDEPEND="
- sys-devel/llvm:9
- !experimental? ( sys-devel/llvm:9[${LLVM_TARGET_USEDEPS// /,}] )
- sys-devel/clang:9
+ ${DEPEND}
"
-DEPEND="${RDEPEND}"
+IDEPEND="app-eselect/eselect-zig"
+
+# see https://github.com/ziglang/zig/issues/3382
+# For now, Zig Build System doesn't support enviromental CFLAGS/LDFLAGS/etc.
+QA_FLAGS_IGNORED="usr/.*/zig/${PV}/bin/zig"
+
+RESTRICT="!llvm? ( test )"
+
+# Since commit https://github.com/ziglang/zig/commit/e7d28344fa3ee81d6ad7ca5ce1f83d50d8502118
+# Zig uses self-hosted compiler only
+CHECKREQS_MEMORY="4G"
+
+ctarget_to_zigtarget() {
+ # Zig's Target Format: arch-os-abi
+ local CTARGET="${CTARGET:-${CHOST}}"
-LLVM_MAX_SLOT=9
+ local ZIG_ARCH
+ case "${CTARGET%%-*}" in
+ i?86) ZIG_ARCH=x86;;
+ sparcv9) ZIG_ARCH=sparc64;;
+ *) ZIG_ARCH="${CTARGET%%-*}";; # Same as in CHOST
+ esac
-llvm_check_deps() {
- has_version "sys-devel/clang:${LLVM_SLOT}"
+ local ZIG_OS
+ case "${CTARGET}" in
+ *linux*) ZIG_OS=linux;;
+ *apple*) ZIG_OS=macos;;
+ esac
+
+ local ZIG_ABI
+ case "${CTARGET##*-}" in
+ gnu) ZIG_ABI=gnu;;
+ solaris*) ZIG_OS=solaris ZIG_ABI=none;;
+ darwin*) ZIG_ABI=none;;
+ *) ZIG_ABI="${CTARGET##*-}";; # Same as in CHOST
+ esac
+
+ echo "${ZIG_ARCH}-${ZIG_OS}-${ZIG_ABI}"
}
-src_prepare() {
- if use experimental; then
- sed -i '/^NEED_TARGET(/d' cmake/Findllvm.cmake || die "unable to modify cmake/Findllvm.cmake"
- fi
+get_zig_mcpu() {
+ local ZIG_DEFAULT_MCPU=native
+ tc-is-cross-compiler && ZIG_DEFAULT_MCPU=baseline
+ echo "${ZIG_MCPU:-${ZIG_DEFAULT_MCPU}}"
+}
+
+get_zig_target() {
+ local ZIG_DEFAULT_TARGET=native
+ tc-is-cross-compiler && ZIG_DEFAULT_TARGET="$(ctarget_to_zigtarget)"
+ echo "${ZIG_TARGET:-${ZIG_DEFAULT_TARGET}}"
+}
- sed -i 's/--prefix "${CMAKE_INSTALL_PREFIX}"/--prefix ".\/${CMAKE_INSTALL_PREFIX}"/' CMakeLists.txt || \
- die "unable to fix install path"
+pkg_setup() {
+ # Useful for debugging and a little bit more deterministic.
+ export ZIG_LOCAL_CACHE_DIR="${T}/zig-local-cache"
+ export ZIG_GLOBAL_CACHE_DIR="${T}/zig-global-cache"
- cmake_src_prepare
+ export ZIG_SYS_INSTALL_DEST="${EPREFIX}/usr/$(get_libdir)/zig/${PV}"
+
+ use llvm && llvm-r1_pkg_setup
+ check-reqs_pkg_setup
}
src_configure() {
+ if ! use llvm; then
+ mkdir -p "${BUILD_DIR}/stage3" || die
+ # Currently, Zig without LLVM extensions lacks most optimizations.
+ export ZIG_BOOTSTRAP_STAGE3_FLAGS=(
+ -Dtarget="$(get_zig_target)"
+ -Dcpu="$(get_zig_mcpu)"
+ -Doptimize=Debug
+ -Dno-autodocs
+ -Dno-langref
+ -Denable-llvm=false
+ -Dforce-link-libc
+ )
+ return
+ fi
+
local mycmakeargs=(
- -DCLANG_INCLUDE_DIRS="$(llvm-config --includedir)"
- -DCLANG_LIBDIRS="$(llvm-config --libdir)"
+ -DZIG_USE_CCACHE=OFF
+ -DZIG_SHARED_LLVM=ON
+ -DZIG_TARGET_TRIPLE="$(get_zig_target)"
+ -DZIG_TARGET_MCPU="$(get_zig_mcpu)"
+ -DZIG_USE_LLVM_CONFIG=ON
+ -DCMAKE_PREFIX_PATH="$(get_llvm_prefix)"
+ -DCMAKE_INSTALL_PREFIX="${ZIG_SYS_INSTALL_DEST}"
)
cmake_src_configure
}
+
+src_compile() {
+ # Remove "limit memory usage" flags, it's already verified by
+ # CHECKREQS_MEMORY and causes unneccessary errors. Upstream set them
+ # according to CI OOM failures, which are higher than during Gentoo build.
+ sed -i -e '/\.max_rss = .*,/d' build.zig || die
+
+ if ! use llvm; then
+ $(tc-getCC) -o bootstrap bootstrap.c || die "Zig's bootstrap.c compilation failed"
+ edob ./bootstrap
+ edo ./zig2 build install --prefix "${BUILD_DIR}/stage3/" "${ZIG_BOOTSTRAP_STAGE3_FLAGS[@]}"
+ return
+ fi
+
+ cmake_src_compile
+
+ "${BUILD_DIR}/stage3/bin/zig" env || die "Zig compilation failed"
+
+ if use doc; then
+ cd "${BUILD_DIR}" || die
+ edo ./stage3/bin/zig build std-docs --prefix "${S}/docgen/"
+ edo ./stage3/bin/zig build langref --prefix "${S}/docgen/"
+ fi
+}
+
+src_test() {
+ cd "${BUILD_DIR}" || die
+ local ZIG_TEST_ARGS="-Dstatic-llvm=false -Denable-llvm -Dskip-non-native \
+ -Doptimize=ReleaseSafe -Dtarget=$(get_zig_target) -Dcpu=$(get_zig_mcpu)"
+ local ZIG_TEST_STEPS=(
+ test-fmt test-cases test-behavior test-c-import test-compiler-rt test-universal-libc test-compare-output
+ test-standalone test-c-abi test-link test-stack-traces test-cli test-asm-link test-translate-c
+ test-run-translated-c test-std
+ )
+
+ local step
+ for step in "${ZIG_TEST_STEPS[@]}" ; do
+ edob ./stage3/bin/zig build ${step} ${ZIG_TEST_ARGS}
+ done
+}
+
+src_install() {
+ local DOCS=( "README.md" "doc/build.zig.zon.md" )
+ use doc && local HTML_DOCS=( "docgen/doc/langref.html" "docgen/doc/std" )
+
+ if ! use llvm; then
+ DESTDIR="${D}" edo ./zig2 build install --prefix "${ZIG_SYS_INSTALL_DEST}" "${ZIG_BOOTSTRAP_STAGE3_FLAGS[@]}"
+ einstalldocs
+ else
+ cmake_src_install
+ fi
+
+ cd "${ED}/usr/$(get_libdir)/zig/${PV}/" || die
+ mv lib/zig/ lib2/ || die
+ rm -rf lib/ || die
+ mv lib2/ lib/ || die
+ dosym -r "/usr/$(get_libdir)/zig/${PV}/bin/zig" "/usr/bin/zig-${PV}"
+}
+
+pkg_postinst() {
+ eselect zig update ifunset
+
+ if ! use llvm; then
+ elog "Currently, Zig built without LLVM support lacks some"
+ elog "important features such as most optimizations, @cImport, etc."
+ elog "They are listed under \"Building from Source without LLVM\""
+ elog "section of the README file from \"/usr/share/doc/${PF}\" ."
+ elog "It's recommended to use C backend directly with this stage2 build."
+ fi
+}
+
+pkg_postrm() {
+ eselect zig update ifunset
+}