Without --locked, cargo ignores the Cargo.lock file during install
and rebuilds the crate with updated dependencies.
This wastes time and makes builds unreproducable.
This forces all haskell-stack build-style using templates to use
the system ghc and never download any binary distributions even
if the version does not match. This is usually fine as long as
the stackage used for the template is recent enough. If it's
not, it should probably be bumped anyway.
This also enables stack to work on all platforms, even those for
which stack does not offer any binary ghc downloads, as long as
the system ghc is provided, e.g. for ppc64le.
ppc is the correct name which cmake reports in a native ppc32
environment, therefore the cross toolchain definition is wrong.
Closes: #12061 [via git-merge-pr]
Signed-off-by: Jürgen Buchmüller <pullmoll@t-online.de>
This reverts commit 6638dc5526.
Setting RelWithDebInfo can cause issues since cmake macros often handle
only Release or Debug build but not RelWithDebInf which might cause
issues https://github.com/void-linux/void-packages/pull/10948
It is advised to set -DCMAKE_BUILD_TYPE=RelWithDebInfo manually in
packages that ignore our CFLAGS or patch them to use them
closes#10948
Waf has a utility function ('lib64' in waflib/Utils.py) which
either returns an empty string or '64' depending on if either of
the paths '/usr/lib64' or '/usr/local/lib64' exist. Then, the
build system itself decides its default LIBDIR to be either
/usr/lib or /usr/lib64 depending on the result of that function,
except when libdir is passed explicitly.
We don't allow lib64 in our packages. We do have the /usr/lib64
path as that is a symlink. Therefore, do not ever allow waf to
configure the path that way.
This adds the build profiles for ppc64 targets as well as
modifications in other parts of the infra.
These targets are supported:
- ppc64le (glibc little endian elfv2)
- ppc64le-musl (musl little endian)
- ppc64-musl (musl big endian)
ELFv1 targets are explicitly not supported at this point.
Big endian musl supports ppc 970 or newer, while little endian
targets are set to a generic powerpc64le which effectively means
POWER8 and newer. Tuning is always set for POWER9, which is the
most likely target hardware. We also make sure AltiVec is always
on, because it is supported on all hardware we target.
[ci skip]
Adds support for Go modules by detecting a go.mod file and, if
available, using it. In addition, to continue supporting vendoring (and
avoid the need for git on all module builds), if a package includes
a vendor directory, the module mode will switch to vendor mode if not
already set. This will use vendored source code for dependencies
instead of downloading that code again using the descriptions under
go.mod.
go_mod_mode=vendor also skips the go.sum check because nothing is
downloaded that isn't already verified, so this fixes packages with
vendored code that have checksum mismatches due to Go 1.11.4 module
checksum changes.
[ci skip]
Closes: #6036 [via git-merge-pr]