docker-library / buildpack-deps

MIT License
445 stars 113 forks source link

Replace `build-essential` with the real packages needed #16

Closed yosifkit closed 9 years ago

yosifkit commented 9 years ago

Since build-essential is really for building debian packages, we should whittle it down (https://github.com/docker-library/buildpack-deps/pull/15#issuecomment-70310120).

Here is the list of packages when installing build-essential from fresh buildpack-deps:jessie-scm:

The following NEW packages will be installed:
  binutils build-essential bzip2 cpp cpp-4.9 dpkg-dev fakeroot g++ g++-4.9 gcc gcc-4.9
  libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libasan1
  libatomic1 libc-dev-bin libc6-dev libcilkrts5 libcloog-isl4 libdpkg-perl libfakeroot
  libfile-fcntllock-perl libgcc-4.9-dev libgomp1 libisl10 libitm1 liblsan0 libmpc3
  libmpfr4 libquadmath0 libstdc++-4.9-dev libtimedate-perl libtsan0 libubsan0
  linux-libc-dev make manpages manpages-dev patch xz-utils

We will want tests on the images that inherit from this to be sure we don't break any of them. (I am pretty sure a debian developer might know which packages are specifically for debian packaging and not compiling/linking in general... :wink: :wink: @tianon, and @paultag)

tianon commented 9 years ago

All of those look fairly reasonable for general stuff, actually. I don't see any there that are really "specific" to Debian packaging. :x

yosifkit commented 9 years ago

So I looked at the deps of build-essential and tried just adding those, minus dpkg-dev ("This package provides the development tools (including dpkg-source) required to unpack, build and upload Debian source packages") which seems unnecessary here.

$ apt-get install g++ gcc libc6-dev make
The following NEW packages will be installed:
  binutils cpp cpp-4.9 g++ g++-4.9 gcc gcc-4.9 libasan1 libatomic1 libc-dev-bin
  libc6-dev libcilkrts5 libcloog-isl4 libgcc-4.9-dev libgomp1 libisl10 libitm1 liblsan0
  libmpc3 libmpfr4 libquadmath0 libstdc++-4.9-dev libtsan0 libubsan0 linux-libc-dev make
  manpages manpages-dev
tianon commented 9 years ago

Oh hah, I didn't even see dpkg-dev in that first list. Maybe you should use "-V" so they're easier to read. :)

This list looks reasonable IMO.

yosifkit commented 9 years ago

Do we want libc6-dev or just the virtual libc-dev?

tianon commented 9 years ago

Yeah, libc6-dev is a good one to have for sure.