There's go-helloworld in oe-core, which is reproducible as it is. How can the non-reproducibility that this patch is fixing be observed? Can we improve our tests for it?
Alex On Thu, 8 Jan 2026 at 07:08, Changqing Li via lists.openembedded.org <[email protected]> wrote: > > From: Changqing Li <[email protected]> > > Go packages and binaries are stamped with build IDs that record both the > action ID, which is a hash of the inputs to the action that produced the > packages or binary, and the content ID, which is a hash of the action > output, namely the archive or binary itself, Refer [1]. > > And action ID include hash of modroot, which will include build path, > so this make go package not reproducible. > Refer [2], keying off module path instead of module root directory is a TODO. > > [snip of log] > HASH[moduleIndex]: "go1.25.3" > HASH[moduleIndex]: "modroot > /build-a/tmp/work/x86-64-v3-wrs-linux/buildah/1.41.5/recipe-sysroot-native/usr/lib/go/src/cmd\n" > HASH[moduleIndex]: "package go1.25.3 go index v2 > /build-a/tmp/work/x86-64-v3-wrs-linux/buildah/1.41.5/recipe-sysroot-native/usr/lib/go/src/cmd/buildid\n" > HASH[moduleIndex]: "file buildid.go 2025-10-13 16:08:43 +0000 UTC 1704\n" > HASH[moduleIndex]: "file doc.go 2025-10-13 16:08:43 +0000 UTC 558\n" > HASH[moduleIndex]: > 007b9fe2edd5b3232f5c98ae6c46e80a435141cb627ba5418c5314c0cbf4df7b > > Report this issue to upstream, refer [3] > Workaround the reproducible by setting buildid to empty, refer [4] > > Refer: > [1] > https://github.com/golang/go/blob/master/src/cmd/go/internal/work/buildid.go#L26 > [2] > https://github.com/golang/go/blob/master/src/cmd/go/internal/modindex/read.go#L70 > [1] https://github.com/golang/go/issues/77086 > [2] https://github.com/golang/go/issues/34186 > > Signed-off-by: Changqing Li <[email protected]> > --- > meta/classes-recipe/go.bbclass | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/meta/classes-recipe/go.bbclass b/meta/classes-recipe/go.bbclass > index b540471ba2..1c43b36fc0 100644 > --- a/meta/classes-recipe/go.bbclass > +++ b/meta/classes-recipe/go.bbclass > @@ -51,11 +51,12 @@ GO_RPATH:class-native = "${@'-r > ${STAGING_LIBDIR_NATIVE}/go/pkg/${TARGET_GOTUPLE > GO_RPATH_LINK:class-native = > "${@'-Wl,-rpath-link=${STAGING_LIBDIR_NATIVE}/go/pkg/${TARGET_GOTUPLE}_dynlink' > if d.getVar('GO_DYNLINK') else ''}" > GO_EXTLDFLAGS ?= "${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS} ${GO_RPATH_LINK} > ${LDFLAGS}" > GO_LINKMODE ?= "" > +GO_BUILDID ?= "-buildid=" > GO_EXTRA_LDFLAGS ?= "" > GO_LINUXLOADER ?= "-I ${@get_linuxloader(d)}" > # Use system loader. If uninative is used, the uninative loader will be > patched automatically > GO_LINUXLOADER:class-native = "" > -GO_LDFLAGS ?= '-ldflags="${GO_RPATH} ${GO_LINKMODE} ${GO_LINUXLOADER} > ${GO_EXTRA_LDFLAGS} -extldflags '${GO_EXTLDFLAGS}'"' > +GO_LDFLAGS ?= '-ldflags="${GO_RPATH} ${GO_LINKMODE} ${GO_LINUXLOADER} > ${GO_EXTRA_LDFLAGS} ${GO_BUILDID} -extldflags '${GO_EXTLDFLAGS}'"' > export GOBUILDFLAGS ?= "-v ${GO_LDFLAGS} -trimpath" > export GOPATH_OMIT_IN_ACTIONID ?= "1" > export GOPTESTBUILDFLAGS ?= "${GOBUILDFLAGS} -c" > -- > 2.34.1 > > > >
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#229049): https://lists.openembedded.org/g/openembedded-core/message/229049 Mute This Topic: https://lists.openembedded.org/mt/117148599/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
