104 Commits
Author SHA1 Message Date
Tudor Marcu 6c1c038896 Release v3.1.0
This release adds fixes to remove unsuccessful curl download files,
merges the git helper functions into a generic one to use for all future
git commands, and rewrites the cmd-line code to a more maintainable and
extensible implementation.

Signed-off-by: Tudor Marcu <tudor.marcu@intel.com>
v3.1.0
2017-08-24 15:30:18 -07:00
Caio Marcelo de Oliveira Filho 01bb863c3f Call check dependencies before doing work
Changed it to be a function in main.go instead of a method since it
wasn't using anything related to the Builder struct.

Minor tweaks to make code more idiomatic: avoid i for the non-index
variable in range, return an error instead of printing the error and
boolean.

Signed-off-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
2017-08-24 15:13:24 -07:00
Caio Marcelo de Oliveira Filho 149c17434a builder: remove the Get method
The method (and use of reflect package) is unnecessary when we are
using a literal string as argument.

Signed-off-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
2017-08-24 15:13:24 -07:00
Caio Marcelo de Oliveira Filho 4270a98458 Move command implementation to their own functions
Instead of having the flag specification, flag parsing, and command
processing in three different parts of the main function, move the
whole code for each command to its own function.

This patch also fixes the issue that build-all was always using the
default values of the flags, since the build-update specific flags
were not being added to its FlagSet. The problem was hard to see
because all commands shared the same scope.

Signed-off-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
2017-08-24 15:13:24 -07:00
Caio Marcelo de Oliveira Filho 90baf5a7b4 Avoid interface{} when not needed
Create a New variant that takes a configuration and returns a Builder
instead.

Signed-off-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
2017-08-24 15:13:24 -07:00
Caio Marcelo de Oliveira Filho 966ad1a646 Provide a help (and -h) command
Signed-off-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
2017-08-24 15:13:24 -07:00
Tudor Marcu c2e09da997 Update comments to account for future use
Signed-off-by: Tudor Marcu <tudor.marcu@intel.com>
2017-08-24 14:59:34 -07:00
Caio Marcelo de Oliveira Filho 738910ecf3 Merge git helper functions into one
And also dump the Stderr of the command to os.Stderr. Without a git
failure might not give enough information about what gone wrong,
e.g. when trying to call "git commit" without a user.email configured.

The commit message was changed to include the Clear version from which
the Mix was based off.

Signed-off-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
2017-08-24 14:55:41 -07:00
Caio Marcelo de Oliveira Filho 9c21172ea4 When HTTP download fails, don't keep the file around
Only create the file if the HTTP connection succeeds, and in case of
failure later on during download, remove the partial file.

This let the user retries the operation, otherwise the empty/partial
file will prevent the download. One of such cases is forgetting to set
the https_proxy.

Signed-off-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
2017-08-23 15:23:51 -07:00
Tudor Marcu f5c5726562 Release v3.06
This release fixes mixer to use absolute path for certificates so that
it can be run from different directories other than the workspace.

Signed-off-by: Tudor Marcu <tudor.marcu@intel.com>
v3.06
2017-08-09 14:31:21 -07:00
Tudor Marcu d56bec40d7 Use absolute path for certificates
Signed-off-by: Tudor Marcu <tudor.marcu@intel.com>
2017-08-09 14:31:14 -07:00
Tudor Marcu 8cb61dff16 Release v3.05
This release updates the name of the release tarball to 'mixer-tools',
and adds better validation to the version file reading.

Signed-off-by: Tudor Marcu <tudor.marcu@intel.com>
v3.05
2017-06-19 11:54:50 -07:00
Tudor Marcu a5eb816642 Change compressed name to 'mixer-tools'
Signed-off-by: Tudor Marcu <tudor.marcu@intel.com>
2017-06-19 11:45:58 -07:00
Tudor Marcu 2698d5017e Strip newline from version files
Signed-off-by: Tudor Marcu <tudor.marcu@intel.com>
2017-06-19 11:45:58 -07:00
Tudor Marcu ed401599ff Release v3.04
This release changes add-rpms to hardlink instead of copy if possible,
speeding up the operation when there are many local rpms, and falls back to
a regular copy if hardlinking fails.

Signed-off-by: Tudor Marcu <tudor.marcu@intel.com>
v3.04
2017-05-25 14:14:47 -07:00
Tudor Marcu c2990fc2b7 Hardlink rpms when calling add-rpms
To save time on copying fullfiles, just make a hardlink from the files in
RPMDIR to the REPODIR.

Signed-off-by: Tudor Marcu <tudor.marcu@intel.com>
2017-05-25 14:15:30 -07:00
Patrick McCarty 8c76142781 Release v3.03
This release fixes a bug for compatibility with the swupd-client v3.8.3
release; the /usr/share/clear/update-ca directory must now be manually
created in the os-core-update bundle before installing the certificate.

Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>
v3.03
2017-03-14 11:21:09 -07:00
Patrick McCarty 29f23c710e Ensure update-ca directory is created
Starting with swupd-client v3.8.3, the update-ca directory is no longer
created for the build, so the cert copy is failing. Fix the issue by
creating the directory before the copy operation.

Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>
2017-03-14 11:15:11 -07:00
Tudor Marcu 78460c05c9 Release v3.02
This release enables the build-all option which will generate all content
for a mix; this means: chroots, all update content (manifests, packs, etc),
and auto-increments the mixversion number so it can be run consecutively
without any user intervention between mixes.

Signed-off-by: Tudor Marcu <tudor.marcu@intel.com>
v3.02
2017-03-03 14:12:50 -08:00
Tudor Marcu ad408edaef Add build-all option to generate all content with one command
Signed-off-by: Tudor Marcu <tudor.marcu@intel.com>
2017-03-03 14:10:46 -08:00
Tudor Marcu eb891fece0 Release v3.01
This release enables auto-increment for builds and fixes a dependency error
in pack-maker.s

Signed-off-by: Tudor Marcu <tudor.marcu@intel.com>
v3.01
2017-03-03 11:51:03 -08:00
Tudor Marcu 2b47ca4e0b Add auto-increment flag to build-update
Signed-off-by: Tudor Marcu <tudor.marcu@intel.com>
2017-03-03 11:49:15 -08:00
Tudor Marcu 75aada8482 Remove dependency on deprecated helpers script
Signed-off-by: Tudor Marcu <tudor.marcu@intel.com>
2017-03-02 14:27:40 -08:00
Tudor Marcu 7e7982d043 Fix install command
Signed-off-by: Tudor Marcu <tudor.marcu@intel.com>
v3.0
2017-03-01 02:17:12 -08:00
Tudor Marcu 4e7b329242 Update Major version
Signed-off-by: Tudor Marcu <tudor.marcu@intel.com>
2017-03-01 02:07:00 -08:00
Tudor Marcu b671aba659 Introduce new mixer tool
The tools have been converted from many bash scripts into a single binary,
written in Go. This creates a codebase that is much easier to edit and
maintain, and a single tool that provides all the functionality needed. The
interface is more intuitive and easy to use as it provides options and menus
for each subcommand.

Signed-off-by: Tudor Marcu <tudor.marcu@intel.com>
2017-03-01 01:50:41 -08:00
Tudor Marcu 17897b54f7 Remove deprecated mixer-tools
The old tools will remain in the archaeology branch for historical reasons
and ease of cloning.

Signed-off-by: Tudor Marcu <tudor.marcu@intel.com>
2017-03-01 01:49:47 -08:00
Patrick McCarty 37e52b7541 Prefix tag names with refs/tags/
Because Clear version numbers use numeric digits only, it's possible for
the tag names to conflict with the prefix of a git object hash in the
repo. To remove the possibility of conflict, use the refs/tags/ prefix
when querying the tag names.

Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>
2017-02-27 11:27:22 -08:00
Patrick McCarty a3e26d8a35 Improve clr-bundles branch updates
With the current workflow, the "mix-bundles" repo is used for
mix-specific bundle changes, and the "clr-bundles" repo is treated as
read-only.

So in clr-bundles, the CLRVER_mix branches should always point to the
commit tagged with CLRVER. To make this handling more robust, first
verify that CLRVER exists and is a tag. Then create the CLRVER_mix
branch based on CLRVER, or if the branch already exists, reset it
appropriately.

Since this is the best place to detect invalid CLEAR_VERSION numbers
passed in the builder.conf, I've added that error handling too.

Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>
2017-02-27 11:27:22 -08:00
Robert Nesius 8bc6601539 Fixing mkdir line to be more resilient. (#19) 2017-01-16 21:32:32 -08:00
Tudor Marcu be5980983a Release v2.05
This release adds a new flag to enable auto-incrementing the mix version
when building mixes.

Signed-off-by: Tudor Marcu <tudor.marcu@intel.com>
v2.05
2017-01-09 12:21:50 -08:00
Tudor Marcu df981c3903 Declare increment variable
Signed-off-by: Tudor Marcu <tudor.marcu@intel.com>
2017-01-09 12:21:17 -08:00
Tudor Marcu 9e35b2ad98 Add option to auto increment mix version
Signed-off-by: Tudor Marcu <tudor.marcu@intel.com>
2017-01-09 11:46:01 -08:00
Tudor Marcu 318de5e793 Release v2.0.4
This release makes build-chroots.sh and check_dep() fail on error to properly
quit the build process when an error occurs. The chroot building script
would get passed the chroot install, and then continue to clean up which
would always return success.

Signed-off-by: Tudor Marcu <tudor.marcu@intel.com>
v2.04
2016-12-06 18:00:27 -08:00
Patrick McCarty ec5ddfd3eb helpers: fix error handling for dependency checks
Because 'set -e' is enabled for init-mix.sh, the exit status of 'type'
is not checked, so an error raised by 'type' would exit immediately, not
running the $? conditional logic.

To fix, disable 'set -e' for the dependency check function.

Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>
2016-12-06 16:10:35 -08:00
Patrick McCarty bf7f6c5f16 build-chroots: fail by default for errors
The rest of the mixer-tools scripts (excluding the pack makers) already
set this shell option, so add it to the build-chroots script too.

Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>
2016-12-06 16:10:07 -08:00
Tudor Marcu c6263daba6 Release v2.03
This release forces a check for the version numbers existence, which are
absolutely needed for the scripts to function properly.

Signed-off-by: Tudor Marcu <tudor.marcu@intel.com>
v2.03
2016-11-29 01:54:50 -08:00
Tudor Marcu 80da4998c0 Force version numbers to be set
Signed-off-by: Tudor Marcu <tudor.marcu@intel.com>
2016-11-28 16:02:15 -08:00
Tudor Marcu c0ea5bda2d Release v2.02
This release fixes a path error outputting the Manifest.MoM.sig to the wrong
location when using custom STATE_DIR.

Signed-off-by: Tudor Marcu <tudor.marcu@intel.com>
v2.02
2016-11-16 15:25:01 -08:00
Tudor Marcu 7a0f60453a Fix path error on signature output
Signed-off-by: Tudor Marcu <tudor.marcu@intel.com>
2016-11-16 15:23:55 -08:00
Tudor Marcu fdd587ecfa Release v2.01
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>
v2.01
2016-11-14 17:16:43 -08:00
Tudor Marcu 52f28e0425 Fix location of Manifest.MoM for signing
Signed-off-by: Tudor Marcu <tudor.marcu@intel.com>
2016-11-14 17:13:05 -08:00
Tudor Marcu f4087a3092 Release v2.0
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>
v2.0
2016-11-04 17:38:25 -07:00
Tudor Marcu 1194c64f5c Generate yum.conf only if it does not exist
Signed-off-by: Tudor Marcu <tudor.marcu@intel.com>
2016-11-03 17:03:45 -07:00
Patrick McCarty 42bdb973e7 Check if swupd_make_pack exists under REPO_DIR
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>
2016-10-28 10:45:26 -07:00
Tudor Marcu 76194adaaf Fix help menu style
Signed-off-by: Tudor Marcu <tudor.marcu@intel.com>
2016-10-27 18:59:11 -07:00
Tudor Marcu 0ec32bd76b Enable option to opt out of signing
Signed-off-by: Tudor Marcu <tudor.marcu@intel.com>
2016-10-27 18:50:26 -07:00
Patrick McCarty cf98a2fe34 Propogate repodir location to pack maker if set
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>
2016-10-27 18:38:11 -07:00
Tudor Marcu 8dd0aed5e4 Update all scripts to use new helper script
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>
2016-10-27 15:09:04 -07:00
Tudor Marcu 5dbc222b10 Add helpers file for the scripts to use
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>
2016-10-27 15:09:04 -07:00