Compare commits

..

6 Commits

Author SHA1 Message Date
Brett T. Warden 239d8cd618 Limit diff to ~10 lines
Also include content of added files.
2024-04-15 17:13:34 -07:00
Brett T. Warden 16ee88cb20 Don't write source archive comparison tarball to upstreams file
We only use this for source tree comparison, not part of the build, so
don't add it to the upstreams file.
2024-04-15 16:59:57 -07:00
Brett T. Warden 617c67c388 Make flake8 happy 2024-04-15 16:00:38 -07:00
Brett T. Warden 2cf51ddfb9 Move autogenerated source tree to a versionless directory 2024-04-15 15:54:30 -07:00
Brett T. Warden 6174188098 Fix failure on packages that don't have an autogenerated source tarball 2024-04-15 15:25:16 -07:00
Brett T. Warden 61e16733c8 Capture diffs of dist tarballs vs auto-generated source archives from GitHub 2024-04-15 15:12:17 -07:00
11 changed files with 82 additions and 156 deletions
-6
View File
@@ -268,12 +268,6 @@ prep_prepend
resulting ``.spec``, and is used for situations where fine-grained resulting ``.spec``, and is used for situations where fine-grained
control is required. control is required.
copy_prepend
Additional actions that should take place directly before the source
directory is copied for other builds (32bit, avx2, etc). This will be
placed in the resulting ``.spec``, and is used for situations where
fine-grained control is required.
build_prepend build_prepend
Additional actions that should take place after ``%build`` and before Additional actions that should take place after ``%build`` and before
the ``%configure`` macro or equivalent (``%cmake``, etc.). If autospec the ``%configure`` macro or equivalent (``%cmake``, etc.). If autospec
-4
View File
@@ -751,10 +751,6 @@ class Requirements(object):
configure_ac_files = [] configure_ac_files = []
qmake_profiles = [] qmake_profiles = []
cmake_files = [] cmake_files = []
if config.config_opts['use_ninja']:
self.add_buildreq('ninja')
for dirpath, _, files in os.walk(dirn): for dirpath, _, files in os.walk(dirn):
default_score = 2 if dirpath == dirn else 1 default_score = 2 if dirpath == dirn else 1
+5 -11
View File
@@ -97,23 +97,17 @@ def scan_for_tests(src_dir, config, requirements, content):
} }
if config.config_opts.get('32bit'): if config.config_opts.get('32bit'):
testsuites["makecheck"] += "\ncd ../build32;\n" + make_check + " || :" testsuites["makecheck"] += "\ncd ../build32;\n" + make_check + " || :"
testsuites["cmake"] += "\ncd ../../build32/clr-build32;\n" + cmake_check + " || :" testsuites["cmake"] += "\ncd ../clr-build32;\n" + cmake_check + " || :"
testsuites["meson"] += "\ncd ../buildapx;\n" + meson_check + " || :" testsuites["meson"] += "\ncd ../build32;\n" + meson_check + " || :"
if config.config_opts.get('use_avx2'): if config.config_opts.get('use_avx2'):
testsuites["makecheck"] += "\ncd ../buildavx2;\n" + make_check + " || :" testsuites["makecheck"] += "\ncd ../buildavx2;\n" + make_check + " || :"
testsuites["cmake"] += "\ncd ../../buildavx2/clr-build-avx2;\n" + cmake_check + " || :" testsuites["cmake"] += "\ncd ../clr-build-avx2;\n" + cmake_check + " || :"
testsuites["meson"] += "\ncd ../buildapx;\n" + meson_check + " || :"
if config.config_opts.get('use_avx512'): if config.config_opts.get('use_avx512'):
testsuites["makecheck"] += "\ncd ../buildavx512;\n" + make_check + " || :" testsuites["makecheck"] += "\ncd ../buildavx512;\n" + make_check + " || :"
testsuites["cmake"] += "\ncd ../../buildavx512/clr-build-avx512;\n" + cmake_check + " || :" testsuites["cmake"] += "\ncd ../clr-build-avx512;\n" + cmake_check + " || :"
testsuites["meson"] += "\ncd ../buildapx;\n" + meson_check + " || :"
if config.config_opts.get('use_apx'):
testsuites["makecheck"] += "\ncd ../buildapx;\n" + make_check + " || :"
testsuites["cmake"] += "\ncd ../../buildapx/clr-build-apx;\n" + cmake_check + " || :"
testsuites["meson"] += "\ncd ../buildapx;\n" + meson_check + " || :"
if config.config_opts.get('openmpi'): if config.config_opts.get('openmpi'):
testsuites["makecheck"] += "\ncd ../build-openmpi;\n" + make_check_openmpi testsuites["makecheck"] += "\ncd ../build-openmpi;\n" + make_check_openmpi
testsuites["cmake"] += "\ncd ../../build-openmpi/clr-build-openmpi;\n" + cmake_check_openmpi testsuites["cmake"] += "\ncd ../clr-build-openmpi;\n" + cmake_check_openmpi
files = os.listdir(src_dir) files = os.listdir(src_dir)
+4 -11
View File
@@ -91,7 +91,6 @@ class Config(object):
self.install_macro = "%make_install" self.install_macro = "%make_install"
self.disable_static = "--disable-static" self.disable_static = "--disable-static"
self.prep_prepend = [] self.prep_prepend = []
self.copy_prepend = []
self.build_prepend = [] self.build_prepend = []
self.build_prepend_once = [] self.build_prepend_once = []
self.build_append = [] self.build_append = []
@@ -188,7 +187,6 @@ class Config(object):
"server": "Package is only used by servers", "server": "Package is only used by servers",
"no_glob": "Do not use the replacement pattern for file matching", "no_glob": "Do not use the replacement pattern for file matching",
"allow_exe": "Allow Windows executables (*.exe, *.dll) to be packaged", "allow_exe": "Allow Windows executables (*.exe, *.dll) to be packaged",
"use_ninja": "Use ninja build files",
} }
# simple_pattern_pkgconfig patterns # simple_pattern_pkgconfig patterns
# contains patterns for parsing build.log for missing dependencies # contains patterns for parsing build.log for missing dependencies
@@ -268,7 +266,6 @@ class Config(object):
(r"Can't locate [a-zA-Z0-9_\-\/\.]+ in @INC \(you may need to install the ([a-zA-Z0-9_\-:]+) module\)", 0, 'perl'), (r"Can't locate [a-zA-Z0-9_\-\/\.]+ in @INC \(you may need to install the ([a-zA-Z0-9_\-:]+) module\)", 0, 'perl'),
(r"Cannot find ([a-zA-Z0-9\-_\.]*)", 1, None), (r"Cannot find ([a-zA-Z0-9\-_\.]*)", 1, None),
(r"Checking for (.*?)\.\.\.no", 0, None), (r"Checking for (.*?)\.\.\.no", 0, None),
(r"checking for (.*?) \(using pkg-config\)\.\.\. no", 0, None),
(r"Checking for (.*?)\s*: not found", 0, None), (r"Checking for (.*?)\s*: not found", 0, None),
(r"Checking for (.*?)\s>=.*\s*: not found", 0, None), (r"Checking for (.*?)\s>=.*\s*: not found", 0, None),
(r"Could not find suitable distribution for Requirement.parse\('([a-zA-Z\-\.]*)", 0, None), (r"Could not find suitable distribution for Requirement.parse\('([a-zA-Z\-\.]*)", 0, None),
@@ -291,7 +288,6 @@ class Config(object):
(r"No rule to make target `(.*)',", 0, None), (r"No rule to make target `(.*)',", 0, None),
(r"Package (.*) was not found in the pkg-config search path.", 0, 'pkgconfig'), (r"Package (.*) was not found in the pkg-config search path.", 0, 'pkgconfig'),
(r"Package '([a-zA-Z0-9\-:]*)', required by '.*', not found", 0, 'pkgconfig'), (r"Package '([a-zA-Z0-9\-:]*)', required by '.*', not found", 0, 'pkgconfig'),
(r"The file `([a-zA-Z0-9\-:]*)\.pc` needs to be installed and the PKG_CONFIG_PATH environment variable must contain its parent directory\.", 0, 'pkgconfig'),
(r"Package which this enhances but not available for checking: [']([a-zA-Z0-9\-]*)[']", 0, 'R'), (r"Package which this enhances but not available for checking: [']([a-zA-Z0-9\-]*)[']", 0, 'R'),
(r"Perhaps you should add the directory containing `([a-zA-Z0-9\-:]*)\.pc'", 0, 'pkgconfig'), (r"Perhaps you should add the directory containing `([a-zA-Z0-9\-:]*)\.pc'", 0, 'pkgconfig'),
(r"Program (.*) found: NO", 0, None), (r"Program (.*) found: NO", 0, None),
@@ -438,11 +434,10 @@ class Config(object):
# next the options # next the options
config_f['autospec'] = {} config_f['autospec'] = {}
for fname, comment in sorted(self.config_options.items()): for fname, comment in sorted(self.config_options.items()):
fpath = os.path.join(self.download_path, fname)
config_f.set('autospec', '# {}'.format(comment)) config_f.set('autospec', '# {}'.format(comment))
if os.path.isfile(fpath): if os.path.exists(fname):
config_f['autospec'][fname] = 'true' config_f['autospec'][fname] = 'true'
os.remove(fpath) os.remove(fname)
else: else:
config_f['autospec'][fname] = 'false' config_f['autospec'][fname] = 'false'
@@ -450,10 +445,9 @@ class Config(object):
config_f['autospec']['use_lto'] = 'true' config_f['autospec']['use_lto'] = 'true'
# renamed options need special care # renamed options need special care
skip_path = os.path.join(self.download_path, "skip_test_suite") if os.path.exists("skip_test_suite"):
if os.path.exists(skip_path):
config_f['autospec']['skip_tests'] = 'true' config_f['autospec']['skip_tests'] = 'true'
os.remove(skip_path) os.remove("skip_test_suite")
self.write_config(config_f) self.write_config(config_f)
def create_buildreq_cache(self, version, buildreqs_cache): def create_buildreq_cache(self, version, buildreqs_cache):
@@ -1007,7 +1001,6 @@ class Config(object):
requirements.add_buildreq("openssh") requirements.add_buildreq("openssh")
self.prep_prepend = self.read_script_file(os.path.join(self.download_path, "prep_prepend")) self.prep_prepend = self.read_script_file(os.path.join(self.download_path, "prep_prepend"))
self.copy_prepend = self.read_script_file(os.path.join(self.download_path, "copy_prepend"))
if os.path.isfile(os.path.join(self.download_path, "prep_append")): if os.path.isfile(os.path.join(self.download_path, "prep_append")):
os.rename(os.path.join(self.download_path, "prep_append"), os.path.join(self.download_path, "build_prepend")) os.rename(os.path.join(self.download_path, "prep_append"), os.path.join(self.download_path, "build_prepend"))
self.make_prepend = self.read_script_file(os.path.join(self.download_path, "make_prepend")) self.make_prepend = self.read_script_file(os.path.join(self.download_path, "make_prepend"))
+1
View File
@@ -113,6 +113,7 @@ def commit_to_git(config, name, success):
call("git add whatrequires", check=False, stderr=subprocess.DEVNULL, cwd=path) call("git add whatrequires", check=False, stderr=subprocess.DEVNULL, cwd=path)
call("git add description", check=False, stderr=subprocess.DEVNULL, cwd=path) call("git add description", check=False, stderr=subprocess.DEVNULL, cwd=path)
call("git add attrs", check=False, stderr=subprocess.DEVNULL, cwd=path) call("git add attrs", check=False, stderr=subprocess.DEVNULL, cwd=path)
call("git add archive.diff", check=False, stderr=subprocess.DEVNULL, cwd=path)
# remove deprecated config files # remove deprecated config files
call("git rm make_install_append", check=False, stderr=subprocess.DEVNULL, cwd=path) call("git rm make_install_append", check=False, stderr=subprocess.DEVNULL, cwd=path)
+1 -1
View File
@@ -178,7 +178,7 @@ def scan_for_licenses(srcdir, config, pkg_name):
# seen in the DPDK 20.11.3 tree, where the `LICENSES` directory is # seen in the DPDK 20.11.3 tree, where the `LICENSES` directory is
# named `license` instead. # named `license` instead.
dirbase = os.path.basename(dirpath) dirbase = os.path.basename(dirpath)
if re.search(r'^(LICENSES|licenses?|licensing)$', dirbase) and re.search(r'\.txt$', name): if re.search(r'^(LICENSES|licenses?)$', dirbase) and re.search(r'\.txt$', name):
license_from_copying_hash(os.path.join(dirpath, name), license_from_copying_hash(os.path.join(dirpath, name),
srcdir, config, pkg_name) srcdir, config, pkg_name)
-1
View File
@@ -532,7 +532,6 @@ VERIFIER_TYPES = {
'.bz2': GPGVerifier, '.bz2': GPGVerifier,
'.xz': GPGVerifier, '.xz': GPGVerifier,
'.zip': GPGVerifier, '.zip': GPGVerifier,
'.zst': GPGVerifier,
} }
+43 -79
View File
@@ -414,8 +414,6 @@ class Specfile(object):
self._write_strip("## make_prepend end") self._write_strip("## make_prepend end")
if self.config.make_command: if self.config.make_command:
make = self.config.make_command make = self.config.make_command
elif self.config.config_opts['use_ninja']:
make = "ninja"
else: else:
make = "make" make = "make"
if build32: if build32:
@@ -432,11 +430,7 @@ class Specfile(object):
def write_cmake_line_openmpi(self): def write_cmake_line_openmpi(self):
"""Write cmake line (openmpi) to spec file.""" """Write cmake line (openmpi) to spec file."""
if self.config.config_opts['use_ninja']: cmake_string = 'cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=$MPI_ROOT -DCMAKE_INSTALL_SBINDIR=$MPI_BIN \\\n' \
cmake_type = "Ninja"
else:
cmake_type = "Unix Makefiles"
cmake_string = f"cmake -G '{cmake_type}' -DCMAKE_INSTALL_PREFIX=$MPI_ROOT -DCMAKE_INSTALL_SBINDIR=$MPI_BIN \\\n" \
'-DCMAKE_INSTALL_LIBDIR=$MPI_LIB -DCMAKE_INSTALL_INCLUDEDIR=$MPI_INCLUDE -DLIB_INSTALL_DIR=$MPI_LIB \\\n' \ '-DCMAKE_INSTALL_LIBDIR=$MPI_LIB -DCMAKE_INSTALL_INCLUDEDIR=$MPI_INCLUDE -DLIB_INSTALL_DIR=$MPI_LIB \\\n' \
'-DBUILD_SHARED_LIBS:BOOL=ON -DLIB_SUFFIX=64 \\\n' \ '-DBUILD_SHARED_LIBS:BOOL=ON -DLIB_SUFFIX=64 \\\n' \
'-DCMAKE_AR=/usr/bin/gcc-ar -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_RANLIB=/usr/bin/gcc-ranlib \\\n' '-DCMAKE_AR=/usr/bin/gcc-ar -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_RANLIB=/usr/bin/gcc-ranlib \\\n'
@@ -465,11 +459,6 @@ class Specfile(object):
extract_cmd = 'unzip -q {}' extract_cmd = 'unzip -q {}'
if archive.endswith('.bz2') and not archive.endswith('.tar.bz2'): if archive.endswith('.bz2') and not archive.endswith('.tar.bz2'):
extract_cmd = 'bzcat {0} > $(basename "{0}" .bz2)' extract_cmd = 'bzcat {0} > $(basename "{0}" .bz2)'
if archive.endswith('.zst'):
if archive.endswith('.tar.zst'):
extract_cmd = 'tar -I zstd xf {}'
else:
extract_cmd = 'zstd -dqc {0} > $(basename "{0}" .zst)'
self._write_strip('cd %{_builddir}') self._write_strip('cd %{_builddir}')
archive_file = os.path.basename(archive) archive_file = os.path.basename(archive)
if self.config.archive_details.get(archive + "prefix"): if self.config.archive_details.get(archive + "prefix"):
@@ -520,28 +509,27 @@ class Specfile(object):
if self.config.subdir: if self.config.subdir:
self._write_strip("popd") self._write_strip("popd")
self.write_copy_prepend() if self.config.default_pattern != 'cmake':
if self.config.config_opts['32bit']:
if self.config.config_opts['32bit']: self._write_strip("pushd ..")
self._write_strip("pushd ..") self._write_strip("cp -a {} build32".format(self.content.tarball_prefix))
self._write_strip("cp -a {} build32".format(self.content.tarball_prefix)) self._write_strip("popd")
self._write_strip("popd") if self.config.config_opts['use_avx2']:
if self.config.config_opts['use_avx2']: self._write_strip("pushd ..")
self._write_strip("pushd ..") self._write_strip("cp -a {} buildavx2".format(self.content.tarball_prefix))
self._write_strip("cp -a {} buildavx2".format(self.content.tarball_prefix)) self._write_strip("popd")
self._write_strip("popd") if self.config.config_opts['use_avx512']:
if self.config.config_opts['use_avx512']: self._write_strip("pushd ..")
self._write_strip("pushd ..") self._write_strip("cp -a {} buildavx512".format(self.content.tarball_prefix))
self._write_strip("cp -a {} buildavx512".format(self.content.tarball_prefix)) self._write_strip("popd")
self._write_strip("popd") if self.config.config_opts['use_apx']:
if self.config.config_opts['use_apx']: self._write_strip("pushd ..")
self._write_strip("pushd ..") self._write_strip("cp -a {} buildapx".format(self.content.tarball_prefix))
self._write_strip("cp -a {} buildapx".format(self.content.tarball_prefix)) self._write_strip("popd")
self._write_strip("popd") if self.config.config_opts['openmpi']:
if self.config.config_opts['openmpi']: self._write_strip("pushd ..")
self._write_strip("pushd ..") self._write_strip("cp -a {} build-openmpi".format(self.content.tarball_prefix))
self._write_strip("cp -a {} build-openmpi".format(self.content.tarball_prefix)) self._write_strip("popd")
self._write_strip("popd")
self._write_strip("\n") self._write_strip("\n")
def write_32bit_exports(self): def write_32bit_exports(self):
@@ -603,7 +591,7 @@ class Specfile(object):
if self.config.config_opts['use_clang']: if self.config.config_opts['use_clang']:
flags.extend(["-O3"]) flags.extend(["-O3"])
else: else:
flags.extend(["-fno-semantic-interposition", "-falign-functions=32"]) flags.extend(["-Ofast", "-fno-semantic-interposition", "-falign-functions=32"])
if not self.config.config_opts['full-debug-info'] and not self.config.config_opts['use_clang']: if not self.config.config_opts['full-debug-info'] and not self.config.config_opts['use_clang']:
flags.extend(["-gno-variable-location-views", "-gno-column-info", "-femit-struct-debug-baseonly", "-fdebug-types-section", "-gz=zstd", "-g1"]) flags.extend(["-gno-variable-location-views", "-gno-column-info", "-femit-struct-debug-baseonly", "-fdebug-types-section", "-gz=zstd", "-g1"])
if self.config.default_pattern != 'qmake' or self.config.default_pattern != 'qmake6': if self.config.default_pattern != 'qmake' or self.config.default_pattern != 'qmake6':
@@ -801,14 +789,6 @@ class Specfile(object):
self._write_strip("{}\n".format(line)) self._write_strip("{}\n".format(line))
self._write_strip("## prep_prepend end") self._write_strip("## prep_prepend end")
def write_copy_prepend(self):
"""Write out any custom supplied commands prior to creating source copies for avx, etc builds."""
if self.config.copy_prepend:
self._write_strip("## copy_prepend content")
for line in self.config.copy_prepend:
self._write_strip("{}\n".format(line))
self._write_strip("## copy_prepend end")
def write_build_prepend(self): def write_build_prepend(self):
"""Write out any custom supplied commands at the start of the %build section and every build type.""" """Write out any custom supplied commands at the start of the %build section and every build type."""
if self.config.build_prepend: if self.config.build_prepend:
@@ -924,11 +904,10 @@ class Specfile(object):
self._write_strip("export GOAMD64=v2") self._write_strip("export GOAMD64=v2")
if self.config.config_opts['use_ninja'] and self.config.install_macro == '%make_install': if self.config.subdir:
self.config.install_macro = '%ninja_install' self._write_strip("pushd " + self.config.subdir)
if self.config.config_opts['32bit']: if self.config.config_opts['32bit']:
self._write_strip("pushd ../build32/" + self.config.subdir)
self._write_strip("pushd clr-build32") self._write_strip("pushd clr-build32")
self._write_strip("{}32 {} {}".format(self.config.install_macro, self._write_strip("{}32 {} {}".format(self.config.install_macro,
self.config.extra_make_install, self.config.extra_make_install,
@@ -946,42 +925,30 @@ class Specfile(object):
self._write_strip(" popd") self._write_strip(" popd")
self._write_strip("fi") self._write_strip("fi")
self._write_strip("popd") self._write_strip("popd")
self._write_strip("popd")
if self.config.config_opts['use_avx2']: if self.config.config_opts['use_avx2']:
self._write_strip("pushd ../buildavx2/" + self.config.subdir)
self._write_strip("GOAMD64=v3") self._write_strip("GOAMD64=v3")
self._write_strip("pushd clr-build-avx2") self._write_strip("pushd clr-build-avx2")
self._write_strip("%s_v3 %s || :\n" % (self.config.install_macro, self.config.extra_make_install)) self._write_strip("%s_v3 %s || :\n" % (self.config.install_macro, self.config.extra_make_install))
self._write_strip("popd") self._write_strip("popd")
self._write_strip("popd")
if self.config.config_opts['use_avx512']: if self.config.config_opts['use_avx512']:
self._write_strip("pushd ../buildavx512/" + self.config.subdir)
self._write_strip("GOAMD64=v4") self._write_strip("GOAMD64=v4")
self._write_strip("pushd clr-build-avx512") self._write_strip("pushd clr-build-avx512")
self._write_strip("%s_v4 %s || :\n" % (self.config.install_macro, self.config.extra_make_install)) self._write_strip("%s_v4 %s || :\n" % (self.config.install_macro, self.config.extra_make_install))
self._write_strip("popd") self._write_strip("popd")
self._write_strip("popd")
if self.config.config_opts['use_apx']: if self.config.config_opts['use_apx']:
self._write_strip("pushd ../buildapx/" + self.config.subdir)
self._write_strip("GOAMD64=v3") self._write_strip("GOAMD64=v3")
self._write_strip("pushd clr-build-apx") self._write_strip("pushd clr-build-apx")
self._write_strip("%s_va %s || :\n" % (self.config.install_macro, self.config.extra_make_install)) self._write_strip("%s_va %s || :\n" % (self.config.install_macro, self.config.extra_make_install))
self._write_strip("popd") self._write_strip("popd")
self._write_strip("popd")
if self.config.config_opts['openmpi']: if self.config.config_opts['openmpi']:
self._write_strip("pushd ../build-openmpi/" + self.config.subdir)
self._write_strip("GOAMD64=v3") self._write_strip("GOAMD64=v3")
self._write_strip("pushd clr-build-openmpi") self._write_strip("pushd clr-build-openmpi")
self.write_install_openmpi() self.write_install_openmpi()
self._write_strip("popd") self._write_strip("popd")
self._write_strip("popd")
if self.config.subdir:
self._write_strip("pushd " + self.config.subdir)
self._write_strip("GOAMD64=v2") self._write_strip("GOAMD64=v2")
self._write_strip("pushd clr-build") self._write_strip("pushd clr-build")
@@ -1130,6 +1097,7 @@ class Specfile(object):
self._write_strip("pushd ../buildapx/" + self.config.subdir) self._write_strip("pushd ../buildapx/" + self.config.subdir)
self.write_build_prepend() self.write_build_prepend()
self._write_strip("GOAMD64=v3") self._write_strip("GOAMD64=v3")
self._write_strip('CC="gcc-14"')
self._write_strip(f'CFLAGS="$CLEAR_INTERMEDIATE_CFLAGS {APX_CFLAGS} {APX_LFLAGS} "') self._write_strip(f'CFLAGS="$CLEAR_INTERMEDIATE_CFLAGS {APX_CFLAGS} {APX_LFLAGS} "')
self._write_strip(f'CXXFLAGS="$CLEAR_INTERMEDIATE_CXXFLAGS {AVX2_CFLAGS} {AVX2_LFLAGS} "') self._write_strip(f'CXXFLAGS="$CLEAR_INTERMEDIATE_CXXFLAGS {AVX2_CFLAGS} {AVX2_LFLAGS} "')
self._write_strip(f'FFLAGS="$CLEAR_INTERMEDIATE_FFLAGS {APX_CFLAGS} {APX_LFLAGS} "') self._write_strip(f'FFLAGS="$CLEAR_INTERMEDIATE_FFLAGS {APX_CFLAGS} {APX_LFLAGS} "')
@@ -1235,6 +1203,7 @@ class Specfile(object):
self._write_strip("pushd ../buildapx/" + self.config.subdir) self._write_strip("pushd ../buildapx/" + self.config.subdir)
self.write_build_prepend() self.write_build_prepend()
self._write_strip("GOAMD64=v3") self._write_strip("GOAMD64=v3")
self._write_strip('CC="gcc-14"')
self._write_strip(f'CFLAGS="$CLEAR_INTERMEDIATE_CFLAGS {APX_CFLAGS} {APX_LFLAGS} "') self._write_strip(f'CFLAGS="$CLEAR_INTERMEDIATE_CFLAGS {APX_CFLAGS} {APX_LFLAGS} "')
self._write_strip(f'CXXFLAGS="$CLEAR_INTERMEDIATE_CXXFLAGS {AVX2_CFLAGS} {AVX2_LFLAGS} "') self._write_strip(f'CXXFLAGS="$CLEAR_INTERMEDIATE_CXXFLAGS {AVX2_CFLAGS} {AVX2_LFLAGS} "')
self._write_strip(f'FFLAGS="$CLEAR_INTERMEDIATE_FFLAGS {APX_CFLAGS} {APX_LFLAGS} "') self._write_strip(f'FFLAGS="$CLEAR_INTERMEDIATE_FFLAGS {APX_CFLAGS} {APX_LFLAGS} "')
@@ -1295,6 +1264,7 @@ class Specfile(object):
self._write_strip("pushd ../buildapx" + self.config.subdir) self._write_strip("pushd ../buildapx" + self.config.subdir)
self.write_build_prepend() self.write_build_prepend()
self._write_strip("GOAMD64=v3") self._write_strip("GOAMD64=v3")
self._write_strip('CC=gcc-14')
self._write_strip(f'CFLAGS="$CLEAR_INTERMEDIATE_CFLAGS {APX_CFLAGS} {APX_LFLAGS} "') self._write_strip(f'CFLAGS="$CLEAR_INTERMEDIATE_CFLAGS {APX_CFLAGS} {APX_LFLAGS} "')
self._write_strip(f'CXXFLAGS="$CLEAR_INTERMEDIATE_CXXFLAGS {AVX2_CFLAGS} {AVX2_LFLAGS} "') self._write_strip(f'CXXFLAGS="$CLEAR_INTERMEDIATE_CXXFLAGS {AVX2_CFLAGS} {AVX2_LFLAGS} "')
self._write_strip(f'FFLAGS="$CLEAR_INTERMEDIATE_FFLAGS {APX_CFLAGS} {APX_LFLAGS} "') self._write_strip(f'FFLAGS="$CLEAR_INTERMEDIATE_FFLAGS {APX_CFLAGS} {APX_LFLAGS} "')
@@ -1372,6 +1342,7 @@ class Specfile(object):
self._write_strip("pushd ../buildapx/" + self.config.subdir) self._write_strip("pushd ../buildapx/" + self.config.subdir)
self.write_build_prepend() self.write_build_prepend()
self._write_strip("GOAMD64=v3") self._write_strip("GOAMD64=v3")
self._write_strip('CC=gcc-14')
self._write_strip(f'CFLAGS="$CLEAR_INTERMEDIATE_CFLAGS {APX_CFLAGS} {APX_LFLAGS} "') self._write_strip(f'CFLAGS="$CLEAR_INTERMEDIATE_CFLAGS {APX_CFLAGS} {APX_LFLAGS} "')
self._write_strip(f'CXXFLAGS="$CLEAR_INTERMEDIATE_CXXFLAGS {AVX2_CFLAGS} {AVX2_LFLAGS} "') self._write_strip(f'CXXFLAGS="$CLEAR_INTERMEDIATE_CXXFLAGS {AVX2_CFLAGS} {AVX2_LFLAGS} "')
self._write_strip(f'FFLAGS="$CLEAR_INTERMEDIATE_FFLAGS {APX_CFLAGS} {APX_LFLAGS} "') self._write_strip(f'FFLAGS="$CLEAR_INTERMEDIATE_FFLAGS {APX_CFLAGS} {APX_LFLAGS} "')
@@ -1416,6 +1387,7 @@ class Specfile(object):
if self.config.config_opts['use_apx'] and not self.config.config_opts['use_clang']: if self.config.config_opts['use_apx'] and not self.config.config_opts['use_clang']:
self._write_strip("pushd ../buildapx/" + self.config.subdir) self._write_strip("pushd ../buildapx/" + self.config.subdir)
self.write_build_prepend() self.write_build_prepend()
self._write_strip('CC=gcc-14')
self._write_strip(f'CFLAGS="$CLEAR_INTERMEDIATE_CFLAGS {APX_CFLAGS} {APX_LFLAGS} "') self._write_strip(f'CFLAGS="$CLEAR_INTERMEDIATE_CFLAGS {APX_CFLAGS} {APX_LFLAGS} "')
self._write_strip(f'CXXFLAGS="$CLEAR_INTERMEDIATE_CXXFLAGS {AVX2_CFLAGS} {AVX2_LFLAGS} "') self._write_strip(f'CXXFLAGS="$CLEAR_INTERMEDIATE_CXXFLAGS {AVX2_CFLAGS} {AVX2_LFLAGS} "')
self._write_strip(f'FFLAGS="$CLEAR_INTERMEDIATE_FFLAGS {APX_CFLAGS} {APX_LFLAGS} "') self._write_strip(f'FFLAGS="$CLEAR_INTERMEDIATE_FFLAGS {APX_CFLAGS} {APX_LFLAGS} "')
@@ -1463,6 +1435,7 @@ class Specfile(object):
if self.config.config_opts['use_apx'] and not self.config.config_opts['use_clang']: if self.config.config_opts['use_apx'] and not self.config.config_opts['use_clang']:
self._write_strip("pushd ../buildapx/" + self.config.subdir) self._write_strip("pushd ../buildapx/" + self.config.subdir)
self._write_strip('CC=gcc-14')
self._write_strip(f'CFLAGS="$CLEAR_INTERMEDIATE_CFLAGS {APX_CFLAGS} {APX_LFLAGS} "') self._write_strip(f'CFLAGS="$CLEAR_INTERMEDIATE_CFLAGS {APX_CFLAGS} {APX_LFLAGS} "')
self._write_strip(f'CXXFLAGS="$CLEAR_INTERMEDIATE_CXXFLAGS {AVX2_CFLAGS} {AVX2_LFLAGS} "') self._write_strip(f'CXXFLAGS="$CLEAR_INTERMEDIATE_CXXFLAGS {AVX2_CFLAGS} {AVX2_LFLAGS} "')
self._write_strip(f'FFLAGS="$CLEAR_INTERMEDIATE_FFLAGS {APX_CFLAGS} {APX_LFLAGS} "') self._write_strip(f'FFLAGS="$CLEAR_INTERMEDIATE_FFLAGS {APX_CFLAGS} {APX_LFLAGS} "')
@@ -1505,6 +1478,7 @@ class Specfile(object):
if self.config.config_opts['use_apx'] and not self.config.config_opts['use_clang']: if self.config.config_opts['use_apx'] and not self.config.config_opts['use_clang']:
self._write_strip("pushd ../buildapx/" + self.config.subdir) self._write_strip("pushd ../buildapx/" + self.config.subdir)
self.write_build_prepend() self.write_build_prepend()
self._write_strip('CC=gcc-14')
self._write_strip(f'CFLAGS="$CLEAR_INTERMEDIATE_CFLAGS {APX_CFLAGS} {APX_LFLAGS} "') self._write_strip(f'CFLAGS="$CLEAR_INTERMEDIATE_CFLAGS {APX_CFLAGS} {APX_LFLAGS} "')
self._write_strip(f'CXXFLAGS="$CLEAR_INTERMEDIATE_CXXFLAGS {AVX2_CFLAGS} {AVX2_LFLAGS} "') self._write_strip(f'CXXFLAGS="$CLEAR_INTERMEDIATE_CXXFLAGS {AVX2_CFLAGS} {AVX2_LFLAGS} "')
self._write_strip(f'FFLAGS="$CLEAR_INTERMEDIATE_FFLAGS {APX_CFLAGS} {APX_LFLAGS} "') self._write_strip(f'FFLAGS="$CLEAR_INTERMEDIATE_FFLAGS {APX_CFLAGS} {APX_LFLAGS} "')
@@ -1549,6 +1523,7 @@ class Specfile(object):
if self.config.config_opts['use_apx'] and not self.config.config_opts['use_clang']: if self.config.config_opts['use_apx'] and not self.config.config_opts['use_clang']:
self._write_strip("pushd ../buildapx/" + self.config.subdir) self._write_strip("pushd ../buildapx/" + self.config.subdir)
self._write_strip('CC=gcc-14')
self._write_strip(f'CFLAGS="$CLEAR_INTERMEDIATE_CFLAGS {APX_CFLAGS} {APX_LFLAGS} "') self._write_strip(f'CFLAGS="$CLEAR_INTERMEDIATE_CFLAGS {APX_CFLAGS} {APX_LFLAGS} "')
self._write_strip(f'CXXFLAGS="$CLEAR_INTERMEDIATE_CXXFLAGS {AVX2_CFLAGS} {AVX2_LFLAGS} "') self._write_strip(f'CXXFLAGS="$CLEAR_INTERMEDIATE_CXXFLAGS {AVX2_CFLAGS} {AVX2_LFLAGS} "')
self._write_strip(f'FFLAGS="$CLEAR_INTERMEDIATE_FFLAGS {APX_CFLAGS} {APX_LFLAGS} "') self._write_strip(f'FFLAGS="$CLEAR_INTERMEDIATE_FFLAGS {APX_CFLAGS} {APX_LFLAGS} "')
@@ -1664,22 +1639,14 @@ class Specfile(object):
self._write_strip("pushd clr-build") self._write_strip("pushd clr-build")
self.write_variables() self.write_variables()
self._write_strip("export GOAMD64=v2") self._write_strip("export GOAMD64=v2")
if self.config.config_opts['use_ninja']: self._write_strip("%cmake {} {}".format(self.config.cmake_srcdir, self.extra_cmake))
cmake_type = "-G Ninja"
else:
cmake_type = "-G 'Unix Makefiles'"
self._write_strip(f"%cmake {self.config.cmake_srcdir} {self.extra_cmake} {cmake_type}")
self.write_profile_payload("cmake") self.write_profile_payload("cmake")
self.write_make_line() self.write_make_line()
self._write_strip("popd") self._write_strip("popd")
if self.config.subdir:
self._write_strip("popd")
if self.config.config_opts['use_avx2']: if self.config.config_opts['use_avx2']:
self._write_strip("pushd ../buildavx2/" + self.config.subdir)
self._write_strip("mkdir -p clr-build-avx2") self._write_strip("mkdir -p clr-build-avx2")
self._write_strip("pushd clr-build-avx2") self._write_strip("pushd clr-build-avx2")
self.write_build_prepend() self.write_build_prepend()
@@ -1689,13 +1656,11 @@ class Specfile(object):
self._write_strip(f'CXXFLAGS="$CLEAR_INTERMEDIATE_CXXFLAGS {AVX2_CFLAGS} {AVX2_LFLAGS} "') self._write_strip(f'CXXFLAGS="$CLEAR_INTERMEDIATE_CXXFLAGS {AVX2_CFLAGS} {AVX2_LFLAGS} "')
self._write_strip(f'FFLAGS="$CLEAR_INTERMEDIATE_FFLAGS {AVX2_CFLAGS} {AVX2_LFLAGS} "') self._write_strip(f'FFLAGS="$CLEAR_INTERMEDIATE_FFLAGS {AVX2_CFLAGS} {AVX2_LFLAGS} "')
self._write_strip(f'FCFLAGS="$CLEAR_INTERMEDIATE_FCFLAGS {AVX2_CFLAGS} "') self._write_strip(f'FCFLAGS="$CLEAR_INTERMEDIATE_FCFLAGS {AVX2_CFLAGS} "')
self._write_strip(f"%cmake {self.config.cmake_srcdir} {self.extra_cmake} {cmake_type}") self._write_strip("%cmake {} {}".format(self.config.cmake_srcdir, self.extra_cmake))
self.write_make_line() self.write_make_line()
self._write_strip("popd") self._write_strip("popd")
self._write_strip("popd")
if self.config.config_opts['use_avx512']: if self.config.config_opts['use_avx512']:
self._write_strip("pushd ../buildavx512/" + self.config.subdir)
self._write_strip("mkdir -p clr-build-avx512") self._write_strip("mkdir -p clr-build-avx512")
self._write_strip("pushd clr-build-avx512") self._write_strip("pushd clr-build-avx512")
self.write_build_prepend() self.write_build_prepend()
@@ -1705,29 +1670,26 @@ class Specfile(object):
self._write_strip(f'CXXFLAGS="$CLEAR_INTERMEDIATE_CXXFLAGS {AVX512_CFLAGS} {AVX512_LFLAGS} "') self._write_strip(f'CXXFLAGS="$CLEAR_INTERMEDIATE_CXXFLAGS {AVX512_CFLAGS} {AVX512_LFLAGS} "')
self._write_strip(f'FFLAGS="$CLEAR_INTERMEDIATE_FFLAGS {AVX512_CFLAGS} {AVX512_LFLAGS} "') self._write_strip(f'FFLAGS="$CLEAR_INTERMEDIATE_FFLAGS {AVX512_CFLAGS} {AVX512_LFLAGS} "')
self._write_strip(f'FCFLAGS="$CLEAR_INTERMEDIATE_FCFLAGS {AVX512_CFLAGS} "') self._write_strip(f'FCFLAGS="$CLEAR_INTERMEDIATE_FCFLAGS {AVX512_CFLAGS} "')
self._write_strip(f"%cmake {self.config.cmake_srcdir} {self.extra_cmake} {cmake_type}") self._write_strip("%cmake {} {}".format(self.config.cmake_srcdir, self.extra_cmake))
self.write_make_line() self.write_make_line()
self._write_strip("popd") self._write_strip("popd")
self._write_strip("popd")
if self.config.config_opts['use_apx'] and not self.config.config_opts['use_clang']: if self.config.config_opts['use_apx'] and not self.config.config_opts['use_clang']:
self._write_strip("pushd ../buildapx/" + self.config.subdir)
self._write_strip("mkdir -p clr-build-apx") self._write_strip("mkdir -p clr-build-apx")
self._write_strip("pushd clr-build-apx") self._write_strip("pushd clr-build-apx")
self.write_build_prepend() self.write_build_prepend()
self.write_variables() self.write_variables()
self._write_strip("GOAMD64=v3") self._write_strip("GOAMD64=v3")
self._write_strip('CC=gcc-14')
self._write_strip(f'CFLAGS="$CLEAR_INTERMEDIATE_CFLAGS {APX_CFLAGS} {APX_LFLAGS} "') self._write_strip(f'CFLAGS="$CLEAR_INTERMEDIATE_CFLAGS {APX_CFLAGS} {APX_LFLAGS} "')
self._write_strip(f'CXXFLAGS="$CLEAR_INTERMEDIATE_CXXFLAGS {AVX2_CFLAGS} {AVX2_LFLAGS} "') self._write_strip(f'CXXFLAGS="$CLEAR_INTERMEDIATE_CXXFLAGS {AVX2_CFLAGS} {AVX2_LFLAGS} "')
self._write_strip(f'FFLAGS="$CLEAR_INTERMEDIATE_FFLAGS {APX_CFLAGS} {APX_LFLAGS} "') self._write_strip(f'FFLAGS="$CLEAR_INTERMEDIATE_FFLAGS {APX_CFLAGS} {APX_LFLAGS} "')
self._write_strip(f'FCFLAGS="$CLEAR_INTERMEDIATE_FCFLAGS {APX_CFLAGS} "') self._write_strip(f'FCFLAGS="$CLEAR_INTERMEDIATE_FCFLAGS {APX_CFLAGS} "')
self._write_strip(f"%cmake {self.config.cmake_srcdir} {self.extra_cmake} {cmake_type}") self._write_strip("%cmake {} {}".format(self.config.cmake_srcdir, self.extra_cmake))
self.write_make_line() self.write_make_line()
self._write_strip("popd") self._write_strip("popd")
self._write_strip("popd")
if self.config.config_opts['32bit']: if self.config.config_opts['32bit']:
self._write_strip("pushd ../build32/" + self.config.subdir)
self._write_strip("mkdir -p clr-build32") self._write_strip("mkdir -p clr-build32")
self._write_strip("pushd clr-build32") self._write_strip("pushd clr-build32")
self.write_build_prepend() self.write_build_prepend()
@@ -1736,14 +1698,12 @@ class Specfile(object):
self._write_strip("%cmake -DLIB_INSTALL_DIR:PATH=/usr/lib32 " self._write_strip("%cmake -DLIB_INSTALL_DIR:PATH=/usr/lib32 "
"-DCMAKE_INSTALL_LIBDIR=/usr/lib32 " "-DCMAKE_INSTALL_LIBDIR=/usr/lib32 "
"-DLIB_SUFFIX=32 " "-DLIB_SUFFIX=32 "
f"{self.config.cmake_srcdir} {self.extra_cmake} {cmake_type}") "{} {} ".format(self.config.cmake_srcdir, self.extra_cmake))
self.write_make_line() self.write_make_line()
self._write_strip("unset PKG_CONFIG_PATH") self._write_strip("unset PKG_CONFIG_PATH")
self._write_strip("popd") self._write_strip("popd")
self._write_strip("popd")
if self.config.config_opts['openmpi']: if self.config.config_opts['openmpi']:
self._write_strip("pushd ../build-openmpi/" + self.config.subdir)
self._write_strip("mkdir -p clr-build-openmpi") self._write_strip("mkdir -p clr-build-openmpi")
self._write_strip("pushd clr-build-openmpi") self._write_strip("pushd clr-build-openmpi")
self._write_strip(". /usr/share/defaults/etc/profile.d/modules.sh") self._write_strip(". /usr/share/defaults/etc/profile.d/modules.sh")
@@ -1759,6 +1719,8 @@ class Specfile(object):
self.write_make_line() self.write_make_line()
self._write_strip("module unload openmpi") self._write_strip("module unload openmpi")
self._write_strip("popd") self._write_strip("popd")
if self.config.subdir:
self._write_strip("popd") self._write_strip("popd")
self._write_strip("\n") self._write_strip("\n")
@@ -1924,6 +1886,7 @@ class Specfile(object):
self._write_strip('ninja -v -C builddiravx512') self._write_strip('ninja -v -C builddiravx512')
if self.config.config_opts['use_apx'] and not self.config.config_opts['use_clang']: if self.config.config_opts['use_apx'] and not self.config.config_opts['use_clang']:
self._write_strip("GOAMD64=v3") self._write_strip("GOAMD64=v3")
self._write_strip('CC=gcc-14')
if self.config.config_opts['pgo'] and self.config.profile_payload != "": if self.config.config_opts['pgo'] and self.config.profile_payload != "":
self._write_strip(f'CFLAGS="$CFLAGS_GENERATE {APX_CFLAGS} {APX_LFLAGS} "' self._write_strip(f'CFLAGS="$CFLAGS_GENERATE {APX_CFLAGS} {APX_LFLAGS} "'
f' CXXFLAGS="$CXXFLAGS_GENERATE {AVX2_CFLAGS} {AVX2_LFLAGS} "' f' CXXFLAGS="$CXXFLAGS_GENERATE {AVX2_CFLAGS} {AVX2_LFLAGS} "'
@@ -1994,6 +1957,7 @@ class Specfile(object):
self._write_strip('DESTDIR=%{buildroot}-v4 ninja -C builddiravx512 install') self._write_strip('DESTDIR=%{buildroot}-v4 ninja -C builddiravx512 install')
if self.config.config_opts['use_apx'] and not self.config.config_opts['use_clang']: if self.config.config_opts['use_apx'] and not self.config.config_opts['use_clang']:
self._write_strip("GOAMD64=v3") self._write_strip("GOAMD64=v3")
self._write_strip('CC=gcc-14')
self._write_strip('DESTDIR=%{buildroot}-va ninja -C builddirapx install') self._write_strip('DESTDIR=%{buildroot}-va ninja -C builddirapx install')
self._write_strip("GOAMD64=v2") self._write_strip("GOAMD64=v2")
+25 -19
View File
@@ -26,8 +26,7 @@ import tarfile
import zipfile import zipfile
import download import download
import zstandard as zstd from util import call, do_regex, get_sha1sum, print_fatal, write_out
from util import do_regex, get_sha1sum, print_fatal, write_out
class Source(): class Source():
@@ -54,8 +53,6 @@ class Source():
self.type = 'zip' self.type = 'zip'
elif self.url.lower().endswith(('.bz2')) and not self.url.lower().endswith(('.tar.bz2')): elif self.url.lower().endswith(('.bz2')) and not self.url.lower().endswith(('.tar.bz2')):
self.type = 'bz2' self.type = 'bz2'
elif self.url.lower().endswith('.zst'):
self.type = 'zst'
else: else:
self.type = 'tar' self.type = 'tar'
@@ -84,16 +81,6 @@ class Source():
print_fatal("Not a valid tar file.") print_fatal("Not a valid tar file.")
sys.exit(1) sys.exit(1)
def set_zst_prefix(self):
"""Determine prefix folder name of tar.zst file."""
with tarfile.open(fileobj=zstd.open(self.path, 'rb'), mode='r|') as content:
lines = content.getnames()
if len(lines) == 0:
print_fatal("Zstd compressed tar file doesn't appear to have any content")
sys.exit(1)
elif len(lines) > 1:
self.prefix = os.path.commonpath(lines)
def set_bz2_prefix(self): def set_bz2_prefix(self):
"""No prefix for plain bz2 archives.""" """No prefix for plain bz2 archives."""
@@ -141,11 +128,6 @@ class Source():
with zipfile.ZipFile(self.path, 'r') as content: with zipfile.ZipFile(self.path, 'r') as content:
content.extractall(path=extraction_path) content.extractall(path=extraction_path)
def extract_zst(self, extraction_path):
"""Extract zst in path."""
with tarfile.open(fileobj=zstd.open(self.path, 'rb'), mode='r|') as content:
content.extractall(path=extraction_path)
def convert_version(ver_str, name): def convert_version(ver_str, name):
"""Remove disallowed characters from the version.""" """Remove disallowed characters from the version."""
@@ -202,6 +184,7 @@ class Content():
self.prefixes = dict() self.prefixes = dict()
self.config = config self.config = config
self.base_path = base_path self.base_path = base_path
self.autogenerated_tarball = None
def write_upstream(self, sha, tarfile, mode="w"): def write_upstream(self, sha, tarfile, mode="w"):
"""Write the upstream hash to the upstream file.""" """Write the upstream hash to the upstream file."""
@@ -231,6 +214,14 @@ class Content():
main_src = Source(url, '', src_path, self.config.default_pattern) main_src = Source(url, '', src_path, self.config.default_pattern)
return main_src return main_src
def process_autogenerated_source(self, url):
"""Download any autogenerated source tarball for comparison."""
autogenerated_src = None
if url:
src_path = self.check_or_get_file(url, os.path.basename(url), mode="")
autogenerated_src = Source(url, '../autogenerated-tmp', src_path, self.config.default_pattern)
return autogenerated_src
def print_header(self): def print_header(self):
"""Print header for autospec run.""" """Print header for autospec run."""
print("\n") print("\n")
@@ -313,6 +304,9 @@ class Content():
name = re.sub(r"release-", '', name) name = re.sub(r"release-", '', name)
name = re.sub(r"\d*$", '', name) name = re.sub(r"\d*$", '', name)
self.rawname = name self.rawname = name
# Identify the auto-generated tarball URL for comparison
if "/releases/download/" in self.url:
self.autogenerated_tarball = "https://github.com/" + match.group(1).strip() + "/" + self.repo + "/archive/refs/tags/" + match.group(3).strip() + ".tar.gz"
version = match.group(3).replace(name, '') version = match.group(3).replace(name, '')
if "/archive/" not in self.url: if "/archive/" not in self.url:
version = re.sub(r"^[-_.a-zA-Z]+", "", version) version = re.sub(r"^[-_.a-zA-Z]+", "", version)
@@ -445,3 +439,15 @@ class Content():
archives_src = self.process_archives() archives_src = self.process_archives()
# Extract all sources # Extract all sources
self.extract_sources(main_src, archives_src) self.extract_sources(main_src, archives_src)
# Download and process any auto-generated source-tree archive for comparison
autogenerated_src = self.process_autogenerated_source(self.autogenerated_tarball)
# Extract autogenerated source for comparison
if autogenerated_src:
autogenerated_src.extract(os.path.join(self.base_path, 'autogenerated-tmp'))
# Move the autogenerated source to a non-version-named directory for consistent diffs
call(f"mv autogenerated-tmp/{autogenerated_src.prefix} autogenerated", check=True, cwd=self.base_path)
call("diff -u -r --unidirectional-new-file ../autogenerated ./",
logfile="archive.diff.in", check=False, cwd=os.path.join(self.base_path, main_src.prefix))
call("grep -A14 -E '^(diff|Only in)' archive.diff.in",
logfile="archive.diff", check=False, cwd=os.getcwd())
call("rm archive.diff.in", check=False, cwd=os.getcwd())
+3 -2
View File
@@ -150,8 +150,9 @@ def binary_in_path(binary):
def write_out(filename, content, mode="w"): def write_out(filename, content, mode="w"):
"""File.write convenience wrapper.""" """File.write convenience wrapper."""
with open_auto(filename, mode) as require_f: if mode:
require_f.write(content) with open_auto(filename, mode) as require_f:
require_f.write(content)
def open_auto(*args, **kwargs): def open_auto(*args, **kwargs):
-22
View File
@@ -402,7 +402,6 @@ class TestBuildreq(unittest.TestCase):
should be sufficient. should be sufficient.
""" """
conf = config.Config("") conf = config.Config("")
conf.config_opts['use_ninja'] = False
with tempfile.TemporaryDirectory() as tmpd: with tempfile.TemporaryDirectory() as tmpd:
os.mkdir(os.path.join(tmpd, 'subdir')) os.mkdir(os.path.join(tmpd, 'subdir'))
open(os.path.join(tmpd, 'setup.py'), 'w').close() open(os.path.join(tmpd, 'setup.py'), 'w').close()
@@ -419,7 +418,6 @@ class TestBuildreq(unittest.TestCase):
should be sufficient. should be sufficient.
""" """
conf = config.Config("") conf = config.Config("")
conf.config_opts['use_ninja'] = False
with tempfile.TemporaryDirectory() as tmpd: with tempfile.TemporaryDirectory() as tmpd:
os.mkdir(os.path.join(tmpd, 'subdir')) os.mkdir(os.path.join(tmpd, 'subdir'))
open(os.path.join(tmpd, 'CMakeLists.txt'), 'w').close() open(os.path.join(tmpd, 'CMakeLists.txt'), 'w').close()
@@ -436,7 +434,6 @@ class TestBuildreq(unittest.TestCase):
should be sufficient. should be sufficient.
""" """
conf = config.Config("") conf = config.Config("")
conf.config_opts['use_ninja'] = False
with tempfile.TemporaryDirectory() as tmpd: with tempfile.TemporaryDirectory() as tmpd:
os.mkdir(os.path.join(tmpd, 'subdir')) os.mkdir(os.path.join(tmpd, 'subdir'))
open(os.path.join(tmpd, 'SConstruct'), 'w').close() open(os.path.join(tmpd, 'SConstruct'), 'w').close()
@@ -453,7 +450,6 @@ class TestBuildreq(unittest.TestCase):
should be sufficient. should be sufficient.
""" """
conf = config.Config("") conf = config.Config("")
conf.config_opts['use_ninja'] = False
with tempfile.TemporaryDirectory() as tmpd: with tempfile.TemporaryDirectory() as tmpd:
os.mkdir(os.path.join(tmpd, 'subdir')) os.mkdir(os.path.join(tmpd, 'subdir'))
open(os.path.join(tmpd, 'meson.build'), 'w').close() open(os.path.join(tmpd, 'meson.build'), 'w').close()
@@ -484,7 +480,6 @@ class TestBuildreq(unittest.TestCase):
buildreq.pypidata.get_pypi_metadata = MagicMock(return_value=content) buildreq.pypidata.get_pypi_metadata = MagicMock(return_value=content)
with tempfile.TemporaryDirectory() as tmpd: with tempfile.TemporaryDirectory() as tmpd:
conf = config.Config(tmpd) conf = config.Config(tmpd)
conf.config_opts['use_ninja'] = False
os.mkdir(os.path.join(tmpd, 'subdir')) os.mkdir(os.path.join(tmpd, 'subdir'))
open(os.path.join(tmpd, 'subdir', 'pyproject.toml'), 'w').close() open(os.path.join(tmpd, 'subdir', 'pyproject.toml'), 'w').close()
self.reqs.scan_for_configure(os.path.join(tmpd, 'subdir'), "", conf) self.reqs.scan_for_configure(os.path.join(tmpd, 'subdir'), "", conf)
@@ -517,7 +512,6 @@ class TestBuildreq(unittest.TestCase):
m_open = mock_open(read_data=content) m_open = mock_open(read_data=content)
with tempfile.TemporaryDirectory() as tmpd: with tempfile.TemporaryDirectory() as tmpd:
conf = config.Config(tmpd) conf = config.Config(tmpd)
conf.config_opts['use_ninja'] = False
os.mkdir(os.path.join(tmpd, 'subdir')) os.mkdir(os.path.join(tmpd, 'subdir'))
open(os.path.join(tmpd, 'subdir', 'pyproject.toml'), 'w').close() open(os.path.join(tmpd, 'subdir', 'pyproject.toml'), 'w').close()
open(os.path.join(tmpd, 'pypi.json'), 'w').close() open(os.path.join(tmpd, 'pypi.json'), 'w').close()
@@ -543,7 +537,6 @@ class TestBuildreq(unittest.TestCase):
with tempfile.TemporaryDirectory() as tmpd: with tempfile.TemporaryDirectory() as tmpd:
conf = config.Config(tmpd) conf = config.Config(tmpd)
conf.config_opts['use_ninja'] = False
os.mkdir(os.path.join(tmpd, 'subdir')) os.mkdir(os.path.join(tmpd, 'subdir'))
open(os.path.join(tmpd, 'subdir', 'setup.py'), 'w').close() open(os.path.join(tmpd, 'subdir', 'setup.py'), 'w').close()
open(os.path.join(tmpd, 'subdir', 'requires.txt'), 'w').close() open(os.path.join(tmpd, 'subdir', 'requires.txt'), 'w').close()
@@ -553,21 +546,6 @@ class TestBuildreq(unittest.TestCase):
self.reqs.add_setup_py_requires.assert_called_once() self.reqs.add_setup_py_requires.assert_called_once()
self.reqs.grab_python_requirements.assert_called_once() self.reqs.grab_python_requirements.assert_called_once()
def test_scan_for_configure_ninja(self):
"""
Test scan_for_configure when ninja is enabled.
"""
conf = config.Config("")
conf.config_opts['use_ninja'] = True
with tempfile.TemporaryDirectory() as tmpd:
os.mkdir(os.path.join(tmpd, 'subdir'))
open(os.path.join(tmpd, 'setup.py'), 'w').close()
self.reqs.scan_for_configure(tmpd, "", conf)
self.assertEqual(self.reqs.buildreqs,
set(['buildreq-distutils3', 'ninja']))
def test_parse_cmake_pkg_check_modules(self): def test_parse_cmake_pkg_check_modules(self):
""" """
Test parse_cmake to ensure accurate detection of versioned and Test parse_cmake to ensure accurate detection of versioned and