1
0
Fork 0
mirror of https://github.com/moby/moby.git synced 2022-11-09 12:21:53 -05:00
moby--moby/pkg
Kir Kolyshkin 80e338a18d Revert "homedir: add cgo or osusergo buildtag constraints for unix"
TL;DR: there is no way to do this right.

We do know that in some combination of build tags set (or unset),
linker flags, environment variables, and libc implementation,
this package won't work right. In fact, there is one specific
combination:

1. `CGO_ENABLED=1` (or unset)
2. static binary is being built (e.g. `go build` is run with `-extldflags -static`)
3. `go build` links the binary against glibc
4. `osusergo` is not set

This particular combination results in the following legitimate linker warning:

> cgo_lookup_unix.go: warning: Using 'getpwuid_r' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking

If this warning is ignored and the resulting binary is used on a system
with files from a different glibc version (or without those files), it
could result in a segfault.

The commit being reverted tried to guard against such possibility,
but the problem is, we can only use build tags to account for items
1 and 4 from the above list, while items 2 and 3 do not result in
any build tags being set or unset, making this guard excessive.

Remove it.

This reverts commit 023b072288.

Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
2019-10-24 13:13:09 -07:00
..
aaparser Add canonical import comment 2018-02-05 16:51:57 -05:00
archive unconvert: remove unnescessary conversions 2019-09-18 12:57:33 +02:00
authorization pkg/authorization: use constants for http methods 2019-10-13 19:11:28 +02:00
broadcaster Various code-cleanup 2018-05-23 17:50:54 +02:00
capabilities Add more import comments 2019-04-10 16:59:33 +02:00
chrootarchive Allow system.MkDirAll() to be used as drop-in for os.MkDirAll() 2019-08-08 15:05:49 +02:00
containerfs pkg/containerfs: rename output variable to prevent shadowing (govet) 2019-09-18 12:57:41 +02:00
devicemapper pkg/devicemapper ignore SA4000 false positive (staticcheck) 2019-09-18 12:57:52 +02:00
directory TestMoveToSubdir: use sort.Strings() (gosimple) 2019-09-18 12:55:45 +02:00
discovery Setup tests 2019-09-09 21:09:57 +00:00
dmesg Use Klogctl from x/sys/unix to read Linux kernel log 2019-08-22 08:25:13 +02:00
filenotify TestPollerEvent: fix filemode (staticcheck) 2019-09-18 12:57:56 +02:00
fileutils gosec: add ignore comments for reported issues that can be ignored 2019-09-18 12:57:43 +02:00
fsutils Add canonical import comment 2018-02-05 16:51:57 -05:00
homedir Revert "homedir: add cgo or osusergo buildtag constraints for unix" 2019-10-24 13:13:09 -07:00
idtools unconvert: remove unnescessary conversions 2019-09-18 12:57:33 +02:00
ioutils pkg/ioutils use sha256 instead of sha1 in tests 2019-09-18 12:57:35 +02:00
jsonmessage pkg/jsonmessage: fix SA1006: printf-style function with no arguments 2019-10-18 00:45:37 +02:00
locker Add canonical import comment 2018-02-05 16:51:57 -05:00
longpath Add canonical import comment 2018-02-05 16:51:57 -05:00
loopback Use correct LOOP_CTL_GET_FREE API in pkg/loopback 2019-08-27 06:22:10 -07:00
mount pkg/mount: SA4011: ineffective break statement (staticcheck) 2019-10-18 00:46:02 +02:00
namesgenerator fixed typo, changed "perfectd to perfected" 2019-10-19 12:43:59 -07:00
parsers goimports: fix imports 2019-09-18 12:56:54 +02:00
pidfile Allow system.MkDirAll() to be used as drop-in for os.MkDirAll() 2019-08-08 15:05:49 +02:00
platform Use unix.Uname instead of shelling out to uname on darwin/freebsd 2019-09-03 22:43:16 +02:00
plugingetter Move plugin client to separate interface 2018-05-30 15:22:10 -04:00
plugins pkg/plugins: use constants for http methods 2019-10-13 19:11:30 +02:00
pools Fix pkg/pools staticcheck SA6002 2019-09-30 12:19:03 +08:00
progress pkg/progress: work around closing closed channel panic 2018-09-06 20:20:12 +00:00
pubsub Make sure timers are stopped after use. 2019-01-16 14:32:53 -08:00
reexec fix build on OpenBSD by defining Self() 2018-06-16 19:09:04 +02:00
signal pkg/signal: remove unnescessary conversion (unconvert) 2019-09-18 12:57:32 +02:00
stdcopy Merge pull request #37088 from ohbarye/fix-typos-duplicated-the 2018-05-19 20:57:47 +02:00
streamformatter Remove duplicated words in pkg files 2018-10-05 22:32:14 +08:00
stringid Entropy cannot be saved 2019-06-07 11:54:45 +01:00
symlink Update LICENSE 2018-09-12 14:27:53 +01:00
sysinfo Use functions from x/sys/unix to get number of CPUs on Linux 2019-06-18 19:26:56 +02:00
system unconvert: remove unnescessary conversions 2019-09-18 12:57:33 +02:00
tailfile Remove unused functions, variables, fields 2019-09-18 12:57:12 +02:00
tarsum gosec: add ignore comments for reported issues that can be ignored 2019-09-18 12:57:43 +02:00
term pkg/term/windows: add missing build-tag 2019-09-18 12:57:36 +02:00
truncindex Entropy cannot be saved 2019-06-07 11:54:45 +01:00
urlutil Be explicit about github.com prefix being a legacy feature 2018-05-30 11:09:14 +02:00
useragent Add canonical import comment 2018-02-05 16:51:57 -05:00
README.md Rename a few docker to moby 2017-10-25 13:56:12 +02:00

pkg/ is a collection of utility packages used by the Moby project without being specific to its internals.

Utility packages are kept separate from the moby core codebase to keep it as small and concise as possible. If some utilities grow larger and their APIs stabilize, they may be moved to their own repository under the Moby organization, to facilitate re-use by other projects. However that is not the priority.

The directory pkg is named after the same directory in the camlistore project. Since Brad is a core Go maintainer, we thought it made sense to copy his methods for organizing Go code :) Thanks Brad!

Because utility packages are small and neatly separated from the rest of the codebase, they are a good place to start for aspiring maintainers and contributors. Get in touch if you want to help maintain them!