From mboxrd@z Thu Jan 1 00:00:00 1970 From: Pjotr Prins Subject: Re: Tiny Guix (and containers) Date: Thu, 26 Oct 2017 12:42:59 +0200 Message-ID: <20171026104259.GA2179@thebird.nl> References: <20171025081846.GA28005@thebird.nl> <87mv4emlwf.fsf@elephly.net> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:55165) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e7feq-0005p4-Dq for guix-devel@gnu.org; Thu, 26 Oct 2017 06:45:05 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1e7fek-0007pg-E3 for guix-devel@gnu.org; Thu, 26 Oct 2017 06:45:01 -0400 Received: from mail.thebird.nl ([95.154.246.10]:56725) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1e7fek-0007mY-7y for guix-devel@gnu.org; Thu, 26 Oct 2017 06:44:58 -0400 Content-Disposition: inline In-Reply-To: <87mv4emlwf.fsf@elephly.net> List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: Ricardo Wurmus Cc: guix-devel Hi Ricardo, Thanks for responding. I think this discussion belongs here. On Thu, Oct 26, 2017 at 09:02:56AM +0200, Ricardo Wurmus wrote: >=20 > Pjotr Prins writes: >=20 > > 22M 3x53yv4v144c9xp02rs64z7j597kkqax-gcc-5.4.0-lib >=20 > According to =E2=80=9Cdu=E2=80=9D, this is 32M on my disk. The =E2=80=9C= lib=E2=80=9D subdir contains > both shared libraries as well as ar archives for static linking; > together they weigh in at 12MB. We may want to move them to a separate > output. Yes, I think that is what we should head for eventually. I vaguely remember a discussion about this on this ML and people were against separate outputs for doc, include, static-lib etc. What are you all thinking now? Does it make sense to have the base package as small as possible and split out the rest? I know it is extra work. > The package also contains lots of header files: >=20 > 6.3M /gnu/store/3x53yv4v144c9xp02rs64z7j597kkqax-gcc-5.4.0-lib/lib/= gcc/x86_64-unknown-linux-gnu/5.4.0/plugin/include/ >=20 > Not sure what to do with those without making the use of GCC a hassle. Yes, that goes with gcc. No point keeping those separate. > > 41M n6nvxlk2j8ysffjh3jphn1k5silnakh6-glibc-2.25 >=20 > This package still contains a lot of locale data. The directory > =E2=80=9Cshare/i18n/locales/=E2=80=9D takes up 6.7M, and =E2=80=9Cshare= /locale=E2=80=9D takes up another > 4.3M. All the .a files under =E2=80=9Clib=E2=80=9D take up 8.7M. >=20 > > 34M nnykzgwfy8mwh2gmxm715sjxykg8qjwn-binutils-2.28 >=20 > =E2=80=9Cshare/locale=E2=80=9D is 9.4M. This is a cross-cutting concer= n. We don=E2=80=99t have > a way to globally filter locales to only requested locales. Even if we > split them each into a separate output =E2=80=94 how would you specify = that you > want the =E2=80=9Cde_DE=E2=80=9D locale in each package and not install= the rest? Yes, it is a specific target discussion. Same goes for compilation without debug information and optimizing for size. Tiny =3D tiny. Ludo wrote at some point that target optimizations are on the roadmap. It would be rather good to have. Maybe in the form of channels. > There seems to be some duplication with these directories: >=20 > /gnu/store/nnykzgwfy8mwh2gmxm715sjxykg8qjwn-binutils-2.28/x86_64-un= known-linux-gnu/bin/ > /gnu/store/nnykzgwfy8mwh2gmxm715sjxykg8qjwn-binutils-2.28/bin/ >=20 > But the binaries seem to be hardlinked, so they don=E2=80=99t take up e= xtra > space. >=20 > > Now it takes forever to set up the image >=20 > Have you tried disabling compression? This could be a lot faster. I > found that tar with gzip compression is terribly slow to copy things > from the store into a compressed tar archive. Disabling compression > speeds this up considerably, even though it is still rather slow. That will help :). But I was talking about Docker images. Making them small would be helpful for a lot of people out there. It takes forever to download and run Docker tests, for example, I hear people complain. Pj.