- Package:
- lomiri-location-service
- Source:
- lomiri-location-service
- Submitter:
- Nilesh Patra
- Date:
- 2025-08-31 15:55:06 UTC
- Severity:
- normal
- Tags:
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
Missed to CC bug report. doing that now.
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
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
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