This release fixes a serious path error when mixes are not created in the
current mixer workspace as expected by default. The path for the output
(STATE_DIR) needs to be used to make this work anywhere.
Signed-off-by: Tudor Marcu <tudor.marcu@intel.com>
This release is largely a rewrite of the mixer scripts to reduce complexity
in using them, add a more robust helper library to minimize the code, and
enable certificate generation for Manifest.MoM signing so mixer users can
have signed content.
Signed-off-by: Tudor Marcu <tudor.marcu@intel.com>
When REPO_DIR is set, the actual binary might not exist at that location
(e.g. swupd-server might not have been compiled).
Add an additional dependency check for the REPO_DIR location.
Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>
Since create-update supports a custom location for the swupd-server
binaries, if that option is passed, it should be propogated to the
pack-maker, which also calls swupd_make_pack.
Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>
The files now call functions defined in the helper script to stay more minimal
and be easier to read. One very significant change to note is that all state
variables and information needed for mixing will now be stored and read in
the builder.conf. No longer will there be various hidden state files, with
the exception of the yum-mix.conf which is autogenerated by the template
still. This change simplifies the scripts calling convention and creates
one centralized point to specify the configuration(s) needed.
Signed-off-by: Tudor Marcu <tudor.marcu@intel.com>
This will do a lot of the ugly work that does not need to be taking up space
in the main scripts, and should be abstracted out so they are easier to read.
Signed-off-by: Tudor Marcu <tudor.marcu@intel.com>
This release adds support for specifying a certificate to insert into the
mix that the client would use to perform signature verification on a signed
Manifest.MoM.
Signed-off-by: Tudor Marcu <tudor.marcu@intel.com>
This release includes a fix to the hardlink call, fixes to the help menus,
script functionality to build a fully bootable image off the intial mix,
renaming the latest.version file to more appropriately match its use, and
adds a rewrite of pack-macker.
Signed-off-by: Tudor Marcu <tudor.marcu@intel.com>
The first aim of this patch is to centralize pack creation for SWUPD,
adding the ability to create zero packs in addition to delta packs.
Secondly, to make delta pack creation more flexible, instead of
considering the last N times a bundle changed, require the user to
specify the "from" version delta packs should be based on. More than one
--from option can be passed if several sets of delta packs need to be
built.
To facilitate these different modes of operation, I added option
parsing, also with --help output and some examples documented in the
script header.
Additionally, GNU Parallel is used to parallelize pack creation, instead
of shell job control facilities.
Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>
The content should only be built fully for a full Clear mix, as the user
may want to add and modify bundle definitions further for the first mix.
Signed-off-by: Tudor Marcu <tudor.marcu@intel.com>
Because the intent is to create hardlinks where possible within the
image/MIXVER directory tree, only the toplevel directory name needs to
be given. This avoids arbitrarily long command lines when the glob is
expanded by the shell.
Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>
This release adds the pack-maker and super-pack-maker scripts to mixer tools,
adds several options to the build scripts, script cleanup, and sanitizes an
important swupdrepo variable.
Signed-off-by: Tudor Marcu <tudor.marcu@intel.com>
For someone simply trying to get a full build of Clear with everything included,
this option makes doing that much easier. Simply passing -a will tell init-mix
to create the first mix with all bundles, instead of creating a minimal build.
Signed-off-by: Tudor Marcu <tudor.marcu@intel.com>
There may be cases where chroots are needed for the next build, such as when one
may want to use the same (or almost the same) content, and copying the previous
build contents would be much more efficient then re-creating it.
Signed-off-by: Tudor Marcu <tudor.marcu@intel.com>
- superpack-maker.sh
Create superpacks for each bundle in an update version. The
superpack replaces oldest pack in that directory (excluding
zero packs) and is a superset of updates needed for all newer
packs. Leaves a defined number of newest delta packs unchanged.
The remaining delta packs are symlinked to the superpack.
- create-update.sh
Define variables for superpack-maker.sh, call pack-maker.sh, and
call superpack-maker.sh
- Makefile.am
Install superpack-maker.sh
Signed-off-by: Matthew Johnson <matthew.johnson@intel.com>
The individual chroots are not needed after create-update finishes, so we can
remove them earlier and create more space for the fullfiles and pack creation.
Signed-off-by: Tudor Marcu <tudor.marcu@intel.com>
- Rename pack_maker.sh to pack-maker.sh for consistency with other
scripts
- Add pack-maker.sh to Makefile.am
This change is necessary to allow future scripts to call
mixer-pack-maker.sh without providing a path to the local repo,
which could change from environment to environment.
Signed-off-by: Matthew Johnson <matthew.johnson@intel.com>
This release fixes some corner cases that would cause the scripts to fail,
and imports the pack_maker.sh script into mixer to create packs more easily.
Signed-off-by: Tudor Marcu <tudor.marcu@intel.com>
Since delta pack creation is tied to a DevOps workflow, this script
makes more sense to live in the mixer-tools repo, and later be merged
into create-update.sh.
Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>
This release adds more options to the create-update.sh script, and adds some
more cleanup after building chroots.
Signed-off-by: Tudor Marcu <tudor.marcu@intel.com>
The files-* entries in the image dir are not needed after buildling chroots
since they are copied over to the webdir/VER/noship directory, so remove them.
Signed-off-by: Tudor Marcu <tudor.marcu@intel.com>
Create update now supports minversion, and --no-publish, so updates can be more
versatile and not update the latest version until the curator decides to do so.
Signed-off-by: Tudor Marcu <tudor.marcu@intel.com>
This release changes the structure and flow of how bundles are used in mixer.
There will be a repo for upstream Clear bundles, and a separate repo for mixer
-only bundles that the user will modify.
Signed-off-by: Tudor Marcu <tudor.marcu@intel.com>
To simplify things, there will now be a "clr-bundles" repo directory, which
will contain all of the Clear bundles from master and appropriate tags, and a
"mix-bundles" repo directory which will contain the bundles that the mixer
will use to generate mixes from. This separation removes the need to work with
a single repo and juggle both upstream bundles and custom ones, so the user
will have a full list of bundles to copy from if needed, and can focus on just
modifying their own bundle set.
Note, the clr-bundles directory should remain untouched; bundle modifications
should only be done in the mix-bundles directory.
Signed-off-by: Tudor Marcu <tudor.marcu@intel.com>
This release fixes create-update to only create 0 packs for changed bundles, and
removes all chroots except "full" after update creation to save space and speed
up time on hardlinking.
Signed-off-by: Tudor Marcu <tudor.marcu@intel.com>
The zero pack only needs to exist when a bundle manifest changed, otherwise the
zero pack exists in a previous version that was built already, so skip creating
them for unchanged bundles. Also clean up the bundle chroots because only "full"
is needed after an update is created.
Signed-off-by: Tudor Marcu <tudor.marcu@intel.com>
This release includes a fix when calling bundle-chroot-builder, and adds the
format option when calling create update.
Signed-off-by: Tudor Marcu <tudor.marcu@intel.com>
To avoid cluttering the workspace directory, archive the swupd log files
in a new "logs" directory within the workspace, separating the logs by
mix version.
Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>
This release applies fixes to sanitize input read from the builder.conf and cmd
line, adds cmd line options to the init-mix.sh script, and forces nosync on
chroot creation.
Signed-off-by: Tudor Marcu <tudor.marcu@intel.com>
Yum naturally does a lot of sync() calls for reliability and stability,
but we do not care if chroot building is killed by something as it can be
re-run without problems.
Signed-off-by: Tudor Marcu <tudor.marcu@intel.com>