summaryrefslogtreecommitdiff
path: root/eclass
Commit message (Collapse)AuthorAgeFilesLines
* toolchain.eclass: revert Ada changes for nowSam James2024-11-201-4/+4
| | | | | | | | | I need to do some more. Revert my earlier changes for now. Reverts: 97069fd8721ea55980e548b9cf1d55e2a234a514 Reverts: 0a0b2fe6aadb9d0c3b41fdabb21535659c839bf5 Reverts: 1b5d47858780c700e706582aa370a69148552055 Signed-off-by: Sam James <sam@gentoo.org>
* toolchain.eclass: another Ada cross fixSam James2024-11-201-1/+1
| | | | | | | Followup followup to 0a0b2fe6aadb9d0c3b41fdabb21535659c839bf5 and 1b5d47858780c700e706582aa370a69148552055. Signed-off-by: Sam James <sam@gentoo.org>
* toolchain.eclass: followup Ada fixSam James2024-11-201-1/+1
| | | | | | Followup to 1b5d47858780c700e706582aa370a69148552055. Signed-off-by: Sam James <sam@gentoo.org>
* toolchain.eclass: fix Ada bootstrap paths for crossSam James2024-11-201-2/+2
| | | | | | | Same sort of thing as 434a6775ce93a15ef517478565a938aa73d1d528 although the paths are different as we're using something from libexec (gnat1). Signed-off-by: Sam James <sam@gentoo.org>
* toolchain.eclass: fix libdiagnostics handling (more)Sam James2024-11-191-1/+1
| | | | | | | | | | I continue to mix up how tc_version_is_at_least works. One day I'll change it... Closes: https://bugs.gentoo.org/944007 Fixes: f6a974f8f2378c6c6a83345c101afce233fdf1d7 Fixes: b923a4c0d1a330e40f0a05f3bc94bb4f32ce1cbb Signed-off-by: Sam James <sam@gentoo.org>
* toolchain.eclass: fix libdiagnostics handlingSam James2024-11-191-1/+4
| | | | | | | | | | Reported by ulm. This was introduced by a last-minute simplification I made, but USE=libdiagnostics only exists for 9999 and the *next* snapshot, not the current one, but even then, the code was wrong for < 15 as the use_enable part was run unconditionally w/ USE=jit. Fixes: b923a4c0d1a330e40f0a05f3bc94bb4f32ce1cbb Signed-off-by: Sam James <sam@gentoo.org>
* toolchain.eclass: wire up libdiagonsticsSam James2024-11-191-2/+6
| | | | | | | See https://gcc.gnu.org/wiki/libdiagnostics. New shared library for diagnostics in GCC. Also provides the 'sarif-replay' tool. Signed-off-by: Sam James <sam@gentoo.org>
* llvm.org.eclass: Add 20.0.0_pre20241118 snapshotMichał Górny2024-11-181-0/+3
| | | | Signed-off-by: Michał Górny <mgorny@gentoo.org>
* fcaps.eclass: leave permissions alone by defaultMike Gilbert2024-11-181-9/+26
| | | | | | | | | | | | | | | | | Removing the read bit from suid binaries has questionable security benefit, and may cause problems for some software. Instead of clobbering the entire file mode, just toggle the suid bit if needed. In most cases this will result in a world-readable file. Introduce the FCAPS_DENY_WORLD_READ setting for users who insist on having their suid binaries unreadable. Skip calling chown/chmod if the owner/mode is empty. This may be used by ebuild authors in certain use cases. Bug: https://bugs.gentoo.org/938164 Signed-off-by: Mike Gilbert <floppym@gentoo.org>
* toolchain.eclass: drop -g for src_testSam James2024-11-181-4/+0
| | | | | | | | | | | | | | | I was seriously mistaken on this: `1 file changed, 2228 deletions(-)` when testing dropping it. -g ultimately causes many more matches because of debug statements and it confuses so many tests. I must have just made an error when testing other big test flag changes around the time. This reverts commit 7200aecb3db3b2dd91129e1530bcb75ce096af91. Signed-off-by: Sam James <sam@gentoo.org>
* toolchain.eclass: only show checking warning w/ USE=-debugSam James2024-11-181-5/+7
| | | | Signed-off-by: Sam James <sam@gentoo.org>
* rust.eclass: break up eclass documentationMatt Jolly2024-11-171-1/+3
| | | | Signed-off-by: Matt Jolly <kangie@gentoo.org>
* rust.eclass: fix ECLASS_VARIABLE for LLVM/MULTILIBMatt Jolly2024-11-171-2/+2
| | | | | | | | | RUST_NEEDS_LLVM and RUST_MULTILIB incorrectly had ECLASS_VARIABLE in lowercase, resulting in these variables not ending up in documentation. Closes: https://bugs.gentoo.org/943559 Signed-off-by: Matt Jolly <kangie@gentoo.org>
* toolchain.eclass: fix time64 conditional for kgcc64Sam James2024-11-141-1/+1
| | | | Signed-off-by: Sam James <sam@gentoo.org>
* toolchain.eclass: unconditionally pass --disable-cet on x86Andrei Horodniceanu2024-11-131-0/+1
| | | | | | | | | | | | | | | d6cb7a61dad7e9672a8448597835dbbf9b9e0ccf removed the check that passed --enable-cet or --disable-cet to configure making the script fallback to automagic. The goal was to prevent passing --enable-cet on x86 gnu triples as that would lead to gcc failing to build under crossdev. Note that this specific crossdev cet issue has been solved in crossdev by package.use.mask'ing the cet USE flag for gcc on x86 but targets configured before that can still have the cet USE flag enabled. Bug: https://bugs.gentoo.org/943332 Signed-off-by: Andrei Horodniceanu <a.horodniceanu@proton.me> Closes: https://github.com/gentoo/gentoo/pull/39300 Signed-off-by: Sam James <sam@gentoo.org>
* llvm.org.eclass: Add 20.0.0_pre20241113 snapshotMichał Górny2024-11-131-0/+3
| | | | Signed-off-by: Michał Górny <mgorny@gentoo.org>
* rust.eclass: cross compile fixesMike Gilbert2024-11-131-6/+6
| | | | | | | | | | Change _get_rust_slot to default to -b/BROOT. Reuse _get_rust_slot result in pkg_setup. Pass along arguments from get_rust_prefix to _get_rust_slot. Signed-off-by: Mike Gilbert <floppym@gentoo.org> Closes: https://github.com/gentoo/gentoo/pull/39298 Signed-off-by: Matt Jolly <kangie@gentoo.org>
* toolchain.eclass: Disable CET on x86Ian Jordan2024-11-121-1/+0
| | | | | | | | | | | | | Remove enable_cet_for 'i[34567]86' 'gnu' 'cet' from to prevent -fcf-protection on x86 systens where CET support will never be fully enabled anyway. This should help with bug #933772 also but I was unable to reproduce to confirm. Closes: https://bugs.gentoo.org/943332 Bug: https://bugs.gentoo.org/933772 Thanks-to: Sam James <sam@gentoo.org> Signed-off-by: Ian Jordan <immoloism@gmail.com> Signed-off-by: Sam James <sam@gentoo.org>
* */*: rename account andrewammerlaan -> nowaNowa Ammerlaan2024-11-123-5/+5
| | | | | Closes: https://bugs.gentoo.org/940905 Signed-off-by: Nowa Ammerlaan <nowa@gentoo.org>
* rust.eclass: revert simplified dependency simplificationMatt Jolly2024-11-121-15/+12
| | | | | | | | | | | | | | | | | | | | | The simplified dependency specification for cases where no RUST_MAX_SLOT is set is the desired end state, however the edge case where portage drops blockers with `--keep-going` has an unfortunate interaction where both packages are installed simultaneously, e.g. dev-lang/rust-1.82.0:stable and dev-lang/rust-1.82.0:1.82.0, and there's no easy way for end users to resolve that as the legacy (though masked) ebuilds will meet the simple Rust dependency. Both packages install rlibs with different hashes in them to the same path (as shown below) resulting in failures when a package attempts to link against an rlib and finds two. 1.82.0: .../x86_64-unknown-linux-gnu/lib/libunwind-fc4fe814489209c6.rlib 1.82.0-r100: .../x86_64-unknown-linux-gnu/lib/libunwind-ab65e6747cbe4a5a.rlib Bug: https://bugs.gentoo.org/943143 Bug: https://bugs.gentoo.org/943206 Signed-off-by: Matt Jolly <kangie@gentoo.org>
* kernel-build.eclass: install x509.genkey and everything else in certs/Nowa Ammerlaan2024-11-121-8/+3
| | | | | | | | | | | | | | | | Users setting up kernel module signing are instructed by our and upstream documentation to use the kernels x509.genkey config file. This ensures that a supported key is generated. However, in the current situation users will first have to emerge gentoo-sources or similar to actually get this genkey file. This is inconvenient so lets just install the genkey config file in our dist-kernels. There are also some other tools, scripts, and lists that may be useful, so while we are changing this anyway lets just install all of those as well and in the process simplify the code. Signed-off-by: Nowa Ammerlaan <andrewammerlaan@gentoo.org>
* rust.eclass: fix typoMatt Jolly2024-11-121-1/+1
| | | | Signed-off-by: Matt Jolly <kangie@gentoo.org>
* rust.eclass: define `usedep` before its first usageMatt Jolly2024-11-121-2/+1
| | | | | | | | | | The open-ended dependency (no `RUST_MAX_VER`) was generated before `usedep` was set to anything. Define `usedep` when the variable is initialised and let the `RUST_NEEDS_LLVM` path set it per llvm slot as required. Closes: https://bugs.gentoo.org/943289 Signed-off-by: Matt Jolly <kangie@gentoo.org>
* toolchain.eclass: add comment explaining --with-newlibSam James2024-11-111-1/+4
| | | | Signed-off-by: Sam James <sam@gentoo.org>
* eclass: update rust usedep handling; address feedbackMatt Jolly2024-11-111-60/+66
| | | | | | | | | | | | | | - Inherit llvm-r1 where required and let it die if LLVM_COMPAT is not set. - New variable: RUST_MULTILIB; if set will generate a multilib usedep for supported rust slots. - RUST_USEDEP -> RUST_REQ_USE to be consistent with other eclasses (ebuild updates handled in a followup commit). - Tidyup & address feedback - Improve RUST_MIN_VER (only) dependency specification Closes: https://bugs.gentoo.org/943206 Signed-off-by: Matt Jolly <kangie@gentoo.org>
* cargo.eclass: check for and quote `CARGO`Matt Jolly2024-11-111-6/+16
| | | | | | | | | | | | A quick sanity check that `CARGO` is set in appropriate cargo_src_* phase functions will make it easier for users to catch occurrences where pkg_setup does not call rust_pkg_setup. Also inherit llvm-r1 if required and let it die instead of us if the environment is not properly setup. Closes: https://bugs.gentoo.org/943147 Signed-off-by: Matt Jolly <kangie@gentoo.org>
* toolchain.eclass: Check for gnu environment when enabling cet on x86Andrei Horodniceanu2024-11-101-1/+1
| | | | | | | | | | Like we do for arm64 and amd64, diverge from the upstream check for linux and only enable it for gnu triples. Closes: https://bugs.gentoo.org/942951 Signed-off-by: Andrei Horodniceanu <a.horodniceanu@proton.me> Closes: https://github.com/gentoo/gentoo/pull/39228 Signed-off-by: Sam James <sam@gentoo.org>
* rust.eclass: Fix conditional for ensuring that RUST_MIN_VER is setMatt Jolly2024-11-091-1/+1
| | | | | | | The check was negated meaning that RUST_MIN_VER would only be set when it was not required. Signed-off-by: Matt Jolly <kangie@gentoo.org>
* rust.eclass: dependency strings: dev-lang/rust-bin firstMatt Jolly2024-11-091-2/+2
| | | | | | | | | | | | | | | | To better match the behaviour of the legacy virtual/rust package, update generated dependency strings so that dev-lang/rust-bin is output before dev-lang/rust. In the longer term it is expected that this will be reverted to the original order (prefer dev-lang/rust) as users that particularly care about this also have the option of selecting an appropriate binpkg. When selecting an installed Rust to use the non-bin package is still preferred over the -bin if both are installed. Signed-off-by: Matt Jolly <kangie@gentoo.org>
* rust.eclass: add missing `/` in `get_rust_path` for `binary` builds.Matt Jolly2024-11-091-1/+1
| | | | Signed-off-by: Matt Jolly <kangie@gentoo.org>
* toolchain.eclass: call rust_pkg_setup for USE=rustSam James2024-11-091-0/+2
| | | | | | Followup to 583a1a9ac556d01e1b0df6fe64e67cb646fa4118. Noticed by inspection. Signed-off-by: Sam James <sam@gentoo.org>
* toolchain: inherit rust eclass for `RUST_DEPEND`Matt Jolly2024-11-091-2/+4
| | | | | | | `RUST_OPTIONAL` is set so that ebuilds must explicitly consume Rust features. Signed-off-by: Matt Jolly <kangie@gentoo.org>
* cargo: update for rust eclassMatt Jolly2024-11-091-18/+41
| | | | | | | | | | | | | | | | Inherit the rust eclass and take advantage of eclass features like `RUST_MIN_VER`. `RUST_DEPEND` was moved into the rust eclass in the previous commit and is now prowided via this mechanism `CARGO_OPTIONAL` now sets `RUST_OPTIONAL`, requiring ebuilds to set `RUST_DEPEND` manually and manage both cargo and rust eclass functions. Replace calls to `cargo` with the rust eclass exported ${CARGO}. Signed-off-by: Matt Jolly <kangie@gentoo.org>
* rust.eclass: Introduce new eclass for slotted RustMatt Jolly2024-11-091-0/+464
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The rust eclass acts similarly to the llvm eclass. It works with optional `RUST_{MAX,MIN}_SLOT` variables to enable ebuilds to trivially dependencies on appropriate Rust SLOTs. A `RUST_NEEDS_LLVM` variable can be set to have the eclass read `LLVM_COMPAT` and generate an llvm-r1-USE-gated dependency string. `RUST_USEDEP`, if set will be included in the dependency string and checks against installed packages. In either case these are stored in `RUST_DEPEND` for consumpion in the ebuild, and added to BDEPEND unless unless `RUST_OPTIONAL` is set. `RUST_DEPEND` will only ever include in-tree slots; there is no need to set `RUST_MIN_VER` if all in-tree versions are suitable. If `RUST_MIN_VER` is set to a value older than the oldest in-tree slot it is treated as if it is set to the lowest available. The default `rust_pkg_setup` will prefix the selected slot to `PATH` and export `RUSTC` and `CARGO` variables pointing to that slot for ease-of-use. This should prevent issues like: Bug: https://bugs.gentoo.org/907492 Bug: https://bugs.gentoo.org/942444 Signed-off-by: Matt Jolly <kangie@gentoo.org>
* llvm.org.eclass: Add 20.0.0_pre20241106 snapshotMichał Górny2024-11-071-0/+3
| | | | Signed-off-by: Michał Górny <mgorny@gentoo.org>
* llvm.org.eclass: Remove old snapshotsMichał Górny2024-11-071-9/+0
| | | | Signed-off-by: Michał Górny <mgorny@gentoo.org>
* toolchain.eclass: further death hook fixesSam James2024-11-061-3/+3
| | | | | Fixes: d82f81cd65b9a668bd7940151e3fa876d4b0ce92 Signed-off-by: Sam James <sam@gentoo.org>
* java-ant-2.eclass: Remove dead eclassVolkmar W. Pogatzki2024-11-051-440/+0
| | | | | | | | | Bug: https://bugs.gentoo.org/268313 Bug: https://bugs.gentoo.org/318625 Bug: https://bugs.gentoo.org/539958 Signed-off-by: Volkmar W. Pogatzki <gentoo@pogatzki.net> Closes: https://github.com/gentoo/gentoo/pull/39180 Signed-off-by: Florian Schmaus <flow@gentoo.org>
* java-utils-2.eclass: remove reference to java-ant-2.eclassVolkmar W. Pogatzki2024-11-051-19/+0
| | | | | Signed-off-by: Volkmar W. Pogatzki <gentoo@pogatzki.net> Signed-off-by: Florian Schmaus <flow@gentoo.org>
* toolchain.eclass: fix death hooks for JIT buildSam James2024-11-031-12/+15
| | | | | | | | We want to recover logs from that too. Bug: https://bugs.gentoo.org/942769 Fixes: 5bed0c77a1c54ac9297db4bb54af2e45c0558ec7 Signed-off-by: Sam James <sam@gentoo.org>
* toolchain.eclass: Add USE=time64 to 14.2.1_p20241026 and newerMichał Górny2024-11-011-0/+4
| | | | | Acked-by: Sam James <sam@gentoo.org> Signed-off-by: Michał Górny <mgorny@gentoo.org>
* toolchain.eclass: filter -fdiagnostics-details tooSam James2024-10-301-1/+1
| | | | | | Same as 72d5ea56d41b7d5aac351854b7479f5c2c430c83, the flag got renamed. Signed-off-by: Sam James <sam@gentoo.org>
* java-utils-2.eclass: remove undocumented unused functionVolkmar W. Pogatzki2024-10-301-4/+0
| | | | | | | | Removes java-pkg_set-current-vm Signed-off-by: Volkmar W. Pogatzki <gentoo@pogatzki.net> Closes: https://github.com/gentoo/gentoo/pull/38836 Signed-off-by: Miroslav Šulc <fordfrog@gentoo.org>
* toolchain.eclass: filter -Warray-bounds if building DSam James2024-10-301-0/+5
| | | | | | Bug: https://gcc.gnu.org/PR116975 Closes: https://bugs.gentoo.org/940750 Signed-off-by: Sam James <sam@gentoo.org>
* eclass/dotnet-pkg-base: add efsi function for running FSIMaciej Barć2024-10-301-0/+12
| | | | | | This will replace "edotnet fsi" as used in "app-shells/pwsh" package. Signed-off-by: Maciej Barć <xgqt@gentoo.org>
* eclass/dotnet-pkg-base: turn off DOTNET_NUGET_SIGNATURE_VERIFICATIONMaciej Barć2024-10-301-0/+3
| | | | | | | | | | Speeds up "dotnet restore". Especially can be noticed when running without network sandbox. Suggested by vimproved on IRC - thanks! See also: https://github.com/NuGet/Home/issues/13062 Signed-off-by: Maciej Barć <xgqt@gentoo.org>
* llvm.org.eclass: Add 20.0.0_pre20241029 snapshotMichał Górny2024-10-291-0/+3
| | | | Signed-off-by: Michał Górny <mgorny@gentoo.org>
* llvm.org.eclass: Add 20.0.0_pre20241023 snapshotMichał Górny2024-10-231-0/+3
| | | | Signed-off-by: Michał Górny <mgorny@gentoo.org>
* toolchain.eclass: filter -fdiagnostics-explain-harderSam James2024-10-211-0/+4
| | | | | | | | This is an experimental flag not yet merged upstream but filtering it makes it easier to test with so it doesn't confuse older unpatched (locally) GCCs. Signed-off-by: Sam James <sam@gentoo.org>
* qt6-build.eclass: extend -m* flags sanitizingIonen Wolkens2024-10-191-10/+24
| | | | | | | | | | | | | | | | | | | | | | | | A user on the forums reported a build failure with: `-march=znver4 -mavx512vp2intersect` On its own, there is no issue there (expanded from -march=native) but when Qt passes `-march=haswell` to build certain parts (e.g. avx2 bits for runtime detection regardless of what CHOST supports), it overrides znver4 and keeps -mavx512vp2intersect resulting in an incomplete set and then qsimd_p.h complains Do not plan to pursue this myself, but this specific issue could be improved upstream by passing -mavx2 and others rather than -march=haswell (this would also allow overriding a -mno-avx2 that we currently need to change), and/or ideally by making qsimd_p.h be able to deal with these configurations without #error. If problems keep piling up, could consider always filtering *all* -m{,no-}<instr> flags and doing x86-64-v* unconditionally. Albeit that'd still require maintaining a list of these not to filter unrelated -m* flags which could be important. Signed-off-by: Ionen Wolkens <ionen@gentoo.org>