[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Multiple import paths for a package seems to not work



Hi Nilesh,

On 06/10/2025 17:46, Nilesh Patra wrote:
Hi,

I was trying to update snowflake [1]. This has a change in import path, which I added in [2].

This now has 2 import paths. riseup-vpn is a reverse-dependency of this package. When I tried
to build reverse-dependency (everything locally), I am getting:

| # 0xacab.org/leap/bitmask-vpn/pkg/snowflake/lib
| src/0xacab.org/leap/bitmask-vpn/pkg/snowflake/lib/turbotunnel.go:10:2: cannot find package "git.torproject.org/
| pluggable-transports/snowflake.git/common/encapsulation" in any of:
|	/build/reproducible-path/riseup-vpn-0.25.8+ds2/_build/src/0xacab.org/leap/bitmask-vpn/vendor/
| git.torproject.org/pluggable-transports/snowflake.git/common/encapsulation (vendor tree)

While this directory _is_ present:

| $ dpkg -c golang-snowflake-dev_2.10.1-1_all.deb | grep encapsulation
| drwxr-xr-x root/root         0 2024-12-07 00:00 ./usr/share/gocode/src/gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/v2/common/encapsulation/
| -rw-r--r-- root/root      6700 2024-12-07 00:00 ./usr/share/gocode/src/gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/v2/common/encapsulation/encapsulation.go
|-rw-r--r-- root/root     12313 2024-12-07 00:00 ./usr/share/gocode/src/gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/v2/common/encapsulation/encapsulation_test.go

Could someone help me understand as to why the other import path is not taken up?

The documentation of dh_golang [3] indicates that only the *first* import path is used:
"DH_GOPKG" is automatically set to the value of the first import path of the "XS-Go-Import-Path" "debian/control" field, which can contain several comma-separated import paths.

In your case, riseup-vpn is looking for the Go package "git.torproject.org/pluggable-transports/snowflake.git/common/encapsulation", whereas the snowflake one provides only "gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/v2/common/encapsulation/", which is a different import path.

Maybe dh_golang should instead create symlinks for all the other listed import paths targeting the first one?

[1] https://salsa.debian.org/pkg-privacy-team/snowflake
[2] https://salsa.debian.org/pkg-privacy-team/snowflake/-/commit/e594bcde56436ac9dc9cc3aeb96eefdbfe4945a0

[3] https://manpages.debian.org/bookworm/dh-golang/Debian::Debhelper::Buildsystem::golang.3pm.en.html#ENVIRONMENT_VARIABLES

--
Nicolas Peugnet


Reply to: