Bug 1688261 - golang: -linkshared appears to be broken
Summary: golang: -linkshared appears to be broken
Keywords:
Status: CLOSED EOL
Alias: None
Product: Fedora
Classification: Fedora
Component: golang
Version: 33
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Alejandro Sáez Morollón
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2019-03-13 12:16 UTC by Florian Weimer
Modified: 2021-11-30 18:00 UTC (History)
7 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2021-11-30 18:00:41 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Florian Weimer 2019-03-13 12:16:44 UTC
Reproducer:

cat > t.go <<EOF
package main

func main() {
}
EOF
go build -linkshared t.go

Results in:

go build internal/cpu: open /usr/lib/golang/pkg/linux_amd64_dynlink/internal/cpu.a: permission denied
go build runtime/internal/atomic: open /usr/lib/golang/pkg/linux_amd64_dynlink/runtime/internal/atomic.a: permission denied
go build vendor/golang_org/x/crypto/curve25519: open /usr/lib/golang/pkg/linux_amd64_dynlink/vendor/golang_org/x/crypto/curve25519.a: permission denied
go build runtime/cgo: open /usr/lib/golang/pkg/linux_amd64_dynlink/runtime/cgo.a: permission denied
go build sync/atomic: open /usr/lib/golang/pkg/linux_amd64_dynlink/sync/atomic.a: permission denied

Permissions look okay:

-rw-r--r--. 1 root root 32824 Jan 27 12:59 /usr/lib/golang/pkg/linux_amd64_dynlink/internal/cpu.a


Installed packages:

golang-shared-1.11.5-1.fc29.x86_64
golang-1.11.5-1.fc29.x86_64
golang-src-1.11.5-1.fc29.noarch
golang-bin-1.11.5-1.fc29.x86_64

Comment 1 Jakub Čajka 2019-03-13 15:08:53 UTC
Hm... this seems to be cause by Go trying to write in to that files(or at least open them for writing). I will investigate further.

Comment 2 Jakub Čajka 2019-03-14 09:44:42 UTC
Would you mind running these commands and posting their results?

go list -f '{{.ImportPath}} {{.Stale}} {{.StaleReason}}' --buildmode shared std
go list -f '{{.ImportPath}} {{.Stale}} {{.StaleReason}}' std

Thanks

Comment 3 Florian Weimer 2019-03-14 10:16:17 UTC
Sure:

$ go list -f '{{.ImportPath}} {{.Stale}} {{.StaleReason}}' --buildmode shared std
archive/tar false 
archive/zip false 
bufio false 
bytes false 
compress/bzip2 false 
compress/flate false 
compress/gzip false 
compress/lzw false 
compress/zlib false 
container/heap false 
container/list false 
container/ring false 
context false 
crypto false 
crypto/aes false 
crypto/cipher false 
crypto/des false 
crypto/dsa false 
crypto/ecdsa false 
crypto/elliptic false 
crypto/hmac false 
crypto/internal/randutil false 
crypto/internal/subtle false 
crypto/md5 false 
crypto/rand false 
crypto/rc4 false 
crypto/rsa false 
crypto/sha1 false 
crypto/sha256 false 
crypto/sha512 false 
crypto/subtle false 
crypto/tls false 
crypto/x509 false 
crypto/x509/pkix false 
database/sql false 
database/sql/driver false 
debug/dwarf false 
debug/elf false 
debug/gosym false 
debug/macho false 
debug/pe false 
debug/plan9obj false 
encoding false 
encoding/ascii85 false 
encoding/asn1 false 
encoding/base32 false 
encoding/base64 false 
encoding/binary false 
encoding/csv false 
encoding/gob false 
encoding/hex false 
encoding/json false 
encoding/pem false 
encoding/xml false 
errors false 
expvar false 
flag false 
fmt false 
go/ast false 
go/build false 
go/constant false 
go/doc false 
go/format false 
go/importer false 
go/internal/gccgoimporter false 
go/internal/gcimporter false 
go/internal/srcimporter false 
go/parser false 
go/printer false 
go/scanner false 
go/token false 
go/types false 
hash false 
hash/adler32 false 
hash/crc32 false 
hash/crc64 false 
hash/fnv false 
html false 
html/template false 
image false 
image/color false 
image/color/palette false 
image/draw false 
image/gif false 
image/internal/imageutil false 
image/jpeg false 
image/png false 
index/suffixarray false 
internal/bytealg false 
internal/cpu false 
internal/nettrace false 
internal/poll false 
internal/race false 
internal/singleflight false 
internal/syscall/unix false 
internal/syscall/windows false 
internal/syscall/windows/registry false 
internal/syscall/windows/sysdll false 
internal/testenv false 
internal/testlog false 
internal/trace false 
io false 
io/ioutil false 
log false 
log/syslog false 
math false 
math/big false 
math/bits false 
math/cmplx false 
math/rand false 
mime false 
mime/multipart false 
mime/quotedprintable false 
net false 
net/http false 
net/http/cgi false 
net/http/cookiejar false 
net/http/fcgi false 
net/http/httptest false 
net/http/httptrace false 
net/http/httputil false 
net/http/internal false 
net/http/pprof false 
net/internal/socktest false 
net/mail false 
net/rpc false 
net/rpc/jsonrpc false 
net/smtp false 
net/textproto false 
net/url false 
os false 
os/exec false 
os/signal false 
os/signal/internal/pty false 
os/user false 
path false 
path/filepath false 
plugin false 
reflect false 
regexp false 
regexp/syntax false 
runtime false 
runtime/cgo false 
runtime/debug false 
runtime/internal/atomic false 
runtime/internal/sys false 
runtime/pprof false 
runtime/pprof/internal/profile false 
runtime/race false 
runtime/trace false 
sort false 
strconv false 
strings false 
sync false 
sync/atomic false 
syscall false 
testing false 
testing/internal/testdeps false 
testing/iotest false 
testing/quick false 
text/scanner false 
text/tabwriter false 
text/template false 
text/template/parse false 
time false 
unicode false 
unicode/utf16 false 
unicode/utf8 false 
unsafe false 
vendor/golang_org/x/crypto/chacha20poly1305 false 
vendor/golang_org/x/crypto/cryptobyte false 
vendor/golang_org/x/crypto/cryptobyte/asn1 false 
vendor/golang_org/x/crypto/curve25519 false 
vendor/golang_org/x/crypto/internal/chacha20 false 
vendor/golang_org/x/crypto/poly1305 false 
vendor/golang_org/x/net/dns/dnsmessage false 
vendor/golang_org/x/net/http/httpguts false 
vendor/golang_org/x/net/http/httpproxy false 
vendor/golang_org/x/net/http2/hpack false 
vendor/golang_org/x/net/idna false 
vendor/golang_org/x/net/internal/nettest false 
vendor/golang_org/x/net/nettest false 
vendor/golang_org/x/text/secure false 
vendor/golang_org/x/text/secure/bidirule false 
vendor/golang_org/x/text/transform false 
vendor/golang_org/x/text/unicode false 
vendor/golang_org/x/text/unicode/bidi false 
vendor/golang_org/x/text/unicode/norm false

Comment 4 Florian Weimer 2019-03-14 10:16:52 UTC
$ go list -f '{{.ImportPath}} {{.Stale}} {{.StaleReason}}' std
archive/tar false 
archive/zip false 
bufio false 
bytes false 
compress/bzip2 false 
compress/flate false 
compress/gzip false 
compress/lzw false 
compress/zlib false 
container/heap false 
container/list false 
container/ring false 
context false 
crypto false 
crypto/aes false 
crypto/cipher false 
crypto/des false 
crypto/dsa false 
crypto/ecdsa false 
crypto/elliptic false 
crypto/hmac false 
crypto/internal/randutil false 
crypto/internal/subtle false 
crypto/md5 false 
crypto/rand false 
crypto/rc4 false 
crypto/rsa false 
crypto/sha1 false 
crypto/sha256 false 
crypto/sha512 false 
crypto/subtle false 
crypto/tls false 
crypto/x509 false 
crypto/x509/pkix false 
database/sql false 
database/sql/driver false 
debug/dwarf false 
debug/elf false 
debug/gosym false 
debug/macho false 
debug/pe false 
debug/plan9obj false 
encoding false 
encoding/ascii85 false 
encoding/asn1 false 
encoding/base32 false 
encoding/base64 false 
encoding/binary false 
encoding/csv false 
encoding/gob false 
encoding/hex false 
encoding/json false 
encoding/pem false 
encoding/xml false 
errors false 
expvar false 
flag false 
fmt false 
go/ast false 
go/build false 
go/constant false 
go/doc false 
go/format false 
go/importer false 
go/internal/gccgoimporter false 
go/internal/gcimporter false 
go/internal/srcimporter false 
go/parser false 
go/printer false 
go/scanner false 
go/token false 
go/types false 
hash false 
hash/adler32 false 
hash/crc32 false 
hash/crc64 false 
hash/fnv false 
html false 
html/template false 
image false 
image/color false 
image/color/palette false 
image/draw false 
image/gif false 
image/internal/imageutil false 
image/jpeg false 
image/png false 
index/suffixarray false 
internal/bytealg false 
internal/cpu false 
internal/nettrace false 
internal/poll false 
internal/race false 
internal/singleflight false 
internal/syscall/unix false 
internal/syscall/windows false 
internal/syscall/windows/registry false 
internal/syscall/windows/sysdll false 
internal/testenv false 
internal/testlog false 
internal/trace false 
io false 
io/ioutil false 
log false 
log/syslog false 
math false 
math/big false 
math/bits false 
math/cmplx false 
math/rand false 
mime false 
mime/multipart false 
mime/quotedprintable false 
net false 
net/http false 
net/http/cgi false 
net/http/cookiejar false 
net/http/fcgi false 
net/http/httptest false 
net/http/httptrace false 
net/http/httputil false 
net/http/internal false 
net/http/pprof false 
net/internal/socktest false 
net/mail false 
net/rpc false 
net/rpc/jsonrpc false 
net/smtp false 
net/textproto false 
net/url false 
os false 
os/exec false 
os/signal false 
os/signal/internal/pty false 
os/user false 
path false 
path/filepath false 
plugin false 
reflect false 
regexp false 
regexp/syntax false 
runtime false 
runtime/cgo false 
runtime/debug false 
runtime/internal/atomic false 
runtime/internal/sys false 
runtime/pprof false 
runtime/pprof/internal/profile false 
runtime/race false 
runtime/trace false 
sort false 
strconv false 
strings false 
sync false 
sync/atomic false 
syscall false 
testing false 
testing/internal/testdeps false 
testing/iotest false 
testing/quick false 
text/scanner false 
text/tabwriter false 
text/template false 
text/template/parse false 
time false 
unicode false 
unicode/utf16 false 
unicode/utf8 false 
unsafe false 
vendor/golang_org/x/crypto/chacha20poly1305 false 
vendor/golang_org/x/crypto/cryptobyte false 
vendor/golang_org/x/crypto/cryptobyte/asn1 false 
vendor/golang_org/x/crypto/curve25519 false 
vendor/golang_org/x/crypto/internal/chacha20 false 
vendor/golang_org/x/crypto/poly1305 false 
vendor/golang_org/x/net/dns/dnsmessage false 
vendor/golang_org/x/net/http/httpguts false 
vendor/golang_org/x/net/http/httpproxy false 
vendor/golang_org/x/net/http2/hpack false 
vendor/golang_org/x/net/idna false 
vendor/golang_org/x/net/internal/nettest false 
vendor/golang_org/x/net/nettest false 
vendor/golang_org/x/text/secure false 
vendor/golang_org/x/text/secure/bidirule false 
vendor/golang_org/x/text/transform false 
vendor/golang_org/x/text/unicode false 
vendor/golang_org/x/text/unicode/bidi false 
vendor/golang_org/x/text/unicode/norm false

Comment 5 Ben Cotton 2019-10-31 19:48:22 UTC
This message is a reminder that Fedora 29 is nearing its end of life.
Fedora will stop maintaining and issuing updates for Fedora 29 on 2019-11-26.
It is Fedora's policy to close all bug reports from releases that are no longer
maintained. At that time this bug will be closed as EOL if it remains open with a
Fedora 'version' of '29'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version' 
to a later Fedora version.

Thank you for reporting this issue and we are sorry that we were not 
able to fix it before Fedora 29 is end of life. If you would still like 
to see this bug fixed and are able to reproduce it against a later version 
of Fedora, you are encouraged  change the 'version' to a later Fedora 
version prior this bug is closed as described in the policy above.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events. Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.

Comment 6 Ben Cotton 2019-11-27 21:29:03 UTC
Fedora 29 changed to end-of-life (EOL) status on 2019-11-26. Fedora 29 is
no longer maintained, which means that it will not receive any further
security or bug fix updates. As a result we are closing this bug.

If you can reproduce this bug against a currently maintained version of
Fedora please feel free to reopen this bug against that version. If you
are unable to reopen this bug, please file a new report against the
current release. If you experience problems, please add a comment to this
bug.

Thank you for reporting this bug and we are sorry it could not be fixed.

Comment 7 Florian Weimer 2021-02-07 11:10:12 UTC
Still present in golang-1.15.7-1.fc33.x86_64, with a slightly different error message:

go build runtime/internal/sys: copying /home/fweimer/.cache/go-build/ef/ef8092ebd194e7ec34c864584fc2216541454e9626c98ffe9d5210d2784da429-d: open /usr/lib/golang/pkg/linux_amd64_dynlink/runtime/internal/sys.a: permission denied
go build internal/cpu: copying /home/fweimer/.cache/go-build/ca/ca0a2dbbc130aa21613ca27f378b8c9fda02c4082687d92b40a0d6c660bc86d1-d: open /usr/lib/golang/pkg/linux_amd64_dynlink/internal/cpu.a: permission denied
[…]

Comment 8 Ben Cotton 2021-11-04 16:04:59 UTC
This message is a reminder that Fedora 33 is nearing its end of life.
Fedora will stop maintaining and issuing updates for Fedora 33 on 2021-11-30.
It is Fedora's policy to close all bug reports from releases that are no longer
maintained. At that time this bug will be closed as EOL if it remains open with a
Fedora 'version' of '33'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version' 
to a later Fedora version.

Thank you for reporting this issue and we are sorry that we were not 
able to fix it before Fedora 33 is end of life. If you would still like 
to see this bug fixed and are able to reproduce it against a later version 
of Fedora, you are encouraged  change the 'version' to a later Fedora 
version prior this bug is closed as described in the policy above.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events. Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.

Comment 9 Ben Cotton 2021-11-30 18:00:41 UTC
Fedora 33 changed to end-of-life (EOL) status on 2021-11-30. Fedora 33 is
no longer maintained, which means that it will not receive any further
security or bug fix updates. As a result we are closing this bug.

If you can reproduce this bug against a currently maintained version of
Fedora please feel free to reopen this bug against that version. If you
are unable to reopen this bug, please file a new report against the
current release. If you experience problems, please add a comment to this
bug.

Thank you for reporting this bug and we are sorry it could not be fixed.


Note You need to log in before you can comment on or make changes to this bug.