Commit Graph

18118 Commits

Author SHA1 Message Date
d9ff9abe1f update sqlite3 vendor with fix for static builds
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
Upstream-commit: 46df9e4ec3453dd6f46261e0eeb276965af20880
Component: engine
2015-09-07 18:50:56 -07:00
71729da61a make binary: do not ignore unresolved symbols
TL;DR: stop building static binary that may fail

Linker flag --unresolved-symbols=ignore-in-shared-libs was added
in commit 06d0843 two years ago for the static build case, presumably
to avoid dealing with problem of missing libraries.

For the record, this is what ld(1) man page says:

> --unresolved-symbols=method
>    Determine how to handle unresolved symbols.  There are four
>    possible values for method:
> .........
>    ignore-in-shared-libs
>        Report unresolved symbols that come from regular object files,
>        but ignore them if they come from shared libraries.  This can
>        be useful when creating a dynamic binary and it is known that
>        all the shared libraries that it should be referencing are
>        included on the linker's command line.

Here, the flag is not used for its purpose ("creating a dynamic binary")
and does more harm than good. Instead of complaining about missing symbols
as it should do if some libraries are missing from LIBS/LDFLAGS, it lets
ld create a binary with unresolved symbols, ike this:

 $ readelf -s bundles/1.7.1/binary/docker-1.7.1 | grep -w UND
 ........
 21029: 0000000000000000     0 NOTYPE  GLOBAL DEFAULT  UND dlopen
 .........

Such binary is working just fine -- until code calls one of those
functions, then it crashes (for apparently no reason, i.e. it is
impossible to tell why from the diagnistics printed).

In other words, adding this flag allows to build a static binary
with missing libraries, hiding the problem from both a developer
(who forgot to add a library to #cgo: LDFLAGS -- I was one such
developer a few days ago when I was working on ploop graphdriver)
and from a user (who expects the binary to work without crashing,
and it does that until the code calls a function in one of those
libraries).

Removing the flag immediately unveils the problem (as it should):

	/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libsqlite3.a(sqlite3.o):
	In function `unixDlError':
	(.text+0x20971): undefined reference to `dlerror'
	/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libsqlite3.a(sqlite3.o):
	In function `unixDlClose':
	(.text+0x8814): undefined reference to `dlclose'

The problem is, gosqlite package says:

	#cgo LDFLAGS: -lsqlite3

which is enough for dynamic linking, as indirect dependencies (i.e.
libraries required by libsqlite3.so) are listed in .so file and will be
resolved dynamically by ldd upon executing the binary.

For static linking though, one has to list all the required libraries,
both direct and indirect. For libraries with pkgconfig support the
list of required libraries can be obtained with pkg-config:

	$ pkg-config --libs sqlite3 # dynamic linking case
	-lsqlite3
	$ pkg-config --libs --static sqlite3 # static case
	-lsqlite3 -ldl -lpthread

It seems that all one has to do is to fix gosqlite this way:

	-#cgo LDFLAGS: -lsqlite3
	+#cgo pkg-config: sqlite3

Unfortunately, cmd/go doesn't know that it needs to pass --static
flag to pkg-config in case of static linking
(see https://github.com/golang/go/issues/12058).

So, for one, one has to do one of these things:

1. Patch sqlite.go like this:

	-#cgo LDFLAGS: -lsqlite3
	+#cgo pkg-config: --static sqlite3

(this is exactly what I do in goploop, see
https://github.com/kolyshkin/goploop/commit/e9aa072f51)

2. Patch sqlite.go like this:
	-#cgo LDFLAGS: -lsqlite3
	+#cgo LDFLAGS: -lsqlite3 -ldl -lpthread

(I would submit this patch to gosqlite but it seems that
https://code.google.com/p/gosqlite/ is deserted and not maintained,
and patching it here is not right as it is "vendored")

3. Explicitly add -ldl for the static link case.
This is what this patch does.

4. Fork sqlite to github and maintain it there. Personally I am not
ready for that, as I'm neither a Go expert nor gosqlite user.

Now, #3 doesn't look like a clear solution, but nevertheless it makes
the build much better than it was before.

Signed-off-by: Kir Kolyshkin <kir@openvz.org>
Upstream-commit: 15aad5d3e6d97627345586e5ee92a896667bb33a
Component: engine
2015-09-04 13:15:25 -07:00
1e8976f982 Merge pull request #16087 from Microsoft/turn-off-dockerhubpull-suite
Temp: Turn off dockerhubpullsuite on Win2Linux CI
Upstream-commit: bc915d0856edc10baf9c884bb2abbedadf51a573
Component: engine
2015-09-04 12:30:06 -07:00
cd76a76b2f Temp: Turn off dockerhubpullsuite on Win2Linux CI
Signed-off-by: John Howard <jhoward@microsoft.com>
Upstream-commit: 0b18b1b3095ec8a937e76e02b9f0805972cff734
Component: engine
2015-09-04 11:53:40 -07:00
4792ea30e7 Merge pull request #16065 from Microsoft/10662-fix2panics
Fixes 2 panics initialising tests
Upstream-commit: 6b14d9a64576197901c9a498caef3cc6f7f3bc43
Component: engine
2015-09-04 11:07:17 -07:00
4ec4a9a12d Merge pull request #16039 from icecrime/update_pull_tests
Update pull tests
Upstream-commit: 5b46d8f0fa2a687f748d65697bc094e69d039455
Component: engine
2015-09-04 09:52:41 -07:00
6aeaa4026b Merge pull request #15999 from cpuguy83/15994_ext_volume_bind
Set bind driver after volume is created
Upstream-commit: 7c667f9d6e506fb502426f2d98db8c0c124fe03b
Component: engine
2015-09-04 09:47:10 -07:00
a2884da2ba Merge pull request #16043 from sallyom/manDockerfile
man Dockerfile ADD/COPY/FROM clarify
Upstream-commit: 4a0606423bc6ab3195bfddafcff2cea9a6135622
Component: engine
2015-09-04 10:03:50 +02:00
6ab00adeae Merge pull request #16057 from sallyom/manDocker
clarify --insecure-registry in man docker
Upstream-commit: 409212be24ade88ffd2cf072d3bffb868e96de7c
Component: engine
2015-09-04 09:56:01 +02:00
1f9dd04dfa Merge pull request #15877 from Microsoft/10662-trigger
Fix trigger count and output
Upstream-commit: 0009852cb0ceadc398c9d30c7f5494848004c20f
Component: engine
2015-09-03 20:04:05 -07:00
35638190ef Merge pull request #16054 from jfrazelle/update-sqlite3-dep
code.google.com is shutting down so update the dep
Upstream-commit: 38ecc7fc32ba2acdb95559292d4a7aed5b1cbabe
Component: engine
2015-09-03 19:20:57 -07:00
1c8b6d6152 Fixes 2 panics initialising tests
Signed-off-by: John Howard <jhoward@microsoft.com>
Upstream-commit: 69bf17ffbd67fdfbbfbdb09bf7e183ffcfc7811e
Component: engine
2015-09-03 18:26:38 -07:00
4d787283f5 Merge pull request #16066 from jfrazelle/remove-reprepro
remove reprepro
Upstream-commit: 90477e8e94b45a52ed8c1a10c48827cef6fc8bdc
Component: engine
2015-09-03 18:20:01 -07:00
6dccafea52 Merge pull request #15706 from clnperez/vendor-helper-use-branch
Allow branch name in vendor-helper script
Upstream-commit: 1fa560e6eb73ca55b7e5f9e4227ab5dd4ce310ee
Component: engine
2015-09-03 18:02:06 -07:00
8f7f593e20 Merge pull request #16052 from jfrazelle/fix-release-selinux
make docker-engine-selinux findable
Upstream-commit: b01922999626fcafb789eb61957bceaef1f5cdf4
Component: engine
2015-09-03 17:52:39 -07:00
e579f48cbf Merge pull request #15845 from calavera/refactor_daemon_list
Refactor daemon container list.
Upstream-commit: c8c1c472b21fbe7079f5fccbbda8d9652c7c00d3
Component: engine
2015-09-03 20:48:54 -04:00
c7a363d08b Merge pull request #15846 from ZJU-SEL/11646-fix-path-validations
fix 11646 to check volume path in server side
Upstream-commit: 057f53f503d21e004ec4f75eeafa10de1ceecc63
Component: engine
2015-09-03 20:42:37 -04:00
4de5cdb2f1 code.google.com is shutting down so update the dep
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
Upstream-commit: 4a864a755240709612f564f64839604a0697e11f
Component: engine
2015-09-03 17:39:29 -07:00
bbd3497cdd Fix trigger count and output
Signed-off-by: John Howard <jhoward@microsoft.com>
Upstream-commit: 662010292619c33db7f144890abfdd9a99b423e0
Component: engine
2015-09-03 17:39:19 -07:00
eeddb0adf8 remove reprepro
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
Upstream-commit: e7cf75c103fe8c21af18f6e1afbccb1c21101081
Component: engine
2015-09-03 17:31:49 -07:00
7db3a64e57 Merge pull request #16060 from vdemeester/14756-lint-pkg-term-windows
Lint pkg/term/windows package
Upstream-commit: 07d2eae6d57ecdac82fa41ad342b6bb21d537848
Component: engine
2015-09-03 19:54:20 -04:00
b5219c6311 Merge pull request #16041 from runcom/portmapping-doc-cleaning
Clean latest api doc from PortMapping and outdated error check
Upstream-commit: 2d605ce53bc45f6d83f3d1c873d57d207d84b7d4
Component: engine
2015-09-03 19:37:34 -04:00
3c8280bd5b Merge pull request #16067 from jfrazelle/fix-release-branch-in-suites-script
fix release branch in suites.sh
Upstream-commit: 9b072fb722e67006c42f8d61ee377ee140e325d6
Component: engine
2015-09-03 16:33:32 -07:00
0249cbd7d9 Update image pull tests
Update and migrate existing tests to the `DockerHubPullSuite`. Most
tests were preserved, but refactored and made more exhaustive. One test
was deliberately removed (`TestPullVerified`) as it is unreliable and
that the feature was obsoleted by content trust.

Move all trust related tests to `docker_cli_pull_trusted_test.go`.

Move tests depending on a local registry to `docker_cli_pull_local_test.go`.

Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
Upstream-commit: f324f4851f28edfd8dab82cd624a4ec1f01cd207
Component: engine
2015-09-03 15:57:41 -07:00
595af68c98 Add integration-cli/checker package
Add a `checker` package that adds some utility Checker implementation,
the first one being `checker.Contains`, as well as brining all go-check
provided Checker implementations in scope as a commodity.

Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
Upstream-commit: c87cbd3862336fb01addff5d753ff7c8e0d50879
Component: engine
2015-09-03 15:57:41 -07:00
3aa213ceb8 fix release branch in suites.sh
we changed the naming scheme of the release branch

Signed-off-by: Jessica Frazelle <acidburn@docker.com>
Upstream-commit: e38a9ecef6849304b6d961b24af16fbd1f4912d6
Component: engine
2015-09-03 15:48:02 -07:00
1e6fd6c910 Merge pull request #16027 from Microsoft/10662-utimes
Windows: Fix dockerfile ADD from HTTP
Upstream-commit: 6ffbea3c94ea4b3f6177dff3e7dc40e4c67dc9f4
Component: engine
2015-09-03 18:44:34 -04:00
32bca980ee Merge pull request #16022 from nalind/cgo-windows
Fix a daemon build error when cgo isn't available
Upstream-commit: f0a5d03400429c6e97efacdb50d175c3fd85ba63
Component: engine
2015-09-03 18:42:58 -04:00
4a69dd626d clarify --insecure-registry in man docker
Signed-off-by: Sally O'Malley <somalley@redhat.com>
Upstream-commit: 2d9ea188d4625ee77d5864590ffde6cff4fe0031
Component: engine
2015-09-03 17:10:40 -04:00
ff114b4d32 Lint pkg/term/windows package
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
Upstream-commit: 3409de971c7bd3c84c324d19f422fcb3c6777f02
Component: engine
2015-09-03 22:25:52 +02:00
140037e825 Merge pull request #16025 from sallyom/overlayfsSelinux
selinux/overlay incompatible err
Upstream-commit: 9d0eef55eabeb36ae1f182ed954411f00275f96e
Component: engine
2015-09-03 16:08:55 -04:00
8ebc68df59 Merge pull request #16018 from surya-shodan/master
Typo in README.md
Upstream-commit: 6f5eb78519442bc26680e8e5406bbd788a395815
Component: engine
2015-09-03 11:57:06 -07:00
f8d3e36feb Merge pull request #16036 from Microsoft/10662-httpdirectory
Windows: Fix HTTP download directory
Upstream-commit: 8258996cf28a2e25c6c765b48acf9ad889996827
Component: engine
2015-09-03 11:54:53 -07:00
2f2b355be9 Merge pull request #16038 from aboch/sbx
Vendor libnetwork dc52820147f40fe424c8959987af3b396f842639
Upstream-commit: 288275ab60c049fa644f1ce5d36c0c005e8dd02c
Component: engine
2015-09-03 11:48:02 -07:00
afcc143845 make docker-engine-selinux findable
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
Upstream-commit: c7b3e7e7701a30ad0eb3f58d9b0cf3149cc82fda
Component: engine
2015-09-03 08:58:33 -07:00
43e93c7ce3 man Dockerfile ADD/COPY/FROM clarify
Signed-off-by: Sally O'Malley <somalley@redhat.com>
Upstream-commit: 48badd2a2e3a6712baa6fce1e97e87e1feb3dc38
Component: engine
2015-09-03 09:08:25 -04:00
bc3067e74f Merge pull request #16001 from jfrazelle/apt-repo-pinning
use apt-ftparchive and reprepro to enable apt-pinning;
Upstream-commit: d9065fcdb5f2cd1bd020e04a43e45f13530da2a6
Component: engine
2015-09-03 11:18:54 +02:00
3b4e85f885 Clean latest api doc from PortMapping and outdated error check
Regarding the outdated error check, there's no `docker.PortMapping`
struct anymore and this is linked to something really old #1334

Signed-off-by: Antonio Murdaca <runcom@linux.com>
Upstream-commit: 137c12f19a6838eeebfd45c459b883bb69f53d36
Component: engine
2015-09-03 11:01:55 +02:00
34cffe24d5 Merge pull request #15984 from jlhawn/document_build_auth_config
[docs] Add description of "X-Registry-Config"
Upstream-commit: ee4de4d16342787335047528e6459411fedcfcc0
Component: engine
2015-09-03 08:40:34 +02:00
813cd9d35e Add test suite for push/pull code
Introduce the `DockerHubPullSuite` that interacts with its own dedicated
daemon, thus allowing to start from a clean environment and finely test
against the impact of isolated push and pull operations.

Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
Upstream-commit: 9e4addde76f4aea4613f09215084812b6a357521
Component: engine
2015-09-02 22:06:24 -07:00
6d827cad48 Merge pull request #16035 from aaronlehmann/remove-test-push-interrupt
Remove TestPushInterrupt
Upstream-commit: 2bd30cd6cb1fa3c7de5001a28a49057da743dafe
Component: engine
2015-09-02 21:07:55 -07:00
357660a251 Docker changes for libnetwork Sandbox
- Ground-work for integrating with user namespace support

Signed-off-by: Alessandro Boch <aboch@docker.com>
Upstream-commit: 56fdb05258d1ab2153fec268ed22cf9d1227c356
Component: engine
2015-09-02 17:24:56 -07:00
ee5c0b914e Set bind driver after volume is created
When using a named volume without --volume-driver, the driver was
hardcoded to "local".
Even when the volume was already created by some other driver (and
visible in `docker volume ls`), the container would store in it's own
config that it was the `local` driver.
The external driver would work perfecly fine until the daemon is
restarted, at which point the `local` driver was assumed because that is
as it was set in the container config.

Set the bind driver to the driver returned by createVolume.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
Upstream-commit: 39be36658d559d0fe28c902ad0f45287868c7ebb
Component: engine
2015-09-02 20:13:20 -04:00
4da3ed2f74 Merge pull request #16030 from Microsoft/fix-golint-commit
Windows: Fix golint daemon breaking commit
Upstream-commit: fb4cce5e53061d8a0f4bd228e1a0286ccace0d8e
Component: engine
2015-09-02 20:10:33 -04:00
2a15577401 Vendor libnetwork dc52820147f40fe424c8959987af3b396f842639
Main changes in this vendoring are to allow user name space integration in docker.
And it includes major fix for network namespace handling

Signed-off-by: Alessandro Boch <aboch@docker.com>

Signed-off-by: Alessandro Boch <aboch@docker.com>
Upstream-commit: 414dfbf681d956c11c83d9b7598962a1294f2c5d
Component: engine
2015-09-02 16:57:43 -07:00
c264fc5ef8 Windows: Fix HTTP download directory
Signed-off-by: John Howard <jhoward@microsoft.com>
Upstream-commit: 7beb026f0e981df484363ae017d43c8167c80a6e
Component: engine
2015-09-02 16:24:53 -07:00
bcf9624e7a Merge pull request #16002 from Microsoft/10662-workdir-platformsemantics
Windows: Ensure workdir handled in platform semantics
Upstream-commit: c6dd4510736dbbf3166b1eb7715b51fb15ca1678
Component: engine
2015-09-02 16:09:35 -07:00
8925b7fcf4 selinux/overlay incompatible err
Signed-off-by: Sally O'Malley <somalley@redhat.com>
Upstream-commit: 04329e0b3e47e411ebf0a4ba8947be6e87014737
Component: engine
2015-09-02 18:52:10 -04:00
9980495b3c Remove TestPushInterrupt
This test relies on a race condition, and has been failing often in CI.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
Upstream-commit: 6cc38775bbff9b9304e551b26593af9c867c61bb
Component: engine
2015-09-02 15:30:55 -07:00
851cbff030 Windows: Fix golint daemon breaking commit
Signed-off-by: John Howard <jhoward@microsoft.com>
Upstream-commit: cfddca2bf90764757a436720361cda674071ba4f
Component: engine
2015-09-02 14:36:45 -07:00