Your message dated Wed, 23 Nov 2022 09:30:20 +0100
with message-id <166919222058.8261.15002462664899505630@localhost>
and subject line Re: Bug#1024558: sbuild: incorrectly filters an architecture 
before building
has caused the Debian Bug report #1024558,
regarding sbuild: incorrectly filters an architecture before building
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
1024558: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1024558
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Source: sbuild
Version: 0.84.1
Severity: important

Hello, as said on irc this control file of llvm-toolchain-15 version 1:15.0.5-3
llvm-spirv-15 [ amd64 arm64 armel armhf mips64el mipsel ppc64el s390x ] 
<!stage1>

works correctly, while changing as done in 1:15.0.5-2


llvm-spirv-15 [ amd64 arm64 armel armhf mipsel ppc64el s390x ] <!stage1>
llvm-spirv-14 [ mips64el ] <!stage1>,

results in llvm-spirv-15 being filtered before build, and then build fails due 
to missing dependency.

(incidentally on mips64el everything is good)

See the sbuild output for -2 version

Merged Build-Depends: debhelper (>= 10.0), cmake, ninja-build, chrpath, texinfo, 
sharutils, libelf-dev, libffi-dev, lsb-release, patchutils, diffstat, xz-utils, 
python3-dev, libedit-dev, libncurses5-dev, swig, python3-six, python3-sphinx (>= 
1.3.6), binutils-dev, libxml2-dev, libjsoncpp-dev, pkg-config, lcov, procps, 
help2man, zlib1g-dev, g++-multilib, libjs-mathjax, python3-recommonmark, doxygen, 
gfortran, ocaml-base | ocaml-nox, ocaml-findlib, libctypes-ocaml-dev, dh-exec, 
dh-ocaml, libpfm4-dev, python3-setuptools, libz3-dev, spirv-tools | hello, 
libcurl4-dev, libgrpc++-dev, protobuf-compiler-grpc, libprotobuf-dev, 
protobuf-compiler, build-essential, fakeroot
Merged Build-Conflicts: oprofile
Filtered Build-Depends: debhelper (>= 10.0), cmake, ninja-build, chrpath, texinfo, 
sharutils, libelf-dev, libffi-dev, lsb-release, patchutils, diffstat, xz-utils, 
python3-dev, libedit-dev, libncurses5-dev, swig, python3-six, python3-sphinx (>= 
1.3.6), binutils-dev, libxml2-dev, libjsoncpp-dev, pkg-config, lcov, procps, 
help2man, zlib1g-dev, g++-multilib, libjs-mathjax, python3-recommonmark, doxygen, 
gfortran, ocaml-base, ocaml-findlib, libctypes-ocaml-dev, dh-exec, dh-ocaml, 
libpfm4-dev, python3-setuptools, libz3-dev, spirv-tools, libcurl4-dev, libgrpc++-dev, 
protobuf-compiler-grpc, libprotobuf-dev, protobuf-compiler, build-essential, fakeroot
Filtered Build-Conflicts: oprofile
dpkg-deb: building package 'sbuild-build-depends-main-dummy' in 
'/<<RESOLVERDIR>>/apt_archive/sbuild-build-depends-main-dummy.deb'.
[...]
dpkg-source: info: using options from 
llvm-toolchain-15-15.0.5/debian/source/options: 
--extend-diff-ignore=(^|/)(clang|clang-tools-extra|compiler-rt|CONTRIBUTING.md|debuginfo-tests|flang|integration-test-suite|libc|libclc|libcxx|libcxxabi|libunwind|lld|lldb|llvm|mlir|openmp|parallel-libs|polly|pstl|README.md|runtimes|utils|)
dpkg-checkbuilddeps: error: Unmet build dependencies: llvm-spirv-15 | 
llvm-spirv-14 | hello
dpkg-buildpackage: warning: build dependencies/conflicts unsatisfied; aborting
dpkg-buildpackage: warning: (Use -d flag to override.)

and for -3 fixed one

Merged Build-Depends: debhelper (>= 10.0), cmake, ninja-build, chrpath, texinfo, 
sharutils, libelf-dev, libffi-dev, lsb-release, patchutils, diffstat, xz-utils, 
python3-dev, libedit-dev, libncurses5-dev, swig, python3-six, python3-sphinx (>= 
1.3.6), binutils-dev, libxml2-dev, libjsoncpp-dev, pkg-config, lcov, procps, 
help2man, zlib1g-dev, g++-multilib, libjs-mathjax, python3-recommonmark, doxygen, 
gfortran, ocaml-base | ocaml-nox, ocaml-findlib, libctypes-ocaml-dev, dh-exec, 
dh-ocaml, libpfm4-dev, python3-setuptools, libz3-dev, llvm-spirv-15 | llvm-spirv-14 | 
hello, spirv-tools | hello, libcurl4-dev, libgrpc++-dev, protobuf-compiler-grpc, 
libprotobuf-dev, protobuf-compiler, build-essential, fakeroot
Merged Build-Conflicts: oprofile
Filtered Build-Depends: debhelper (>= 10.0), cmake, ninja-build, chrpath, texinfo, 
sharutils, libelf-dev, libffi-dev, lsb-release, patchutils, diffstat, xz-utils, 
python3-dev, libedit-dev, libncurses5-dev, swig, python3-six, python3-sphinx (>= 
1.3.6), binutils-dev, libxml2-dev, libjsoncpp-dev, pkg-config, lcov, procps, 
help2man, zlib1g-dev, g++-multilib, libjs-mathjax, python3-recommonmark, doxygen, 
gfortran, ocaml-base, ocaml-findlib, libctypes-ocaml-dev, dh-exec, dh-ocaml, 
libpfm4-dev, python3-setuptools, libz3-dev, llvm-spirv-15, spirv-tools, libcurl4-dev, 
libgrpc++-dev, protobuf-compiler-grpc, libprotobuf-dev, protobuf-compiler, 
build-essential, fakeroot
Filtered Build-Conflicts: oprofile


Thanks,

Gianfranco

Attachment: OpenPGP_signature
Description: OpenPGP digital signature


--- End Message ---
--- Begin Message ---
Hi,

this is not a bug, hence closing. Explanation below.

On 2022-11-21 16:48, Gianfranco Costamagna wrote:
> Hello Josh!
>> 
>> Can you show me a .dsc that triggers the problem you see or give me 
>> more
>> information on how to reproduce the problem by supplying your exact 
>> invocation
>> of sbuild?
>> 
> 
> So, looks like the failure was in dsc generation?
> 
> Lets try this:
> 
> pull-debian-source llvm-toolchain-15 1:15.0.5-2 (or dget whatever)
> 
> pbuilder-dist sid login
> apt install debhelper dh-ocaml
> 
> cd llvm-toolchain-15-15.0.5
> rm ../llvm-toolchain-15_15.0.5-2.dsc
> dpkg-buildpackage -S -d
> cat ../llvm-toolchain-15_15.0.5-2.dsc |grep spirv-15
> 
> 
> also if you try something like
> dpkg-source -b . && dpkg-source --after-build . && dpkg-buildpackage -S 
> -nc
> 
> the dsc generated is still wrong.

no, the generated dsc is correct. To get what I think you want, edit your
/usr/bin/dpkg-source and remove the line that says:

    $dep->simplify_deps($facts);

This will yield the behaviour that you expect, I think. So why are your deps
removed? Because they get simplified. To find out what's going on, lets look at
the relevant parts of your build depends:

     llvm-spirv-15 [ amd64 arm64 armel armhf mipsel ppc64el s390x ] <!stage1> |
     llvm-spirv-14 [ amd64 arm64 armel armhf mips64el mipsel ppc64el s390x ] 
<!stage1> | hello [!i386],
     llvm-spirv-14 [ mips64el ] <!stage1>,
     spirv-tools [ linux-any ] | hello [ !i386],

dpkg-source will simplify those to:

    llvm-spirv-14 [ mips64el ] <!stage1>,
    spirv-tools [ linux-any ] | hello [ !i386],

why is this correct? Lets look at a simplified example:

    Build-Depends: foo | bar [i386], bar [i386]

this will simplify to:

    Build-Depends: bar [i386]

Why is this correct? On i386, "bar" has to be installed. That will satisfy "bar
[i386]" as well as "foo | bar [i386]", so we only need "bar [i386]" on i386 and
the "foo" bit is irrelevant.  What about other architectures? On amd64, the
"bar [i386]" part of "foo | bar [i386]" will always evaluate to "satisfied" and
thus the whole OR-relation is satisfied and the "foo" bit is irrelevant as
well.

Thanks!

cheers, josch

Attachment: signature.asc
Description: signature


--- End Message ---

Reply via email to