diff options
| author | root <root@alpha.trunkmasters.com> | 2026-06-12 19:09:37 -0500 |
|---|---|---|
| committer | root <root@alpha.trunkmasters.com> | 2026-06-12 19:09:37 -0500 |
| commit | b590c8d7572b727d565cc0b8ff660d43569845de (patch) | |
| tree | 06f7a4102ea4e845df8b66660f252920d52952f9 /dev-build/scons | |
| parent | 24f9cbfc4c34fdb6a6e03311674414e881ceab47 (diff) | |
| download | baldeagleos-repo-b590c8d7572b727d565cc0b8ff660d43569845de.tar.gz baldeagleos-repo-b590c8d7572b727d565cc0b8ff660d43569845de.tar.xz baldeagleos-repo-b590c8d7572b727d565cc0b8ff660d43569845de.zip | |
Adding metadata
Diffstat (limited to 'dev-build/scons')
| -rw-r--r-- | dev-build/scons/Manifest | 3 | ||||
| -rw-r--r-- | dev-build/scons/files/scons-4.1.0-env-passthrough.patch | 41 | ||||
| -rw-r--r-- | dev-build/scons/files/scons-4.2.0-respect-cc-etc.patch | 96 | ||||
| -rw-r--r-- | dev-build/scons/metadata.xml | 16 | ||||
| -rw-r--r-- | dev-build/scons/scons-4.10.1.ebuild | 159 |
5 files changed, 315 insertions, 0 deletions
diff --git a/dev-build/scons/Manifest b/dev-build/scons/Manifest new file mode 100644 index 000000000000..811c2ef9c80d --- /dev/null +++ b/dev-build/scons/Manifest @@ -0,0 +1,3 @@ +DIST SCons-4.10.1.tar.gz 3258403 BLAKE2B c3954478e3a6795c04975a50afbca269add686284c50461e8ca71dc338c1b160f4a766ca82557a1cbfc95bd9f668648bcd637f1aa30e0410ca1b41b2e2292ae7 SHA512 4c64070714ba16c8e231ecfac9c1df6fad252b5509e0d260cc05f28865e3068f58c169d73c1559373b7a2d517bcb94a07593ab00781afd9a6a55893455471bc4 +DIST scons-4.10.1-user.pdf 3128752 BLAKE2B 91050cc519f86e909f49dd84a744133d253376c3d9f649779c9257127c9e1ab05ab699bbac74828bd54bd6f047e94baa0b880b86d501c5b7b5ac1b8d8457b5bf SHA512 1592a9d33d4cee5970d0cb0872882583bbe1d213305c2f9f7dee5acd3d703a0ec999b580785391cae498cc47fc07118da2efa956b1b77b84d994a36104efdcc3 +DIST scons-4.10.1.gh.tar.gz 5981560 BLAKE2B c2fa46729300f63debcfe8e982e347ed7d486e9d2d0889470be4553702d3123ae813487f934735bb980732df83894bec5f18f731e83bf75a4bd0c2230c60ea03 SHA512 e47000c4fe770c84c1c97ed4e7feee9305669cfbbd1aac06e158d15b08383dbdcbd5397ff62519478204c07d064337fe8101d81e17e0c8d5d611e453ed6d4da2 diff --git a/dev-build/scons/files/scons-4.1.0-env-passthrough.patch b/dev-build/scons/files/scons-4.1.0-env-passthrough.patch new file mode 100644 index 000000000000..06ec2f217611 --- /dev/null +++ b/dev-build/scons/files/scons-4.1.0-env-passthrough.patch @@ -0,0 +1,41 @@ +From fb07dc4b4fa178b0c424c5f400b18669abd8960e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org> +Date: Wed, 9 May 2018 17:04:49 +0200 +Subject: [PATCH] posix: Support GENTOO_SCONS_ENV_PASSTHROUGH=1 + +Support GENTOO_SCONS_ENV_PASSTHROUGH=1 variable to override the default +of wiping the environment and resetting PATH to default, and instead +pass all variables through. +--- + SCons/Platform/posix.py | 15 ++++++++++++--- + 1 file changed, 12 insertions(+), 3 deletions(-) + +diff --git a/SCons/Platform/posix.py b/SCons/Platform/posix.py +index 4c9f8f9ba..fbc81196d 100644 +--- a/src/SCons/Platform/posix.py ++++ b/src/SCons/Platform/posix.py +@@ -82,9 +82,18 @@ def generate(env): + pspawn = piped_env_spawn + # Note that this means that 'escape' is no longer used + +- if 'ENV' not in env: +- env['ENV'] = {} +- env['ENV']['PATH'] = '/usr/local/bin:/opt/bin:/bin:/usr/bin:/snap/bin' ++ # Force pass-through of environment variables in Gentoo builds ++ import os ++ if os.environ.get('GENTOO_SCONS_ENV_PASSTHROUGH', False): ++ new_env = os.environ.copy() ++ if 'ENV' in env: ++ new_env.update(env['ENV']) ++ env['ENV'] = new_env ++ else: ++ if 'ENV' not in env: ++ env['ENV'] = {} ++ env['ENV']['PATH'] = '/usr/local/bin:/opt/bin:/bin:/usr/bin:/snap/bin' ++ + env['OBJPREFIX'] = '' + env['OBJSUFFIX'] = '.o' + env['SHOBJPREFIX'] = '$OBJPREFIX' +-- +2.30.0 + diff --git a/dev-build/scons/files/scons-4.2.0-respect-cc-etc.patch b/dev-build/scons/files/scons-4.2.0-respect-cc-etc.patch new file mode 100644 index 000000000000..a075fec91d22 --- /dev/null +++ b/dev-build/scons/files/scons-4.2.0-respect-cc-etc.patch @@ -0,0 +1,96 @@ +From b6ba1f2b1feda529eca20fb8980f7c6c52397df6 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org> +Date: Thu, 10 May 2018 08:01:08 +0200 +Subject: [PATCH] posix: Also force common toolchain vars for Gentoo + +--- + SCons/Platform/posix.py | 21 +++++++++++++++++++++ + SCons/Tool/cc.py | 3 ++- + SCons/Tool/cxx.py | 3 ++- + SCons/Tool/link.py | 3 ++- + 4 files changed, 27 insertions(+), 3 deletions(-) + +diff --git a/src/SCons/Platform/posix.py b/src/SCons/Platform/posix.py +index 37cd2377f..1246781de 100644 +--- a/src/SCons/Platform/posix.py ++++ b/src/SCons/Platform/posix.py +@@ -33,6 +33,7 @@ import subprocess + from SCons.Platform import TempFileMunge + from SCons.Platform.virtualenv import ImportVirtualenv + from SCons.Platform.virtualenv import ignore_virtualenv, enable_virtualenv ++import SCons.Util + + exitvalmap = { + 2 : 127, +@@ -86,6 +87,26 @@ def generate(env): + if 'ENV' in env: + new_env.update(env['ENV']) + env['ENV'] = new_env ++ ++ # Furthermore, force common compiler/linker variables as well ++ envvar_mapping = { ++ 'AR': 'AR', ++ 'AS': 'AS', ++ 'ASFLAGS': 'ASFLAGS', ++ 'CC': 'CC', ++ 'CXX': 'CXX', ++ 'CFLAGS': 'CFLAGS', ++ 'CXXFLAGS': 'CXXFLAGS', ++ 'CPPFLAGS': 'CPPFLAGS', ++ 'LDFLAGS': 'LINKFLAGS', ++ } ++ ++ for envvar, toolvar in envvar_mapping.items(): ++ if toolvar not in env and envvar in env['ENV']: ++ val = env['ENV'][envvar] ++ if toolvar.endswith('FLAGS'): ++ val = SCons.Util.CLVar(val) ++ env[toolvar] = val + else: + if 'ENV' not in env: + env['ENV'] = {} +diff --git a/src/SCons/Tool/cc.py b/src/SCons/Tool/cc.py +index 590ec5fd3..5f9229a02 100644 +--- a/src/SCons/Tool/cc.py ++++ b/src/SCons/Tool/cc.py +@@ -80,7 +80,8 @@ def generate(env): + + if 'CC' not in env: + env['CC'] = env.Detect(compilers) or compilers[0] +- env['CFLAGS'] = SCons.Util.CLVar('') ++ if 'CFLAGS' not in env: ++ env['CFLAGS'] = SCons.Util.CLVar('') + env['CCCOM'] = '$CC -o $TARGET -c $CFLAGS $CCFLAGS $_CCCOMCOM $SOURCES' + env['SHCC'] = '$CC' + env['SHCFLAGS'] = SCons.Util.CLVar('$CFLAGS') +diff --git a/src/SCons/Tool/cxx.py b/src/SCons/Tool/cxx.py +index 128cdc4f6..1f852b64c 100644 +--- a/src/SCons/Tool/cxx.py ++++ b/src/SCons/Tool/cxx.py +@@ -69,7 +69,8 @@ def generate(env): + + if 'CXX' not in env: + env['CXX'] = env.Detect(compilers) or compilers[0] +- env['CXXFLAGS'] = SCons.Util.CLVar('') ++ if 'CXXFLAGS' not in env: ++ env['CXXFLAGS'] = SCons.Util.CLVar('') + env['CXXCOM'] = '$CXX -o $TARGET -c $CXXFLAGS $CCFLAGS $_CCCOMCOM $SOURCES' + env['SHCXX'] = '$CXX' + env['SHCXXFLAGS'] = SCons.Util.CLVar('$CXXFLAGS') +diff --git a/src/SCons/Tool/link.py b/src/SCons/Tool/link.py +index 24d17a31f..4ea9917e8 100644 +--- a/src/SCons/Tool/link.py ++++ b/src/SCons/Tool/link.py +@@ -49,7 +49,8 @@ def generate(env): + + env['SMARTLINK'] = smart_link + env['LINK'] = "$SMARTLINK" +- env['LINKFLAGS'] = SCons.Util.CLVar('') ++ if 'LINKFLAGS' not in env: ++ env['LINKFLAGS'] = SCons.Util.CLVar('') + + # __RPATH is only set to something ($_RPATH typically) on platforms that support it. + env['LINKCOM'] = '$LINK -o $TARGET $LINKFLAGS $__RPATH $SOURCES $_LIBDIRFLAGS $_LIBFLAGS' +-- +2.32.0 + diff --git a/dev-build/scons/metadata.xml b/dev-build/scons/metadata.xml new file mode 100644 index 000000000000..9f5e798a6d81 --- /dev/null +++ b/dev-build/scons/metadata.xml @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>mgorny@gentoo.org</email> + <name>Michał Górny</name> + </maintainer> + <longdescription lang="en"> + SCons is a make replacement providing a range of enhanced + features such as automated dependency generation and built in + compilation cache support. SCons rule sets are Python scripts so + as well as the features it provides itself SCons allows you to use + the full power of Python to control compilation. + </longdescription> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-build/scons/scons-4.10.1.ebuild b/dev-build/scons/scons-4.10.1.ebuild new file mode 100644 index 000000000000..6935fb6f1307 --- /dev/null +++ b/dev-build/scons/scons-4.10.1.ebuild @@ -0,0 +1,159 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{13..14} ) +PYTHON_REQ_USE="threads(+)" + +inherit distutils-r1 multiprocessing + +MY_P="SCons-${PV}" +DESCRIPTION="Extensible Python-based build utility" +HOMEPAGE=" + https://www.scons.org/ + https://github.com/SCons/scons/ + https://pypi.org/project/SCons/ +" +SRC_URI=" + https://downloads.sourceforge.net/project/${PN}/${PN}/${PV}/${MY_P}.tar.gz + doc? ( + https://www.scons.org/doc/${PV}/PDF/${PN}-user.pdf + -> ${P}-user.pdf + ) + test? ( + https://github.com/SCons/scons/archive/${PV}.tar.gz + -> ${P}.gh.tar.gz + ) +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos ~x64-solaris" +IUSE="doc test" +RESTRICT="!test? ( test )" + +BDEPEND=" + test? ( + dev-python/lxml[${PYTHON_USEDEP}] + dev-python/psutil[${PYTHON_USEDEP}] + ) +" + +src_unpack() { + # use the git directory structure, then unpack the pypi tarball + # on top of it to make our life easier + if use test; then + unpack "${P}.gh.tar.gz" + else + mkdir -p "${P}" || die + fi + + tar -C "${P}" --strip-components=1 --no-same-owner \ + -xzf "${DISTDIR}/${MY_P}.tar.gz" || die +} + +src_prepare() { + distutils-r1_src_prepare + + # TODO: rebase the patches <4.5.1-r2 is gone + # support env passthrough for Gentoo ebuilds + eapply -p2 "${FILESDIR}"/scons-4.1.0-env-passthrough.patch + # respect CC, CXX, C*FLAGS, LDFLAGS by default + eapply -p2 "${FILESDIR}"/scons-4.2.0-respect-cc-etc.patch + + if use test; then + local remove_tests=( + # TODO: does not respect PATH? + test/Clang + # broken + test/DVIPDF/DVIPDFFLAGS.py + test/Java/swig-dependencies.py + test/Java/multi-step.py + test/TEX/newglossary.py + test/TEX/variant_dir_newglossary.py + test/Configure/option--config.py + test/D/HSTeoh/sconstest-linkingProblem_gdc.py + # broken by commas in date, sic! + test/option/option-v.py + test/Interactive/version.py + # warnings from new binutils? + test/AS/as-live.py + test/AS/nasm.py + # hangs + test/KeyboardInterrupt.py + # requires f77 executable + test/Fortran/F77PATH.py + test/Fortran/FORTRANPATH.py + test/Fortran/gfortran.py + # TODO, these seem to be caused by our patches + test/Repository/include.py + test/Repository/multi-dir.py + test/Repository/variants.py + test/virtualenv/activated/option/ignore-virtualenv.py + # broken by CC being set? *facepalm* + test/LINK/applelink.py + test/ToolSurrogate.py + # no clue but why would we care about rpm? + test/packaging/option--package-type.py + test/packaging/rpm/cleanup.py + test/packaging/rpm/internationalization.py + test/packaging/rpm/multipackage.py + test/packaging/rpm/package.py + test/packaging/rpm/tagging.py + # apparently fragile to... limits? + # https://bugs.gentoo.org/908347#c7 + test/builderrors.py + # unhappy about jre-25 + test/Java/nested-classes.py + # flaky + test/leaky-handles.py + ) + + if ! use amd64 && ! use x86 ; then + # These tests are currently broken on arm and other non-amd64/x86 platforms + # Work seems to be ongoing in e.g. https://github.com/SCons/scons/pull/4022 to + # better plumb up the MSVC tests for alternative arches. + # Try again after 4.2.0. + # See also: https://pairlist4.pair.net/pipermail/scons-users/2020-November/008452.html + # bug #757534 + remove_tests+=( + test/MSVS/vs-7.0-scc-files.py + test/MSVS/vs-7.0-scc-legacy-files.py + test/MSVS/vs-7.1-scc-files.py + test/MSVS/vs-7.1-scc-legacy-files.py + test/MSVS/vs-scc-files.py + test/MSVS/vs-scc-legacy-files.py + ) + fi + + rm -r "${remove_tests[@]}" || die + fi +} + +python_test() { + local -x COLUMNS=80 + # set variable from escons() of scons-util.eclass to make env-passthrough patch work within test env + local -x GENTOO_SCONS_ENV_PASSTHROUGH=1 + # unset some env variables to pass appropriate tests + unset AR AS ASFLAGS CC CXX CFLAGS CXXFLAGS CPPFLAGS LDFLAGS + cd "${WORKDIR}/${P}" || die + "${EPYTHON}" runtest.py -a --passed \ + -j "$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")" + + # runtest.py script returns "0" if all tests are passed + # and returns "2" if there are any tests with "no result" + # (i.e. in case if some tools are not installed or it's Windows specific tests) + [[ ${?} == [02] ]] || die "Tests fail with ${EPYTHON}" + + # sigh + rm "${BUILD_DIR}/install/usr/bin/.sconsign" || die +} + +python_install_all() { + distutils-r1_python_install_all + + doman *.1 + use doc && dodoc "${DISTDIR}/${P}"-user.pdf +} |
