b85ae9e1d6
When I tried to use my WIP client patches to do: `rpm-ostree rebase rojig://fahc:fedora-atomic-host`, I got a missing file object which turned out to be the client importing the i686 RPMs. This was passing in the test suite because we don't mirror i686 of course, but on the client side right now we end up using all enabled repos, and since Fedora is multiarch, the behavior is going to be...not predictable. Thinking a bit about on this problem I actually happened to recall the RPM `%{_isa}` macro which is used in Fedora in various places; for example to "arch bind" `-devel` packages to their base. See for example [this case](33c7dc02bc/f/ostree.spec (_79)
) in libostree. As I noted at first, the core problem here is that the "final" RPM architecture field is not symmetric in any way with the definition of that `%{_isa}` macro. See:d9d47e0114/installplatform (L25)
The *third* solution I ended up on here is to iterate over the `Provides` on the server side and we take the first thing that matches `Provides: %{name}(whatever)`. I briefly thought about trying to somehow drive into libsolv the logic to prefer the jigdoRPM's native architecture...IIRC yum did something like that in the past but it was never done in libsolv? Anyways the dependencies here are now more correct, so other tools will also handle it. Closes: #1213 Approved by: jlebon
29 lines
1.2 KiB
Bash
Executable File
29 lines
1.2 KiB
Bash
Executable File
#!/usr/bin/bash
|
|
# Install build dependencies, run unit tests and installed tests.
|
|
|
|
set -xeuo pipefail
|
|
|
|
dn=$(dirname $0)
|
|
. ${dn}/libbuild.sh
|
|
${dn}/build.sh
|
|
# NB: avoid make function because our RPM building doesn't
|
|
# support parallel runs right now
|
|
/usr/bin/make check
|
|
make install
|
|
|
|
# And now a clang build with -Werror turned on. We can't do this with gcc (in
|
|
# build.sh) because it doesn't support -Wno-error=macro-redefined, (and neither
|
|
# does clang on CentOS). Anyway, all we want is at least one clang run.
|
|
if test -x /usr/bin/clang; then
|
|
# Except unused-command-line-argument:
|
|
# error: argument unused during compilation: '-specs=/usr/lib/rpm/redhat/redhat-hardened -cc1' [-Werror,-Wunused-command-line-argument]
|
|
# Except for macro-redefined:
|
|
# /usr/include/python2.7/pyconfig-64.h:1199:9: error: '_POSIX_C_SOURCE' macro redefined
|
|
# Except for deprecated-declarations: libdnf python bindings uses deprecated
|
|
# functions
|
|
export CFLAGS="-Wall -Werror -Wno-error=deprecated-declarations -Wno-error=macro-redefined -Wno-error=unused-command-line-argument ${CFLAGS:-}"
|
|
export CC=clang
|
|
git clean -dfx && git submodule foreach git clean -dfx
|
|
build ${CONFIGOPTS:-}
|
|
fi
|