We support tag names like
${package}-${version}
${package}-v${version}
${version}
v${version}
Now add support for things like
${package}-foo-bar-${version}
foo-bar-${version}
for example:
vulkan-sdk-1.3.275.0 for SPIRV-Headers
Implement a new target 'catchup' that will backport upstream commits
from the current package version to HEAD.
Implement a new target 'catchup-<commit|tag>' that will backport
upstream commits up to the target, as resolvable by git. This powers
'catchup'.
Rework the target 'backport-<commit>' to clone and use the upstream
git repository instead of using GitHub URLs. This also simplifies the
resolution of targets to full commit hashes, as needed to ensure unique
patch names and entries in 'series'.
'make catchup' will backport all the patches to catch this package up to
the upstream's HEAD
'make catchup-v5.0' will backport all the patches to catch this package
up to tag "v5.0" upstream.
'make catchup-ffdcba' will backport all the patches between this
package's current version and the upstream commit ffdcba.
'make backport-ffdcba' will backport ONLY upstream commit ffdcba.
All targets will produce patches named "backport-<commit>.patch", where
<commit> is the full SHA1 commit hash, regardless of whether you used an
abbreviated hash (or a tag, for catchup-%).
Patches are added to 'series' in chronological order, unless they're
already anywhere in that file.
For packages with a GitHub repo configured in options.conf, allow
downloading and applying backport patches via the 'backport-<commit>'
target. If given an abbreviated commit ID, it will still create a
backport-<commit>.patch file with the full commit hash, plus add it (if
it does not already exist) to the end of the series file.
Because this handles a single commit at a time, this should be wrappable
by a future Makefile target that applies individual commits to catch up
to a target tag, for example.
Some projects store multiple Cargo.toml files, let vendor handle all
of them (might be worth having some config for certain Cargo.toml
paths to skip in the future though).
Signed-off-by: William Douglas <william.douglas@intel.com>
In order to prevent content that wasn't committed from working its way
into a build, stash prior to doing the rest of the bump.
Signed-off-by: William Douglas <william.douglas@intel.com>
Sometimes vendor repos get tagged but the package fails to update for
another reason. In this case the repo wouldn't have the new vendor
ARCHIVE set and new attempts to build would use the old vendor archive
causing failures. Force using the latest vendor tag as generally this
is what we want (if we get a bad vendor tag somehow, it should mean a
new tag needs to be created to replace it anyway).
Signed-off-by: William Douglas <william.douglas@intel.com>
Avoid cases where user git settings cause files to have different line
endings than the package and cause hash mismatches when building.
Signed-off-by: William Douglas <william.douglas@intel.com>
Add environment variable that autospec uses to decide when to log
fatal errors to a special file used for the update process.
Also does the cleanup of the autospec created file for new autospec
runs.
Signed-off-by: William Douglas <william.douglas@intel.com>
autospec learned how to use 'cargo vendor' output as a drop in
configuration file so put the output of cargo vendor there.
Signed-off-by: William Douglas <william.douglas@intel.com>
Add additional capability for update target to read a package's
update.first file that will run make update on each of the packages
included in that file.
The intended usage model is for packages that need to be updated in
order to specify that order via the update.first (the packages are
updated in the order specified unless a package in the list also has
an update.first file).
As part of this change, force the update target to always build in
koji synchronously to avoid issues where the update being depended on
isn't finished in koji.
Loops are not supported and will cause problems.
Signed-off-by: William Douglas <william.douglas@intel.com>
Changes vendor from a target (it could still have a stand-alone target
but it wouldn't be used by the autospec target).
This change is needed because the Makefile is rewritten in the
autospec target but the ARCHIVES make variable is going to use the
value when make is executed. The common change causes the ARCHIVES
value to be eval'd during the autospec target execution in order for
the update from the vendor script to be seen by make.
The vendor script changes fix bugs in updating the options.conf and
Makefile. It also now handles returning the original ARCHIVES value as
well as prevent subshell scripts from outputting and adding badness
into the eval'd ARCHIVES variable.
Signed-off-by: William Douglas <william.douglas@intel.com>
Fix a couple of places where we're trying to remove files from the files
list while we're iterating through it -- replicate the change elsewhere
to keep a temporary list of the files to remove, then iterate through
*that* list after iterating through the global files list.
This file is used for spec and upstream content so updating it is
important for improving the build automation.
Signed-off-by: William Douglas <william.douglas@intel.com>
Add koji-tag and koji-untag targets that can be used to tag and untag
dist-clear on the current nvr build of the package in koji.
Signed-off-by: William Douglas <william.douglas@intel.com>
If something already exists in backup form, skip it, otherwise move
the content to the backup directory.
Signed-off-by: William Douglas <william.douglas@intel.com>
Add handling for a vendor target that will handle specific vendor
requirements from a package's options.conf.
The initial change adds handling for 'cargo vendor', creating a new
repo in the configured git repositiory and setting up the ARCHIVES
variable in the package's Makefile.
If the repo already exists, the tooling will check if a repo change
was detected after re-vendoring the sources. If a change is detected
the new content will be pushed and the ARCHIVES variable will be
updated.
Signed-off-by: William Douglas <william.douglas@intel.com>
This project will no longer be maintained by Intel.
Intel will not provide or guarantee development of or support for this project, including but not limited to, maintenance, bug fixes, new releases or updates. Patches to this project are no longer accepted by Intel. If you have an ongoing need to use this project, are interested in independently developing it, or would like to maintain patches for the community, please create your own fork of the project.
Contact: webadmin@linux.intel.com
# Developer tooling framework for Clear Linux
This repository includes scripts, configuration files, and makefiles that
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.