#1110345 lomiri-location-service FTCBFS: Multiple reasons

#1110345#5
Date:
2025-08-03 14:30:15 UTC
From:
To:
Dear Maintainer,

lomiri-location-service fails to cross-build due to multiple reasons.

1. In d/rules, "CC" and "CXX" are used with dh_auto_configure without importing
include /usr/share/dpkg/buildtools.mk which will set it to correct triplet
prefixed var.

2. The lomiri-location-service-tests package misses a !nocheck build profile due
to which cross-builds were trying to build for test package as well

3. CMakeLists.txt lack an option to not compile build time tests and documentation.

I've attempted to fix all 3 issues and attached a patch. Please consider to review and apply.

Best,
Nilesh

#1110345#10
Date:
2025-08-03 19:24:25 UTC
From:
To:
Missed to CC bug report. doing that now.
#1110345#15
Date:
2025-08-04 05:51:03 UTC
From:
To:
Hi Nilesh,

thanks for sending cross build patches.

<!nocheck> generally should never be used in Build-Profiles to disable
the building of certain packages. To inhibit the building of installed
tests, please use the noinsttest build profile.

That may mean that some of the Build-Depends must move their <!nocheck>
annotations to <!noinsttest> annotations. Since that profile is not
enabled by default for cross builds, that may result in failing to
satisfy cross build depends.

This is the hunk I'm complaining about.

The buildtools.mk file is present since quite a long time now.
Initially, I started using it with "-include" to facilitate backports,
but we no longer need to cover that case and plain "include" is more
sensible these days.

There is a lomiri-location-service-doc package. Do you happen to know
whether BUILD_DOCS affects other packages beyond this? (You may check
using reproducible builds, e.g. manual pages may go away.) If only that
one package is affected, a better check would be:

ifeq (,$(filter lomiri-location-service-doc,$(shell dh_listpackages)))

If doing an arch-only build or a nodoc build, debhelper will not list
the package in dh_listpackages.

This should likely be matching noinsttest.

Also match on the package being built here if possible.

Helmut

#1110345#20
Date:
2025-08-04 14:53:27 UTC
From:
To:
Hmm -- is it? That's news. I did find several packages using !nocheck build profile
when I searched on codesearch.debian.net _including_ the final lomiri package [1].

And the test-only deps seem to be marked with !nocheck as well.

Should that be fixed in the lomiri package too, in that case?

Before submitting the patch, I skimmed over the relevant files and also
checked the resulting .deb and it seemed to me that it does not.

I'll try to double-check later.

I do not see that option for DEB_BUILD_OPTIONS on the debian policy doc [2]
and lintian still suggests nocheck [3].

Am I the only one getting confused? :P

Should this be noinsttest for DEB_BUILD_PROFILES and nocheck for DEB_BUILD_OPTIONS?

[1] https://sources.debian.org/src/lomiri/0.5.0-4/debian/control/?hl=237#L237
[2] https://www.debian.org/doc/debian-policy/ch-source.html#debian-rules-and-deb-build-options:
[3] https://lintian.debian.org/tags/override_dh_auto_test-does-not-check-DEB_BUILD_OPTIONS.html

#1110345#25
Date:
2025-08-04 16:05:04 UTC
From:
To:
Hi Nilesh,

Probably, most of
https://codesearch.debian.net/search?q=Build-Profiles%3A.*nocheck&literal=0
are buggy and should be fixed.

If the package is normally reproducible and nocheck produces something
else (e.g. fewer packages), that's an rc bug in forky. Refer to glib2.0
for a sensible example installing tests into a binary package.

Yes.

noinsttest is a build profile only. nocheck is an option and profile and
eventually we'd like to turn it into a profile only. So once you move to
noinsttest, you should be matching DEB_BUILD_PROFILES only. Last but not
least, use filter instead of findstring. The profile pkg.foo.noinsttest
should not be matched, but findstring would match it.

Helmut