`make dist` may accidentially include previously-made dist tarballs;
this change adjusts the target to exclude these tarballs from the dist.
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
warewulf-dracut includes a dracut module to be installed in a container
image to support building an initramfs that can boot from Warewulf.
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
A recent security update breaks compatibility with CentOS 7 through
gpgme. This change omits building the API by default and does not build
it when packaging for EL 7.
- Closes#1171
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
Building protocol buffers requires fetching utilities from the
Internet. Typically this is done at development time and the finished
buffers are included in dist; but if timestamps get off this can lead
mock to try to rebuild them during an offline build, causing the build
to fail.
This change moves all of the protoc targets into a section of the
Makefile that is disabled during an offline build.
- Closes#1155
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
Move all overlay contents to a rootfs subdirectory, which was already
supported, and set ownership to root:root.
Closes#1078
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
Also the boot method is now configured globaly as this is
the only way to make sure that unkonwn nodes get the right
stuff
Signed-off-by: Christian Goll <cgoll@suse.com>
Contrary to #945, marking vendor as phony causes binaries to be re-built
on a repeated call to `make`. Though we can't determine when vendor
needs to be rebuilt, this is preferable to not knowing when Warewulf
binaries need to be rebuilt.
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
The vendor target can't reliably determine when it needs to run, so mark
it phony. At the same time, update go.mod.
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
Rather than implementing OFFLINE_BUILD individually within each relevant
target, define all such target dependencies once.
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
This allows `make` and `make all` to avoid unnecessary repeat builds,
and saves automatic generation of man pages for `install`.
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
Using a `config` variable in target dependencies allows the underlying
targets to be referenced properly, rather than passing through a "phony"
`config` target. This allows dependent targets to not have to re-run if
their dependencies have remained static, as expected.
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
The `all` target should be the default for make; but placing it after
the `include` directives allowed the targets within the included files
to take precedence.
Moving `all` before the `include` directives restores it to default
status.
I also used this opportunity to restore the `build` target as the
defining target, and then just set up a dependency between `all` and
`build`.
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
The previous PR #890 introduced a `Defaults.mk` target for defining
default variables for future calls to `make`. This functionality was
already present in a different form, but this new "real" target had an
unintended side-effect of causing the target to be called automatically
at reference, even the optional reference `-include Defaults.mk`. This
is undesirable as it causes the generation of defaults even during a
`make clean`.
This commit resolves these issues and further refactors the Makefile,
building on the work in #890, but with additional understanding:
* Convert the `Defaults.mk` target to the "phony" `defaults` target,
preventing automatic generation
* Refactor and split `clean` targets
* Update `cleanvendor` to reflect `OFFLINE_BUILD`, similar to the
`vendor` target
* Move "tools" targets into `Tools.mk`
* Add `ARCH` to `Variables.mk` for architecture-specific actions
Signed-off-by: Jonathon Anderson <janderson@ciq.com>