diff --git a/master/custom/builders.py b/master/custom/builders.py index bbb2b76cc..c58d260ae 100644 --- a/master/custom/builders.py +++ b/master/custom/builders.py @@ -1,5 +1,9 @@ from custom.factories import ( UnixBuild, + RHEL7Build, + RHEL8Build, + FedoraStableBuild, + FedoraRawhideBuild, UnixAsanBuild, UnixAsanDebugBuild, UnixTraceRefsBuild, @@ -17,8 +21,8 @@ SharedUnixBuild, LTONonDebugUnixBuild, LTOPGONonDebugBuild, - NoBuiltinHashesUnixBuild, - NoBuiltinHashesUnixBuildExceptBlake2, + RHEL8NoBuiltinHashesUnixBuild, + RHEL8NoBuiltinHashesUnixBuildExceptBlake2, WindowsBuild, SlowWindowsBuild, Windows64Build, @@ -59,60 +63,60 @@ def get_builders(settings): ("AMD64 Debian root", "angelico-debian-amd64", UnixBuild, STABLE), ("AMD64 Debian PGO", "gps-debian-profile-opt", PGOUnixBuild, STABLE), ("AMD64 Ubuntu Shared", "bolen-ubuntu", SharedUnixBuild, STABLE), - ("PPC64 Fedora", "edelsohn-fedora-ppc64", UnixBuild, STABLE), + ("PPC64 Fedora", "edelsohn-fedora-ppc64", FedoraStableBuild, STABLE), ("s390x SLES", "edelsohn-sles-z", UnixBuild, STABLE), ("s390x Debian", "edelsohn-debian-z", UnixBuild, STABLE), - ("s390x Fedora", "edelsohn-fedora-z", UnixBuild, STABLE), + ("s390x Fedora", "edelsohn-fedora-z", FedoraStableBuild, STABLE), ("s390x Fedora Refleaks", "edelsohn-fedora-z", UnixRefleakBuild, STABLE), ("s390x Fedora Clang", "edelsohn-fedora-z", ClangUnixBuild, STABLE), ("s390x Fedora Clang Installed", "edelsohn-fedora-z", ClangUnixInstalledBuild, STABLE), ("s390x Fedora LTO", "edelsohn-fedora-z", LTONonDebugUnixBuild, STABLE), ("s390x Fedora LTO + PGO", "edelsohn-fedora-z", LTOPGONonDebugBuild, STABLE), - ("s390x RHEL7", "edelsohn-rhel-z", UnixBuild, STABLE), + ("s390x RHEL7", "edelsohn-rhel-z", RHEL7Build, STABLE), ("s390x RHEL7 Refleaks", "edelsohn-rhel-z", UnixRefleakBuild, STABLE), ("s390x RHEL7 LTO", "edelsohn-rhel-z", LTONonDebugUnixBuild, STABLE), ("s390x RHEL7 LTO + PGO", "edelsohn-rhel-z", LTOPGONonDebugBuild, STABLE), - ("s390x RHEL8", "edelsohn-rhel8-z", UnixBuild, STABLE), + ("s390x RHEL8", "edelsohn-rhel8-z", RHEL8Build, STABLE), ("s390x RHEL8 Refleaks", "edelsohn-rhel8-z", UnixRefleakBuild, STABLE), ("s390x RHEL8 LTO", "edelsohn-rhel8-z", LTONonDebugUnixBuild, STABLE), ("s390x RHEL8 LTO + PGO", "edelsohn-rhel8-z", LTOPGONonDebugBuild, STABLE), ("x86 Gentoo Non-Debug with X", "ware-gentoo-x86", SlowNonDebugUnixBuild, STABLE), ("x86 Gentoo Installed with X", "ware-gentoo-x86", SlowUnixInstalledBuild, STABLE), - ("AMD64 Fedora Stable", "cstratak-fedora-stable-x86_64", UnixBuild, STABLE), + ("AMD64 Fedora Stable", "cstratak-fedora-stable-x86_64", FedoraStableBuild, STABLE), ("AMD64 Fedora Stable Refleaks", "cstratak-fedora-stable-x86_64", UnixRefleakBuild, STABLE), ("AMD64 Fedora Stable Clang", "cstratak-fedora-stable-x86_64", ClangUnixBuild, STABLE), ("AMD64 Fedora Stable Clang Installed", "cstratak-fedora-stable-x86_64", ClangUnixInstalledBuild, STABLE), ("AMD64 Fedora Stable LTO", "cstratak-fedora-stable-x86_64", LTONonDebugUnixBuild, STABLE), ("AMD64 Fedora Stable LTO + PGO", "cstratak-fedora-stable-x86_64", LTOPGONonDebugBuild, STABLE), - ("AMD64 RHEL7", "cstratak-RHEL7-x86_64", UnixBuild, STABLE), + ("AMD64 RHEL7", "cstratak-RHEL7-x86_64", RHEL7Build, STABLE), ("AMD64 RHEL7 Refleaks", "cstratak-RHEL7-x86_64", UnixRefleakBuild, STABLE), ("AMD64 RHEL7 LTO", "cstratak-RHEL7-x86_64", LTONonDebugUnixBuild, STABLE), ("AMD64 RHEL7 LTO + PGO", "cstratak-RHEL7-x86_64", LTOPGONonDebugBuild, STABLE), - ("AMD64 RHEL8", "cstratak-RHEL8-x86_64", UnixBuild, STABLE), + ("AMD64 RHEL8", "cstratak-RHEL8-x86_64", RHEL8Build, STABLE), ("AMD64 RHEL8 Refleaks", "cstratak-RHEL8-x86_64", UnixRefleakBuild, STABLE), ("AMD64 RHEL8 LTO", "cstratak-RHEL8-x86_64", LTONonDebugUnixBuild, STABLE), ("AMD64 RHEL8 LTO + PGO", "cstratak-RHEL8-x86_64", LTOPGONonDebugBuild, STABLE), - ("AMD64 RHEL8 FIPS Only Blake2 Builtin Hash", "cstratak-RHEL8-fips-x86_64", NoBuiltinHashesUnixBuildExceptBlake2, STABLE), + ("AMD64 RHEL8 FIPS Only Blake2 Builtin Hash", "cstratak-RHEL8-fips-x86_64", RHEL8NoBuiltinHashesUnixBuildExceptBlake2, STABLE), # Linux PPC64le - ("PPC64LE Fedora Stable", "cstratak-fedora-stable-ppc64le", UnixBuild, STABLE), + ("PPC64LE Fedora Stable", "cstratak-fedora-stable-ppc64le", FedoraStableBuild, STABLE), ("PPC64LE Fedora Stable Refleaks", "cstratak-fedora-stable-ppc64le", UnixRefleakBuild, STABLE), ("PPC64LE Fedora Stable Clang", "cstratak-fedora-stable-ppc64le", ClangUnixBuild, STABLE), ("PPC64LE Fedora Stable Clang Installed", "cstratak-fedora-stable-ppc64le", ClangUnixInstalledBuild, STABLE), ("PPC64LE Fedora Stable LTO", "cstratak-fedora-stable-ppc64le", LTONonDebugUnixBuild, STABLE), ("PPC64LE Fedora Stable LTO + PGO", "cstratak-fedora-stable-ppc64le", LTOPGONonDebugBuild, STABLE), - ("PPC64LE RHEL7", "cstratak-RHEL7-ppc64le", UnixBuild, STABLE), + ("PPC64LE RHEL7", "cstratak-RHEL7-ppc64le", RHEL7Build, STABLE), ("PPC64LE RHEL7 Refleaks", "cstratak-RHEL7-ppc64le", UnixRefleakBuild, STABLE), ("PPC64LE RHEL7 LTO", "cstratak-RHEL7-ppc64le", LTONonDebugUnixBuild, STABLE), ("PPC64LE RHEL7 LTO + PGO", "cstratak-RHEL7-ppc64le", LTOPGONonDebugBuild, STABLE), - ("PPC64LE RHEL8", "cstratak-RHEL8-ppc64le", UnixBuild, STABLE), + ("PPC64LE RHEL8", "cstratak-RHEL8-ppc64le", RHEL8Build, STABLE), ("PPC64LE RHEL8 Refleaks", "cstratak-RHEL8-ppc64le", UnixRefleakBuild, STABLE), ("PPC64LE RHEL8 LTO", "cstratak-RHEL8-ppc64le", LTONonDebugUnixBuild, STABLE), ("PPC64LE RHEL8 LTO + PGO", "cstratak-RHEL8-ppc64le", LTOPGONonDebugBuild, STABLE), # Linux aarch64 - ("aarch64 Fedora Stable", "cstratak-fedora-stable-aarch64", UnixBuild, STABLE), - ("aarch64 RHEL8", "cstratak-RHEL8-aarch64", UnixBuild, STABLE), + ("aarch64 Fedora Stable", "cstratak-fedora-stable-aarch64", FedoraStableBuild, STABLE), + ("aarch64 RHEL8", "cstratak-RHEL8-aarch64", RHEL8Build, STABLE), # macOS ("x86-64 macOS", "billenstein-macos", UnixBuild, STABLE), # Other Unix @@ -129,7 +133,7 @@ def get_builders(settings): # Linux x86 / AMD64 ("AMD64 Clang UBSan", "gps-clang-ubsan", ClangUbsanLinuxBuild, UNSTABLE), ("AMD64 Alpine Linux", "ware-alpine", UnixBuild, UNSTABLE), - ("AMD64 Fedora Rawhide", "cstratak-fedora-rawhide-x86_64", UnixBuild, UNSTABLE), + ("AMD64 Fedora Rawhide", "cstratak-fedora-rawhide-x86_64", FedoraRawhideBuild, UNSTABLE), ("AMD64 Fedora Rawhide Refleaks", "cstratak-fedora-rawhide-x86_64", UnixRefleakBuild, UNSTABLE), ("AMD64 Fedora Rawhide Clang", "cstratak-fedora-rawhide-x86_64", ClangUnixBuild, UNSTABLE), ("AMD64 Fedora Rawhide Clang Installed", "cstratak-fedora-rawhide-x86_64", ClangUnixInstalledBuild, UNSTABLE), @@ -141,9 +145,9 @@ def get_builders(settings): ("AMD64 Arch Linux Asan Debug", "pablogsal-arch-x86_64", UnixAsanDebugBuild, STABLE), ("AMD64 Arch Linux TraceRefs", "pablogsal-arch-x86_64", UnixTraceRefsBuild, STABLE), ("AMD64 Arch Linux VintageParser", "pablogsal-arch-x86_64", UnixVintageParserBuild, UNSTABLE), - ("AMD64 RHEL8 FIPS No Builtin Hashes", "cstratak-RHEL8-fips-x86_64", NoBuiltinHashesUnixBuild, UNSTABLE), + ("AMD64 RHEL8 FIPS No Builtin Hashes", "cstratak-RHEL8-fips-x86_64", RHEL8NoBuiltinHashesUnixBuild, UNSTABLE), # Linux PPC64le - ("PPC64LE Fedora Rawhide", "cstratak-fedora-rawhide-ppc64le", UnixBuild, UNSTABLE), + ("PPC64LE Fedora Rawhide", "cstratak-fedora-rawhide-ppc64le", FedoraRawhideBuild, UNSTABLE), ("PPC64LE Fedora Rawhide Refleaks", "cstratak-fedora-rawhide-ppc64le", UnixRefleakBuild, UNSTABLE), ("PPC64LE Fedora Rawhide Clang", "cstratak-fedora-rawhide-ppc64le", ClangUnixBuild, UNSTABLE), ("PPC64LE Fedora Rawhide Clang Installed", "cstratak-fedora-rawhide-ppc64le", ClangUnixInstalledBuild, UNSTABLE), @@ -152,7 +156,7 @@ def get_builders(settings): # Linux aarch32 ("ARM Raspbian", "gps-raspbian", UnixBuild, UNSTABLE), # Linux aarch64 - ("aarch64 Fedora Rawhide", "cstratak-fedora-rawhide-aarch64", UnixBuild, UNSTABLE), + ("aarch64 Fedora Rawhide", "cstratak-fedora-rawhide-aarch64", FedoraRawhideBuild, UNSTABLE), ("aarch64 Fedora Rawhide Refleaks", "cstratak-fedora-rawhide-aarch64", UnixRefleakBuild, UNSTABLE), ("aarch64 Fedora Rawhide Clang", "cstratak-fedora-rawhide-aarch64", ClangUnixBuild, UNSTABLE), ("aarch64 Fedora Rawhide Clang Installed", "cstratak-fedora-rawhide-aarch64", ClangUnixInstalledBuild, UNSTABLE), @@ -171,7 +175,7 @@ def get_builders(settings): ("aarch64 RHEL8 LTO + PGO", "cstratak-RHEL8-aarch64", LTOPGONonDebugBuild, UNSTABLE), # Linux other archs - ("s390x Fedora Rawhide", "edelsohn-fedora-rawhide-z", UnixBuild, UNSTABLE), + ("s390x Fedora Rawhide", "edelsohn-fedora-rawhide-z", FedoraRawhideBuild, UNSTABLE), ("s390x Fedora Rawhide Refleaks", "edelsohn-fedora-rawhide-z", UnixRefleakBuild, UNSTABLE), ("s390x Fedora Rawhide Clang", "edelsohn-fedora-rawhide-z", ClangUnixBuild, UNSTABLE), ("s390x Fedora Rawhide Clang Installed", "edelsohn-fedora-rawhide-z", ClangUnixInstalledBuild, UNSTABLE), diff --git a/master/custom/factories.py b/master/custom/factories.py index 894cb6872..983d810bb 100644 --- a/master/custom/factories.py +++ b/master/custom/factories.py @@ -255,8 +255,8 @@ class AIXBuild(UnixBuild): "--with-pydebug", "--with-openssl=/opt/aixtools", ] - - + + class AIXBuildWithXLC(UnixBuild): buildersuffix = ".xlc" configureFlags = [ @@ -278,7 +278,7 @@ class PGOUnixBuild(NonDebugUnixBuild): buildersuffix = ".pgo" configureFlags = ["--enable-optimizations"] factory_tags = ["pgo"] - + def setup(self, parallel, branch, *args, **kwargs): # Only Python >3.10 has --with-readline=edit if branch not in {'3.7', '3.8', '3.9'}: @@ -345,24 +345,75 @@ class LTOPGONonDebugBuild(NonDebugUnixBuild): factory_tags = ["lto", "pgo", "nondebug"] -class NoBuiltinHashesUnixBuild(UnixBuild): - buildersuffix = ".no-builtin-hashes" +class RHEL7Build(UnixBuild): + # Build Python on 64-bit RHEL7. configureFlags = [ "--with-pydebug", - "--without-builtin-hashlib-hashes" + "--with-platlibdir=lib64", + "--enable-ipv6", + "--enable-shared", + "--with-computed-gotos=yes", + "--with-dbmliborder=gdbm:ndbm:bdb", + # FIXME: enable these flags + # "--with-system-expat", + # "--with-system-ffi", + "--enable-loadable-sqlite-extensions", + "--with-dtrace", + "--with-lto", + "--with-ssl-default-suites=openssl", + "--without-static-libpython", + "--with-valgrind", + ] + + +class RHEL8Build(RHEL7Build): + # Build Python on 64-bit RHEL8. + # For now, it's the same than RHEL7, but later it may get different + # options. + pass + + +class FedoraStableBuild(RHEL8Build): + # Build Python on 64-bit Fedora Stable. + # + # Try to be as close as possible to the Fedora specfile used to build + # the RPM package: + # https://src.fedoraproject.org/rpms/python3.10/blob/rawhide/f/python3.10.spec + configureFlags = RHEL8Build.configureFlags + [ + # Options specific to Fedora + # FIXME: enable this flag + # "--with-system-libmpdec", + # Don't make a buildbot fail when pip/setuptools is updated in Python, + # whereas the buildbot uses older versions. + # "--with-wheel-pkg-dir=/usr/share/python-wheels/", ] - factory_tags = ["no-builtin-hashes"] -class NoBuiltinHashesUnixBuildExceptBlake2(UnixBuild): +class FedoraRawhideBuild(FedoraStableBuild): + # Build on 64-bit Fedora Rawhide. + # For now, it's the same than Fedora Stable, but later it may get different + # options. + pass + + +class RHEL8NoBuiltinHashesUnixBuildExceptBlake2(RHEL8Build): + # Build on 64-bit RHEL8 using: --with-builtin-hashlib-hashes=blake2 buildersuffix = ".no-builtin-hashes-except-blake2" - configureFlags = [ - "--with-pydebug", + configureFlags = RHEL8Build.configureFlags + [ "--with-builtin-hashlib-hashes=blake2" ] factory_tags = ["no-builtin-hashes-except-blake2"] +class RHEL8NoBuiltinHashesUnixBuild(RHEL8Build): + # Build on 64-bit RHEL8 using: --without-builtin-hashlib-hashes + buildersuffix = ".no-builtin-hashes" + configureFlags = RHEL8Build.configureFlags + [ + "--without-builtin-hashlib-hashes" + ] + factory_tags = ["no-builtin-hashes"] + + ############################################################################## ############################ WINDOWS BUILDS ################################ ##############################################################################